'tite question technique, à travers un long post
Le décor :
- une école primaire ; des vieux-vieux PC (10 ans d'âge) en Windows 98, un XP récent et des Ubuntu 8 récentes (sur du matos récent - enfin, 3 ans d'âge)
- une passerelle IPCOP au milieu de ça.
- un modem/routeur comme on ne fait plus : speedtouch 510 sur une ligne wanadoo 512/128 comme on ne fait plus non plus
Le fond de l'histoire est le manque de moyens ; la bonne volonté d'un papa informaticien qui peut leur donner du matos obsolète d'entreprise ; l'accord de l'inspec. académique pour m'occuper de cette école avec la solution de filtre URL qu'ils préconisent : IPCOP + urlfilter +proxy transparent ; super ! du linux, c'est dans l'esprit des PC Ubuntu que je leur file. Let's go, je vous mets ça en place. C'est cool IPCOP
La conf :
adr. dyn. wanadoo publique<---modem/routeur speedtouch--->10.x.x.x
cablé en direct sur l'IPCOP :
10.0.0.1 <---ipcop box--->192.168.x.x
suivi des PC répartis sur quelques switchs de base ; tous en DHCP, 192.168.x.y évidememnt.
Le modem est en direct avec l'IPCOP (notez pour plus tard)
N'arrivant pas à passer le modem/routeur en simple modem pour affecter l'adresse publique directement à IPCOP, j'ai laissé tel quel et tant pis - il faut dire que je n'avais pas le password du compte wanadoo, pas facile de tout trafiquer dans ces conditions. J'ai donc 2 réseaux locaux, 2 traductions, tant pis ; c'est pas un problème je pense.
L'IPCOP est de type ROUGE/VERT - cas le plus simpliste possible.
Le problème
Une fois la passerelle IPCOP montée, l'urlfilter en place, j'ai eu un retour d'une classe : accès hypeeeer lent. Pas étonnant vu le débit de la ligne. En regardant de plus près, je suis tombé sur ça :
- Code: Tout sélectionner
Nov 14 17:41:47 ecolegw kernel: NEW not SYN? IN=eth0 OUT= MAC=00:09:5b:1d:8c:9d:00:0e:a6:9f:86:1e:08:00 SRC=192.168.2.200 DST=192.168.2.1 LEN=40 TOS=0x00 PREC=0x00 TTL=64 ID=33872 DF PROTO=TCP SPT=52152 DPT=3128 WINDOW=59532 RES=0x00 ACK FIN URGP=0
En cherchant, je suis tombé sur les forums d'IXUS.net, cet article : http://forums.ixus.fr/viewtopic.php?t=37115
Le problème est similaire, mais contrairement au problème sur le post précédent, je ne pense pas avoir de handshake court-circuité (car le modem est 10.x est obligatoirement derrière l'IPCOP, impossible de court-circuiter).
A noter : le problème a/avait lieu depuis des Ubuntu, des Windows 98, mais semble-t-il pas depuis les postes XP.
Ma solution - et ma question
La règle qui génère le "NEW not SYN?" dans les logs est la suivante (extrait de iptables) :
- Code: Tout sélectionner
Chain BADTCP (2 references)
pkts bytes target prot opt in out source destination
0 0 PSCAN tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x3F/0x29
0 0 PSCAN tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x3F/0x00
0 0 PSCAN tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x3F/0x01
0 0 PSCAN tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x06/0x06
0 0 PSCAN tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x03/0x03
41 20377 NEWNOTSYN tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:!0x17/0x02 state NEW
[....]
Chain INPUT (policy DROP 1 packets, 47 bytes)
[....]
263K 219M BADTCP all -- * * 0.0.0.0/0 0.0.0.0/0
[....]
Chain NEWNOTSYN (1 references)
pkts bytes target prot opt in out source destination
41 20377 LOG all -- * * 0.0.0.0/0 0.0.0.0/0 limit: avg 10/min burst 5 LOG flags 0 level 4 prefix `NEW not SYN? '
41 20377 DROP all -- * * 0.0.0.0/0 0.0.0.0/0
[....]
Si j'ai bien pigé, lorsque je ne sais pourquoi, un paquet un peu louche côté tcpflags (comme expliqué dans le post mentionné ci-dessus) arrive sur IPCOP, il est droppé via cette règle => "lenteur" de l'accès web. Tu m'étonnes, le retour n'arrivait jamais...
Question : à quoi sert cette règle ? elle me semble inutile, source d'ennuis. Je m'explique - et c'est là où je voudrais votre avis
=> La chaine BADTCP est celle où IPCOP recense toutes ses règles de port scan (chaîne PSCAN), avec en plus la dernière NEWNOTSYN qui semble tomber de nulle part. En allant voir dans /etc/rc.d/rc.firewall, on y trouve sa justification - vraiment bizarre, lisez le 2è bloc de commentaires !
- Code: Tout sélectionner
# This chain will log, then DROPs packets with certain bad combinations
# of flags might indicate a port-scan attempt (xmas, null, etc)
/sbin/iptables -N PSCAN
/sbin/iptables -A PSCAN -p tcp -m limit --limit 10/minute -j LOG --log-prefix "TCP Scan? "
[...blablabla...]
/sbin/iptables -A PSCAN -j DROP
# New tcp packets without SYN set - could well be an obscure type of port scan
# that's not covered above, may just be a broken windows machine
/sbin/iptables -N NEWNOTSYN
/sbin/iptables -A NEWNOTSYN -m limit --limit 10/minute -j LOG --log-prefix "NEW not SYN? "
/sbin/iptables -A NEWNOTSYN -j DROP
# Chain to contain all the rules relating to bad TCP flags
/sbin/iptables -N BADTCP
# Disallow packets frequently used by port-scanners
# nmap xmas
[... blabla ajout des chaînes PSCAN et NEWNOTSYN à BADTCP, ajout de BADTCP dans INPUT...]
Si je comprends bien, un des responsables d'IPCOP a dû voir un jour un paquet bizarrement forgé, émanant d'un Windows, et a décrété que ça craignait => on DROP. De mon côté, le cas se présente depuis un Windows 98, des Ubuntu fraîchement installées et jamais depuis XP.
Ce matin, j'ai désactivé cette règle (et la chaîne qui va avec) - j'attends le retour d'une classe pour savoir si "le web ne rame plus" puis modifier pour de bon la conf.
Alors ? utile ? pas utile ? une autre explication du problème ?
Y'a-t-il quelque chose à faire côté /proc/sys/net/ipv4/conf/*/[send|receive|accept|gnagnagna]_*
Merci de votre aide