iptables는 하나의 IP를 제외하고 들어오는 모든 ICMP 요청을 삭제합니다.

iptables는 하나의 IP를 제외하고 들어오는 모든 ICMP 요청을 삭제합니다.

현재 다음과 같은 것이 있습니다.

iptables -A INPUT -p ICMP --icmp-type 8 -j DROP
iptables -A INPUT -s x.x.x.x -p ICMP --icmp-type 8 -j ACCEPT

그러나 두 번째 명령을 실행하면 iptables가 중지되는 것처럼 보입니다. 터미널로 돌아가려면 그것을 없애야 했습니다. 어쩌면 내가 잘못하고 있을지 모르지만 약간의 통찰력이 도움이 될 것입니다.

답변1

규칙을 역순으로 실행해야 합니다. Iptables는 명령이 실행되는 순서에 민감합니다. 규칙이 일치하면 더 많은 규칙을 계속 확인하지 않고 해당 규칙을 따릅니다. 폐기를 먼저 설정하면 수락 규칙이 테스트되지 않습니다. 소스 IP를 사용하여 특정 승인을 설정한 다음 삭제하도록 보다 일반적인 정책을 설정하면 예상되는 동작에 영향을 미칩니다.

iptables -A INPUT -s x.x.x.x -p ICMP --icmp-type 8 -j ACCEPT
iptables -A INPUT -p ICMP --icmp-type 8 -j DROP

문제가 있는 것 같습니다. 유효한 IP 주소를 입력하셨나요? 명령 strace iptables …이 정지된 동안 무엇을 하는지 보기 위해 명령 앞에 접두사를 붙일 수도 있습니다 .

답변2

ICMP를 무작위로 버리지 마십시오! 물론 일부 ICMP 요청은 위험하지만 나머지는 네트워크가 제대로 작동하는 데 필요합니다("대상에 도달할 수 없음" 및 해당 동물원을 생각해 보세요).

답변3

다음과 같은 규칙을 추가해야 합니다.

$ iptables -A INPUT -s x.x.x.x -p icmp --icmp-type echo-reply -j ACCEPT

관련 정보