Récupérer les « états » d'un routeur sous Debian

Bonjour,

Dans le cadre professionnel, j’utilise des routeurs sous PFSense.
Dans l’interface, il est possible de lister ce qui est nommé « états », à savoir la liste des connexions qui passent pas le routeur

J’ai un routeur chez moi qui a des règles iptables et j’aimerai bien aussi récupérer la liste des connexions.
C’est sûr qu’elle existe car elle est utilisée pour le NAT et les règles utilisant le module state, comme :

-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

Est-ce que quelqu’un sait comment accéder à cette liste ?

Cela devrait être quelque chose d’approchant :

iptables -t nat -L à minima.

puisque FORWARDer des paquets, c’est faire de la NAT :wink:

┌ (almtesh@Lookout + 0) (15/09/21 - 12:19:19) (0.18 - 0%) (~)
└% sudo iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination
DNAT       tcp  --  anywhere             anywhere             tcp dpt:10001 to:10.255.1.2
DNAT       tcp  --  anywhere             anywhere             tcp dpt:8022 to:10.255.1.2

Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
MASQUERADE  all  --  anywhere             anywhere
MASQUERADE  all  --  anywhere             anywhere

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
┌ (almtesh@Lookout + 0) (15/09/21 - 12:19:56) (0.19 - 0%) (~)
└%

Je m’en doutais un peu, mais ce n’est pas ça.
J’ai lancé la commande pendant qu’un iperf en TCP sur IPv4 tourne d’une machine du réseau local vers un serveur sur l’Internet.
J’ai lancé l’iperf au cas où je n’ai pas de connexion en IPv4 active.

La table de suivi d’état de connexion de netfilter est dans /proc/net/nf_conntrack.
On peut aussi y accéder avec la commande conntrack du paquet éponyme.

Non. C’est faire suivre, transférer. La NAT, c’est autre chose et ce n’est pas pour rien que ça se passe dans deux tables différentes (d’ailleurs la table nat n’a pas de chaîne FORWARD).

EDIT: tu confonds peut-être avec l’expression « port forwarding » qui désigne une forme de NAT mais n’a rien à voir avec la chaîne FORWARD d’iptables ni la fonctionnalité « ip_forward » ou « forwarding » du noyau…

2 J'aime

Oui, la NAPT exactement, à moins que je ne me trompe encore…
NPAT : Network Address Port Translation. pour rediriger à la fois adresse et port vers une autre adresse et port cibles.

Soit !

euh, là, en mode très sceptique…
si tu n’actives pas le forwarding avec sysctl, qui affecte donc le noyau, je ne vois pas comment tu peux avoir de la redirection de paquets?

Il me semblait avoir compris que la N(P?)AT avait besoin de la fonctionnalité de redirection de paquets… mais bon, Linux est ses méandres.
Quand je fais du bridge pour des besoins de virtualisation, avec le « mode NAT », j’ai besoin de la redirection de paquets.

(sous OpenBSD, pas de NAT, sans redirection ; pas de virtualisation avec NAT, sans redirection - et c’est bien normal).

Dans netfilter, la NAT (DNAT, SNAT, REDIRECT, MASQUERADE, NETMAP…) ne fait que modifier l’adresse/port source/destination. C’est indépendant du routage qui intervient après la NAT destination et avant la NAT source. On peut très bien faire une redirection vers un port local, dans ce cas pas besoin de forwarding.