Iptables et limit

Iptables et limit - réseaux et sécurité - Linux et OS Alternatifs

Marsh Posté le 31-01-2011 à 20:37:38    

Bonjour,
 
Je suis en train de faire des tests pour comprendre Iptables. Le but étant à terme de logguer toutes les connexions un peu "violentes" pour ssh.
Pour tester les règles je passe par le ping (plus simple).
 
Voilà mon iptables

Code :
  1. Chain INPUT (policy DROP 158 packets, 12824 bytes)
  2. num   pkts bytes target     prot opt in     out     source               destination
  3. 1     3375  237K ACCEPT     tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0           tcp dpt:9893
  4. 2       12  2887 ACCEPT     udp  --  *      *       192.168.1.0/24       0.0.0.0/0           udp dpt:138
  5. 3       12  1044 ACCEPT     udp  --  *      *       192.168.1.0/24       0.0.0.0/0           udp dpt:137
  6. 4        0     0 ACCEPT     tcp  --  *      *       192.168.1.0/24       0.0.0.0/0           tcp dpt:445
  7. 5      244 34899 ACCEPT     tcp  --  *      *       192.168.1.0/24       0.0.0.0/0           tcp dpt:139
  8. 6      109  7863 ACCEPT     all  --  eth0   *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
  9. 7       56  4704 LOG        icmp --  *      *       0.0.0.0/0            0.0.0.0/0           limit: avg 1/sec burst 3 LOG flags 0 level 4 prefix `IPTablesLog'
  10. 8       68  5712 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           limit: avg 1/sec burst 3
  11. Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
  12. num   pkts bytes target     prot opt in     out     source               destination
  13. Chain OUTPUT (policy ACCEPT 971 packets, 1139K bytes)


 
Je me dis naievement, que le avg 1/sec burst3 de mon LOG sur les ping va faire la chose suivante:
Si j'ai plus que 1 ping/sec au bout de 3 essai, je ne log plus, car à chaque ping, le burst monte de 1, au bout de 3 ping en moins d'un sec il est full, et vu qu'il redescend toutes les 1/1=1 sec, si je bourrine le ping à moins de 1/sec, il sera toujours plein.
 
Sauf que depuis ma machine, un ping monipreseau -i 0.2 fait que :
- Seul le premier ping passe(j'ai le retour)
- Dans mon log, j'ai un log de ping toutes les secondes!  
 
Comment ca se fait?  
Pour moi, les 3 premiers ping devraient passer, et on devrait plus jamais rien avoir dans le log.  
Ou alors, je veux bien que 1 ping soit loggué toutes les secondes en supposant que le burst redscend quoiqu'il se passe en entrée, toutes les 1/1=1 secondes. Mais dans ce cas, je devrais avoir la réponse aussi toutes les secondes non?
Merci


Message édité par kray le 31-01-2011 à 20:38:31

---------------
I guess my real ennemy is me
Reply

Marsh Posté le 31-01-2011 à 20:37:38   

Reply

Marsh Posté le 03-02-2011 à 00:10:32    

Je pense avoir ma réponse. La fonction ping envoie plus d'un paquet pour faire un retour(cf la log)

Code :
  1. Feb  2 23:59:53 DS-Debian kernel: [182237.649380] IPTablesBanIN=lo OUT= MAC=00:00:00:00:00:00:00:00:00:00:00:00:08:00 SRC=192.168.1.44 DST=192.168.1.44 LEN=84 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=ICMP TYPE=8 CODE=0 ID=893 SEQ=1
  2. Feb  2 23:59:53 DS-Debian kernel: [182237.667056] IPTablesBanIN=lo OUT= MAC=00:00:00:00:00:00:00:00:00:00:00:00:08:00 SRC=192.168.1.44 DST=192.168.1.44 LEN=84 TOS=0x00 PREC=0x00 TTL=64 ID=9803 PROTO=ICMP TYPE=0 CODE=0 ID=893 SEQ=1
  3. Feb  2 23:59:53 DS-Debian kernel: [182237.850111] IPTablesBanIN=lo OUT= MAC=00:00:00:00:00:00:00:00:00:00:00:00:08:00 SRC=192.168.1.44 DST=192.168.1.44 LEN=84 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=ICMP TYPE=8 CODE=0 ID=893 SEQ=2
  4. Feb  2 23:59:54 DS-Debian kernel: [182238.684748] IPTablesBanIN=lo OUT= MAC=00:00:00:00:00:00:00:00:00:00:00:00:08:00 SRC=192.168.1.44 DST=192.168.1.44 LEN=84 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=ICMP TYPE=8 CODE=0 ID=893 SEQ=6
  5. Feb  2 23:59:55 DS-Debian kernel: [182239.714648] IPTablesBanIN=lo OUT= MAC=00:00:00:00:00:00:00:00:00:00:00:00:08:00 SRC=192.168.1.44 DST=192.168.1.44 LEN=84 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=ICMP TYPE=8 CODE=0 ID=893 SEQ=11
  6. Feb  2 23:59:56 DS-Debian kernel: [182240.754591] IPTablesBanIN=lo OUT= MAC=00:00:00:00:00:00:00:00:00:00:00:00:08:00 SRC=192.168.1.44 DST=192.168.1.44 LEN=84 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=ICMP TYPE=8 CODE=0 ID=893 SEQ=16


 
Donc seul le premier ping est fait complètement. En passant le limit burst à 4, j'ai bien deux ping de reçu. Par contre, j'ai ensuite un ping toutes les secondes, ce qui veut dire qu'en cas d'attaques bruteforce, on laisse quand meme passer la limit/sec de connexion. Du coup, il faut plutot utiliser des outils style fail2ban si je veux couper l'accès complètement dès qu'il y a plus de x tentatives par sec?(et donc l'interet du burst me parait faible, je pensais qu'ils servait à ça : si on bourrine, il ne redecend jamais et donc on coupe tout. La il ne sert qu'a autoriser un dépassement "à l'allumage"....)
 
Autre question : pourquoi le second ping est pas RELATED(et donc serait autorisé par ma règle qui accept en entrée les related/established)? Est-ce que j'ai bien compris?  
Car j'entreprends de mettre un limit de connexion à 3/min sur mon port ssh. Mais si jamais à chaque commande je dois attendre 20sec, ca risque de me briquer ma machine(uniquement accessible via ssh)


Message édité par kray le 03-02-2011 à 00:14:22

---------------
I guess my real ennemy is me
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed