5

IPTable が Router で機能しない理由がわかりません。私がしようとしているのは、ソース IP からポート 80 および 443 宛てのパケットを 192.168.1.110:3128 にリダイレクトすることです。しかし、私がこれを試したとき:

 iptables -t nat -A PREROUTING -s 192.168.1.5 -p tcp --dport 80:443 -j DNAT --to-destination 192.168.1.110:3128

動作しません。ただし、これを追加すると、

iptables -t nat -A POSTROUTING-j MASQUARADE

できます。しかし、マスカレードの問題は、実際のIPを取得せず、代わりにルーターのIPを取得することです. プロキシ サーバーがそれに接続されているすべての IP を記録できるように、ソース IP を取得する必要があります。POSTROUTINGをMasquaradeにジャンプさせずに動作させる方法を教えてもらえますか?

4

5 に答える 5

4

私が間違っていなければ、ルールの正しい構文は次のようになります。

iptables -t nat -A PREROUTING -s 192.168.1.5 -p tcp -m multiport --dports 80,443 -j DNAT --to-destination 192.168.1.110:3128

--dport 80:44380 から 443 までのすべてのポートを転送します
--dports 80,443。ポート 80 と 443 のみを転送します。

ポート 80 および 443 で 192.168.1.5 に到達するトラフィックを 192.168.1.110 の 3128 ポートに転送する場合は、次のルールを使用する必要があります。

iptables -t nat -A PREROUTING -d 192.168.1.5 -p tcp -m multiport --dports 80,443 -j DNAT --to-destination 192.168.1.110:3128

また、192.168.1.110 のゲートウェイがルーター IP を指していることを確認する必要があります。

最後に、以下のようにマスカレード ルールを使用できます。

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 -j MASQUERADE

eth1 は発信インターフェイスである必要があります。

于 2012-09-28T12:57:17.227 に答える
4

本当に透過的なプロキシを行うには、TPROXY ターゲットを使用する必要があります(mangle テーブルの PREROUTING チェーン)。NAT、MASQUERADE、REDIRECT などの他のすべての iptables メカニズムは、パケットの IP アドレスを書き換えます。

プロキシ プログラムは、他のサーバーと同様にソケットで bind() および listen() する必要がありますが、いくつかの特定のソケット フラグが必要です (Linux の機能 (権限の種類) またはルートが必要です)。– 接続すると、OS から「目的のサーバー」を取得する方法がいくつかあります。

すみません、細かいことはちょっと面倒ですが、「TPROXY」をキーワードに検索するとすぐに出てきます!

于 2014-11-25T00:45:24.730 に答える
1

私は同じ問題を抱えていましたが、解決策は透過プロキシに正しいヘッダー フィールドでソース IP を転送するように指示することでした。私のnginxプロキシの場合、ルールは次のようになりました:

location / {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $host;
    proxy_set_header X-NginX-Proxy true;
    proxy_pass http://name_of_proxy;
    proxy_redirect off;
}
于 2015-01-22T15:39:56.277 に答える
0

インターフェイスを指定しないことで、両方向に NAT を実行していると思います。ラインに追加-o eth0してみてください-j MASQUERADEeth0(セットアップに応じて、代わりに「外部」インターフェースが何であれ置き換えます。)

于 2012-06-16T12:00:27.953 に答える