From 54ba7b6de4a3fb899e131e26629545216a7e1592 Mon Sep 17 00:00:00 2001 From: kleph Date: Thu, 5 Feb 2015 23:39:01 +0100 Subject: [PATCH] =?UTF-8?q?[articles]=20ajout=20du=20lien=20vers=20le=20sc?= =?UTF-8?q?h=C3=A9mas=20du=20parcours=20des=20paquets=20r=C3=A9seau=20dans?= =?UTF-8?q?=20netfilter?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- content/migration_nftables.mdown | 9 ++++++--- content/parade_peering_free.mdown | 5 +++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/content/migration_nftables.mdown b/content/migration_nftables.mdown index 5ae1f4c..bf23c49 100644 --- a/content/migration_nftables.mdown +++ b/content/migration_nftables.mdown @@ -42,13 +42,13 @@ iptables -t nat -o tun0 -A POSTROUTING -j MASQUERADE ``` ## nftables -On trouve un peu de documentation sur le net, en particulier sur le [wiki de nftables](http://wiki.nftables.org/wiki-nftables/index.php/Main_Page), ainsi que celui de [gentoo](http://wiki.gentoo.org/wiki/Nftables) et d'[archlinux](https://wiki.archlinux.org/index.php/Nftables) +On trouve un peu de documentation sur le net, en particulier sur le [wiki de nftables][1], ainsi que celui de [gentoo][2] et d'[archlinux][3] Parmis les changements notables dès que l'on commence à se documenter, il y a le fait que les tables et les chaînes classiques d'iptables ne sont pas créées par défaut. Il faut donc les déclarer, et comme il n'y a pas de chaînes, il n'y a pas non plus de politique par défaut. La masquarade est un cas particulier de source NAT, l'adresse source n'est pas définie explicitement dans la règle. C'est l'adresse de l'interface de sortie qui va remplacer à la volée celle d'origine des paquets. Le choix est donc fait une fois la décision de routage prise, et s'opère donc en `postrouting`. -[TODO lien vers le parcours au travers de netfilter] +Pour rappel, voici le schémas du [parcours d'un paquet réseau au travers de netfilter][4]. Comme les chaînes n'existent pas par défault, il faut aussi rajouter celle qui va venir s'accrocher au hook `prerouting` de netfilter, pour que le remplacement inverse soit effectué lorsque les paquets reviendront. Voici donc ce que ça donne : @@ -91,4 +91,7 @@ echo "1" > /proc/sys/net/ipv4/ip_forward ``` - +[1]: http://wiki.nftables.org/wiki-nftables/index.php/Main_Page +[2]: http://wiki.gentoo.org/wiki/Nftables +[3]: https://wiki.archlinux.org/index.php/Nftables +[4]: http://upload.wikimedia.org/wikipedia/commons/3/37/Netfilter-packet-flow.svg diff --git a/content/parade_peering_free.mdown b/content/parade_peering_free.mdown index c885f29..e59c76d 100644 --- a/content/parade_peering_free.mdown +++ b/content/parade_peering_free.mdown @@ -29,7 +29,7 @@ Une fois ces paquets marqués, avec la marque /0x9/, ils vont être interceptés NOTE: Ici, j'utilise la chaîne **OUTPUT**, parce que la connexion est initialisée depuis la machine. Pour appliquer la marque aux paquets provenant d'une connexion routée par cette machine, il faut utiliser la chaîne **PREROUTING** (Voir plus bas). # Les tables de routage du noyau linux -En plus de la table de routage principale que l'on obtient avec la commande "ip route", le noyau linux comporte d'autres tables. Je ne les décrirai pas en détail ici, le [LARTC][2] le fait déjà. +En plus de la table de routage principale que l'on obtient avec la commande "ip route", le noyau linux comporte d'autres tables. Je ne les décrirai pas en détail ici, le [LARTC][2] le fait déjà (et en français, [ici][3]). Sachez juste qu'il est possible de rajouter des tables, en plus de la table "main", et que le fichier `/etc/iproute2/rt_tables` permet de nommer ces tables pour rendre plus explicite les n°. Vous verez d'ailleurs que ce fichier contient déjà des alias vers les tables par défaut. @@ -54,7 +54,7 @@ NOTE: Les marques sont locales à la machine et ne sont pas transmises sur le r ## Sur la passerelle VPN Cette passerelle me sert aussi de point d'accès wifi, avec la passerelle par défaut normale. -J'ai donc ajouté le même script en modifiant l'IP de destination pour forcer ce type de trafic à passer par le VPN, une adresse en 10.0.0.1 chez moi. Dans la chaine PREROUTING cette fois car le traffic d'origine n'est pas local (cf TODO: lien vers le cheminement dans les tables d'iptables) +J'ai donc ajouté le même script en modifiant l'IP de destination pour forcer ce type de trafic à passer par le VPN, une adresse en 10.0.0.1 chez moi. Dans la chaine PREROUTING cette fois car le traffic d'origine n'est pas local (cf. [Parcours des paquets dans netfilter][4]) # Le script Voici le script que j'utilise pour faire tout ça. Finalement il est plutôt simple. @@ -83,6 +83,7 @@ Les quelques liens cités dans cet article. [1]: http://www.inetdoc.net/guides/iptables-tutorial/marktarget.html "MARK target" [2]: http://lartc.org/howto/lartc.rpdb.multiple-links.html "LARTC" [3]: http://www.inetdoc.net/guides/lartc/lartc.rpdb.multiple-links.html) "LARTC fr" +[4]: http://upload.wikimedia.org/wikipedia/commons/3/37/Netfilter-packet-flow.svg