FlatKey.firewalld

ansible-firewalld-role

Permite configurar firewalld.

Opciones de configuración:

  • zona predeterminada
  • interfaz de una zona
  • fuente de una zona
  • reglas de servicio (con purga de reglas no definidas, si se desea)
  • reglas de puerto
  • reglas ricas

Requisitos

Probado solo en RHEL 7, CentOS 7 y Fedora 29.

Ansible 2.0 o superior

Variables de Rol

No es necesario usar todos estos bloques de variables, puedes usar solo las opciones de configuración que realmente necesites.

La siguiente variable se utiliza para definir la zona predeterminada de firewalld:

    default_zone: (opcional, predeterminado: public)

Las siguientes variables se utilizan para definir qué interfaces se asignan a las zonas:

    firewalld_zone_interfaces:
      - name: (requerido, por ejemplo, public)
        interfaces: (requerido, lista de interfaces, una o varias posibles)

Ejemplo:

    firewalld_zone_interfaces:
      - name: trusted
        interfaces:
          - eth1
          - eth2
      - name: public
        interfaces:
          - eth0

Las siguientes variables se utilizan para definir la fuente de una zona:

    firewalld_zone_source:
      public:
        zone: (requerido, nombre de la zona)
        source: (requerido, array de fuentes por ejemplo [ 192.168.1.1/24, 10.16.16.23 ])
        state: (opcional, solo valores: enabled|disabled, predeterminado: enabled)
        permanent: (opcional, solo valores: true|false, predeterminado: true)
        immediate: (opcional, solo valores: true|false, predeterminado: true)

Las siguientes variables se utilizan para definir una regla de servicio:

    firewalld_service_rules: 
      name:
        service: (opcional, predeterminado: usar el nombre si el servicio no está definido)
        state: (opcional, solo valores: enabled|disabled, predeterminado: enabled)
        zone: (opcional, predeterminado: public)
        permanent: (opcional, solo valores: true|false, predeterminado: true)
        immediate: (opcional, solo valores: true|false, predeterminado: true)

Ejemplos:

    firewalld_service_rules: 
      ssh:
        state: enabled
        zone: public
        permanent: true
        immediate: true

o

    firewalld_service_rules:
        ssh_trusted:
            service: ssh
            state: enabled
            zone: trusted
        ssh_public:
            service: ssh
            state: enabled
            zone: public

Las siguientes variables se utilizan para purgar reglas de servicio y puertos activos no definidas:

    firewalld_purge_services: (opcional, solo valores: true|false, predeterminado: false)
    firewalld_purge_ports: (opcional, solo valores: true|false, predeterminado: false)

Las siguientes variables se utilizan para definir una regla de puerto:

    firewalld_port_rules:
      name:
        port: (requerido, puerto o rango de puertos)
        protocol: (opcional, solo valores: tcp|udp, predeterminado: tcp)
        state: (opcional, solo valores: enabled|disabled, predeterminado: enabled)
        zone: (opcional, predeterminado: public)
        permanent: (opcional, solo valores: true|false, predeterminado: true)
        immediate: (opcional, solo valores: true|false, predeterminado: true)

Las siguientes variables se utilizan para definir una regla rica:

    firewalld_rich_rules:
      name:
        rule: (requerido, una regla completa en el lenguaje rico de firewalld)
        state: (opcional, solo valores: enabled|disabled, predeterminado: enabled)
        zone: (opcional, predeterminado: public)
        permanent: (opcional, solo valores: true|false, predeterminado: true)
        immediate: (opcional, solo valores: true|false, predeterminado: true)

La siguiente variable se utiliza para definir ipsets. Solo se admite el tipo hash:ip. NOTA: los ipsets creados fuera de esta variable no serán gestionados ni eliminados.

    firewalld_ipsets:
     - name: ejemplo1
       entries:
       - 192.168.0.1
       - 192.168.0.5
     - name: ejemplo2
       entries:
       - 192.168.0.7
       - 192.168.0.11

Manejadores

Estos son los manejadores que se definen en este rol:

  • reiniciar firewalld

Ejemplo de Playbook

    - hosts: server
      become: yes
      become_user: root
      become_method: su
      roles:
        - ansible-firewalld-role
      vars:
        default_zone: public
        firewalld_zone_interfaces:
          - name: trusted
            interfaces:
              - eth1
              - eth2
          - name: public
            interfaces:
              - eth0
        firewalld_zone_source:
          trusted:
            zone: trusted
            source:
              - "192.168.1.0/24"
              - "10.0.16.12"
            state: enabled
            permanent: true
            immediate: true
        firewalld_service_rules:
          ssh:
            state: enabled
            zone: public
            permanent: true
            immediate: true
        firewalld_port_rules:
          smtp:
            port: 25
            protocol: tcp
            state: enabled
            zone: public
            permanent: true
            immediate: true
        firewalld_rich_rules:
          ftp_audit:
            rule: 'rule service name="ftp" audit limit value="1/m" accept'
            state: enabled
            zone: public
            permanent: true
            immediate: true
        firewalld_ipsets:
          - name: ejemplo1
            entries:
            - 192.168.0.1
            - 192.168.0.5
          - name: ejemplo2
            entries:
            - 192.168.0.7
            - 192.168.0.11
        firewalld_purge_services: true
        firewalld_purge_ports: true

Licencia

MIT

Instalar
ansible-galaxy install FlatKey.firewalld
Licencia
mit
Descargas
2.1k
Propietario