web-dev-qa-db-ja.com

GoogleCloudでVPNに接続するVM SSHを強制終了する

Google Cloud VirtualMachineからNordVPNサーバーに接続しようとしています。ただし、VPN接続は、接続が確立されるとすぐに既存のSSHセッションがフリーズし、新しいセッションを作成しようとするとタイムアウトします。

マシンはUbuntu16.04を実行しています。静的に割り当てられたIPがありますが、IP転送は有効になっていません。

私が試したこと:

NordVPNを直接使用することとOpenVPNを使用することの両方を試しました。

からのすべて: OpenVPNを匿名化して内部サーバーへのSSHアクセスを許可する

^これは、SSHセッションでOpenVPNがフリーズする前に、OpenVPNがない場合よりも1行多くログを取得するという点で違いがあります。

差出人: https://askubuntu.com/questions/646051/ssh-to-server-that-is-connected-to-vpn

# set "connection" mark of connection from eth0 when first packet of connection arrives
Sudo iptables -t mangle -A PREROUTING -i eth0 -m conntrack --ctstate NEW -j CONNMARK --set-mark 1234

# set "firewall" mark for response packets in connection with our connection mark
Sudo iptables -t mangle -A OUTPUT -m connmark --mark 1234 -j MARK --set-mark 4321

# our routing table with eth0 as gateway interface
Sudo ip route add default dev eth0 table 3412

# route packets with our firewall mark using our routing table
Sudo ip rule add fwmark 4321 table 3412

差出人: https://askubuntu.com/questions/893775/cant-ssh-to-server-with-vpn-connection

#!/bin/sh
ip rule add from <your-server-ip> table 128
ip route add table 128 to <your-server-subnet> dev <your-interface>
ip route add table 128 default via <server-gateway>

^これらはどちらも何も変わらないようで、それらの有無にかかわらず違いはないようです。ただし、正しいサブネットを使用していたかどうかはわかりません。私が見つけた最高のものは、Google CloudCIDRでした35.224.0.0/1235.240.0.0/13、および35.208.0.0/12

差出人: サーバーマシンでVPNにログインした後にSSH接続が失われるのを防ぐ

route add -Host <my-ip> gw <default gateway>

^これにより、SSHセッションの停止は停止しますが、実際にはトラフィックはVPNを通過しません。

私はアイデアがないので、今すぐアドバイスをいただければ幸いです。

1
SchoolJava101

問題は、VPNに接続すると、sshトラフィックがVPNを通過し始めることです。つまり、(エンドポイントを変更したため)ssh接続を続行できません。

アイデアはfix sshトラフィックのルートであり、同じインターフェイス上を流れ続けるようにします(少し単純化していますが、これは必ずしもより複雑な環境では機能しません)。

したがって、問題を解決するためにこれまでに追加したすべてのルールを削除し、白紙の状態から始めます。次に、ssh経由で接続します。

ip route listデフォルトルート情報を取得するには(現在のsshトラフィックがそれを使用していると思います)、次のように表示されます。

# ip route list
default via 172.24.1.1 dev DEVICE onlink 

次に、sshトラフィックの明示的なルートを追加します(デフォルトルートのルートと一致するようにDEVICEを変更します)。

# ip route add your.ssh.remote.address dev DEVICE

また、VPNを開始しても、sshセッションが停止することはありません。 VPNを開始した後、次のことができます#ip route listそして手動で追加したルートがまだそこにあるかどうかを確認します。そうでない場合は、VPNがルートを削除している可能性があります。

1