Wireguard VPN에 연결할 때 로컬 리소스를 사용할 수 있도록 설정

Wireguard VPN에 연결할 때 로컬 리소스를 사용할 수 있도록 설정

배경:
로컬(개인) 네트워크에 Wireguard VPN 서버를 구성했습니다. [사설 네트워크 가정: 192.168.1.0/24] Wireguard 클라이언트는 동일한 IP 네트워크 192.168.1.X를 가지고 있습니다.

내 네트워크에 고정 로컬 IP 주소를 사용하는 일부 비Wireguard 호환 장치(IP 카메라, DVR)가 있습니다.

쿼리:
Wireguard 클라이언트로 Wireguard 서버(로컬 네트워크 외부에서)에 연결할 때 로컬 고정 IP 주소를 사용하여 Wireguard와 호환되지 않는 장치에 액세스하고 싶습니다. IP 충돌이 발생하지 않도록 했습니다.

답변1

WireGuard를 통해 다양한 외부 호스트를 LAN에 연결하려는 경우 수행해야 할 세 가지 주요 작업은 다음과 같습니다.

  1. AllowedIPs각 장치의 WireGuard 구성 설정 에 LAN의 IP 블록(또는 최소한 연결할 각 LAN 측 호스트의 IP 주소)을 포함합니다.외부주인
  2. LAN 측 WireGuard 호스트에서 패킷 전달 설정(예 sysctl -w net.ipv4.ip_forward=1: )
  3. LAN 측 WireGuard 호스트에서 패킷 매스커레이딩(SNAT라고도 함) 설정(일반적으로 iptables규칙을 통해 수행됨)

완전한 예는 다음과 같습니다.

https://www.procustodibus.com/blog/2020/11/wireguard-point-to-site-config/

이 예에서 LAN의 서브넷은 이므로 외부 호스트(예에서는 끝점 A)에 대한 WireGuard 구성의 설정 192.168.200.0/24입니다 .AllowedIPs

AllowedIPs = 192.168.200.0/24

이 예에서 패킷 전달 및 가장은 LAN 측 WireGuard 호스트(예에서는 호스트 β)의 WireGuard 구성에 다음을 추가하여 수행됩니다.

# IP forwarding
PreUp = sysctl -w net.ipv4.ip_forward=1
# IP masquerading
PreUp = iptables -t mangle -A PREROUTING -i wg0 -j MARK --set-mark 0x30
PreUp = iptables -t nat -A POSTROUTING ! -o wg0 -m mark --mark 0x30 -j MASQUERADE

LAN 측 WireGuard 호스트의 WireGuard 인터페이스가 wg0작동되면 외부 호스트는 LAN 주소를 통해 LAN의 모든 호스트에 연결할 수 있습니다. 예에서 외부 호스트(엔드포인트 A)는 LAN 호스트(엔드포인트 B)에 연결할 수 있습니다. ) Endpoint B의 로컬 주소를 통해 192.168.200.22.

답변2

VPN 서버(VPN 10.5.0.1/24) 역할을 하는 장치와 LAN 192.168.50.1/24가 있으면 외부 클라이언트(10.5.0.4)를 만들어 원래 LAN(예: 192.168.50.185)의 장치에 액세스할 수 있습니다. ).

나는 다음을 통해 이것을 달성합니다:

  1. IP4 전달 활성화/etc/sysctl.conf

  2. /etc/wireguard/wg0.conf(필드 ) 행 에 추가 [interface]:

    PreUp = sysctl -w net.ipv4.ip_forward=1; iptables -I INPUT 1 -i wg0 -j ACCEPT;iptables -I FORWARD 1 -i eth0 -o wg0 -j ACCEPT; iptables -I FORWARD 1 -i wg0 -o eth0 -j ACCEPT
    

    변경 슬롯 적용

    sudo systemctl restart wg-quick@wg0
    
  3. 트래픽을 원하는 호스트로 전달하도록 클라이언트를 구성합니다. 즉, 클라이언트의 내 파일 아래에 있습니다 [Peer].

    AllowedIPs = 10.5.0.1/24;192.168.50.185/32
    

도움이 되었기를 바랍니다.

관련 정보