「サーバー」:192.168.1.1
私は「理論的に」無効化されたクライアントが互いに「ping」できると思います。
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
クライアント間のトラフィックをフィルタリングできませんか? [または、少なくともこれらのパケットをルーターなどにリダイレクトしますか? ]
ルータ["server"]で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%確信していますか?多くのアプリは満足感を維持するために少しpingを愛しています。 :-)
答え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を送信できます。