objectif
Autoriser rapidement un port en entrée (ex: 8080) le temps d’un test, sans perturber les autres règles.
code minimal
# créer table/chaîne si inexistantes
sudo nft add table inet filter 2>/dev/null || true
sudo nft 'add chain inet filter input { type filter hook input priority 0; policy drop; }' 2>/dev/null || true
# autoriser SSH (bonne pratique) et ESTABLISHED
sudo nft add rule inet filter input ct state established,related accept
sudo nft add rule inet filter input tcp dport 22 accept
# ouvrir temporairement 8080
sudo nft add rule inet filter input tcp dport 8080 accept
utilisation
# vérifier
sudo nft list ruleset | sed -n '/table inet filter/,$p' | sed -n '1,80p'
# tester depuis l'extérieur (depuis une autre machine)
nc -vz VOTRE_IP 8080
# retirer la règle (dernier handle pour 8080)
handle="$(sudo nft -a list chain inet filter input | awk '/dport 8080/ {print $(NF)}' | cut -d= -f2 | tail -1)"
[ -n "$handle" ] && sudo nft delete rule inet filter input handle "$handle"
variante(s) utile(s)
# n'autoriser que depuis un /24 précis
sudo nft add rule inet filter input ip saddr 198.51.100.0/24 tcp dport 8080 accept
# fenêtre temporelle (utiliser at/cron pour supprimer plus tard)
echo 'sudo nft delete rule inet filter input handle '"$handle" | at now + 15 minutes
notes
- travaillez sur une session distante avec prudence; gardez un accès de secours (console/ILO).
- sauvegardez/chargez les règles via
nft list ruleset > rules.nftetnft -f rules.nft. - préférez
inetpour des règles IPv4/IPv6 unifiées.