From 2aacdec54541c4ee51b34caf0bd8efa0153c5b16 Mon Sep 17 00:00:00 2001 From: kleph Date: Thu, 5 Feb 2015 21:28:18 +0100 Subject: [PATCH] [articles] Ajout de liens - corrections de typo sur l'article nftables --- content/migration_nftables.mdown | 36 ++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/content/migration_nftables.mdown b/content/migration_nftables.mdown index d1eae50..5ae1f4c 100644 --- a/content/migration_nftables.mdown +++ b/content/migration_nftables.mdown @@ -7,18 +7,19 @@ Tags: Linux, Internet Lang: fr -Un article qui va parler de la migration vers nftables de mon routeur. +Un article qui va parler de la migration vers nftables de mon routeur. -# premier test : masquarade -Avant de migrer le firewall du routeur principal, j'ai voulu commencer par plus petit. J'ai un VPN sur une autre machine qui fait de la masquarade en sortie. -Ce qui tombe assez bien, la masquarade vient d'être ajoutée dans la version 3.18 du noyau. +Avant de migrer le firewall du routeur principal, j'ai voulu commencer par plus petit. C'est donc la première partie d'une série de 2 ou 3 articles. +Une des machines de mon LAN utilise de la masquarade pour donner accès à une machine distante à travers un VPN. +Ce qui tombe assez bien, la masquarade vient d'être ajoutée dans la version 3.18 du noyau et cettte configuration simple est un bon exercice pour commencer. -## Avant: -Voici le script précédent que je vais remplacer : +## iptables +Voici le script précédent que je vais remplacer, c'est de la masquarade simple : ``` -#!/bin/bash +:::bash +#!/bin/sh # On efface les règles définies : iptables -t filter -F @@ -40,18 +41,21 @@ iptables -t nat -o tun0 -A POSTROUTING -j MASQUERADE ``` -## Après -On trouve un peu de documentation sur le net [TODO: liens]. -Parmis les changements notables dès le départ, c'est que les tables et les chaînes classiques d'iptables ne sont pas créées par défaut. Ainsi que le système de politique par défaut. -Il faut donc les déclarer. +## 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) +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. -Ensuite, la masquarade est un cas particulier de source NAT, l'adresse de remplacement n'est pas définie explicitement, mais c'est l'adresse de sortie qui est remplacée à la volée, une fois la décision de routage prise, donc dans la chaîne postrouting. -[TODO lien vers le fonctionnement d'iptables] -Du fait que les chaînes ne soient pas créer par défault, il faut aussi rajouter la chaîne prerouting, pour que la traduction inverse soit effectuée au retour des paquets. +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] +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 : + ``` -#!/bin/bash +:::bash +#!/bin/sh # activate masquerade IF_OUTPUT=tun0 @@ -71,7 +75,7 @@ nft flush ruleset # masquerade nft add table nat -# add prerouting to translate back the address when packets come back +# add prerouting to translate back the address when packets returns nft add chain nat prerouting { type nat hook prerouting priority 0\; } # postrouting to translate source address