dubzland.shorewall
Dubzland : Shorewall
Installe et configure le constructeur de pare-feu Shorewall.
Exigences
Version d'Ansible 2.0 ou supérieure. Nécessite le package python netaddr
.
Variables de Rôle
Les variables disponibles sont répertoriées ci-dessous, avec leurs valeurs par défaut (voir defaults/main.yml
pour plus d'informations) :
dubzland_shorewall_conf
dubzland_shorewall_conf:
startup_enabled: "Oui"
verbosity: 1
log_level: '"info"'
log_martians: "Oui"
log_verbosity: 2
log_zone: Les deux
logfile: /var/log/shorewall
logformat: '"%s(%d) %s "'
Options à définir dans /etc/shorewall/shorewall.conf
. Les noms d'option peuvent être spécifiés en majuscules ou minuscules (ils seront écrits en majuscules dans le fichier). Voir la page de manuel shorewall.conf pour plus d'infos.
dubzland_shorewall_params
dubzland_shorewall_params: []
Liste des paires clé-valeur à écrire dans /etc/shorewall/params
. Pour plus d'informations sur l'utilisation des paramètres, voir la page de manuel params.
dubzland_shorewall_zones
dubzland_shorewall_zones:
- name: fw
type: pare-feu
- name: net
type: ipv4
- name: lan
type: ipv4
Zones à déclarer dans /etc/shorewall/zones
. Voir la page de manuel zones pour plus d'infos.
dubzland_shorewall_interfaces
dubzland_shorewall_interfaces:
- name: eth0
zone: net
options:
- tcpflags
- nosmurfs
- routefilter
- "sourceroute=0"
- name: eth1
zone: lan
options:
- tcpflags
- nosmurfs
- routefilter
Liste des interfaces à configurer pour Shorewall dans /etc/shorewall/interfaces
. Voir la page de manuel interfaces pour plus d'infos.
dubzland_shorewall_hosts
dubzland_shorewall_hosts: []
Spécifie les hôtes accessibles par le réseau, mais pas directement par la machine pare-feu.
dubzland_shorewall_policies
dubzland_shorewall_policies:
- source: "$FW"
dest: all
policy: ACCEPT
- source: net
dest: all
policy: REJECT
- source: all
dest: all
policy: REJECT
log_level: info
Politiques utilisées par Shorewall pour déterminer l'action par défaut à prendre pour un paquet donné en fonction de sa zone de passage. Voir la page de manuel policy pour plus d'infos.
dubzland_shorewall_snat
dubzland_shorewall_snat:
- action: MASQUERADE
dest: eth0
Configure SNAT/Masquerading pour iptables. Nécessaire si vous souhaitez effectuer une traduction d'adresse réseau (NAT) sur le trafic sortant. Voir la page de manuel snat pour plus d'infos.
dubzland_shorewall_rules
dubzland_shorewall_rules:
- section: NEW
rulesets:
- comment: PINGS
rules:
- action: Ping(ACCEPT)
source: all
dest: all
- comment: Trafic Web
rules:
- action: Web(ACCEPT)
source: $FW,lan
dest: net
La partie principale de ce rôle. Configure les règles que Shorewall utilisera pour déterminer comment gérer les paquets traversant ses interfaces surveillées. Voir la page de manuel rules pour plus d'infos.
Dépendances
Aucune.
Exemple de Playbook
Étant donné une machine avec 2 NICs (eth0
sur Internet, eth1
sur le LAN) :
- hosts: firewall
become: yes
roles:
- role: dubzland-shorewall
vars:
dubzland_shorewall_zones:
- name: fw
type: pare-feu
- name: net
type: ipv4
- name: lan
type: ipv4
dubzland_shorewall_interfaces:
- name: eth0
zone: net
options:
- tcpflags
- nosmurfs
- routefilter
- "sourceroute=0"
- name: eth1
zone: lan
options:
- tcpflags
- nosmurfs
- routefilter
dubzland_shorewall_policies:
- source: "$FW"
dest: all
policy: ACCEPT
- source: net
dest: all
policy: REJECT
- source: all
dest: all
policy: REJECT
log_level: info
dubzland_shorewall_snat:
- action: MASQUERADE
dest: eth0
dubzland_shorewall_rules:
- section: NEW
rulesets:
- comment: Pings
rules:
- action: Ping(ACCEPT)
source: all
dest: all
- comment: Navigation Web
rules:
- action: Web(ACCEPT)
source: lan
dest: net
- action: ACCEPT
source: lan
dest: net
proto: udp
dest_ports:
- 80
- 443
Cela permettrait à tout le monde de pinguer la machine pare-feu, et aux clients du LAN de pinguer des hôtes sur Internet. Tous les clients LAN pourraient également naviguer sur le web.
Licence
MIT