내 Linux 상자에는 2개의 NICS가 있습니다.
br0 192.168.1.0/24 (192.168.1.1 server)
eth1 192.168.2.0/24 lan1
eth2 192.168.3.0/24 lan2
[...]
eth1에서 br0으로, eth2에서 br0으로 가는 경로가 있습니다.
동일한 서브넷의 eth1에서 icmp 에코 요청을 제거했습니다.
iptables -A INPUT -i eth1 -p icmp --icmp-type echo-request -j DROP
하지만 192.168.1.1의 192.168.2.0/24 네트워크에서 오는 icmp 에코 요청만 차단하고 싶습니다.
따라서 192.168.2.0/24의 클라이언트가 192.168.1.1에 핑을 보내는 것을 원하지 않습니다.
답변1
"-s"를 사용하여 원본 IP 또는 서브넷을 지정하고 "-d"를 사용하여 대상 IP 또는 서브넷을 지정해야 합니다. 다음은 샘플 규칙입니다.
iptables -A INPUT -s 192.168.2.0/24 -d 192.168.1.1/32 -p icmp -m hashlimit --hashlimit-upto 3/sec --hashlimit-burst 5 --hashlimit-mode srcip,dstip --hashlimit-name xticmp -m icmp --icmp-type 8 -j DROP
iptables -A INPUT -s 192.168.2.0/24 -d 192.168.1.1/32 -p icmp -m hashlimit --hashlimit-upto 3/sec --hashlimit-burst 5 --hashlimit-mode srcip,dstip --hashlimit-name xticmp -m icmp --icmp-type 30 -j DROP
답변2
확인하다 man iptables
:
[!] -s, --소스 주소[/mask][,...]
-s 192.168.2.0/24
전체 서브넷에 영향을 미칩니다.