dubzland.shorewall

Dubzland: Shorewall

Estado de la tubería de Gitlab (autoalojado)

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

Acerca del proyecto

Shorewall for Debian

Instalar
ansible-galaxy install dubzland.shorewall
Licencia
mit
Descargas
74
Propietario
A lone greybeard