Wireguard 서버를 통해 외부 Wireguard 클라이언트에서 ISP 라우터를 ping하는 방법은 무엇입니까?

Wireguard 서버를 통해 외부 Wireguard 클라이언트에서 ISP 라우터를 ping하는 방법은 무엇입니까?

이 설정을 고려하면:

2.2.2.2: name: client
         WireGuard address: 10.0.0.2
    ^
    |
<internet>
    |
    v
1.1.1.1: name: gw (ISP router)
         LAN address: 192.168.1.1
    ^
    |
    v
192.168.3.1: name: wg (br-lan)
             WireGuard server
             WireGuard address: 10.0.0.3 (wg0)
             WAN address: 192.168.1.3 (wan)

클라이언트(2.2.2.2)는 모든 wg의 주소(10.0.0.3, 192.168.3.1 및 192.168.1.3)를 ping할 수 있지만 gw의 lan 주소(192.168.1.1)를 ping할 수는 없습니다.

ip route보여주다:

default via 192.168.1.1 dev wan src 192.168.1.3 metric 1024
10.0.0.0/24 dev wg0 scope link src 10.0.0.3
10.0.0.2 dev wg0 scope link
192.168.1.0/24 dev wan scope link metric 1024 
192.168.3.0/24 dev br-lan scope link src 192.168.3.1 

다른 답변을 바탕으로 wg (192.168.3.1)에서 시도했습니다.

ip route add 192.168.1.0/24 via 10.0.0.3 dev wg0

이것이 작동하지 않으면 경로를 제거하고 네트워크를 다시 시작한 다음 시도했습니다.

ip route add 192.168.1.0/24 via 192.168.1.3 dev wan

이것이 작동하지 않으면 경로를 제거하고 네트워크를 다시 시작한 다음 시도했습니다.

ip route add 192.168.1.0/24 via 192.168.1.1 dev wan

하지만 행운은 없습니다. 내가 뭘 잘못하고 있는지 어떤 아이디어가 있습니까?

PS cat /proc/sys/net/ipv4/ip_forward는 "1"을 표시합니다.

답변1

당신은 어떻게 생겼 AllowedIPs습니까 wg.conf?

두 네트워크에 모두 액세스하려면 다음과 같이 표시되어야 합니다.

AllowedIPs = 10.0.0.2/32, 192.168.1.0/24

그런 다음 WireGuard 서버에서 ip_forwardMasquerade를 설정하고 다음 사이에 전달해야 합니다.wanwg

iptables -t nat -A POSTROUTING -o wan -j MASQUERADE

이렇게 하면 방화벽은 이러한 패킷을 어디로 전달할지 알 수 있습니다.

예:

10.10.4.10 - Wireguard Client -> <Internet> -> 10.10.4.1 - Wireguard Server ->
10.10.4.3 - RPI2 at Home acting as a Gateway for VPN -> Hosts in Local Network 

WireGuard에서 내(홈 라우터)를 핑할 수 있기를 원하므로 192.168.1.1다음 단계를 따라야 합니다.

WireGuard 서버에서:

  1. 10.10.4.3변경(RPI) 허용 IP는 다음과 같습니다.
    AllowedIPs = 10.10.4.3/32, 192.168.1.0/24
    
  2. 192.168.1.0/24RPI를 통한 액세스를 위한 라우팅 규칙을 추가합니다 .
    ip route add 192.168.1.0/24 via 10.10.4.3 dev wg0
    
  3. WireGuard를 다시 시작하십시오.
    wg setconf wg0 /etc/wireguard/wg0.conf
    
  4. 네트워크 간 전달 허용
    iptables -A FORWARD -s 10.10.4.0/24 -d 192.168.1.0/24 -i wg0 -o wg0 -j ACCEPT
    iptables -A FORWARD -s 192.168.1.0/24 -d 10.10.4.0/24 -i wg0 -o wg0 -j ACCEPT
    
  5. 활성화 되어 있는지 확인하세요 ip_forward.
    # cat /proc/sys/net/ipv4/ip_forward
    1
    
  6. 매스커레이딩 활성화
    iptables -t nat -A POSTROUTING -s 10.10.4.0/24 -o eth0 -j MASQUERADE
    

Raspberry PI(VPN 게이트웨이)

  1. ~할 수 있게 하다ip_forward
    echo 1 > /proc/sys/net/ipv4/ip_forward
    
  2. 매스커레이딩 활성화
    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    
  3. 네트워크 간 IP 전달 활성화
    iptables -A FORWARD -s 10.10.4.0/24 -d 192.168.1.0/24 -i wg1 -o eth0 -j ACCEPT
    iptables -A FORWARD -s 192.168.1.0/24 -d 10.10.4.0/24 -i eth0 -o wg1 -j ACCEPT
    

결과(내 컴퓨터에서):

$ ping -I wg1 -c 4 192.168.1.1
PING 192.168.1.1 (192.168.1.1) from 10.10.4.10 wg1: 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=62 time=75.5 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=62 time=76.1 ms
64 bytes from 192.168.1.1: icmp_seq=3 ttl=62 time=74.8 ms
64 bytes from 192.168.1.1: icmp_seq=4 ttl=62 time=75.5 ms

--- 192.168.1.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 74.802/75.475/76.082/0.454 ms

$ ping -c 4 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.251 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=0.204 ms
64 bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=0.211 ms
64 bytes from 192.168.1.1: icmp_seq=4 ttl=64 time=0.210 ms

--- 192.168.1.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3074ms
rtt min/avg/max/mdev = 0.204/0.219/0.251/0.018 ms

내 설정은 약간 복잡하므로 귀하의 경우 WireGuard 서버에 라우팅 규칙을 추가할 필요는 없지만 다음 사항을 확실히 확인해야 합니다.

  1. 방화벽 규칙은 전달을 허용합니다.
  2. MASQUERADE는 방화벽 규칙에 의해 활성화됩니다.
  3. 클라이언트 구성에서 허용된 IP는 로컬 네트워크에 대한 액세스를 허용합니다.
  4. 라우터가 wg 클라이언트의 ping을 차단할 가능성을 제거하려면 WireGuard 클라이언트에서 네트워크의 다른 호스트에 ping을 시도하십시오.

관련 정보