· 2 min de lecture · #linux #securite #nftables · dir: Sysadmin
Aide-mémoire nftables
Mémo pratique récapitulant les commandes essentielles pour administrer les tables, chaînes et règles nftables sous Debian.
Mémo pour récapituler les commandes à utiliser pour gérer nftables sous Debian.
Note : Ce mémo va être réécrit prochainement.
1. Types de tables
- ip
- ip6
- inet ⇒ préférer ce type, qui prend en charge ipv6 et ipv4.
- arp
- bridge
- netdev
2. Créer une table
nft add table <type> <ma_table>3. Supprimer une table
nft delete table <type> <ma_table>4. Ajouter une chaîne
Par sécurité, on va définir une politique par défaut en “policy drop” (tout est droppé par défaut) :
nft add chain <type> <ma_table> <ma_chaîne_1> { type filter hook input priority 0 \; policy drop \; }nft add chain <type> <ma_table> <ma_chaîne_2> { type filter hook output priority 0 \; }nft add chain <type> <ma_table> <ma_chaîne_1> { type nat hook prerouting priority 0 \; }nft add chain <type> <ma_table> <ma_chaîne_2> { type nat hook postrouting priority 0 \; }5. Supprimer une chaîne
nft delete chain <type> <ma_table> <ma_chaîne>6. Ajouter une règle
nft add rule <type> <ma_table> <ma_chaîne_1> ip daddr <ip-destination> ip saddr <ip-source> acceptnft add rule <type> <ma_table> <ma_chaîne_2> ip daddr <ip-destination> ip saddr <ip-source> acceptnft add rule <type> <ma_table> <ma_chaîne> tcp dport 80 acceptnft add rule <type> <ma_table> <ma_chaîne> drop7. Lister les règles avec leur id
nft -a list table <type> <ma_table>8. Supprimer une règle
nft delete rule <type> <ma_table> <ma_chaîne> handle <numéro-id-règle>9. Positionner une règle par rapport à un handle
Après la position :
nft add rule <type> <ma_table> <ma_chaîne_1> position <numéro-id-règle> ip daddr <ip-destination> ip saddr <ip-source> acceptAvant la position :
nft insert rule <type> <ma_table> <ma_chaîne_1> position <numéro-id-règle> ip daddr <ip-destination> ip saddr <ip-source> accept10. Autoriser les connexions entrantes si elles ont été initialisées avant
nft add rule <type> <ma_table> <ma_chaîne_input> ct state established,related acceptCette règle de suivi d’état doit être placée en tout début de chaîne, immédiatement accompagnée de l’autorisation du trafic local.
# À placer impérativement au début de la chaîne input
nft insert rule <type> <ma_table> <ma_chaîne_input> iifname "lo" accept
nft insert rule <type> <ma_table> <ma_chaîne_input> ct state established,related accept11. Exporter les données
nft list ruleset > <mon_fichier.txt>12. Persistance et chargement sous Debian
Sous Debian, le fichier chargé automatiquement au démarrage par Systemd est /etc/nftables.conf.
Voici comment l’activer (soyez sûr de ne pas vous softlock hors de votre machine !) :
# Sauvegarder la configuration active
nft list ruleset > /etc/nftables.conf
# Tester la syntaxe du fichier avant rechargement
nft -c -f /etc/nftables.conf
# Activer et démarrer le service nftables
systemctl enable --now nftables