2つのクライアントが接続されているOpenVPNサーバーがあります。クライアントにはパブリックIPアドレスがないため、SSH経由でクライアントにアクセスする唯一の方法はVPNを使用することです。
サーバーを実行しているコンピュータは、パブリックIPアドレスがwxyzのルータの背後にあります。サーバーのLANアドレスは10.0.0.5です。ルーターのLANアドレスは10.0.0.1で、サーバーを実行しているコンピューター(10.0.0.5)はDMZとして使用されます。
クライアント#1は常にVPNアドレス192.168.2.6を取得し、ポート1802でSSHサービスを実行します。
クライアント#2は常にVPNアドレス192.168.2.14を取得し、ポート1804でSSHサービスを実行します。
私が望むのは、次の方法でどこからでもこれらのクライアントにSSHで接続できることです。
ssh w.x.y.z -p1802
最初の顧客と
ssh w.x.y.z -p1804
2番目のクライアントのため。
次の規則に従ってiptablesを設定しました。
:OUTPUT ACCEPT [6473:428732]
-A PREROUTING -d w.x.y.z -p tcp -m tcp --dport 1802 -j DNAT --to-destination 192.168.2.6
-A PREROUTING -d w.x.y.z -p tcp -m tcp --dport 1804 -j DNAT --to-destination 192.168.2.14
これは私のルーティングテーブルです。
カーネルIPルーティングテーブル
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.2.2 * 255.255.255.255 UH 0 0 0 tun0
192.168.2.0 192.168.2.2 255.255.255.0 UG 0 0 0 tun0
10.0.0.0 * 255.255.255.0 U 0 0 0 eth0
169.254.0.0 * 255.255.0.0 U 0 0 0 eth0
default 10.0.0.1 0.0.0.0 UG 0 0 0 eth0
ifconfig出力:
[root@osrv sysconfig]# /sbin/ifconfig
eth0 Link encap:Ethernet HWaddr 80:51:EA:74:92:A5
inet addr:10.0.0.6 Bcast:10.0.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:4554899 errors:0 dropped:0 overruns:0 frame:0
TX packets:4568878 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1083718390 (1.0 GiB) TX bytes:1131399760 (1.0 GiB)
Interrupt:11 Base address:0xa000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:11833 errors:0 dropped:0 overruns:0 frame:0
TX packets:11833 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:5197664 (4.9 MiB) TX bytes:5197664 (4.9 MiB)
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:192.168.2.1 P-t-P:192.168.2.2 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:985135 errors:0 dropped:0 overruns:0 frame:0
TX packets:947116 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:215916038 (205.9 MiB) TX bytes:429598806 (409.6 MiB)
このような設定では、サーバーにログインすると、2 つのクライアントの 1 つとして SSH 経由で接続できます。
ssh 192.168.2.6 -p 1802
ssh 192.168.2.14 -p1804
どちらもとてもうまくいきます。
ただし、インターネットでこれを実行しようとすると、次のようになります。
ssh w.x.y.z -p 1802
うまくいきますが、
ssh w.x.y.z -p 1804
応答がありません。
私が逃したものは何ですか?
ベストアンサー1
私は自分の質問に答えると思います。
SNATルールを省略しました。これにより問題が解決しました。
-A POSTROUTING -d 192.168.2.6 -p tcp -m tcp --dport 1624 -j SNAT --to-source 192.168.2.1
-A POSTROUTING -d 192.168.2.14 -p tcp -m tcp --dj - ソース192.168.2.1