You've already forked firewall
73 lines
2.1 KiB
Markdown
73 lines
2.1 KiB
Markdown
# firewall
|
|
|
|
Role Ansible pour déployer un pare-feu iptables/ip6tables via un script shell et un service systemd.
|
|
|
|
## Prérequis
|
|
|
|
- Distribution Debian/Ubuntu (gestion des paquets via apt)
|
|
- Privilèges root (become: true)
|
|
- Fact gathering activé (utilisé pour l'interface réseau par défaut)
|
|
|
|
## Comportement
|
|
|
|
- Installe iptables
|
|
- Déploie le script [templates/firewall.j2](templates/firewall.j2)
|
|
- Déploie le service systemd [files/firewall.service](files/firewall.service)
|
|
- Active et démarre le service firewall
|
|
|
|
## Variables
|
|
|
|
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.
|
|
- firewall_public_tcp_ports_ipv6: ports TCP IPv6 ouverts publiquement.
|
|
|
|
## Exemple d'inventaire
|
|
|
|
```yaml
|
|
firewall_admin_sources:
|
|
- 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"
|
|
|
|
firewall_public_tcp_ports_ipv4:
|
|
- 22
|
|
- 80
|
|
- 443
|
|
|
|
firewall_public_tcp_ports_ipv6:
|
|
- 80
|
|
- 443
|
|
```
|
|
|
|
## Exemple de playbook
|
|
|
|
```yaml
|
|
- name: Configure 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.
|
|
- Après un start/reload du firewall, fail2ban est relancé s'il est présent afin de réappliquer les chaînes f2b.
|
|
|