Debianでポート転送/リダイレクトを行う方法は?


12

2つの質問があります。

質問1:私のdebianマシンには、IP 192.168.57.28のインターフェースeth3があります。誰かが192.168.57.28:1234に接続しようとした場合、リクエストを別のマシンにリダイレクトするにはどうすればよいですか:192.168.57.25:80?

質問2:私のdebianマシンに192.168.57.28のeth3といくつかの動的IPのppp0の2つのインターフェースがあり、誰かがポート1234でppp0経由で接続しようとする場合、リクエストを192.168.57.25:80にリダイレクトするにはどうすればよいですか?

私はこれを試しました:

$ iptables -t nat -A PREROUTING -p tcp --dport 1234 -j DNAT --to-destination 192.168.57.25:80
$ echo 1 > /proc/sys/net/ipv4/ip_forward

しかし、それは機能しません。

回答:


12
iptables -A PREROUTING -t nat -i eth3 -p tcp --dport 1234 -j DNAT --to-destination 192.168.57.25:80
iptables -A FORWARD -p tcp -d 192.168.57.25 --dport 80 -j ACCEPT
iptables -A POSTROUTING -t nat -s 192.168.57.25 -o eth3 -j MASQUERADE

最初のものは、ポート1234へのすべての着信TCP接続が内部マシン192.168.57.25のポート80に送信されるように指定します。iptablesはすべての着信接続を拒否するため、このルールだけではジョブを完了しません。次に、2番目のルールによって公開IPでインターネットに接続するeth3からポート1234への着信接続を受け入れます。FORWARDチェーンに2番目のルールを追加して、192.168.57.25のポート80にパケットを転送できるようにします。

編集: ポストルーティングが追加されました。

接続を追跡するため。そうしないと、外部ホストは内部IP 192.168.57.25を見ることになりますが、これは彼の手がかりがありません。

EDIT2: --to (sry)の代わりに--to-destinationにする必要があるというヒントを得た


私はあなたの提案を試みましたが、うまくいきません。192.168.57.25を参照するとWebページが戻りますが、192.168.57.28:1234を参照しても機能しません。
ダンジャルサルバーグアドラーソン

@DánjalSalbergAdlerssonが私の投稿を更新しました(何かが
見つかりませんでした。sry

3
あなたの提案を試みましたが、うまくいきませんでした。次に、最後の1つに変更します。iptables-A POSTROUTING -t nat -j MASQUERADE、それでうまくいきました!
ダンジャルサルバーグアドラーソン

8

DaywalkerとDánjalSalberg Adlerssonに感謝します。数時間の宣誓の後、iptablesを使用したポート転送はようやく機能します。(Debianでテスト済み)

bash-script

#!/bin/bash

IPTBL=/sbin/iptables

IF_IN=eth0
PORT_IN=40022

IP_OUT=172.16.93.128
PORT_OUT=22

echo "1" > /proc/sys/net/ipv4/ip_forward
$IPTBL -A PREROUTING -t nat -i $IF_IN -p tcp --dport $PORT_IN -j DNAT --to-destination ${IP_OUT}:${PORT_OUT}
$IPTBL -A FORWARD -p tcp -d $IP_OUT --dport $PORT_OUT -j ACCEPT
$IPTBL -A POSTROUTING -t nat -j MASQUERADE

「-s 192.168.57.25」がPOSTROUTING行から省略された理由はありますか?
edwardsmarkf

また、 "-o ETH3"は省略
edwardsmarkf

POSTROUTING行の-sと-oはオプションのようです。SSLの使用に関する考えはありますか?私はあなたのスクリプトを参照し、ここで質問を: superuser.com/questions/1387902/...
edwardsmarkf
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.