VPNを利用した複数ルーターを経由するSSH

外から直接22番ポートへSSHはやりたくないので、 VPNを利用した複数ルーターを経由するSSH を構築することでVPNを接続しないと22番ポートが接続できない環境を目指す。

構成図

IPアドレスの割り当てについては適当です。多分詳しい人から見たらダメダメな割り当てってなりそう。
とりあえず動くからヨシ!!!!
(もしこれから記載するconfigに重大な誤りや脆弱性がある場合は問い合わせページを参照の上、
こっそり教えてください。)


全体のネットワーク構成についてはこちらで紹介してるので気になる方はどうぞ。
今回はこのサイトを含めて外部に向けたネットワークについて書いていきます。
外部に開いているサービスとしては当サイトとメールがメインですが、別のラズパイでネットワーク全体を
zabbixで監視しているためこれにもポート開放が必要。

ポート

必要なポートは
・25番(SMTP・メール用)
・80番(HTTP・WEBページ用)
・443番(HTTPS・WEBページ用)
・465番(SMTPS・メール用)
・993番(IMAPS・メール用)
・10050番(zabbix・サーバー監視用)
上記の6個。
RTX1210のLAN3配下をDMZとしてヤマハさんのフィルターで設定。


ここで多少知っている人だと、あれ?SSHなくね?ってなると思います。
まだまだインフラ周り初心者なので、サーバー構築の時にGoogle先生にひたすら頼るんですが
調べるとSSHは22番以外に!!!とかから始まり、何をどうしたらよいのか。
(そこまで言うなら25番も閉めろよって言われそう・・・)

サーバーのメンテナンスについては自室にあるRTX1200のLAN1に接続してある
Win10上で動くLinux(VMを使用・ネットワークブリッジモード)からのみDMZ内のラズパイと通信できます。
・外部から22番SSH→不可
・内部から22番SSH→RTX1200のローカルかつ指定のIPアドレスからのみ可
VMが起動していない場合RTX1200←→DMZのSSHは不可となります。

まぁ自宅でメンテのためにSSHできることはわかったが、出先からは何にもできねーじゃん。
仰る通り。今までは出先からは何もできませんでした。

この記事を書いている時に、
「あ、RTX1210にVPNは設定してるからルーティング調整すればローカル扱いにしてSSHできるのでは?」
と思い立ち記事を書くのを放り投げて作業してました。
結果から言うと、RTX1210とのVPNを確立した時に指定した端末からのみDMZ内のラズパイサーバーへSSH
で接続できるように。
RTX1200のローカルからのみ接続可という原則を維持するため以下の経路を作成しました。(黄緑がSSHルート)

RTX1210の設定

*VPNを確立する端末のIPアドレスを固定する*
pp auth username linux PASS 192.168.2.252

*VPN先からIPアドレスを叩いた時にRTX1200へ向かわせる*
ip route 192.168.120.2 gateway 192.168.2.254

*各LANポートのアドレス固定*
ip lan1 address 192.168.2.1/24
ip lan2 address 192.168.100.254/24
ip lan3 address 192.168.110.1/30

*ssh(22番ポート)を通すためのフィルター設定*
ip lan3 secure filter out 10007
ip filter 10007 pass-log 192.168.2.252 192.168.120.2 tcp * 22

RTX1200の設定

*宛先192.168.120.~の通信をRTX830へ向かわせる*
ip route 192.168.120.0/24 gateway 192.168.120.1

*各LANポートのアドレス固定*
ip lan2 address 192.168.2.254/24
ip lan3 address 192.168.120.10/24

*VPN端末からの通信を許可するためのフィルター設定*
ip lan3 secure filter out 10011
ip filter 10011 pass-log 192.168.2.252 192.168.120.2 * * *

RTX830の設定

*VPN対向先へ戻すためのルーティング*
ip route 192.168.2.252 gateway 192.168.120.10
ip route 192.168.3.0/24 gateway 192.168.120.10

*各LANポートのアドレス固定*
ip lan1 address 192.168.120.1/24
ip lan2 address 192.168.110.2/30

*VPN端末からの通信を許可するためのフィルター設定*
ip lan2 secure filter in 1103
ip lan2 secure filter out 1104
ip filter 1103 pass-log 192.168.2.252 192.168.120.2 tcp * 22
ip filter 1104 pass-log 192.168.120.2 192.168.2.252 tcp 22 *

SSHのルート

静的ルーティングとフィルターを調整して(後ほど設定の詳細も記載します)RTX1200を経由して
VPN内でSSH接続が可能な環境になっています。
出先の端末はWin10のsurfaceですが、これもsurface内のVMからしかアクセス不可となります。

検証

自宅内のテスト環境としては、テザリングを有効にしたスマホにGW-900Dで接続しVM上のLinux内から
試行錯誤してました。
VPNのPSK、端末ごとに異なるパスワード、
なおかつSSHの鍵ペア認証となるため単純に22番を開けるよりかは安全かな?

高木
  • 高木

2件のコメント

  • Well-knownポートは不特定多数に公開するような要件ないなら基本的に閉めた方がいいと思います。
    特にリモートアクセス系サービス(22や23等)はアタックめちゃ来るので。
    セキュリティーは絶対な正解がないですし、運用負荷とのトレードオフでキリ無いですが、自分しか使わないようなサービスはグローバルに対して直で公開するのではなくVPN越してからアクセスするようにしてますね。
    あとポートは覚えやすいようにSSHなら念のため10022等、元の番号がわかるように変更してます。

    • コメントありがとうございます。仰る通りです。
      なので22番ポートについてはVPN・特定端末+鍵ペア認証の条件でのみアクセス可としております。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です