Mon serveur est Ubuntu 12.04: -> IP 192.168.56.100
J'ai un client Ubuntu 13.04: -> IP 192.168.56.101
Je dois bloquer le ping du client au serveur J'ai donc écrit la règle IPTABLE.
iptables -A INPUT -i eth0 -p ICMP -s 192.168.56.101 -j DROP
Maintenant, le client ne peut pas envoyer de requête ping au serveur, cette partie est correcte, mais le serveur ne peut pas envoyer de requête ping au client, ce qui ne devrait pas se produire. Avant d'ajouter cette règle, le serveur et le client pouvaient se cingler.
Veuillez me dire ce qui me manque ici ...
Les réponses données sont correctes mais comment ça marche .... ??? Ajouter --icmp-type
echo-request résout le problème mais cette règle est ajoutée aux règles de la chaîne INPUT, alors comment cette règle peut-elle tout de même jouer avec la chaîne OUTPUT, car elle bloque le ping vers le client.
Si je comprends bien, la commande ping
envoie une demande d'écho ICMP à l'hôte, puis une réponse d'écho ICMP de l'hôte. Donc, si vous bloquez tous les ICMP, le ping ne fonctionne pas du tout.
Vous devez ajouter ceci:
iptables -A INPUT -i eth0 -p icmp --icmp-type echo-request -s 192.168.56.101 -j DROP
Cela bloquera uniquement la demande, mais pas la réponse
Répondre à votre question dans les commentaires
Il ne bloque pas les requêtes ping sortantes. Il bloque tous les paquets ICMP entrants.
Lorsque vous exécutez ping
:
ping
envoie le paquet de demande ICMP à 192.168.56.101
(Il s'agit du prochain ICMP)
192.168.56.101
recevoir ce paquet et envoyer répondre le paquet ICMP à votre serveur
Maintenant, votre serveur iptables bloque ce paquet de réponse entrant. Voilà ce qui se passe.
Vous pouvez le vérifier en utilisant cette commande Sudo tcpdump ip proto \\icmp
sur 192.168.56.101
. Il vous montrera toutes les demandes/réponses ICMP en ligne.
Faites ceci:
Supprimez cette règle du serveur:
iptables -A INPUT -i eth0 -p icmp --icmp-type echo-request -s 192.168.56.101 -j DROP
Ajoutez cette règle à votre serveur:
iptables -A INPUT -i eth0 -p ICMP -s 192.168.56.101 -j DROP
Exécutez maintenant cette commande sur 192.168.56.101
:
Sudo tcpdump ip proto \\icmp
Exécutez ping 192.168.56.101
sur le serveur.
Vous devriez maintenant voir sur 192.168.56.101
qu'il reçoit la requête ping et envoie une réponse. Mais iptables sur le serveur bloque cette réponse.
De toute évidence, vous n'obtiendrez aucune réponse. Une requête ping se compose de deux parties:
Le blocage de tous les types d'ICMP causera des problèmes . Si vous souhaitez empêcher le client de "cingler" (envoyer une demande PING), utilisez la règle suivante sur le serveur :
-A INPUT -i eth0 -s 192.168.56.101/32 -p ICMP --icmp-type echo-request -j DROP
Pour empêcher le client d'envoyer une demande de ping ICMP en premier lieu, vous pouvez appliquer cette règle au client :
-A OUTPUT -o eth0 -d 192.168.56.100/32 -p ICMP --icmp-type echo-request -j DROP
Il est très inhabituel d'éviter de bloquer un client de cingler une seule adresse IP, du côté client cependant. La seule raison pour laquelle vous le feriez est que votre affectation nécessite que non le paquet ping ICMP circule à travers le réseau depuis le client, dirigé vers le serveur.
Je me demande cependant pourquoi vous voulez bloquer les requêtes ping sur un LAN. Avec ARP, le client peut toujours savoir que ce serveur est connecté au réseau.