[articles] Ajout de liens - corrections de typo sur l'article nftables
This commit is contained in:
parent
4fb38ca1d4
commit
2aacdec545
1 changed files with 20 additions and 16 deletions
|
@ -7,18 +7,19 @@ Tags: Linux, Internet
|
||||||
Lang: fr
|
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
|
||||||
|
|
Loading…
Reference in a new issue