
リモートサーバー(VPS)にSSHで接続し、Piでポートを開き、SOCKS5プロキシとして使用できるRaspberry Piがあります。以下は、トンネルの設定に使用するコマンドです。
ssh -D 1080 -f -C -q -N user@hostname
その理由は、ネットワークが DPI を使用して VPN をブロックするが、SSH はブロックしないためです。そのため、LANにVPNを設定し、SOCKS5プロキシ(同じPi)を設定しました。問題は、プロキシがオフになると、VPNアウトバウンドトラフィック(VPNトラフィックではなく通常のHTTP(S))がそれを使用せずにネットワークファイアウォールを介してこれらの要求を送信しようとすることです。プロキシがダウンした場合、VPNがアウトバウンド接続を許可しないようにこのようなことが発生しないようにしたいと思います。
これはどのように機能するかを示しています。
______________________________
| |
| Client |
|______________________________|
|
| L2TP over IPSEC
________________|_______________ __
| | |
| VPN (192.168.1.XXX) | |
|________________________________| |
________________|_______________ |-RaspberryPi
| | |
| SOCKS5 (127.0.0.1:1080) | |
|________________________________|__|
|
| SSH tunnel
________________|________________
| |
| VPS (Amazon EC2) |
|_________________________________|
|
/ \
/ \
the internet
私のiptableは次のとおりです。
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 192.168.42.0/24 -o eth+ -j MASQUERADE
-A POSTROUTING -s 192.168.43.0/24 -o eth+ -m policy --dir out --pol none -j MASQUERADE
COMMIT
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -p udp -m udp --dport 1701 -m policy --dir in --pol none -j DROP
-A INPUT -m conntrack --ctstate INVALID -j DROP
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p udp -m multiport --dports 500,4500 -j ACCEPT
-A INPUT -p udp -m udp --dport 1701 -m policy --dir in --pol ipsec -j ACCEPT
-A INPUT -p udp -m udp --dport 1701 -j DROP
-A FORWARD -m conntrack --ctstate INVALID -j DROP
-A FORWARD -i eth+ -o ppp+ -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i ppp+ -o eth+ -j ACCEPT
-A FORWARD -s 192.168.42.0/24 -d 192.168.42.0/24 -i ppp+ -o ppp+ -j ACCEPT
-A FORWARD -d 192.168.43.0/24 -i eth+ -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 192.168.43.0/24 -o eth+ -j ACCEPT
-A FORWARD -j DROP
COMMIT
VPNの作成に使用されるスクリプトです。https://github.com/hwdsl2/setup-ipsec-vpn
だから私の質問は:VPNクライアントがLAN上でSOCKS5プロキシのみを使用するようにするには、これらのiptableをどのように変更しますか? (そうでない場合は、プロキシではなく宛先パケットをドロップします)
答え1
あなたが探しているもの透明プロキシ。トランスペアレントプロキシはゲートウェイに配置されるようになっていますが、パケットがノードを介してルーティングされる限り(例のように)iptables
そのノードからトラフィックをリダイレクトするために使用できます。エージェントのすべてのプロセスを処理するノードです。
Google で「Clear Socks Agency」をすばやく検索すると、次の検索エンジンが表示されます。レッドソックス。試してみてください。同じノードでSOCKS5セッションとインスタンスを実行し、ssh
リンクされたWebサイトの指示が非常に完璧に見え、役に立ちます。redsocks
redsocks
ssh