iptables는 트래픽을 wireguard로 전달합니다.

iptables는 트래픽을 wireguard로 전달합니다.

다음 설정을 고려하십시오. 고정 IP로 인터넷에 연결된 VPS가 있습니다. 또한 NAT 라우터 뒤에 있는 홈 네트워크에 여러 호스트가 있습니다. 내 홈 네트워크는 인터넷을 사용하며 192.168.1.0/24Host1에서는 VPS용 Wireguard VPN을 구성했습니다. 이 VPN에서 VPS는 IP를 사용 192.168.10.1하고 Host1은 IP를 사용합니다 192.168.10.2. VPS에서 홈 네트워크의 호스트에 핑을 보낼 수 있고 그 반대의 경우도 가능하며 정상적으로 작동합니다.

다음으로 VPS에서 홈 네트워크에 액세스하고 싶습니다. 이를 위해 아래와 같이 VPS에 경로를 추가했습니다.

ip route add 192.168.1.0/24 via 192.168.10.2 dev wg0

VPS에서 홈 네트워크의 다른 호스트에 액세스할 수 있다는 아이디어입니다. 그러나 Host1에서 IP 전달을 활성화해야 한다는 것을 알고 있으므로 다음을 수행합니다.

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

그리고 나는 또한 그것을 구성했습니다 net.ipv4.ip_forward = 1. 이 두 가지 구성을 사용하면 VPS에서 홈 네트워크의 모든 호스트를 ping할 수 있습니다. 그런데 홈 네트워크에 웹 서버가 있고 VPS에서 서버에 접속하려고 하면 no route to host웹 서버에 ping을 할 수 있는데도 문제가 발생합니다. tcpdump홈 네트워크의 Host1에서 실행 중인데 오류 메시지가 표시되므로 ICMP admin prohibited filter에 비해 HTTP 트래픽이 올바르게 전달되지 않는 것 같습니다. 그렇다면 iptablesVPS의 홈 네트워크에 있는 웹 서버에 액세스하려면 어떻게 구성해야 합니까 ? NAT도 추가해야 할 것 같은데 어떻게 해야 할지 모르겠습니다.

답변1

추가 내용을 놓쳤나 봐요키 라우팅서버의 WireGuard 구성 항목입니다.

서버의 WireGuard 계층은 IP 주소와 같이 일치하는 피어가 무엇인지 알아야 합니다 192.168.0.42. 이를 위해 올바른 항목을 가진 피어가 있는지 확인합니다 AllowedIPs. 피어는 정의되며 다음 항목이 있어야 합니다.

AllowedIPs = 192.168.10.2

일치하지 않습니다 192.168.0.42. WireGuard 인터페이스를 통해 전송된 패킷은 192.168.0.42삭제됩니다.

따라서 추가 경로가 추가될 때마다섬기는 사람WireGuard 인터페이스(일반적으로 AllowedIPs = 0.0.0/0/0클라이언트로 사용되지 않음)를 통해 항목 중 하나(그 중 하나)가 AllowedIPs그에 따라 변경되어야 할 가능성이 높습니다. 이 경우 다음이 있어야 합니다.

 AllowedIPs = 192.168.10.2, 192.168.1.0/24

이는 대상을 올바른 송신과 연결하고 해당 피어로부터 수신된 패킷의 수신을 확인합니다.


iptables문제와 관련이 없는 것 같습니다.

관련 정보