Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| 130netfilter:30-nftables [le 05/04/2025 à 13:01] – [Vérification] prof | 130netfilter:30-nftables [le 04/10/2025 à 16:00] (Version actuelle) – [Nftables] prof | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| ====== Nftables ====== | ====== Nftables ====== | ||
| - | Le couple Netfilter/ | + | Le couple Netfilter/ |
| Nftables, apparu depuis le kernel 3.13 en 2014, reprend toutes les idées accumulées dans le projet iptables, en les organisant de façon plus cohérente, avec un code entièrement revu. | Nftables, apparu depuis le kernel 3.13 en 2014, reprend toutes les idées accumulées dans le projet iptables, en les organisant de façon plus cohérente, avec un code entièrement revu. | ||
| Ligne 309: | Ligne 309: | ||
| </ | </ | ||
| Le système a rajouté les chaînes INPUT et FORWARD qui restent vides dans notre cas (trop) simple. En effet, il a été omis d' | Le système a rajouté les chaînes INPUT et FORWARD qui restent vides dans notre cas (trop) simple. En effet, il a été omis d' | ||
| - | ==== Franchir le Rubicon ==== | ||
| - | Il faut maintenant activer le service '' | ||
| - | systemctl enable nftables.service | ||
| - | systemctl start nftables.service | ||
| - | apt purge iptables | ||
| - | En français: | ||
| - | * activer le service nftables sur systemd, | ||
| - | * démarrer ce service, | ||
| - | * virer tout ce qu' | ||
| - | Autrement-dit, | ||
| - | ==== Ajustement utile ==== | ||
| - | Par curiosité, regardons ce que fait le service «nftables» de systemd. Le script se trouve dans ''/ | ||
| - | < | ||
| - | < | ||
| - | [Unit] | ||
| - | Description=nftables | ||
| - | Documentation=man: | ||
| - | Wants=network-pre.target | ||
| - | Before=network-pre.target shutdown.target | ||
| - | Conflicts=shutdown.target | ||
| - | DefaultDependencies=no | ||
| - | |||
| - | [Service] | ||
| - | Type=oneshot | ||
| - | RemainAfterExit=yes | ||
| - | StandardInput=null | ||
| - | ProtectSystem=full | ||
| - | ProtectHome=true | ||
| - | <span class=" | ||
| - | ExecReload=/ | ||
| - | <span class=" | ||
| - | |||
| - | [Install] | ||
| - | WantedBy=sysinit.target | ||
| - | </ | ||
| - | |||
| - | * au démarrage (//ou au re-démarrage// | ||
| - | * à l' | ||
| - | Il revient donc à l' | ||
| - | |||
| - | Si l'on recharge le fichier de configuration, | ||
| - | - copier le fichier original dans ''/ | ||
| - | - modifier cette copie en fonction des besoins. Ainsi | ||
| - | < | ||
| - | <b>cp / | ||
| - | </ | ||
| - | puis modifier cette copie comme ceci: | ||
| - | < | ||
| - | [Unit] | ||
| - | Description=nftables | ||
| - | Documentation=man: | ||
| - | Wants=network-pre.target | ||
| - | Before=network-pre.target shutdown.target | ||
| - | Conflicts=shutdown.target | ||
| - | DefaultDependencies=no | ||
| - | |||
| - | [Service] | ||
| - | Type=oneshot | ||
| - | RemainAfterExit=yes | ||
| - | StandardInput=null | ||
| - | ProtectSystem=full | ||
| - | ProtectHome=true | ||
| - | <span class=" | ||
| - | ExecStart=/ | ||
| - | < | ||
| - | ExecReload=/ | ||
| - | ExecStop=/ | ||
| - | |||
| - | [Install] | ||
| - | WantedBy=sysinit.target | ||
| - | </ | ||
| - | De cette manière, lorsque l' | ||
| - | ===== Vérification ===== | ||
| - | Il reste à confirmer que tout ceci fonctionne comme prévu. Après redémarrage du prototype: | ||
| - | < | ||
| - | < | ||
| - | ● nftables.service - nftables | ||
| - | < | ||
| - | | ||
| - | ... | ||
| - | < | ||
| - | table inet filter { | ||
| - | chain input { | ||
| - | type filter hook input priority filter; policy accept; | ||
| - | } | ||
| - | |||
| - | chain forward { | ||
| - | type filter hook forward priority filter; policy accept; | ||
| - | } | ||
| - | |||
| - | chain output { | ||
| - | type filter hook output priority filter; policy accept; | ||
| - | } | ||
| - | } | ||
| - | table ip filter { | ||
| - | chain INPUT { | ||
| - | type filter hook input priority filter; policy drop; | ||
| - | tcp dport 23 counter packets 661 bytes 35402 accept | ||
| - | UDP dport 68 counter packets 428 bytes 34245 accept | ||
| - | ct state established, | ||
| - | } | ||
| - | |||
| - | chain FORWARD { | ||
| - | type filter hook forward priority filter; policy accept; | ||
| - | } | ||
| - | |||
| - | chain OUTPUT { | ||
| - | type filter hook output priority filter; policy accept; | ||
| - | } | ||
| - | } | ||
| - | table ip6 filter { | ||
| - | chain INPUT { | ||
| - | type filter hook input priority filter; policy drop; | ||
| - | tcp dport 23 counter packets 0 bytes 0 accept | ||
| - | ct state established, | ||
| - | } | ||
| - | |||
| - | chain FORWARD { | ||
| - | type filter hook forward priority filter; policy accept; | ||
| - | } | ||
| - | |||
| - | chain OUTPUT { | ||
| - | type filter hook output priority filter; policy accept; | ||
| - | } | ||
| - | } | ||
| - | </ | ||
| - | Reste à étudier la nouvelle syntaxe de manière à oublier Iptables. | ||
Nftables: Dernière modification le: 05/04/2025 à 13:01 par prof