Protection contre les requêtes ICMP

Forum d'assistance et d'échange sur l'installation, la configuration, et l'utilisation des système Linux et BSD. Vous pouvez y poster vos questions concernant ces systèmes d'exploitation en faisant l'effort préalable de rechercher dans le forum, dans les manuels et les documentations que la réponse n'y figure pas.

Modérateur: modos Ixus

Protection contre les requêtes ICMP

Messagepar voodoo.child » 31 Mars 2004 21:46

Salut à tous,

Pourriez-vous m'indiquer l'approche la plus réaliste pour se protéger des paquets de type ICMP sans pour autant empêcher le ping.

Quelle est la meilleure aproche ????

Je vous en remercie par avance
Avatar de l’utilisateur
voodoo.child
Major
Major
 
Messages: 85
Inscrit le: 31 Mars 2004 12:11
Localisation: marseille

Messagepar MoiCVincent » 31 Mars 2004 22:04

hum ...

D'abord il faut savoir que les paquets ICMP soot necessaires pour que le reseau TCP / IP fonctionne correctement !

Si tu veux te proteger des attaque PING FLOOD tu peux limiter le nombre de pings dans un temps donné sans pour autant les bloquer !

iptables -A INPUT -i $NET_IFACE -p icmp --icmp-type 8 -m limit --limit 40/min -j ACCEPT

Limite les pings entrants a 40 pings par minute !
Noubliez pas , On est sur terre pour vivre !
Image
Avatar de l’utilisateur
MoiCVincent
Contre-Amiral
Contre-Amiral
 
Messages: 395
Inscrit le: 08 Jan 2004 01:00
Localisation: Normandie

Messagepar voodoo.child » 31 Mars 2004 22:36

Mais le problème en dehors de la limitation du nombre de ping, c le type de paquet icmp.
par exemple les paquets icmp de type 13 servent à connaitre l'heure du système cible ou alors les paquets icmp de type 17 servent à connaitre le masque de cc-réseau du système cible.

Es-ce que qq'un à une idée précise sur le gestion des paquets icmp
Avatar de l’utilisateur
voodoo.child
Major
Major
 
Messages: 85
Inscrit le: 31 Mars 2004 12:11
Localisation: marseille

Messagepar micjack » 31 Mars 2004 22:56

micjack
Amiral
Amiral
 
Messages: 3113
Inscrit le: 06 Juin 2003 00:00
Localisation: Varois

Messagepar voodoo.child » 31 Mars 2004 23:35

Ce n'est pas ce genre de réponse qye je cherche
Je suis capable de faire une recherche sous google

Après qq recherche, il semble que l'approche minimaliste soit la suivante:
Accepter ICMP ECHO-REPLY, ICMP HOST UNREACHABLE et ICMP TIME EXCEEDED
la connaissance est aux frontières de notre ignorance
Avatar de l’utilisateur
voodoo.child
Major
Major
 
Messages: 85
Inscrit le: 31 Mars 2004 12:11
Localisation: marseille

Messagepar tomtom » 31 Mars 2004 23:43

voila comment je traite ça chez moi :

Code: Tout sélectionner

