iptables에 다음 규칙을 추가했습니다.
-A PREROUTING -p tcp -m tcp --dport 3307 -j DNAT --to-destination 192.168.80.45:330
포트 3307에 규칙을 추가하려는 경우(예: 포트 3307에 대한 123.5.0.2 IP 주소 액세스 거부) iptables 규칙을 어떻게 구성합니까?
답변1
NAT가 발생하는 것을 방지하려고 시도할 수 있으므로 결국 패킷은 전달되지 않고 호스트에 남아 있으며 수신 서비스가 없으면 연결 시도가 재설정됩니다. 이는 방화벽 부분 간의 역할 분리를 위반합니다(필터표: 기본값) 및 NAT 섹션(냇부분).
방지하려면 필터 규칙을 추가(또는 이미 존재하는 규칙 세트에 따라 -I
insert 대신 삽입)하면 됩니다.-A
전달됨123.5.0.2에서 192.168.80.45:330까지의 트래픽 [sic]:
iptables -A FORWARD -s 123.5.0.2 -d 192.168.80.45 -p tcp --dport 330 -j DROP
DNAT는 라우팅 전에 발생하므로 필터/FORWARD 체인이 보는 부분은 이미 3307이 아닌 대상 192.168.80.45 및 TCP 포트 330입니다. 물론 규칙을 더 넓게 만들어 모든 대상 포트 프로토콜과 대상 포트 또는 모든 대상(대상 주소를 명시하지 않고)을 명시하지 않음으로써 거부할 수 있습니다.
이를 수행하는 다른 방법이 많이 있습니다. 예를 들어 필터 규칙에서 새 대상 포트 330 대신 원래 포트 3307을 표시하는 것이 중요한 경우(예: NAT 규칙을 별도로 다시 작성하여 두 위치에서 대상을 편집할 필요가 없기 때문에) ), 쿼리할 수 있습니다.연결하다이와 같이:
iptables -A FORWARD -s 123.5.0.2 -m conntrack --ctproto tcp --ctorigdstport 3307 -j DROP
즉, TCP 프로토콜과 원래 대상 포트(DNAT 변환이 가능하기 전) 3307을 사용하여 123.5.0.2에서 전달된 트래픽을 삭제합니다.