Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

iptables DROP ACK PSH FIN URGP=0

2 réponses
Avatar
johndekalb
bonjour,

j'ai un script iptables qui fonctionne correctement sur une paserelle
sauf pour une règle qui est dropée alors que je l'autorise.

Soit:
$IPTABLES -t nat -A POSTROUTING -p tcp -m mport --dport 4661,4662,4242
-s $LANNET -o $EXTIF -j MASQUERADE
$IPTABLES -A FORWARD -i $LANIF -o $EXTIF -s $LANNET -p tcp -m mport
--dport 4661,4662,4242 -m state --state NEW,ESTABLISHED,RELATED -j
ACCEPT
$IPTABLES -A FORWARD -i $LANIF -o $EXTIF -s $LANNET -p tcp -m mport
--dport 4661,4662,4242 -m state --state NEW,ESTABLISHED,RELATED -j
ACCEPT
$IPTABLES -A FORWARD -i $LANIF -o $EXTIF -j LOG --log-prefix "[DROP
LAN > Internet]"
$IPTABLES -A FORWARD -i $LANIF -o $EXTIF -j DROP

Donc je veux laisser sortir le port 4662 depuis LANIF vers EXTIF.
Mais les logs indiquent:
[DROP LAN > Internet] IN=eth1 OUT=ppp0 SRC=192.168.0.20
DST=200.67.51.238 LEN=65 TOS=0x00 PREC=0x00 TTL=127 ID=44089 DF
PROTO=TCP SPT=4662 DPT=60102 WINDOW=64015 RES=0x00 ACK PSH URGP=0

Et dans les logs quand j'ai des paquets drop ou reject je n'ai que SYN
URGP=0 tandis que là j'ai ACK PSH FIN URGP=0

J'ai relu (mal ?) la doc iptables sur les flags concernant les paquets
et cela n'est pas clair pour moi.
Si qq a une idée pour laisser sortir ces paquets, je suis preneur. De
meme toute url expliquant cela clairement m'intéresse.

Merci de vos réponsess.
John

2 réponses

Avatar
Cedric Blancher
Dans sa prose, John nous ecrivait :
$IPTABLES -t nat -A POSTROUTING -p tcp -m mport --dport 4661,4662,4242 -s
$LANNET -o $EXTIF -j MASQUERADE
$IPTABLES -A FORWARD -i $LANIF -o $EXTIF -s $LANNET -p tcp -m mport
--dport 4661,4662,4242 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -i $LANIF -o $EXTIF -s $LANNET -p tcp -m mport
--dport 4661,4662,4242 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -i $LANIF -o $EXTIF -j LOG --log-prefix "[DROP LAN >
Internet]"
$IPTABLES -A FORWARD -i $LANIF -o $EXTIF -j DROP


Toutes les règles que je vois là attendent des paquets à _destination_
des ports 4661, 4662 et 4242.

Donc je veux laisser sortir le port 4662 depuis LANIF vers EXTIF. Mais
les logs indiquent:
[DROP LAN > Internet] IN=eth1 OUT=ppp0 SRC2.168.0.20
DST 0.67.51.238 LENe TOS=0x00 PREC=0x00 TTL7 IDD089 DF
PROTO=TCP SPTF62 DPT`102 WINDOWd015 RES=0x00 ACK PSH URGP=0


Et là je vois un paquet avec le port 4662 comme port _source_. Du coup,
il est normal qu'il soit rejeté.

Et dans les logs quand j'ai des paquet drop ou reject je n'ai que SYN
URGP=0 tandis que là j'ai ACK PSH FIN URGP=0


C'est normal, c'est paquet de réponse, il a donc le bit ACK.

J'ai relu (mal ?) la doc iptables sur les flags concernant les paquets
et cela n'est pas clair pour moi.


Ce ne sont pas les flags le problème, c'est le fait que tu aies oublié
que dans un sens, le port 4662 est la destination, mais que dans l'autre
sens, il est la source.

Enfin, comme déjà précisé ici dans un autre thread, utiliser -m state
--state NEW,ESTABLISHED,RELATED revient à vraiment à ne pas se servir
des états puisque tous les paquets TCP ont forcément un de ces trois
états (les paquets TCP INVALID sont _très_ rares et sont en général
refusés par la couche IP de la machine).

--
MC> Le Nono de base est fourni sans l'option second degré.
apres la lecture de la reponse de Nono ! a ton post je me demande tout
simplement si il existe une version de base du Nono ! avec cerveau :))
-+- F in GNU : Neurone de tous les neuneux, unis toi -+-

Avatar
Samuel
Salut,

M'ont l'air un peu étranges tes règles ... voici les miennes pour t'en
inspirer :
(on peut raccourcir, mais là c'est bien détaillé !)

#iptables -A FORWARD -i $wan -o $lan -p tcp --dport 4662 --sport
1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT
#iptables -A FORWARD -i $lan -o $wan -p tcp --sport 4662 --dport
1024:65535 -m state --state ESTABLISHED -j ACCEPT
#iptables -A FORWARD -i $wan -o $lan -p tcp --sport 4662 --dport
1024:65535 -m state --state ESTABLISHED -j ACCEPT
#iptables -A FORWARD -i $lan -o $wan -p tcp --dport 4662 --sport
1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT
#iptables -A FORWARD -i $wan -o $lan -p tcp --sport 4242 --dport
1024:65535 -m state --state ESTABLISHED -j ACCEPT
#iptables -A FORWARD -i $lan -o $wan -p tcp --dport 4242 --sport
1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT
#iptables -A FORWARD -i $wan -o $lan -p udp --sport 4672 --dport
1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT
#iptables -A FORWARD -i $lan -o $wan -p udp --dport 4672 --sport
1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT
#iptables -A FORWARD -o $wan -i $lan -p tcp --dport 4661 --sport
1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT
#iptables -A FORWARD -o $lan -i $wan -p tcp --sport 4661 --dport
1024:65535 -m state --state ESTABLISHED -j ACCEPT
#iptables -A FORWARD -o $wan -i $lan -p udp --dport 4665 --sport
1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT
#iptables -A FORWARD -o $lan -i $wan -p udp --sport 4665 --dport
1024:65535 -m state --state ESTABLISHED -j ACCEPT

A+
Samuel.