IPTables 가장 규칙이 제거되었지만 기존 연결은 여전히 ​​존재합니다.

IPTables 가장 규칙이 제거되었지만 기존 연결은 여전히 ​​존재합니다.

LAN에 있는 컴퓨터가 인터넷에 액세스할 수 있도록 게이트웨이에 iptables 가장 규칙이 적용되는 LAN 구성이 있습니다. 정상적으로 작동하지만 가장 무도회 규칙을 제거한 후에도 기존 연결이 여전히 존재합니다. 예: ping 8.8.8.8가장 무도회 규칙을 제거한 후에도 LAN의 컴퓨터에서는 계속됩니다. 다시 ping을 하면 작동하지 않습니다. 따라서 매스커레이드 규칙을 삭제한 후에도 기존 연결은 종료되지 않습니다. 내가 추가한 규칙은 다음과 같습니다.

iptables -A POSTROUTING -o eth0 -j MASQUERADE

기존 연결을 종료하기 위해 이 규칙/다른 솔루션을 수정하는 방법에 대한 제안 사항입니다. ?

답변1

conntrack 항목이 존재하는 한 nat 테이블은 사용되지 않습니다(icmp(ping) 시간 제한 30). conntrack 항목으로 인해 단락되었습니다.

다음 명령을 사용하여 이 동작을 실시간으로 확인할 수 있습니다 conntrack -E(이 명령을 사용할 수 없는 경우 conntrack 패키지를 설치하십시오). 각 [NEW]레코드는 새 스트림이 나타나고 NAT 테이블이 한 번 읽힌다는 것을 의미합니다. 그러면 더 이상 사용되지 않습니다.

나머지 항목을 제거하려면 conntrack -D[...] 을 사용하십시오. 설명서를 확인하세요. 예를 들어, ping 8.8.8.8이 계속 작동하는 동안 MASQUERADE 규칙을 삭제한 후 다음을 수행합니다.

conntrack -D  --orig-dst 8.8.8.8

이 핑을 끊어야 합니다. 내부 IP는 인터넷으로 유출됩니다(인터넷에서 라우팅할 수 없는 소스 IP를 좋아하지 않는 라우터에 의해 차단될 때까지).

MASQUERADE 규칙을 제거하지 않고 연결을 종료하는 다른 방법:

NAT는 방화벽에서는 작동하지 않습니다. NAT를 사용하면 부작용으로 방화벽과 같은 보호 기능이 제공되는 경우가 많습니다. 트래픽을 차단하려면 필터 테이블을 사용해야 합니다.

FORWARD 체인의 초기에 존재하는 경우 -m conntrack --state ESTABLISHED -j ACCEPT일반적으로 블랙리스트라는 새 체인이 배치(점프)되기 전입니다. 이 체인에는 특정 소스 IP, 대상 IP, 포트 등 종료하려는 현재 연결과 일치하는 규칙을 삽입하기만 하면 됩니다. 모듈 setipset명령도 사용할 수 있습니다. 다음의 예를 참조하세요 man iptables-extensions. iptables -A FORWARD -m set --match-set test src,dst블랙리스트 체인에 넣고 -j DROP.

관련 정보