dubzland.shorewall
Dubzland: Shorewall
Instala y configura el generador de cortafuegos Shorewall.
Requisitos
Versión 2.0 de Ansible o superior. Requiere el paquete netaddr
de Python.
Variables de Rol
Las variables disponibles se enumeran a continuación, junto con sus valores predeterminados (véase
defaults/main.yml
para más información):
dubzland_shorewall_conf
dubzland_shorewall_conf:
startup_enabled: "Sí"
verbosity: 1
log_level: '"info"'
log_martians: "Sí"
log_verbosity: 2
log_zone: Ambos
logfile: /var/log/shorewall
logformat: '"%s(%d) %s "'
Opciones que se deben establecer en /etc/shorewall/shorewall.conf
. Los nombres de las opciones pueden ser especificados en mayúsculas o minúsculas (se escribirán en mayúsculas en el archivo). Consulte la página del manual de shorewall.conf para más información.
dubzland_shorewall_params
dubzland_shorewall_params: []
Lista de pares clave-valor que se escribirán en /etc/shorewall/params
. Para más información sobre el uso de parámetros, consulte la página del manual de params.
dubzland_shorewall_zones
dubzland_shorewall_zones:
- name: fw
type: firewall
- name: net
type: ipv4
- name: lan
type: ipv4
Zonas que se declararán en /etc/shorewall/zones
. Consulte la página del manual de zones para más información.
dubzland_shorewall_interfaces
dubzland_shorewall_interfaces:
- name: eth0
zone: net
options:
- tcpflags
- nosmurfs
- routefilter
- "sourceroute=0"
- name: eth1
zone: lan
options:
- tcpflags
- nosmurfs
- routefilter
Lista de interfaces para las que se debe configurar shorewall en /etc/shorewall/interfaces
. Consulte la página del manual de interfaces para más información.
dubzland_shorewall_hosts
dubzland_shorewall_hosts: []
Especifica los hosts que son enrutables, pero no accesibles directamente, por la máquina del cortafuegos.
dubzland_shorewall_policies
dubzland_shorewall_policies:
- source: "$FW"
dest: all
policy: ACEPTAR
- source: net
dest: all
policy: RECHAZAR
- source: all
dest: all
policy: RECHAZAR
log_level: info
Políticas utilizadas por Shorewall para determinar la acción predeterminada a tomar para un paquete dado en función de su recorrido por zonas. Consulte la página del manual de policy para más información.
dubzland_shorewall_snat
dubzland_shorewall_snat:
- action: MASQUERADE
dest: eth0
Configura SNAT/Masquerading para iptables. Necesario si deseas realizar traducción de direcciones de red (NAT) en el tráfico saliente. Consulte la página del manual de snat para más información.
dubzland_shorewall_rules
dubzland_shorewall_rules:
- section: NEW
rulesets:
- comment: PINGS
rules:
- action: Ping(ACCEPT)
source: all
dest: all
- comment: Tráfico web
rules:
- action: Web(ACCEPT)
source: $FW,lan
dest: net
El núcleo de este rol. Configura las reglas que Shorewall utilizará para determinar cómo manejar los paquetes que atraviesen sus interfaces monitoreadas. Consulte la página del manual de rules para más información.
Dependencias
Ninguna.
Ejemplo de Playbook
Dada una máquina con 2 NICs (eth0
en internet, eth1
en la LAN):
- hosts: cortafuegos
become: yes
roles:
- role: dubzland-shorewall
vars:
dubzland_shorewall_zones:
- name: fw
type: firewall
- 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: ACEPTAR
- source: net
dest: all
policy: RECHAZAR
- source: all
dest: all
policy: RECHAZAR
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: Navegación web
rules:
- action: Web(ACCEPT)
source: lan
dest: net
- action: ACEPTAR
source: lan
dest: net
proto: udp
dest_ports:
- 80
- 443
Esto permitiría que todos pudieran hacer ping a la máquina cortafuegos, y los clientes de la LAN podrían hacer ping a los hosts en internet. Todos los clientes de la LAN también podrían navegar por la web.
Licencia
MIT
Autor
ansible-galaxy install dubzland.shorewall