Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
pratique:informatique:parefeu:nftables [06/06/2025 13:33] – [Sur hyperviseur exposé sur internet] Zatalyzpratique:informatique:parefeu:nftables [27/08/2026 14:09] (Version actuelle) – [Vérification et mise en place] Zatalyz
Ligne 11: Ligne 11:
 Plus d'infos ici : https://wiki.nftables.org/wiki-nftables/index.php/Moving_from_iptables_to_nftables Plus d'infos ici : https://wiki.nftables.org/wiki-nftables/index.php/Moving_from_iptables_to_nftables
  
 +Comment savoir ce qu'il y a sur le serveur ? Simplement en essayant les commandes ''nft'' et ''iptables'' (et autant tester deux autres classiques frontend). Si elles existent, ça répond vite à la question. 
 +<code>
 +sudo nft list ruleset
 +sudo iptables -L -n
 +sudo ufw status
 +sudo firewall-cmd --state
 +</code>
 +
 +La commande suivante indique ce que la commande iptable fait réellement : 
 +  sudo update-alternatives --display iptables
 +
 +La réponse sera certainement : 
 +
 +<code>iptables - mode automatique
 +  le lien de la meilleure version est /usr/sbin/iptables-nft
 + le lien pointe actuellement sur /usr/sbin/iptables-nft
 +  le lien iptables est /usr/sbin/iptables
 +  le lien secondaire iptables-restore est /usr/sbin/iptables-restore
 +  le lien secondaire iptables-save est /usr/sbin/iptables-save
 +/usr/sbin/iptables-legacy - priorité 10
 + lien secondaire iptables-restore : /usr/sbin/iptables-legacy-restore
 + lien secondaire iptables-save : /usr/sbin/iptables-legacy-save
 +/usr/sbin/iptables-nft - priorité 20
 + lien secondaire iptables-restore : /usr/sbin/iptables-nft-restore
 + lien secondaire iptables-save : /usr/sbin/iptables-nft-save</code>
 +
 +=> cela indique que ''iptable'' essayera de fonctionner en mode surcouche à nft. **Ça ne veux pas dire que le paquet permettant de gérer nft directement est installé**, cependant. 
 +
 +<code>sudo apt update
 +sudo apt install nftables</code>
 ===== nftables.conf ===== ===== nftables.conf =====
 Ce fichier ''/etc/nftables.conf'' est un peu l'équivalent du fichier  de conf de "iptable-persistant". Il faut quand même déclarer qu'il faut le charger automatiquement, mais une fois fait, il va lire les règles là lors du redémarrage du serveur.  Ce fichier ''/etc/nftables.conf'' est un peu l'équivalent du fichier  de conf de "iptable-persistant". Il faut quand même déclarer qu'il faut le charger automatiquement, mais une fois fait, il va lire les règles là lors du redémarrage du serveur. 
Ligne 458: Ligne 488:
         # Autoriser msmtp à envoyer ses mails         # Autoriser msmtp à envoyer ses mails
         tcp dport { 25, 465, 587 } ct state new,established accept         tcp dport { 25, 465, 587 } ct state new,established accept
 +        # Autoriser NTP
 + udp dport { 53, 123 } ct state new,established accept
         # Log de ce qui est bloqué         # Log de ce qui est bloqué
         log prefix "[NFT OUTPUT DROP] " flags all drop         log prefix "[NFT OUTPUT DROP] " flags all drop
Ligne 501: Ligne 533:
   * -f : indique le fichier à lire (ici l'emplacement par défaut sur debian).    * -f : indique le fichier à lire (ici l'emplacement par défaut sur debian). 
  
-Une fois qu'on a configuré son fichier +Avant de redémarrer, une astuce utile de glorf : mettre ce bout dans son ''.bashrc'' :  
-  sudo systemctl enable nftables.service +<code>function test_nftables { 
-  sudo service nftables start+    systemctl restart nftables || systemctl status nftables 
 +    echo "post" 
 +    read -p "press any key, or nft will be flushed" -t 30 
 +    if [ $? -eq 0 ]; then 
 +        echo -e "\nKeeping nft ruleset" 
 +    else 
 +        echo -e "\nRemoving nft ruleset" 
 +        nft flush ruleset 
 +    fi 
 +}</code> 
 + 
 +Puis l'appeler avec la commande ''test_nftables'' (potentiellement en étant déjà root. C'est l'équivalent de ''sudo systemctl enable nftables.service && sudo service nftables start'' mais sans risque de s'autobannir en cas de souci.
  
  
Ligne 512: Ligne 555:
   nft -f /etc/nftables.conf   nft -f /etc/nftables.conf
  
 +Et pour les logs, si on a activé les [[pratique:informatique:systemd_error#avoir_des_vrais_journaux_de_log|logs lisibles]] (sinon, débrouillez vous avec journalctl) :
 +  tail -f /var/log/kern.log 
 +
 +==== Bannir ====
 Admirer en temps réel les bans ? Pour admirer le contenu d'un set (par exemple tempblock_v4), c'est  Admirer en temps réel les bans ? Pour admirer le contenu d'un set (par exemple tempblock_v4), c'est 
   sudo watch -n 1 'nft list set inet firewall tempblock_v4'   sudo watch -n 1 'nft list set inet firewall tempblock_v4'
  
-Et pour les logs, si on a activé les [[pratique:informatique:systemd_error#avoir_des_vrais_journaux_de_log|logs lisibles]] (sinon, débrouillez vous avec journalctl) +Pour bannir une ip en la mettant dans un set précis  
-  tail -f /var/log/kern.log +  sudo nft add element inet firewall blocklist_v4 { 1xx.1xx.1.1xx } 
 + 
 +  * ''add element'' c'est assez clair 
 +  * ''inet firewall'' parce que ma table s'appelle firewall 
 +  * ''blocklist_v4'' : le nom du set 
 + 
 +Pour voir l'état du set :  
 +  sudo nft list set inet firewall blocklist_v4 
 + 
 +Pour supprimer une seule ip du set :  
 +  sudo nft delete element inet firewall blocklist_v4 { 1xx.1xx.1.1xx } 
 + 
 +Pour vider tout le set :  
 +  sudo nft flush set inet firewall blocklist_v4
 ===== Sources ===== ===== Sources =====
  
pratique/informatique/parefeu/nftables.1749209611.txt.gz · Dernière modification : 06/06/2025 13:33 de Zatalyz