Je crée alors ces deux règles :
iptables -A INPUT -p tcp --dport 80 -s 172.31.100.144 -j LOG --log-prefix "BASIC INPUT "
iptables -A INPUT -p tcp --dport 80 -s 172.31.100.144 -m state --state RELATED,ESTABLISHED -j LOG --log-prefix "STATE INPUT "
J'ai juste repris le même type de règle que Philippe (dans son message
du 7 juin à 18h16) sauf que :
* j'ai pris une autre IP source (qui correspond à l'IP d'une VM sur
mon réseau local 172.31.0.0/16)
* j'ai changé l'action. Au lieu de faire un DROP comme Philippe, je me
contente simplement de journaliser les paquets qui matchent les
règles avec un préfixe différent pour les différencier dans le log.
Une fois que tout ça est en place, je me rends sur la machine
dont l'IP est 172.31.100.144 et je me contente de visiter une fois
moment je regarde le fichier de log /var/log/kern.log du serveur
apache2 et voici toutes les lignes que j'obtiens au moment de
la visite de la page web :
[ 3082.346423] BASIC INPUT IN=eth1 SRC="" DST=172.31.0.1 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=60953 DF PROTO=TCP SPT=58402 DPT=80 WINDOW=14600 RES=0x00 SYN URGP=0·
[ 3082.346697] BASIC INPUT IN=eth1 SRC="" DST=172.31.0.1 LEN=52 TOS=0x00 PREC=0x00 TTL=64 ID=60954 DF PROTO=TCP SPT=58402 DPT=80 WINDOW=913 RES=0x00 ACK URGP=0·
[ 3082.346704] STATE INPUT IN=eth1 SRC="" DST=172.31.0.1 LEN=52 TOS=0x00 PREC=0x00 TTL=64 ID=60954 DF PROTO=TCP SPT=58402 DPT=80 WINDOW=913 RES=0x00 ACK URGP=0·
[ 3082.357986] BASIC INPUT IN=eth1 SRC="" DST=172.31.0.1 LEN=372 TOS=0x00 PREC=0x00 TTL=64 ID=60955 DF PROTO=TCP SPT=58402 DPT=80 WINDOW=913 RES=0x00 ACK PSH URGP=0·
[ 3082.357994] STATE INPUT IN=eth1 SRC="" DST=172.31.0.1 LEN=372 TOS=0x00 PREC=0x00 TTL=64 ID=60955 DF PROTO=TCP SPT=58402 DPT=80 WINDOW=913 RES=0x00 ACK PSH URGP=0·
[ 3082.358973] BASIC INPUT IN=eth1 SRC="" DST=172.31.0.1 LEN=52 TOS=0x00 PREC=0x00 TTL=64 ID=60956 DF PROTO=TCP SPT=58402 DPT=80 WINDOW=980 RES=0x00 ACK URGP=0·
[ 3082.358980] STATE INPUT IN=eth1 SRC="" DST=172.31.0.1 LEN=52 TOS=0x00 PREC=0x00 TTL=64 ID=60956 DF PROTO=TCP SPT=58402 DPT=80 WINDOW=980 RES=0x00 ACK URGP=0·
[ 3087.360441] BASIC INPUT IN=eth1 SRC="" DST=172.31.0.1 LEN=52 TOS=0x00 PREC=0x00 TTL=64 ID=60957 DF PROTO=TCP SPT=58402 DPT=80 WINDOW=980 RES=0x00 ACK FIN URGP=0·
[ 3087.360448] STATE INPUT IN=eth1 SRC="" DST=172.31.0.1 LEN=52 TOS=0x00 PREC=0x00 TTL=64 ID=60957 DF PROTO=TCP SPT=58402 DPT=80 WINDOW=980 RES=0x00 ACK FIN URGP=0·
[ 3087.360968] BASIC INPUT IN=eth1 SRC="" DST=172.31.0.1 LEN=52 TOS=0x00 PREC=0x00 TTL=64 ID=60958 DF PROTO=TCP SPT=58402 DPT=80 WINDOW=980 RES=0x00 ACK URGP=0·
[ 3087.360975] STATE INPUT IN=eth1 SRC="" DST=172.31.0.1 LEN=52 TOS=0x00 PREC=0x00 TTL=64 ID=60958 DF PROTO=TCP SPT=58402 DPT=80 WINDOW=980 RES=0x00 ACK URGP=0·
J'ai juste enlevé quelques champs (comme le champ MAC par exemple)
pour écourter un peu les lignes. En regardant le champ ID des
paquets et en regardant le préfixe ("BASIC INPUT" ou "STATE INPUT"),
on peut constater que tout paquet qui a été matché par la règle
« STATE INPUT » (la règle 2) l'a été également avec la règle « BASIC
INPUT » (la règle 1). Pour moi, cela confirme bien le fait que la
règle :
iptables -A INPUT -p tcp --dport 80 -s 172.31.100.144 -j DROP
va faire un DROP sur tous les paquets destinés à un processus
local (correspondant à du tcp, dont le port de destination vaut 80 et
l'IP source est 172.31.100.144) et cela quel que soit l'état de la
connexion indiqué dans l'entête tcp (donc même pour des paquets
correspondant à une connexion déjà établie).
Voilà. Si je me suis planté, alors toutes mes excuses, je lirais avec
grand intérêt les explications qu'on me donnera.
Bon dimanche à tous.
--
François Lafont
--
Lisez la FAQ de la liste avant de poser une question :
Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"