web-dev-qa-db-fra.com

Bloquer le ping à partir d'une adresse IP particulière

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.

1
3lokh

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:

  1. ping envoie le paquet de demande ICMP à 192.168.56.101 (Il s'agit du prochain ICMP)

  2. 192.168.56.101 recevoir ce paquet et envoyer répondre le paquet ICMP à votre serveur

  3. 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:

  1. Supprimez cette règle du serveur:

    iptables -A INPUT -i eth0 -p icmp --icmp-type echo-request -s 192.168.56.101 -j DROP

  2. Ajoutez cette règle à votre serveur:

    iptables -A INPUT -i eth0 -p ICMP -s 192.168.56.101 -j DROP

  3. Exécutez maintenant cette commande sur 192.168.56.101:

    Sudo tcpdump ip proto \\icmp

  4. 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.

1
c0rp

De toute évidence, vous n'obtiendrez aucune réponse. Une requête ping se compose de deux parties:

  • Client -> Serveur: demande d'écho ICMP (alias "ping")
  • Serveur -> Client: écho-réponse ICMP (a.k.a. "pong")

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.

0
Lekensteyn