Re: [HS] iptables: ICMP et limit
Le 01/01/07, Pascal Hambourg <[EMAIL PROTECTED]> a écrit : Le poulpe qui bloppe ! a écrit : > > Je sais que le type echorequest et reply ne concernent que le ping. > Mais c'est à titre d'entrainement sur les regles avec limit. C'est quand même une très bonne idée d'accepter le ping avec une limite (forcément, puisque je le fais ;-) ). > Car je lis partout que le type de protocole peut etre dangeureux sur > internet, et malheureusement, je n'ai pas encore trouvé quels sont > exactement les types à autoriser, c'est en cours de recherche avec les rfc. Hors quelques cas particuliers de vulnérabilités ("ping of death" de Windows), le ping n'est pas dangereux en lui-même. Le risque, si on ne limite pas, est surtout lié à l'envoi des réponses au ping : celles-ci pourraient saturer la voie d'upload dans le cas d'une connexion ADSL, ou flooder un innocent en cas d'usurpation de l'adresse IP source. C'est pourquoi on peut souhaiter en limiter la fréquence et la taille. Les types ICMP que j'autorise sur l'interface internet sont, en plus du ping, les messages d'erreur indispensables : - Echo Request, dans l'état NEW avec des limites - Echo Reply, dans l'état ESTABLISHED - Destination Unreachable, dans l'état RELATED - Time Exceeded, dans l'état RELATED - Parameter Problem, dans l'état RELATED. -- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.net/?DebianFrench Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et "Reply-To:" To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED] Merci beaucoup pour l'info, J'etudie ca. C'est en effet ce que j'ai prévu d'autoriser.
Re: [HS] iptables: ICMP et limit
Le poulpe qui bloppe ! a écrit : Je sais que le type echorequest et reply ne concernent que le ping. Mais c'est à titre d'entrainement sur les regles avec limit. C'est quand même une très bonne idée d'accepter le ping avec une limite (forcément, puisque je le fais ;-) ). Car je lis partout que le type de protocole peut etre dangeureux sur internet, et malheureusement, je n'ai pas encore trouvé quels sont exactement les types à autoriser, c'est en cours de recherche avec les rfc. Hors quelques cas particuliers de vulnérabilités ("ping of death" de Windows), le ping n'est pas dangereux en lui-même. Le risque, si on ne limite pas, est surtout lié à l'envoi des réponses au ping : celles-ci pourraient saturer la voie d'upload dans le cas d'une connexion ADSL, ou flooder un innocent en cas d'usurpation de l'adresse IP source. C'est pourquoi on peut souhaiter en limiter la fréquence et la taille. Les types ICMP que j'autorise sur l'interface internet sont, en plus du ping, les messages d'erreur indispensables : - Echo Request, dans l'état NEW avec des limites - Echo Reply, dans l'état ESTABLISHED - Destination Unreachable, dans l'état RELATED - Time Exceeded, dans l'état RELATED - Parameter Problem, dans l'état RELATED. -- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.net/?DebianFrench Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et "Reply-To:" To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: [HS] iptables: ICMP et limit
2006/12/31, Pascal Hambourg <[EMAIL PROTECTED]>: Pascal Hambourg a écrit : > >> Jusqu'a présent, j'etais en ACCEPT partout, et je forcais les drop de >> ce que je ne voulais pas. > > C'est mal. :-p Raison : si on oublie d'interdire quelque chose, ça ne se verra pas forcément et il y aura un trou. >> J'ai décidé d'etre plus propre et de mettre DROP par defaut, et >> d'autorisé ce que je souhaite. > > C'est bien. :-) Raison : si on oublie d'accepter quelque chose, ça va finir par se voir à l'usage. >> pour mes test, je suis donc en DROP par defaut, et je mets ca: >> iptables -t filter -A INPUT -i $IF_LAN -p icmp --icmp-type echo-reply -m >> limit --limit 3/minute --limit-burst 5 -j DROP Détail qui m'avait échappé, le type ICMP echo-reply est la réponse au ping, donc cette règle s'applique aux paquets de réponse au ping et non de requête. Je ne pense pas que ce soit ce que tu souhaites. Un dernier complément : il peut être souhaitable de limiter aussi la taille des paquets de ping (correspondance "length"). Pour un simple test de connectivité IP, pas besoin d'envoyer un ping de 1500 octets. Cependant ça peut être utile dans certains cas particuliers pour débugger des problèmes vicieux de MTU. -- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.net/?DebianFrench Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et "Reply-To:" To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED] Merci beaucoup, ca marche. C'est simplement 2 trucs qui me bloquaient. D'une part, j'avais une regle etrange plus haut pour mon pc clinet. D'autre part, vu que je suis en DROP par defaut partout, autoriser INPUT ne suffisait pas, J'ai du aussi autoriser OUTPUT (logique, fallais que j'utilise mon neurone). Je sais que le type echorequest et reply ne concernent que le ping. Mais c'est à titre d'entrainement sur les regles avec limit. Car je lis partout que le type de protocole peut etre dangeureux sur internet, et malheureusement, je n'ai pas encore trouvé quels sont exactement les types à autoriser, c'est en cours de recherche avec les rfc. Pour l'instant, je dois autoriser le ping pour un copain qui me monitore via nagios. Et ensuite, j'aimerais autoriser les requettes icmp relative aux rfc du DNS. Merci pour l'explication sur les limites, maintenant que j'ai compris, je sort ma calculette pour trouver les limites qui me plaisent ;) BONNE ANNEE !
Re: [HS] iptables: ICMP et limit
Pascal Hambourg a écrit : Jusqu'a présent, j'etais en ACCEPT partout, et je forcais les drop de ce que je ne voulais pas. C'est mal. :-p Raison : si on oublie d'interdire quelque chose, ça ne se verra pas forcément et il y aura un trou. J'ai décidé d'etre plus propre et de mettre DROP par defaut, et d'autorisé ce que je souhaite. C'est bien. :-) Raison : si on oublie d'accepter quelque chose, ça va finir par se voir à l'usage. pour mes test, je suis donc en DROP par defaut, et je mets ca: iptables -t filter -A INPUT -i $IF_LAN -p icmp --icmp-type echo-reply -m limit --limit 3/minute --limit-burst 5 -j DROP Détail qui m'avait échappé, le type ICMP echo-reply est la réponse au ping, donc cette règle s'applique aux paquets de réponse au ping et non de requête. Je ne pense pas que ce soit ce que tu souhaites. Un dernier complément : il peut être souhaitable de limiter aussi la taille des paquets de ping (correspondance "length"). Pour un simple test de connectivité IP, pas besoin d'envoyer un ping de 1500 octets. Cependant ça peut être utile dans certains cas particuliers pour débugger des problèmes vicieux de MTU. -- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.net/?DebianFrench Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et "Reply-To:" To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: [HS] iptables: ICMP et limit
Salut, Le poulpe qui bloppe ! a écrit : Je travaille actuellement mon script iptables. C'est bien. :-) Jusqu'a présent, j'etais en ACCEPT partout, et je forcais les drop de ce que je ne voulais pas. C'est mal. :-p J'ai décidé d'etre plus propre et de mettre DROP par defaut, et d'autorisé ce que je souhaite. C'est bien. :-) Mon serveur fait passerelle de mon rezo local: WEB <--> eth0 <-->debian<--> eth1 <--> rezo local Je travaille pour l'instant uniquement sur le ping. Ce que j'aimerais, c'est que n'importe qui puisse me pinguer depuis n'importe où (WAN et LAN). C'est bien. :-) Mais que losrsqu'une IP me ping, je reponde aux 4 premieres requettes, puis plus rien pendant 10 minutes. C'est sage, quoique je trouve 10 minutes très long. J'ai donc essayé le systeme de limit et limit-burst, mais c'est relativement trop philosophique pour moi. Note que la correspondance 'limit' ne distingue pas entre les différentes adresses sources. Pour cela il faudrait utiliser la correspondance 'hashlimit' qui est supportée à partir d'iptables 1.3.0 et du noyau Linux 2.6.10 (ou inférieur avec le patch 'hashlimit' du patch-o-matic-ng). pour mes test, je suis donc en DROP par defaut, et je mets ca: iptables -t filter -A INPUT -i $IF_LAN -p icmp --icmp-type echo-reply -m limit --limit 3/minute --limit-burst 5 -j DROP Probleme: je suis incapable de pinguer. Normal : politique DROP par défaut + règle DROP seulement = DROP systématique. En fait il faut une clbie ACCEPT à cette règle. Si je me mets en ACCEPT par defaut toujours avec la meme ligne, là je ping, mais autant que je veux. Même en lançant un nombre illimité de pings (option -t sous Windows) ? Il n'y a pas une autre règle qui accepterait ces paquets ? Donc si une bonne ame arrive à m'expliquer comme à un gros debutant le fonctionnement de limit, et de limit-burst, j'en serais tres reconnaissant. La valeur de l'option --limit-burst signifie qu'initialement la correspondance est positive sur les n premiers paquets. La valeur de l'option --limit indique le nombre de paquets par unité de temps qui donnent une correspondance positive. Si le nombre de paquets effectif ne dépasse pas la limite, le "limit-burst" est progressivement "rechargé" jusqu'à atteindre sa valeur initiale. Dans ton exemple, la correspondance est positive sur les 5 premiers paquets quel que soit leur rythme d'arrivée. Et en moyenne seuls 3 paquets par minutes (en pratique un paquet toutes les 20 secondes) donne une correspondance positive. Donc par exemple si tu envoies un ping par seconde : - les 5 premiers passent, - ensuite, un passe toutes les 20 secondes (3 par minute). J'ai testé sur une Sarge : iptables -A INPUT -i lo -p icmp -m icmp --icmp-type echo-request \ -m limit --limit 3/min -j ACCEPT iptables -A INPUT -i lo -p icmp -m icmp --icmp-type echo-request -j DROP $ ping localhost PING localhost (127.0.0.1) 56(84) bytes of data. 64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.302 ms 64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.190 ms 64 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.177 ms 64 bytes from localhost (127.0.0.1): icmp_seq=4 ttl=64 time=0.183 ms 64 bytes from localhost (127.0.0.1): icmp_seq=5 ttl=64 time=0.186 ms [les 5 premiers pings passent] 64 bytes from localhost (127.0.0.1): icmp_seq=21 ttl=64 time=0.120 ms 64 bytes from localhost (127.0.0.1): icmp_seq=41 ttl=64 time=0.115 ms 64 bytes from localhost (127.0.0.1): icmp_seq=61 ttl=64 time=0.127 ms [1 ping passe toutes les 20 secondes (3/minute)] En laissant passer 5x20 secondes sans envoyer de ping, le limit-burst se recharge intégralement et 5 pings peuvent à nouveau passer sans limitation de temps. -- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.net/?DebianFrench Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et "Reply-To:" To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
[HS] iptables: ICMP et limit
Bonjour, Je travaille actuellement mon script iptables. Jusqu'a présent, j'etais en ACCEPT partout, et je forcais les drop de ce que je ne voulais pas. J'ai décidé d'etre plus propre et de mettre DROP par defaut, et d'autorisé ce que je souhaite. Mon serveur fait passerelle de mon rezo local: WEB <--> eth0 <-->debian<--> eth1 <--> rezo local Je travaille pour l'instant uniquement sur le ping. Ce que j'aimerais, c'est que n'importe qui puisse me pinguer depuis n'importe où (WAN et LAN). Mais que losrsqu'une IP me ping, je reponde aux 4 premieres requettes, puis plus rien pendant 10 minutes. J'ai donc essayé le systeme de limit et limit-burst, mais c'est relativement trop philosophique pour moi. Je m'aide du book de rusty et aussi d'une traduction francaise d'un bouquin (http://www.linux-france.org/prj/inetdoc/guides/iptables-tutorial) pour mes test, je suis donc en DROP par defaut, et je mets ca: iptables -t filter -A INPUT -i $IF_LAN -p icmp --icmp-type echo-reply -m limit --limit 3/minute --limit-burst 5 -j DROP Probleme: je suis incapable de pinguer. Si je me mets en ACCEPT par defaut toujours avec la meme ligne, là je ping, mais autant que je veux. Note: mon pc client du lan est sous windows, donc ping par paquet de 32 octets. Mais meme en forcant ping à envoyer 1 octet par requette, cela ne change rien. Donc si une bonne ame arrive à m'expliquer comme à un gros debutant le fonctionnement de limit, et de limit-burst, j'en serais tres reconnaissant. Bonne fin d'année.