VPN IP 経由で OpenVPN クラウド コネクタ マシンに SSH 接続できない

VPN IP 経由で OpenVPN クラウド コネクタ マシンに SSH 接続できない

メッシュ VPN ネットワークを作成するために OpenVPN クラウド コネクタを使い始めました。コネクタを展開し、関連する IP 転送と NAT プロトコルを設定して、OpenVPN クラウド コネクタが稼働しているマシンの背後にある LAN ネットワークにアクセスできるようにしました。これはうまくいきました。(私の情報のほとんどはこのリンクから得たものです。https://openvpn.net/cloud-docs/connecting-networks-to-openvpn-cloud-using-connectors/

ここで問題となるのは、VPN IP 経由でクラウド コネクタを実行しているマシンに SSH 接続できない理由です100.96.1.18。奇妙なことに、問題なく ping を実行できます。 ここに画像の説明を入力してください

~$ ssh [email protected]
ssh: connect to host 100.96.1.18 port 22: Network is unreachable
~$ ping 100.96.1.18 -c 4
PING 100.96.1.18 (100.96.1.18) 56(84) bytes of data.
64 bytes from 100.96.1.18: icmp_seq=1 ttl=62 time=209 ms
64 bytes from 100.96.1.18: icmp_seq=2 ttl=62 time=279 ms
64 bytes from 100.96.1.18: icmp_seq=3 ttl=62 time=208 ms
64 bytes from 100.96.1.18: icmp_seq=4 ttl=62 time=204 ms

--- 100.96.1.18 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 203.702/224.971/279.214/31.383 ms

驚いたことに、私はリモート(VPNクライアントマシン経由)でコネクタマシンのローカルIPを介してSSHで接続することができました。192.168.18.1

コネクタ マシン上の IP ルートを次に示します。

~$ ip route
default via 192.168.18.1 dev eno1 proto dhcp metric 100 
64.120.110.199 via 192.168.18.1 dev eno1 
100.80.0.0/12 via 100.96.1.17 dev tun0 
100.96.0.0/11 via 100.96.1.17 dev tun0 
100.96.1.16/30 dev tun0 proto kernel scope link src 100.96.1.18 
169.254.0.0/16 dev eno1 scope link metric 1000 
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 
192.168.0.0/24 via 100.96.1.17 dev tun0 
192.168.18.0/24 dev eno1 proto kernel scope link src 192.168.18.88 metric 100 

~$ ifconfig tun0
tun0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1500
        inet 100.96.1.18  netmask 255.255.255.252  destination 100.96.1.18
        inet6 fd:0:0:8101::2  prefixlen 126  scopeid 0x0<global>
        inet6 fe80::5a84:3a5:f59b:d64f  prefixlen 64  scopeid 0x20<link>
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 500  (UNSPEC)
        RX packets 1682  bytes 451719 (451.7 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1755  bytes 637526 (637.5 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

また、デバッグ用として、接続されたクライアントマシンからのIPルートもここにあります。

~$ ip route
default via 192.168.31.1 dev wlp2s0 proto dhcp metric 600 
25.0.0.0/8 dev ham0 proto kernel scope link src 25.56.7.62 
100.80.0.0/12 via 100.96.1.1 dev tun0 
100.96.0.0/11 via 100.96.1.1 dev tun0 
100.96.1.0/28 dev tun0 proto kernel scope link src 100.96.1.2 
169.254.0.0/16 dev wlp2s0 scope link metric 1000 
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown 
172.107.213.76 via 192.168.31.1 dev wlp2s0 
192.168.0.0/24 via 100.96.1.1 dev tun0 
192.168.18.0/24 via 100.96.1.1 dev tun0 
192.168.31.0/24 dev wlp2s0 proto kernel scope link src 192.168.31.189 metric 600 

~$ traceroute 100.96.1.18
traceroute to 100.96.1.18 (100.96.1.18), 64 hops max
  1   100.96.1.18  265.200ms !N  109.653ms !N  105.821ms !N

私の主な論点は、ルートがクライアントにプッシュされているので、IP にアクセスして ssh または traceroute などを100.96.0.0/11 via 100.96.1.1 dev tun0実行できるはずだということです。100.96.1.18

PS OpenVPN サポートが回答できなかったため、ここで質問します。

答え1

同じ問題に遭遇した人がいる場合に備えて: この問題は、接続がクラウド側で切断されるため、ユーザー側のファイアウォールとは関係ありません。OpenVPN クラウドの考え方によると、クライアントとしてネットワークに接続するには「ネットワーク コネクタ」を使用し、クライアントがユーザーに接続できるようにするには「ホスト コネクタ」を使用します。したがって、OpenVPN クラウド経由でサーバーに接続する場合、そのサーバーは「ネットワーク コネクタ」ではなく「ホスト コネクタ」経由で VPN に接続する必要があります。クラウド側で着信接続用にファイアウォールが開かれるのは「ホスト コネクタ」のみだからです。

これが自分に当てはまるかどうかを確認するには、「netstat -pan | grep ssh」を使用して、OpenSSH サーバーがすべてのインターフェイス (IPv6 の場合は 0.0.0.0:22 または :::22) でリッスンしているか、少なくとも VPN インターフェイスでリッスンしていることを確認します。次に (VPN が tun0 インターフェイスにあると仮定して)、「tcpdump -pni tun0 tcp port 22」を使用して、VPN から ssh 接続要求を受信して​​いるかどうかを確認します。「ポート 22」を削除して、「サーバー」に ping を実行して、トラフィックが行われていることを確認します。通常、「ネットワーク コネクタ」を使用すると ping は通過しますが、ssh 要求の場合はクラウドが ssh トラフィックを許可しないため、何も表示されません。「ホスト コネクタ」を使用してクラウド経由で接続を確立すると、機能します。

https://openvpn.net/cloud-docs/owner/servers/hosts/adding-a-host.html

関連情報