Debian에서 IPtables를 사용하여 OpenVPN 터널의 포트를 LAN으로 전달

Debian에서 IPtables를 사용하여 OpenVPN 터널의 포트를 LAN으로 전달

OpenVPN을 사용하여 두 대의 Debian 9 x64 시스템을 연결합니다:

Server
(ens3 public-ip x.x.x.222)
tun0 10.8.0.1
-> Services:
   * Samba - udp137, udp138, tcp139, tcp445
   * Webserver - tcp80

Client
ens33 192.168.162.157
tun0 10.8.0.6

그래서 나는하고 싶다앞으로삼바와 웹서버에게클라이언트 LAN-IP192.168.162.157192.168.162.x의 다른 LAN 클라이언트가 이 서비스에 접근할 수 있습니다.

인터넷에서 찾은 모든 정보를 사용하여 클라이언트에서 iptables를 사용하여 NAT 규칙을 정의하려고 시도했지만 성공하지 못했습니다.

sysctl -w net.ipv4.ip_forward=1

iptables -t nat -A PREROUTING -i ens33 -p udp --dport 137 -j DNAT --to 10.8.0.1:137
iptables -t nat -A PREROUTING -i ens33 -p udp --dport 138 -j DNAT --to 10.8.0.1:138
iptables -t nat -A PREROUTING -i ens33 -p tcp --dport 139 -j DNAT --to 10.8.0.1:139
iptables -t nat -A PREROUTING -i ens33 -p tcp --dport 445 -j DNAT --to 10.8.0.1:445

iptables -A FORWARD -i ens33 -p udp --dport 137 -d 10.8.0.1 -j ACCEPT
iptables -A FORWARD -i ens33 -p udp --dport 138 -d 10.8.0.1 -j ACCEPT
iptables -A FORWARD -i ens33 -p tcp --dport 139 -d 10.8.0.1 -j ACCEPT
iptables -A FORWARD -i ens33 -p tcp --dport 445 -d 10.8.0.1 -j ACCEPT

iptables -t nat -A PREROUTING -i ens33 -p tcp --dport 80 -j DNAT --to 10.8.0.1:80
iptables -A FORWARD -i ens33 -p udp --dport 80 -d 10.8.0.1 -j ACCEPT

클라이언트에서 10.8.0.1에 직접 연결하면 Webserver와 Samba에 모두 연결할 수 있지만 192.168.162.157을 통한 LAN에서는 연결할 수 없습니다.

누군가가 iptables 관련 작업을 도와줄 수 있나요? :)

답변1

문제는 아마도 돌아가는 길일 것입니다.

서버는 VPN 클라이언트를 통해 클라이언트 서브넷으로 패킷을 라우팅하는 방법을 알고 있습니까? 그렇지 않은 경우 SNAT/가장(또는 서버의 일치하는 라우팅 항목)도 필요합니다.

그런 다음 서버의 경우 패킷은 VPN 클라이언트에서 시작되어 되돌아오는 길을 찾습니다.

관련 정보