iptablesを使用してsshを転送する

iptablesを使用してsshを転送する

やり方についてのチュートリアルをいくつか見つけたのですが、どれもうまくいきませんでした :/

私の設定:

ファイアウォール - インターネットからアクセス可能 - eth0: xxx.xxx.xxx.xxx (パブリック IP) - eth1: 192.168.1.1

サーバー - ファイアウォールからアクセス可能 - eth0: 192.168.1.5

引き続きポート 22 でファイアウォールに接続できるようにしたいので、ポート 2222 の着信接続を 192.168.1.5:22 に転送したいと思います。

ファイアウォールからサーバへの ping と ssh は機能します。サーバからファイアウォールへの ping と ssh も同様に機能します (ただし、ログインは公開キーでのみ許可され、サーバは許可されません...)

どこからでもファイアウォールへの ping と ssh が機能します。

IP 転送が有効になっています:

# sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1

iptables ルールを投稿してもあまり意味がありません。ルールが 1 つも機能せず (PREROUTING、POSTROUTING、FORWARD などを使用)、他のルールも存在しないためです。

はい、私のファイアウォールは何もブロックしません。しかし、これはセキュリティに関するものではありません (まだ)。

私は最初の 2 ページで見つけたものをすべて試しました: https://www.google.de/search?q=iptables+forward+ssh

助言がありますか?

よろしく、イェンス

アップデートtcpdump -n -i any以下は、Khaled の iptables コマンドを使用した後 の出力です。

15:42:33.852718 IP home-ip.56008 > firewall-public-ip.2222: Flags [S], seq 1141341765, win 14600, options [mss 1460,sackOK,TS val 871214 ecr 0,nop,wscale 7], length 0
15:42:33.852752 IP home-ip.56008 > 192.168.1.5.22: Flags [S], seq 1141341765, win 14600, options [mss 1460,sackOK,TS val 871214 ecr 0,nop,wscale 7], length 0

2 行目には次のような内容があるだろうと予想しました... IP 192.168.1.1.45678 > 192.168.1.5.22 ...

私の ssh クライアントが複数回接続を試行するため、この 2 行が数回繰り返されます。しかし、応答はありません。

2回目の更新 サーバー(192.168.1.5)のルートはここルートを追加しました

public-firewall-ip  255.255.255.255      192.168.1.1     192.168.1.5       1

しかし、これは効果がありません。サーバーでは、cygwin の sshd がインストールされた Win XP が稼働しています。ファイアウォールからサーバーへの ssh は問題なく動作するため、これまでこれについて言及しませんでした。しかし、ルーティングに関しては、Windows には多少の制限があるように感じます。

現在、サーバーに Wireshark をインストールしており、数分以内に結果を貼り付けます。

サーバー上のトレース サーバーのトレースを見ると、ポート 22 に到着した SYN と、自宅の IP への出発 SYN、ACK が示されています。エラーがあると思います。出発パッケージのソース IP/ポートが現在 192.168.1.5:22 であるため、ACK はマスカレードされるのではなく、ファイアウォールに送信する必要があります。NAT の背後にある自宅のラップトップにこれが届くはずがありません... それとも方法はあるのでしょうか?

答え1

トラフィックがファイアウォールを通過することを許可し、IP 転送が有効になっている場合は、ポート 2222 で SSH トラフィックを転送するための NAT ルールが 1 つだけ必要です。次のようなルールで十分です。

$ iptables -t nat -A PREROUTING -d x.x.x.x -p tcp --dport 2222 -j DNAT --to-destination 192.168.1.5:22

アップデート:

このような問題をデバッグするときには、ネットワーク スニファーが役に立ちます。ファイアウォール マシンで tcpdump を実行し、要求の受信をキャッチできるかどうか、また同じ要求がファイアウォール マシンから送信されるかどうかを確認できます。

関連情報