VPN 액세스 포인트에서 tun0이 아닌 eth0을 통해 LAN 트래픽 라우팅

VPN 액세스 포인트에서 tun0이 아닌 eth0을 통해 LAN 트래픽 라우팅

192.168.1.0내 액세스 포인트가 을(를) 통해 트래픽을 보내고 eth0다른 모든 트래픽을 을(를) 통해 보내도록 하려면 어떻게 해야 합니까 tun0?

Raspberry Pi VPN 액세스 포인트를 설정했습니다. 그것은 내 모든 서버와 동일한 서브넷에 위치하며 192.168.1.0서버와 마찬가지로 케이블로 내 모뎀/라우터에 연결됩니다. 그런 다음 Raspberry Pi wlan0에는 클라이언트가 연결할 수 있는 WIFI 스틱( )이 있고 자체 서브넷을 실행하며 규칙을 192.168.2.0사용하여 VPN 연결( )을 통해 iptables클라이언트의 모든 트래픽을 전달합니다 .wlan0tun0

나는 이것을 함으로써 이것을 앞으로 설정했습니다;

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)

액세스 포인트의 경로 -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그것이 하는 일은 를 통해 들어 오고 나갈 모든 것을 FORWARD하는 것에 대해 ACCEPT입니다 tun0. 에서 192.168.2.2까지 의 패킷과 일치하지 않는 것은 192.168.1.79을 통해 나가기 때문입니다 eth0.

가장 쉬운 방법은 해당 줄을 제거하고 다음 두 줄로 바꾸는 것입니다. 그러면 내부 인터페이스 간에 모든 방향으로 모든 것을 전달할 수 있습니다.

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

단순히 VPN에서 서버를 제외하려면 -o wlan0두 번째 줄에 추가하세요. 물론 세션 설정이 특정 방향으로 진행되어야 하는 등 더 엄격한 요구 사항을 추가하려면 이러한 규칙을 조정해야 합니다. 즐거운 시간을 보내시고 콘솔을 편리하게 사용하세요. ;-)

관련 정보