4 231
modifications
(Page créée avec « * iptables legacy : iptables-legacy* ip6tables-legacy* * iptables nftables : iptables-nft* ip6tables-nft*. Parse la syntaxe iptables, créé les commande nftables correspo... ») |
Aucun résumé des modifications |
||
(9 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
https://wiki.nftables.org/wiki-nftables/index.php/Quick_reference-nftables_in_10_minutes | |||
https://wiki.nftables.org/wiki-nftables/index.php/Configuring_chains | |||
* iptables legacy : iptables-legacy* ip6tables-legacy* | * iptables legacy : iptables-legacy* ip6tables-legacy* | ||
* iptables nftables : iptables-nft* ip6tables-nft*. Parse la syntaxe iptables, créé les commande nftables correspondantes. Utilises libnftnl (comme nft), ce n'est donc pas un "simple" convertisseur de syntaxe textuelle. | * iptables nftables : iptables-nft* ip6tables-nft*. Parse la syntaxe iptables, créé les commande nftables correspondantes. Utilises libnftnl (comme nft), ce n'est donc pas un "simple" convertisseur de syntaxe textuelle. | ||
* nftables : nft | * nftables : nft | ||
Les règles crées avec iptables-nft ou ip6tables-nft peuvent se retrouver avec nft. Par exemple, pour les règles filter (iptables-nft -t filter, qui est le fonctionnement "par défaut" de iptables-nft (et iptables-legacy)) ou nat : | |||
<pre> | |||
nft list table ip filter | |||
nft list table ip6 filter | |||
nft list table ip nat | |||
nft list table ip6 nat | |||
</pre> | |||
Lister les tables, une table spécifique, et la totalité du ruleset nftables : | |||
<pre> | |||
nft list tables | |||
nft list table <type> <name> | |||
nft list ruleset | |||
</pre> | |||
Exemple d'ajout de règles dans une table 'ipsec' qui se branche sur l'input et : | |||
* autorise le protocol ESP depuis l'ip source 90.115.19.124 | |||
* autorise le protocol UDP, ports 500 et 4500, depuis l'ip source 90.115.19.124 | |||
<pre> | |||
nft add table ip ipsec | |||
nft add chain ip ipsec INPUT '{ type filter hook input priority 0; policy accept; }' | |||
nft add rule ip ipsec INPUT iifname "ens192" ip protocol esp ip saddr 90.115.19.124 accept | |||
nft add rule ip ipsec INPUT iifname "ens192" ip protocol udp ip saddr 90.115.19.124 udp dport { 500,4500 } accept | |||
</pre> | |||
Flush et suppression d'une table : | |||
<pre> | |||
nft flush table <type> <name> | |||
nft delete table <type> <name> | |||
</pre> | |||
=Note sur l'ordre de processing= | |||
* Lorsque vous créez une chaîne, vous pouvez la brancher sur un hook. Par exemple, <code>type filter hook input priority 0; policy accept;</code> connecte la chaîne au hook input (paquets entrant sur le serveur), avec une priorité 0, et une policy (action par défaut) d'acceptation | |||
** La priorité permet d'ordonner plusieurs hooks entre elles. (-10 en premier, 0 en second, 10 en dernier, par exemple). | |||
* Sur une règle, un verdict accept provoque l'acceptation du paquet et l'arrêt du processing des règles, mais uniquement à l'intérieur d'une même chaîne lié à un hook. Si il y a plusieurs hook input, un paquet accepté dans un premier hook input sera également évalué dans les hooks input ultérieurs. | |||
* Un verdict drop provoque le drop instantané du paquet et l'arrêt de processing de toutes les règles y compris des hooks de priorité ultérieurs. | |||
* Exemple: si un paquet entrant (hook input) est accepté par une règle (ou une policy) dans une chaîne lié à un hook input de priority 0, mais qu'une autre règle (ou policy) existe dans une autre chaîne lié à un hook input de priorité ultérieure (priority 1 par exemple), le paquet sera évalué une seconde fois par cette deuxième chaîne. Si ce même paquet était matché dans le premier hook input de priority 0 par une règle drop, il serait droppé et non évalué par le deuxième hook de priority 1 (car il est droppé immédiatement). | |||
Exemple : | |||
<pre> | |||
table inet filter { | |||
# Cette chaîne est évaluée en premier suite à sa priorité de 0 | |||
chain ssh { | |||
type filter hook input priority 0; policy accept; | |||
# paquet SSH accepté par cette règle | |||
tcp dport ssh accept | |||
} | |||
# Cette chaîne est évaluée en dernier suite à sa priorité de 1 | |||
chain input { | |||
type filter hook input priority 1; policy drop; | |||
# Le même paquet SSH est droppé du fait de la policy par défaut de drop | |||
} | |||
} | |||
</pre> |