내 Debian 8 게이트웨이에서: 수신 포트 9000을 192.168.4.10:3389로 전달하고 수신 포트 9001을 192.168.4.11:3389로 전달하고 싶습니다.
DHCP - WAN - eth0 -----> eth2 - LAN - 192.168.4.1
iptables-restore와 함께 아래의 rule.v4를 사용하고 있습니다. 나는 iptables에 대한 경험이 많지 않으며 웹의 모든 튜토리얼을 통해 이를 기존 규칙에 구현할 수 없었습니다.
저는 Debian 8과 iptables v1.4.21을 사용하고 있습니다.
내 기존 iptables 규칙은 다음과 같습니다.
# Generated by iptables-save v1.4.21 on Sat Jul 25 12:31:07 2020
*nat
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
*filter
-A INPUT -i lo -j ACCEPT
# allow ssh, so that we do not lock ourselves
# allow ping from WAN side
--append INPUT --protocol icmp --icmp-type any --src [REDACTED_IP] --jump ACCEPT
# open ports for gateway services
-A INPUT -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -i eth2 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -i bond0 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 9091 -j ACCEPT
-A INPUT -i eth2 -p tcp -m tcp --dport 9091 -j ACCEPT
-A INPUT -i bond0 -p tcp -m tcp --dport 8200 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth0 -j DROP
COMMIT
이 규칙을 복원하겠습니다.
iptables-restore < /etc/iptables/rules.v4
어떤 도움이라도 대단히 감사하겠습니다. 감사해요.
답변1
게이트웨이에 두 개의 NIC( eth0
WAN 방향, eth2
LAN 방향)가 있다고 가정합니다. 첫 번째 규칙은 패킷 전달(라우팅이라고도 함)을 활성화합니다. 인터넷에서 들어오는 트래픽은 eth0
규칙 #2 및 #3에 따라 도착하고 원격 대상 호스트로 전환됩니다. 이를 대상 NAT(DNAT). 네 번째 규칙은 NAT(가장)를 활성화합니다.
$ sudo echo 1 > /proc/sys/net/ipv4/ip_forward
$ sudo iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 9000 -j DNAT --to-destination 192.168.4.10:3389
$ sudo iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 9001 -j DNAT --to-destination 192.168.4.11:3389
$ sudo iptables -t nat -A POSTROUTING -j MASQUERADE
모든 것이 순조롭게 진행된다면 영구적인 변경을 고려해보세요.