"서버": 192.168.1.1
나는 "이론적으로" 비활성화된 클라이언트가 서로 "핑"할 수 있다고 생각합니다.
iptables 규칙을 사용할 수 있나요? 예를 들어:
iptables -A FORWARD -m iprange --src-range 192.168.1.2-192.168.1.255 --dst-range 192.168.1.2-192.168.1.255 -j DROP
클라이언트 간 트래픽을 필터링할 수 없나요? [또는 적어도 이러한 패킷을 라우터 등으로 리디렉션하시겠습니까? ]
라우터 ["서버"]에서 tcpdump를 실행하면 클라이언트 [192.168.1.201]가 다른 [192.168.1.162]에 ping을 보내는 것을 볼 수 있습니다.
# tcpdump
tcpdump: WARNING: eth0: no IPv4 address assigned
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
12:22:26.931343 IP 192.168.1.201 > 192.168.1.162: ICMP echo request, id 12547, seq 141, length 64
12:22:27.819373 IP 192.168.1.201 > 192.168.1.162: ICMP echo request, id 12547, seq 142, length 64
12:22:28.819640 IP 192.168.1.201 > 192.168.1.162: ICMP echo request, id 12547, seq 143, length 64
답변1
어디에서 비활성화하시겠습니까? 모든 트래픽이 iptables를 실행할 수 있는 라우터나 스위치를 통과한다면 그렇습니다. 간단합니다.
모든 머신에서 이를 차단하고 모두 iptables를 실행한다면, 그렇습니다. 다시 말하지만 쉽습니다.
대부분의 TCP/IP 구현에서는 클라이언트 측에서 ICMP를 비활성화할 수 있습니다.
액세스 제어를 허용하는 거의 모든 라우터에서는 ICMP를 차단할 수 있습니다.
하지만...당신이 그것을 원한다고 100% 확신하나요? 많은 앱은 만족감을 유지하기 위해 약간의 핑을 좋아합니다. :-)
답변2
당신의 아이디어는 완전히 실현 가능합니다. 좋은 디자인인지 아닌지는 알 수 없습니다.
라우터로 전송된 모든 ICMP 에코 요청을 삭제합니다.
iptables -t filter -I INPUT -p icmp --icmp-type 8 -j DROP
전달된 ICMP 에코 요청을 모두 삭제합니다.
iptables -t filter -I FORWARD -p icmp --icmp-type 8 -j DROP
호스트당 패킷이 표시되는 이유는 해당 패킷이 더 낮은 수준에서 트래픽을 복제하는 허브를 통해 연결되어 있기 때문일 것입니다. 서버에서 이러한 패킷을 삭제해도 해당 패킷이 클라이언트에 도달하는 것을 막지는 못합니다.
따라서 후자의 규칙이 작동하려면 호스트가 모든 트래픽을 라우터로 전달하도록 강제해야 합니다. 이는 각 호스트의 서브넷을 자체 주소로 제한하여 수행됩니다(호스트에는 서브넷 마스크 255.255.255.252를 사용하고 라우터에서는 255.255.255.0을 사용). 마지막으로 각 호스트의 라우팅 테이블에 고정 경로를 추가하여 호스트가 서버에 패킷을 전달할 수 있도록 해야 합니다.
ip r a 192.168.1.1/32 dev eth0
이 설정에서 라우터는 여전히 모든 호스트에 ping을 보낼 수 있습니다.