Le 19 juin 2014 10:04, Pascal Hambourg <pas...@plouf.fr.eu.org> a écrit :

> Olivier a écrit :
> >
> > J'ai un réseau dont le routeur principal est une machine sous Wheezy.
> >
> > Ce routeur effectue du NAT au profit d'utilisateurs d'un réseau WiFi.
> > Le NAT est implémenté par une règle IPtables du type:
> > iptables -t nat -A POSTROUTING -o ${WAN_IF} -j SNAT --to-source ${WAN_IP}
> >
> > J'observe dans les logs une multitude de lignes comme:
> >
> > Jun 18 16:19:57 foo kernel: [4670104.045210] Denied TCP: IN=eth0 OUT=
> > MAC=c0:3f:d5:60:36:37:40:5a:9b:bb:60:a1:08:00 SRC=157.55.235.149
> > DST=192.168.1.243 LEN=40 TOS=0x00 PREC=0x00 TTL=52 ID=55546 DF PROTO=TCP
> > SPT=40001 DPT=51296 WINDOW=35 RES=0x00 ACK FIN URGP=0
> >
> > Les adresses MAC visibles sont bien celles de ma destination et du
> routeur
> > source.
>
> Routeur source = la box, destination = le routeur Debian ?
>

oui c'est ça

>
> > J'interprète ces lignes de la façon suivante:
> >
> > - un utilisateur du WiFi émet une requête vers Internet,
> >
> > - l'IP source de la requête est modifiée par mon routeur sous Wheezy qui
> > enregistre au passage la correspondance dans une table avant d'envoyer la
> > requête modifiée au modem-routeur du lien ADSL (très chargé)
>
> Oui, excepté qu'il s'agit de paquets et non de requêtes. Netfilter et
> iptables ne savent pas ce qu'est une requête.
>

C'est vrai.

>
> > - si la réponse en provenance d'Internet est trop tardive (ou pour une
> > autre raison à identifier) alors IP tables ne retrouve l'entrée idoine
> dans
> > sa table de correspondance et écarte la réponse
>
> Pour être précis, le suivi de connexion de netfilter (conntrack) ne
> retrouve pas l'entrée qui a été effacée et classe donc le paquet dans
> l'état NEW ou INVALID, selon le protocole et le paquet. Ensuite le jeu
> de règles iptables en place fait le reste. En général il est écrit de
> sorte que les paquets dans l'état INVALID sont bloqués, ainsi que les
> paquets entrants dans l'état NEW ne correspondant pas à des services
> autorisés. Même sans ces règles, sur un routeur NAT, l'adresse finale
> étant perdue le paquet aurait été délivré à la machine locale qui n'est
> pas à l'origine de la connexion, et qui donc l'aurait écarté.
>
> Ici, on voit qu'il s'agit d'un paquet TCP FIN, signalant la fin d'une
> connexion TCP. Il peut s'agir d'un doublon d'une vieille connexion déjà
> terminée.
>

Intéressant !
cf plus bas.

>
> > Comment visualiser l'état des tables de NAT ?
>
> # cat /proc/net/nf_conntrack
>

Ca marche parfaitement !


> ou
> # conntrack -L
>

nécessite sans doute le paquet conntrack


>
> > Est-il possible-souhaitable d'augmenter la durée de rétention des
> > correspondance du NAT avec iptables ?
>
> On peut modifier différents délais via
> /proc/sys/net/netfilter/nf_conntrack_<protocol>/timeout_*. En ce qui
>

# ls /proc/sys/net/netfilter/nf_conntrack_tcp*
/proc/sys/net/netfilter/nf_conntrack_tcp_be_liberal
/proc/sys/net/netfilter/nf_conntrack_tcp_timeout_last_ack
/proc/sys/net/netfilter/nf_conntrack_tcp_loose
/proc/sys/net/netfilter/nf_conntrack_tcp_timeout_max_retrans
/proc/sys/net/netfilter/nf_conntrack_tcp_max_retrans
/proc/sys/net/netfilter/nf_conntrack_tcp_timeout_syn_recv
/proc/sys/net/netfilter/nf_conntrack_tcp_timeout_close
/proc/sys/net/netfilter/nf_conntrack_tcp_timeout_syn_sent
/proc/sys/net/netfilter/nf_conntrack_tcp_timeout_close_wait
/proc/sys/net/netfilter/nf_conntrack_tcp_timeout_time_wait
/proc/sys/net/netfilter/nf_conntrack_tcp_timeout_established
/proc/sys/net/netfilter/nf_conntrack_tcp_timeout_unacknowledged
/proc/sys/net/netfilter/nf_conntrack_tcp_timeout_fin_wait




> concerne TCP qui est un protocole "connecté", je ne ne crois pas qu'il y
> a lieu d'augmenter nf_conntrack_tcp_timeout_established qui vaut déjà 5
> jours.
>

Ca doit être ça car j'ai:
# cat /proc/sys/net/netfilter/nf_conntrack_tcp_timeout_established
432000


Cela signifie-t-il qu'en pratique, pour du TCP,, une entrée de la table du
NAT :
- est effacée dès que le routeur a reconnu une fin de connexion TCP
- est effacée après 5 jours si rien ne s'est passé pour cette connexion ?


>
> --
> Lisez la FAQ de la liste avant de poser une question :
> http://wiki.debian.org/fr/FrenchLists
>
> Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
> vers debian-user-french-requ...@lists.debian.org
> En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org
> Archive: https://lists.debian.org/53a2997e.1000...@plouf.fr.eu.org
>
>

Répondre à