handle docker rules & templatize custom rules

This commit is contained in:
Ludovic Cartier
2026-05-27 19:13:33 +02:00
parent 9304fdc851
commit 6ced9cbcfa
3 changed files with 91 additions and 31 deletions
+21 -17
View File
@@ -20,6 +20,7 @@ Role Ansible pour déployer un pare-feu iptables/ip6tables via un script shell e
Variables par défaut dans [defaults/main.yml](defaults/main.yml).
- firewall_public_interface: interface publique pour les logs optionnels. Si null, utilise ansible_default_ipv4.interface.
- firewall_docker_safe: préserve les chaînes Docker lors d'un restart du firewall.
- firewall_admin_sources: liste des CIDR autorisés sur les services admin.
- firewall_admin_rules_ipv4: liste des règles IPv4 limitées aux sources admin.
- firewall_public_tcp_ports_ipv4: ports TCP IPv4 ouverts publiquement.
@@ -29,39 +30,42 @@ Variables par défaut dans [defaults/main.yml](defaults/main.yml).
```yaml
firewall_admin_sources:
- cidr: "203.0.113.10/32"
comment: "bastion"
- cidr: "203.0.113.10/32"
comment: "bastion"
firewall_docker_safe: true
firewall_admin_rules_ipv4:
- proto: "udp"
dport: 51820
comment: "wireguard"
- proto: "tcp"
dport: 22
comment: "ssh admin"
- proto: "udp"
dport: 51820
comment: "wireguard"
- proto: "tcp"
dport: 22
comment: "ssh admin"
firewall_public_tcp_ports_ipv4:
- 22
- 80
- 443
- 22
- 80
- 443
firewall_public_tcp_ports_ipv6:
- 80
- 443
- 80
- 443
```
## Exemple de playbook
```yaml
- name: Configure firewall
hosts: all
become: true
roles:
- role: firewall
hosts: all
become: true
roles:
- role: firewall
```
## Notes
- Le script applique une politique restrictive (DROP sur INPUT/OUTPUT/FORWARD) puis ouvre explicitement les flux requis.
- Toute erreur de syntaxe shell du template est validée avant déploiement via /bin/sh -n.
- En mode docker-safe, les chaînes Docker existantes sont préservées pour éviter de casser la connectivité des conteneurs au restart.