FlatKey.firewalld

ansible-firewalld-role

Erlaubt die Konfiguration von firewalld.

Konfigurationsoptionen:

  • Standardzone
  • Schnittstelle einer Zone
  • Quelle einer Zone
  • Dienstregeln (mit der Möglichkeit, nicht definierte Regeln zu löschen, falls gewünscht)
  • Portregeln
  • Erweiterte Regeln

Voraussetzungen

Getestet nur auf RHEL 7, CentOS 7 und Fedora 29.

Ansible 2.0 oder höher

Rollenvariablen

Es ist nicht notwendig, alle diese Variablenblöcke zu verwenden; du kannst nur die Konfigurationsoptionen nutzen, die du wirklich benötigst.

Die folgende Variable wird verwendet, um die Standardzone von firewalld zu definieren:

    default_zone: (optional, Standard: public)

Die folgenden Variablen werden verwendet, um zu definieren, welche Schnittstellen den Zonen zugeordnet sind:

    firewalld_zone_interfaces:
      - name: (erforderlich, z.B. public)
        interfaces: (erforderlich, Liste von Schnittstellen, eine oder mehrere möglich)

Beispiel:

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

Die folgenden Variablen werden verwendet, um die Quelle einer Zone zu definieren:

    firewalld_zone_source:
      public:
        zone: (erforderlich, Zonenname)
        source: (erforderlich, Array von Quellen z.B. [192.168.1.1/24, 10.16.16.23])
        state: (optional, nur Werte: enabled|disabled, Standard: enabled)
        permanent: (optional, nur Werte: true|false, Standard: true)
        immediate: (optional, nur Werte: true|false, Standard: true)

Die folgenden Variablen werden verwendet, um eine Dienstregel zu definieren:

    firewalld_service_rules: 
      name:
        service: (optional, Standard: benutze Name, falls Dienst nicht definiert)
        state: (optional, nur Werte: enabled|disabled, Standard: enabled)
        zone: (optional, Standard: public)
        permanent: (optional, nur Werte: true|false, Standard: true)
        immediate: (optional, nur Werte: true|false, Standard: true)

Beispiele:

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

oder

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

Die folgenden Variablen werden verwendet, um nicht definierte aktive Dienst- und Portregeln zu löschen:

    firewalld_purge_services: (optional, nur Werte: true|false, Standard: false)
    firewalld_purge_ports: (optional, nur Werte: true|false, Standard: false)

Die folgenden Variablen werden verwendet, um eine Portregel zu definieren:

    firewalld_port_rules:
      name:
        port: (erforderlich, Port oder Portbereich)
        protocol: (optional, nur Werte: tcp|udp, Standard: tcp)
        state: (optional, nur Werte: enabled|disabled, Standard: enabled)
        zone: (optional, Standard: public)
        permanent: (optional, nur Werte: true|false, Standard: true)
        immediate: (optional, nur Werte: true|false, Standard: true)

Die folgenden Variablen werden verwendet, um eine erweiterte Regel zu definieren:

    firewalld_rich_rules:
      name:
        rule: (erforderlich, eine vollständige Regel in der rich-Sprache von firewalld)
        state: (optional, nur Werte: enabled|disabled, Standard: enabled)
        zone: (optional, Standard: public)
        permanent: (optional, nur Werte: true|false, Standard: true)
        immediate: (optional, nur Werte: true|false, Standard: true)

Die folgende Variable wird verwendet, um IP-Sets zu definieren. Nur der Typ hash:ip wird unterstützt. HINWEIS: IP-Sets, die außerhalb dieser Variablen erstellt werden, werden nicht verwaltet oder entfernt.

    firewalld_ipsets:
     - name: example1
       entries:
       - 192.168.0.1
       - 192.168.0.5
     - name: example2
       entries:
       - 192.168.0.7
       - 192.168.0.11

Handler

Dies sind die Handler, die in dieser Rolle definiert sind:

  • firewalld neu starten

Beispiel-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: example1
            entries:
            - 192.168.0.1
            - 192.168.0.5
          - name: example2
            entries:
            - 192.168.0.7
            - 192.168.0.11
        firewalld_purge_services: true
        firewalld_purge_ports: true

Lizenz

MIT

Installieren
ansible-galaxy install FlatKey.firewalld
Lizenz
mit
Downloads
2.1k
Besitzer