VPN アクセス ポイントで LAN トラフィックを tun0 ではなく eth0 経由でルーティングする

VPN アクセス ポイントで LAN トラフィックを tun0 ではなく eth0 経由でルーティングする

アクセス ポイントから へのトラフィックを192.168.1.0経由で送信しeth0、その他のすべてのトラフィックを 経由で送信するにはどうすればよいでしょうかtun0

Raspberry Pi の VPN アクセス ポイントを設定しました。このアクセス ポイントは、すべてのサーバーと同じサブネット上にあり、192.168.1.0サーバーと同様に、ケーブルでモデム/ルーターに接続されています。Raspberry Pi には、クライアントが接続するための WiFi スティック ( wlan0) があり、独自のサブネットを実行し192.168.2.0iptablesルールを使用して、クライアントからのすべてのトラフィックをwlan0VPN 接続 ( 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.2192.168.1.79eth0

最も簡単な方法は、その行を削除して次の 2 つの行に置き換え、内部インターフェイス間ですべてのものを両方向に転送できるようにすることです。

sudo iptables -A FORWARD -i wlan0 -j ACCEPT
sudo iptables -A FORWARD -i eth0 -j ACCEPT

単にサーバーを VPN から除外したい場合は、-o wlan02 行目に追加します。もちろん、セッションの確立が特定の方向に進む必要があるなど、より厳しい要件を追加したい場合は、これらのルールを調整する必要があります。楽しんでください。コンソールを手元に置いてください。 ;-)

関連情報