기존 설정 IPTABLES의 다른 개인 IP로 수신 포트를 전달합니다.

기존 설정 IPTABLES의 다른 개인 IP로 수신 포트를 전달합니다.

내 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( eth0WAN 방향, eth2LAN 방향)가 있다고 가정합니다. 첫 번째 규칙은 패킷 전달(라우팅이라고도 함)을 활성화합니다. 인터넷에서 들어오는 트래픽은 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

모든 것이 순조롭게 진행된다면 영구적인 변경을 고려해보세요.

관련 정보