Paillasse/ansible/roles/durcissement/templates/nftables.conf.j2
Adam Belkacemi 87c8aac5f5 ajoute le réseau pour OpenStack : dummy0, paire veth, NAT restreint au réseau externe
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 11:40:34 +02:00

42 lines
1.5 KiB
Django/Jinja

#!/usr/sbin/nft -f
# Géré par Ansible (rôle durcissement) — ne pas modifier à la main.
# Politique : tout est refusé en entrée sauf loopback, trafic déjà établi,
# ICMP, et les ports {{ durcissement_ports_ouverts | join(', ') }}.
flush ruleset
table inet filter {
chain input {
type filter hook input priority 0; policy drop;
iif lo accept
ct state established,related accept
ct state invalid drop
ip protocol icmp accept
meta l4proto ipv6-icmp accept
tcp dport { {{ durcissement_ports_ouverts | join(', ') }} } accept
}
chain forward {
type filter hook forward priority 0; policy drop;
{% if reseau_veth_gw_subnet is defined %}
# Un seul sens autorisé : réseau externe OpenStack -> Internet (NAT),
# plus les réponses à ce trafic. Rien n'entre depuis Internet vers les
# réseaux internes ; tout le reste est refusé par la politique drop.
iifname "{{ reseau_veth_gw }}" oifname "{{ reseau_interface_publique }}" ip saddr {{ reseau_veth_gw_subnet }} accept
iifname "{{ reseau_interface_publique }}" oifname "{{ reseau_veth_gw }}" ct state established,related accept
{% endif %}
}
chain output {
type filter hook output priority 0; policy accept;
}
}
# Autres règles (NAT, etc.), déposées par d'autres rôles. Un glob sans fichier
# correspondant n'est pas une erreur pour nft : cette ligne ne casse rien tant
# que /etc/nftables.d/ est vide.
include "/etc/nftables.d/*.conf"