[articles] Ajout de liens - corrections de typo sur l'article nftables

This commit is contained in:
kleph 2015-02-05 21:28:18 +01:00
parent 4fb38ca1d4
commit 2aacdec545

View file

@ -9,16 +9,17 @@ 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. C'est donc la première partie d'une série de 2 ou 3 articles.
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. 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. 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: ## iptables
Voici le script précédent que je vais remplacer : 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 : # On efface les règles définies :
iptables -t filter -F iptables -t filter -F
@ -40,18 +41,21 @@ iptables -t nat -o tun0 -A POSTROUTING -j MASQUERADE
``` ```
## Après ## nftables
On trouve un peu de documentation sur le net [TODO: liens]. 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 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. 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. 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. 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.
[TODO lien vers le fonctionnement d'iptables] Le choix est donc fait une fois la décision de routage prise, et s'opère donc en `postrouting`.
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. [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 : Voici donc ce que ça donne :
``` ```
#!/bin/bash :::bash
#!/bin/sh
# activate masquerade # activate masquerade
IF_OUTPUT=tun0 IF_OUTPUT=tun0
@ -71,7 +75,7 @@ nft flush ruleset
# masquerade # masquerade
nft add table nat 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\; } nft add chain nat prerouting { type nat hook prerouting priority 0\; }
# postrouting to translate source address # postrouting to translate source address