VPN経由でのみSSHトラフィックルーティング

VPN経由でのみSSHトラフィックルーティング

VPN接続を介してコンピュータのSSHサービスをルーティングしながら、他のすべてのデータがWANアドレスを通過することを許可できますか?これを達成するには、どのようなiptables魔法が必要ですか?

SSHデータ→VPN経由その他
すべてのデータ→デフォルトパス経由

答え1

私の答えは次のとおりです。関連していますが、より複雑な質問への回答テストされていません。

このパッケージをインストールする必要がありますiproute2

/etc/iproute2/rt_tables行に追加

200 vpn-route

次に、VPNが初期化された後に呼び出されるスクリプトを作成します。

# set default gateway of vpn-route
ip route add default via $VPNGATEWAY dev $VPNINTERFACE table vpn-route
# use this for marked packages
ip rule add fwmark 0x1 table vpn-route
# mark outgoing ssh packages
iptables -t mangle -A OUTPUT -o $WANINTERFACE -p tcp --dport 22 -j MARK --set-mark 1
# rewrite source address
iptables -t nat -A POSTROUTING -o $VPNINTERFACE -j MASQUERADE

もちろん、$...変数を実際の値に置き換える必要があります。

PS:WANインターフェイスのIPが固定されている場合は、最後の行を次のように置き換えることができます。 iptables -A POSTROUTING -t nat -o $WANINTERFACE -p tcp --dport 22 -j SNAT --to $WANIP

答え2

企業がサーバーにアクセスするにはVPN接続が必要なため、VPN経由でSSHを使用してサーバーに接続する場合は、VPNをバイパスする別の方法があります。まず、VPNを使用してサーバーに接続する必要があります。それから始めましょう。応援リバースSSHをオンにします(この用語は正しいですか?)

ngrok tcp 22

これにより、アドレスとポートが提供されます。通常は次のようになります0.tcp.eu.ngrok.io:12345。これで、上記のアドレスとポートを使用してサーバーのVPNとSSHを停止できます。

ssh [email protected] -p 12345

関連情報