
FirewallD가 있는 Centos 7 시스템이 있고 net.ipv4.conf.icmp_echo_ignore_all이 0으로 설정되어 있습니다. 외부 IP 주소에 대한 핑 응답을 비활성화하지만 일부 IP 블록(예: 192.168.1.0/ 24, 10.0.0.0/8 등) 핑 응답을 받습니다.
어떻게 해야 합니까?
답변1
여기에 해결책이 있습니다.iptables
[root@ttucker ~]# iptables -A INPUT -m iprange --src-range 192.168.0.0-192.168.255.255 -p ICMP --icmp-type 8 -j ACCEPT
[root@ttucker ~]# iptables -A INPUT -m iprange --src-range 10.0.0.0-10.255.255.255 -p ICMP --icmp-type 8 -j ACCEPT
[root@ttucker ~]# iptables -A INPUT -p ICMP --icmp-type 8 -j DROP
와드 이후의 모습은 다음과 같습니다.
[root@ttucker ~]# iptables -v -n -L INPUT | grep icmp
0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 source IP range 192.168.0.0-192.168.255.255 icmptype 8
0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 source IP range 10.0.0.0-10.255.255.255 icmptype 8
0 0 DROP icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmptype 8
Iptables는 주어진 체인에서 위에서 아래로 규칙을 평가하여 작동합니다. 이 경우에는 INPUT 체인입니다. iptables가 조건과 일치하는 규칙을 찾으면 에 지정된 작업을 수행합니다 -j
.
따라서 이 예에서는 소스가 10.0.0.0/8 또는 192.168.0.0/16에서 온 경우 작업은 입니다 ACCEPT
. 소스 주소가 해당 범위에 없으면 다음과 같은 세 번째 규칙이 적용됩니다 DROP
.
참고: 또한 현재 이러한 규칙 이전의 모든 ICMP 트래픽을 허용하는 현재 규칙이 없는지 확인해야 합니다.
-A INPUT
체인 에 추가하는 수단 입니다 INPUT
. 따라서 먼저 전체 입력 체인을 나열하고 거기에 존재하는 다른 ICMP 규칙을 삭제하려고 합니다.
INPUT 체인 규칙을 나열하는 방법은 다음과 같습니다.
iptables -v -n -L INPUT
이 방법이 효과가 있는지 또는 추가 문의사항이 있으면 알려주시기 바랍니다.