iptables를 사용하여 NAT 필터링 동작 구성

iptables를 사용하여 NAT 필터링 동작 구성

이 규칙을 사용하여 SNAT를 구성합니다.

iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 193.49.142.107:4000

세션이 시작된 내부 주소와 포트로 향하지 않는 패킷을 필터링하는 규칙을 지정하고 싶습니다. 또한 특정 외부 끝점에서 패킷을 수신하려면 내부 끝점은 먼저 해당 특정 외부 끝점의 IP 주소로 패킷을 보내야 합니다. (NAT 주소 관련 필터링)

예:

NAT 뒤에 내부 IP와 포트(X:x)가 있는 컴퓨터는 IP Y로 서버에 연결을 엽니다. 따라서 규칙에 따라 IP 주소 Y부터 (X:X)까지만 허용할 수 있어야 합니다. 다른 모든 연결은 삭제됩니다.

답변1

iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -P FORWARD -j DROP
iptables -A FORWARD -o eth1 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth1 -m state --state ESTABLISHED -j ACCEPT

이 규칙은 무엇을 합니까?

  1. -A POSTROUTING -o eth1 -j MASQUERADE패킷이 네트워크를 떠날 때 내부 IP를 숨기세요
  2. -P FORWARD -j DROPFORWARD 체인의 기본 정책을 DROP으로 설정
  3. -A FORWARD -o eth1 -m state --state NEW,ESTABLISHED -j ACCEPT신규 및 기존 FORWARD가 연결되도록 허용
  4. -A FORWARD -i eth1 -m state --state ESTABLISHED -j ACCEPTFORWARD 연결만 허용됩니다.

위의 규칙에서는 이 장치를 게이트웨이/방화벽으로 사용하고 eth1WAN 및 eth0LAN에 연결한다고 가정합니다.

추가 자료:사후 라우팅 및 IP 매스커레이딩

편집하다

"조건부" 포트 전달을 구성하려면:

소스 포트별

iptables -A PREROUTING -t nat -i eth1 -p tcp --sport [trusted_source_port] --dport [external_port] -j DNAT --to [internal_ip]:[internal_port]
iptables -A FORWARD -p tcp -d [internal_ip] --dport [internal_port] -j ACCEPT

소스 IP별

iptables -A PREROUTING -t nat -i eth1 -p tcp -s [trusted_source_ip] --dport [external_port] -j DNAT --to [internal_ip]:[internal_port]
iptables -A FORWARD -p tcp -d [internal_ip] --dport [internal_port] -j ACCEPT

관련 정보