アクセス ポイントから へのトラフィックを192.168.1.0
経由で送信しeth0
、その他のすべてのトラフィックを 経由で送信するにはどうすればよいでしょうかtun0
。
Raspberry Pi の VPN アクセス ポイントを設定しました。このアクセス ポイントは、すべてのサーバーと同じサブネット上にあり、192.168.1.0
サーバーと同様に、ケーブルでモデム/ルーターに接続されています。Raspberry Pi には、クライアントが接続するための WiFi スティック ( wlan0
) があり、独自のサブネットを実行し192.168.2.0
、iptables
ルールを使用して、クライアントからのすべてのトラフィックをwlan0
VPN 接続 ( tun0
) 経由で転送します。
私はこれを実行することで前進させました。
sudo iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
sudo iptables -A FORWARD -i tun0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i wlan0 -o tun0 -j ACCEPT
問題は、Wi-Fi でアクセス ポイントに接続されたクライアントがサーバーと通信できないことです。どうすればこれを実現できますか?
| | ¦
| __________________|_______¦_________
| | Modem/Router/DCHP server |
| | 192.168.1.254 |
| |_________________________¦________|
| | ¦
| | ¦
| __________________¦_
| | 8-port switch ¦ |
| |_________________¦_|
| | | ¦
| | | -----------
| ____________________| |__________ ¦
| | eth0| ¦tun0
| __________________ ________________________
| | Server | | Pi VPN Access Point |
| | 192.168.1.79 | | eth0: 192.168.1.81 |
| |________________| | tun0: 10.X.X.X |
| | wlan0:192.168.2.1 |
| |______________________|
| |wlan0
| |
| __________|___________
| | Laptop |
| | wlan0: 192.168.2.2 |
| |____________________|
アクセス ポイントの設定については、以下で詳しく説明しています。http://www.snabela.net/index.php/2013/11/raspberry-vpn-access-point/
AP のクライアントからのすべてのインターネット トラフィックが VPN 経由で送信されている間に、ラップトップからサーバーに SSH 接続できるようにするには、何をする必要がありますか? 別の iptables ルールを追加できますか?
アクセス ポイントの ifconfig -a 出力:
eth0 Link encap:Ethernet HWaddr b8:28:eb:f1:77:93
inet addr:192.168.1.81 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:124292 errors:0 dropped:0 overruns:0 frame:0
TX packets:86097 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:136739836 (130.4 MiB) TX bytes:15199088 (14.4 MiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:60 errors:0 dropped:0 overruns:0 frame:0
TX packets:60 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:6200 (6.0 KiB) TX bytes:6200 (6.0 KiB)
mon.wlan0 Link encap:UNSPEC HWaddr F8-1B-67-20-B3-61-00-00-00-00-00-00-00-00-00-00
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:4760 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:630721 (615.9 KiB) TX bytes:0 (0.0 B)
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.4.43.179 P-t-P:10.4.43.178 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:108875 errors:0 dropped:0 overruns:0 frame:0
TX packets:75807 errors:0 dropped:29 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:126611820 (120.7 MiB) TX bytes:6303503 (6.0 MiB)
wlan0 Link encap:Ethernet HWaddr f8:1b:67:20:b3:61
inet addr:192.168.2.1 Bcast:192.168.2.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:75019 errors:0 dropped:0 overruns:0 frame:0
TX packets:109376 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:7219164 (6.8 MiB) TX bytes:130045181 (124.0 MiB)
アクセス ポイントの route -n 出力:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.4.43.178 128.0.0.0 UG 0 0 0 tun0
0.0.0.0 192.168.1.254 0.0.0.0 UG 0 0 0 eth0
10.4.0.1 10.4.43.178 255.255.255.255 UGH 0 0 0 tun0
10.4.43.178 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
95.211.191.34 192.168.1.254 255.255.255.255 UGH 0 0 0 eth0
128.0.0.0 10.4.43.178 128.0.0.0 UG 0 0 0 tun0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0
答え1
推測ですが、デフォルトの FORWARD ポリシーは REJECT または DROP です ( で確認してくださいiptables -L FORWARD
)。これが正しい場合、問題はすべて次の行にあります。
sudo iptables -A FORWARD -i wlan0 -o tun0 -j ACCEPT
wlan0
これは、 を経由して入ってきて を経由して出て行くものすべてを、 ACCEPT して FORWARD します。 これはから へのtun0
パケットとは一致しません。 から出て行くからです。192.168.2.2
192.168.1.79
eth0
最も簡単な方法は、その行を削除して次の 2 つの行に置き換え、内部インターフェイス間ですべてのものを両方向に転送できるようにすることです。
sudo iptables -A FORWARD -i wlan0 -j ACCEPT
sudo iptables -A FORWARD -i eth0 -j ACCEPT
単にサーバーを VPN から除外したい場合は、-o wlan0
2 行目に追加します。もちろん、セッションの確立が特定の方向に進む必要があるなど、より厳しい要件を追加したい場合は、これらのルールを調整する必要があります。楽しんでください。コンソールを手元に置いてください。 ;-)