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