靴下でのルーティング。 別の方法

ソックスプロキシを介してローカルネットワークをルーティングする別の方法を検討してください。 「redsocks」を使用した以前の方法とは異なり、 これは「badvpn-tun2socks」パッケージを使用して、ネットワークレベル(ネットワークモデルOSI)でのルーティングの可能性を考慮します。 この記事は、DebianストレッチOSに基づいたこのようなルーターの作成と継続的な使用に焦点を当てています。



システム設定の説明に進む前に、badvpnソースへのリンクを提供します (おそらく誰かがそれを必要とするでしょう)。



そのため、パッケージをダウンロードしてビルドした後、次の内容のsystemdサービスをすぐに作成することを提案します。



cat /etc/systemd/system/tun2socks.service [Unit] Description=Start tun2socks [Service] ExecStart=///badvpn-tun2socks --tundev tun0 --netif-ipaddr 10.0.0.2 --netif-netmask 255.255.255.0 --socks-server-addr 127.0.0.1:1080 [Install] WantedBy=multi-user.target
      
      





ここで、開始パラメーター「 --socks-server-addr 127.0.0.1:1080 」では、「tun2socks」が要求をsocks-proxyサーバーアドレスに送信することがわかります。 (たとえば、 前の方法の ssh-tunnel)。



パラメーター " --netif-ipaddr 10.0.0.2 "および " --netif-netmask 255.255.255.0 "は、アドレス10.0.0.2を持つ "tun2socksルーター"を作成する役割を果たします。このトンネルには、 " - -tundev tun0 "。

理解のために、控えめなスキームを示します。



 +----------+ +-----------+ +----------------+ +------------+ | tun0 |____| tun2socks |___| socks |______| ssh-server | | 10.0.0.1 | | 10.0.0.2 | | 127.0.0.1:1080 | | *pubic ip* | +----------+ +-----------+ +----------------+ +------------+ | +----------+ +-----------+ +----------------+ | NAT |____| dhcpd/ |___| LAN | | iptables | | wlp6s0 | | 192.168.1.0/24 | +----------+ +-----------+ +----------------+
      
      





tun0 」は、システム上で設定する必要がある仮想インターフェイスです。ローカルネットワーク\ホストからの要求がそれに到着します。 Debianの標準にしましょう:



 cat /etc/network/interfaces auto lo auto wlp6s0 auto tun0 #   iface wlp6s0 inet static address 192.168.1.2 netmask 255.255.255.0 gateway 192.168.1.1 wpa-driver wext wpa-conf /etc/wpa_supplicant.conf #   tun2socks pre-down systemctl stop tun2socks #    pre-down ip tuntap del dev tun0 mode tun #    pre-up ip tuntap add dev tun0 mode tun user root #   tun2socks pre-up systemctl start tun2socks & #   iface tun0 inet manual #  ip  pre-up ip addr add dev tun0 10.0.0.1/24 #       DNS  up ip route add <dns-server-ip-address> via 192.168.1.1 #    SSH  up ip route add <ssh-server-ip-address> via 192.168.1.1 #      up ip route del default #       tun2socks up ip route add default via 10.0.0.2
      
      





tun2socksサービスによって以前に作成されたリストからわかるように、wlp6s0インターフェースの状態がそれを制御します。 これは、実行中のtun2socksサービスが仮想インターフェイスtun0と連携して動作するため、ネットワークインターフェイス初期化システムの通常の操作の結果、サービスを停止せずに仮想インターフェイスを削除できなくなるためです。



192.168.1.1経由でip route add <dns-server-ip-address>を 追加 」行と「 192.168.1.1経由で <ssh-server-ip-address>を 追加 」という行に注意する必要があります 。 それらでは、値「 <dns-server-ip-address> 」および「 <ssh-server-ip-address> 」の代わりに、使用するDNSおよびSSHサーバーのIPアドレスを指定し、現在のゲートウェイに従ってIPアドレス「192.168.1.1」を置き換える必要がありますデフォルトで。



/etc/sysctl.confファイルでカーネルレベルのルーティングサポートを有効にしても問題ありません。

 net.ipv4.ip_forward=1
      
      





そして、コマンドを使用して変更を適用します。

 sysctl -p /etc/sysctl.conf
      
      





この時点で、tun2socksの構成は完了します。ネットワークインターフェイスサービスを再起動すると、ホストからのすべての発信TCPトラフィックはsocksプロキシサーバーを経由してルーティングされます。 次の最後の手順は、dhcpサーバーを使用したローカルネットワークのルーティング、そのインストールと構成、 前の方法で調べたもの、およびiptablesを使用したNATの構成です。



次の内容のファイルを作成する必要があります。



 cat /etc/iptables.test.rules *filter -A FORWARD -i tun0 -o wlp6s0 -m state --state RELATED,ESTABLISHED -j ACCEPT -A FORWARD -i wlp6s0 -o tun0 -j ACCEPT COMMIT *nat -A POSTROUTING -o tun0 -j MASQUERADE COMMIT
      
      





必要に応じて、システムに応じてインターフェイスの名前を変更し、コマンドで適用します。



  iptables-restore < /etc/iptables.test.rules
      
      





ローカルネットワークから作業を確認します。すべてが適切な場合は、ルールを保存します。



  iptables-save > /etc/iptables.rules
      
      





スクリプトを追加:



 cat /etc/network/if-pre-up.d/iptables #!/bin/sh iptables-restore < /etc/iptables.rules
      
      





そして、それを実行可能にします:



 chmod +x /etc/network/if-pre-up.d/iptables
      
      





これで、ブート後にこれらのルールが適用され、検閲の回避やLAN接続の保護に最適なDebianベースのルーターを自由に使用できるようになります。



All Articles