Re: [HS] iptables: ICMP et limit

2007-01-01 Par sujet Le poulpe qui bloppe !

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

2007-01-01 Par sujet Pascal Hambourg

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

2007-01-01 Par sujet Le poulpe qui bloppe !

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

2006-12-31 Par sujet Pascal Hambourg

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

2006-12-31 Par sujet Pascal Hambourg

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

2006-12-31 Par sujet Le poulpe qui bloppe !

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.