web-dev-qa-db-ja.com

iptablesは受信したパケットをプロキシでインターセプトし、宛先に転送します

Eth1ポートを介してインターネットを受信し、ホットスポットを介して他のデバイス(wlan0ポート)と共有するとします

[internet]----(eth1)[my computer](wlan0 hotspot)
                                         |
                                         |
                                         |
                                   [destination]

パケットをhotspotに転送する前に、プロキシサーバー(burpスイートなど)を介してそれらを渡すことができるように、iptablesルールをどのように設定すればよいですか。このような:

[internet]----(eth1)[my computer]
                          |
                          |
                          |
                      (:8080)[proxy server](wlan0 hotspot)
                                                 |
                                                 |
                                                 |
                                            [destination]

また、パケットを受信者に転送できるburpスイートをどのように構成する必要がありますか?

1
Ben

私が正しく理解していれば、お使いのコンピュータはWifiアクセスポイントとして機能するので、wlan0でdhcpサーバーを実行しているはずですが、そうですか?

これが事実であると仮定すると、まず/ proc/sys/net/ipv4/ip_forwardを0ではなく1に設定する必要があります(IPv4を使用している場合、IPv6に相当するものがあるかどうかはわかりません)。

あなたが探しているiptablesコマンドは

iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADEまたは

iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-destination <eth1 IPv4 address>

これは、すべてのIPアドレスをwifiから1つのeth1に見せかけ、すべての応答パケットを魔法のようにwifiネットワーク上の正しいデバイスにリダイレクトします。

Burpを使用するための最も簡単な方法は、WirpデバイスでBurpをプロキシとして設定することです。不可能な場合は、Burpの「非表示プロキシサポート」を使用して2つのリスナーを設定する必要があります。1つはHTTP(ポート8080としましょう)と1つはHTTPS(ポート8443としましょう)です。次に、iptablesコマンドは次のようになります。

iptables -t nat -A PREROUTING -i wlan0 -p tcp --dport 80 -j REDIRECT --to-ports 8080および

iptables -t nat -A PREROUTING -i wlan0 -p tcp --dport 443 -j REDIECT --to-ports 8443

私が正しく覚えていれば、それでうまくいくはずです。

2
Aniem