icmp_rules () {
  echo -n "  Application des regles sur le ICMP: "
  $IPTABLES -A ICMPTable -p icmp --icmp-type echo-reply -j ACCEPT
  $IPTABLES -A ICMPTable -p icmp --icmp-type echo-request -j ACCEPT
  $IPTABLES -A ICMPTable -p icmp --icmp-type source-quench -j ACCEPT
  $IPTABLES -A ICMPTable -p icmp --icmp-type destination-unreachable -j ACCEPT
  $IPTABLES -A ICMPTable -p icmp --icmp-type time-exceeded -j ACCEPT
  $IPTABLES -A ICMPTable -p icmp --icmp-type parameter-problem -j ACCEPT

  # Pour le IPv6
  #$IPTABLES -A ICMPTable -p icmp --icmp-type 33 -j ACCEPT
  #$IPTABLES -A ICMPTable -p icmp --icmp-type 34 -j ACCEPT

# on vire le reste
  $IPTABLES -A ICMPTable -j DROP
  $IPTABLES -A INPUT -p icmp -j ICMPTable


J'autorise le strict necessaire au niveau icmp..

D'autant que selon les implementations derrière, les types un peu barbares ne représentent pas exactement la même chose (ex pour les acquisitions de passerelles etc...)

t.
Dernière édition par tomtom le 31 Mars 2004 23:45, édité 1 fois au total.
One hundred thousand lemmings can't be wrong...
Avatar de l’utilisateur
tomtom
Amiral
Amiral
 
Messages: 6035
Inscrit le: 26 Avr 2002 00:00
Localisation: Paris

Messagepar micjack » 31 Mars 2004 23:44

Exact, mais ta demande m' est plutot curieuse, desolé de ne pouvoir mieux te repondre :wink:

Edit à 23.53: J' espere que Tomtom t' a apporté un reponse, car nos posts se sont croisés :lol:
micjack
Amiral
Amiral
 
Messages: 3113
Inscrit le: 06 Juin 2003 00:00
Localisation: Varois

Messagepar voodoo.child » 31 Mars 2004 23:52

En fait, je veux éviter que des pirates puissent utiliser les requêtes de type icmp pour recuperer des informations sur mon serveur.
En sachant que je n'est pas de firewall qui protège mon réseau.
la connaissance est aux frontières de notre ignorance
Avatar de l’utilisateur
voodoo.child
Major
Major
 
Messages: 85
Inscrit le: 31 Mars 2004 12:11
Localisation: marseille

Messagepar voodoo.child » 31 Mars 2004 23:55

il n'y a aucun pb, micjack

et merci pour vos réponses
la connaissance est aux frontières de notre ignorance
Avatar de l’utilisateur
voodoo.child
Major
Major
 
Messages: 85
Inscrit le: 31 Mars 2004 12:11
Localisation: marseille

Messagepar micjack » 31 Mars 2004 23:57

" pas de firewall qui protège mon réseau " :shock:

Il serrait bien que tu puisse nous fournir ton architecture, non?
micjack
Amiral
Amiral
 
Messages: 3113
Inscrit le: 06 Juin 2003 00:00
Localisation: Varois

Messagepar tomtom » 01 Avr 2004 00:02

voodoo.child a écrit:En sachant que je n'est pas de firewall qui protège mon réseau.


Ben et netfilter, c'est quoi ??

Même si ton reseau se limite à ce poste en passerelle, c'est deja un firewall plus que correct ;)

t.
One hundred thousand lemmings can't be wrong...
Avatar de l’utilisateur
tomtom
Amiral
Amiral
 
Messages: 6035
Inscrit le: 26 Avr 2002 00:00
Localisation: Paris

Messagepar voodoo.child » 01 Avr 2004 00:03

En fait, g un routeur et un switch -> c mon réseau perso

J'utilise 1 fw applicatif sur mon poste de travail (win 2000)
et j 'ai deux machines de tests
1 ss freebsd 4.9 (serveur de mail) et 1 ss debian woody (Serveur Web + mysql)

Mais je conpte convertir ma machine debian en fw réseau mais avec openbsd.
la connaissance est aux frontières de notre ignorance
Avatar de l’utilisateur
voodoo.child
Major
Major
 
Messages: 85
Inscrit le: 31 Mars 2004 12:11
Localisation: marseille

Messagepar Franck78 » 01 Avr 2004 00:05

Tomtom on utilses le même modèle.

Il y cependant une amélioration possible sur le ping

le rejeter si il a une taille trop importante.

(j'ai pas la solution, c'est 'à faire' )
Franck
L'art de poser une question sur ce site afin d'obtenir la réponse
A LIRE
Avatar de l’utilisateur
Franck78
Amiral
Amiral
 
Messages: 5625
Inscrit le: 20 Fév 2004 01:00
Localisation: Paris

Messagepar MoiCVincent » 01 Avr 2004 18:51

@ Franck

Essaie un peux ca !

iptables -A INPUT -p icmp --icmp-type echo-request -m length --length 100:0xffff -j DROP

Pour rejeter les Requetes Ping de plus de 100 octets !

(j'ai pas la solution, c'est 'à faire' )


Voila , c'est fait !

Donc avec le module limit plus le module length , on peux dire je pense que conté ping on est sécurisé !!!
Noubliez pas , On est sur terre pour vivre !
Image
Avatar de l’utilisateur
MoiCVincent
Contre-Amiral
Contre-Amiral
 
Messages: 395
Inscrit le: 08 Jan 2004 01:00
Localisation: Normandie

Messagepar Franck78 » 01 Avr 2004 20:50

Merci Vincent
Ca marche impec
Voila le traitement icmp sur mon portable:

Code: Tout sélectionner
#############################################################################
## La table ICMP logue ou rejette les paquets ICMP
## On ne peut pas interdir tout ICMP car alors c'est le fonctionnement
## de TCP/IP lui même qui en patira
[ $DBG ] && echo Table ICMP

## WATCH est la fin du traitement ICMP
## Limite en nombre tous les messages ICMP
$IPTABLES -N WATCH
$IPTABLES -A WATCH -m limit --limit $ICMP_FLOOD -j ACCEPT
$IPTABLES -A WATCH -m limit --limit $ICMP_FLOOD --limit-burst 4 -j LOG --log-level info --log-prefix "FW,icmp watch:"
$IPTABLES -A WATCH -j DROP

## Le traitement des paquets ICMP commence ici
## Si ils ne sont pas ACCEPT ou WATCH, ils sont droppés
$IPTABLES -N ICMP
$IPTABLES -A ICMP -p icmp --icmp-type   echo-reply                 -j ACCEPT
$IPTABLES -A ICMP -p icmp --icmp-type   port-unreachable           -j ACCEPT
$IPTABLES -A ICMP -p icmp --icmp-type   echo-request -m length --length 100:0xffff -j DROP
$IPTABLES -A ICMP -p icmp --icmp-type   echo-request               -j WATCH
$IPTABLES -A ICMP -p icmp --icmp-type   destination-unreachable    -j WATCH
$IPTABLES -A ICMP -p icmp --icmp-type   network-unreachable        -j WATCH
$IPTABLES -A ICMP -p icmp --icmp-type   host-unreachable           -j WATCH
$IPTABLES -A ICMP -p icmp --icmp-type   protocol-unreachable       -j WATCH
$IPTABLES -A ICMP -p icmp --icmp-type   source-route-failed        -j WATCH
$IPTABLES -A ICMP -p icmp --icmp-type   network-unknown            -j WATCH
$IPTABLES -A ICMP -p icmp --icmp-type   host-unknown               -j WATCH
$IPTABLES -A ICMP -p icmp --icmp-type   network-prohibited         -j WATCH
$IPTABLES -A ICMP -p icmp --icmp-type   host-prohibited            -j WATCH
$IPTABLES -A ICMP -p icmp --icmp-type   TOS-network-unreachable    -j WATCH
$IPTABLES -A ICMP -p icmp --icmp-type   TOS-host-unreachable       -j WATCH
$IPTABLES -A ICMP -p icmp --icmp-type   communication-prohibited   -j WATCH
$IPTABLES -A ICMP -p icmp --icmp-type   time-exceeded              -j WATCH
$IPTABLES -A ICMP -p icmp --icmp-type   ttl-zero-during-transit    -j WATCH
$IPTABLES -A ICMP -p icmp --icmp-type   ttl-zero-during-reassembly -j WATCH
$IPTABLES -A ICMP -p icmp --icmp-type   parameter-problem          -j WATCH
$IPTABLES -A ICMP -p icmp --icmp-type   ip-header-bad              -j WATCH
$IPTABLES -A ICMP -p icmp --icmp-type   required-option-missing    -j WATCH

## Ce paquet icmp est logué puis droppé
$IPTABLES -A ICMP -m limit --limit $ICMP_FLOOD -j LOG --log-level info --log-prefix "FW,Icmp drop:"
$IPTABLES -A ICMP -j DROP

## Type ICMP droppés
#IPTABLES -A ICMP -p icmp --icmp-type   fragmentation-needed       -j WATCH
#IPTABLES -A ICMP -p icmp --icmp-type   host-precedence-violation  -j WATCH
#IPTABLES -A ICMP -p icmp --icmp-type   precedence-cutoff          -j WATCH
#IPTABLES -A ICMP -p icmp --icmp-type   source-quench              -j WATCH
#IPTABLES -A ICMP -p icmp --icmp-type   redirect                   -j WATCH
#IPTABLES -A ICMP -p icmp --icmp-type   network-redirect           -j WATCH
#IPTABLES -A ICMP -p icmp --icmp-type   host-redirect              -j WATCH
#IPTABLES -A ICMP -p icmp --icmp-type   TOS-network-redirect       -j WATCH
#IPTABLES -A ICMP -p icmp --icmp-type   TOS-host-redirect          -j WATCH
#IPTABLES -A ICMP -p icmp --icmp-type   router-advertisement       -j WATCH
#IPTABLES -A ICMP -p icmp --icmp-type   router-solicitation        -j WATCH
#IPTABLES -A ICMP -p icmp --icmp-type   timestamp-request          -j WATCH
#IPTABLES -A ICMP -p icmp --icmp-type   timestamp-reply            -j WATCH
#IPTABLES -A ICMP -p icmp --icmp-type   address-mask-request       -j WATCH
#IPTABLES -A ICMP -p icmp --icmp-type   address-mask-reply         -j WATCH


Chaine raccrochée comme ceci :
## Filtrage des paquets ICMP
$IPTABLES -A INPUT -p icmp -j ICMP
(pas de forward sur le portable)
Franck
L'art de poser une question sur ce site afin d'obtenir la réponse
A LIRE
Avatar de l’utilisateur
Franck78
Amiral
Amiral
 
Messages: 5625
Inscrit le: 20 Fév 2004 01:00
Localisation: Paris

Suivant

Retour vers Linux et BSD (forum généraliste)

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité