SOCKSプロキシを介してeth1とeth2のすべてのパケットをリダイレクトします。

SOCKSプロキシを介してeth1とeth2のすべてのパケットをリダイレクトします。

SOCKSプロキシ(Tor)を介してeth1とeth2間ですべてのトラフィック(UDPとTCP)をリダイレクトしてからeth0を通過する方法はありますか?

eth0:インターネット入力 - デフォルトのルーターに接続し、ケーブルモデムに接続します。

eth1:モデムに設定されたUSBイーサネットポート(私が探している単語のようですね?)

eth2: WiFi ホットスポットに設定された USB WiFi アンテナ

iptablesのようなものを使ってTorを直接ルーティングできますか、それともPrivoxyのようなアダプタが必要ですか?

答え1

まず、あなたが必要ですtun2socks(通常「badvpn」パッケージの一部)tun2socksはトラフィックをルーティングするための仮想インターフェイスを設定し、トラフィックはターゲットソックスプロキシを介して送信されます。

トンネルを介して特定のトラフィックだけをルーティングしようとしているため、設定は少し面倒です。

このスクリプトしなければならない好きなように:

#!/bin/bash
socks_server=127.0.0.1:8080

id="$RANDOM"
tun="$(printf 'tun%04x' "$id")"
ip tuntap add dev $tun mode tun
ip link set $tun up
ip addr add 169.254.1.1/30 dev $tun
sysctl -w net.ipv4.conf.$tun.forwarding=1
ip rule add fwmark $id lookup $id
ip route add default via 169.254.1.2 table $id
iptables -t mangle -I PREROUTING -i eth1 -p tcp -j MARK --set-mark $id
iptables -t mangle -I PREROUTING -i eth2 -p tcp -j MARK --set-mark $id
badvpn-tun2socks --tundev $tun --netif-ipaddr 169.254.1.2 --netif-netmask 255.255.255.252 --socks-server-addr $socks_server

iptables -t mangle -D PREROUTING -i eth2 -p tcp -j MARK --set-mark $id
iptables -t mangle -D PREROUTING -i eth1 -p tcp -j MARK --set-mark $id
ip route del default via 169.254.1.2 table $id
ip rule del from fwmark $id lookup $id
ip tuntap del dev $tun mode tun

説明する:

socks_server=127.0.0.1:8080

これが私たちが使うソックスサーバーです。
 

id="$RANDOM"
tun="$(printf 'tun%04x' "$id")"

トンネルに使用されるランダムIDを生成します。システムに異なるトンネルがある可能性があるため、tun0またはのみ使用できませんtun1。 99%の場合、これはうまく機能します。しかし、それに応じて調整してください。
 

ip tuntap add dev $tun mode tun
ip link set $tun up
ip addr add 169.254.1.1/30 dev $tun
sysctl -w net.ipv4.conf.$tun.forwarding=1

これらの設定はtun2socksトンネルインターフェイスに使用されます。
 

ip rule add fwmark $id lookup $id
ip route add default via 169.254.1.2 table $id

$idトンネルを介してファイアウォールタグ(次に説明)を含むすべてのトラフィックを送信する単一のルールを使用してルーティングテーブルを作成します。
 

iptables -t mangle -I PREROUTING -i eth1 -p tcp -j MARK --set-mark $id
iptables -t mangle -I PREROUTING -i eth2 -p tcp -j MARK --set-mark $id

$idこれはeth1着信または発信TCPパケットにファイアウォール表示を設定しますeth2。私たちはTCPだけを一致させたいです。 SocksはUDPまたはICMPを処理できません(tun2socksにはUDPを渡す方法がありますが、より複雑なので省略します)。
 

badvpn-tun2socks --tundev $tun --netif-ipaddr 169.254.1.2 --netif-netmask 255.255.255.252 --socks-server-addr $socks_server

これで tun2socks が起動します。終了するまで前景に配置します。
 

iptables -t mangle -D PREROUTING -i eth2 -p tcp -j MARK --set-mark $id
iptables -t mangle -D PREROUTING -i eth1 -p tcp -j MARK --set-mark $id
ip route del default via 169.254.1.2 table $id
ip rule del from fwmark $id lookup $id
ip tuntap del dev $tun mode tun

インストール中に作成したすべてのエントリが削除されます。終了時にのみ実行されますbadvpn-tun2socks

答え2

$ badvpn-tun2socks --tundev $tun --netif-ipaddr 169.254.1.2 \
    --netif-netmask 255.255.255.252 --socks-server-addr $socks_server \
    --udpgw-transparent-dns

メモ:--udpgw-transparent-dnsDNS要求を追加する必要があります。

関連情報