FlatKey.firewalld

ansible-firewalld-role

Umożliwia konfigurację firewalld.

Opcje konfiguracji:

  • domyślna strefa
  • interfejs strefy
  • źródło strefy
  • reguły usług (z możliwością usunięcia nieokreślonych reguł, jeśli chcesz)
  • reguły portów
  • złożone reguły

Wymagania

Przetestowane tylko na RHEL 7, CentOS 7 i Fedora 29.

Ansible 2.0 lub wyższy

Zmienne roli

Nie musisz używać wszystkich tych bloków zmiennych, możesz użyć tylko tych opcji konfiguracyjnych, które naprawdę potrzebujesz.

Poniższa zmienna służy do zdefiniowania domyślnej strefy firewalld:

    default_zone: (opcjonalne, domyślnie: public)

Poniższe zmienne służą do zdefiniowania, które interfejsy są przypisane do stref:

    firewalld_zone_interfaces:
      - name: (wymagane, np. public)
        interfaces: (wymagane, lista interfejsów, jeden lub wiele możliwych)

Przykład:

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

Poniższe zmienne służą do zdefiniowania źródła strefy:

    firewalld_zone_source:
      public:
        zone: (wymagane, nazwa strefy)
        source: (wymagane, tablica źródeł, np. [192.168.1.1/24, 10.16.16.23])
        state: (opcjonalne, tylko wartości: enabled|disabled, domyślnie: enabled)
        permanent: (opcjonalne, tylko wartości: true|false, domyślnie: true)
        immediate: (opcjonalne, tylko wartości: true|false, domyślnie: true)

Poniższe zmienne służą do zdefiniowania reguły usługi:

    firewalld_service_rules: 
      name:
        service: (opcjonalne, domyślnie: użyj nazwy, jeśli usługa nie jest zdefiniowana)
        state: (opcjonalne, tylko wartości: enabled|disabled, domyślnie: enabled)
        zone: (opcjonalne, domyślnie: public)
        permanent: (opcjonalne, tylko wartości: true|false, domyślnie: true)
        immediate: (opcjonalne, tylko wartości: true|false, domyślnie: true)

Przykłady:

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

lub

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

Poniższe zmienne są używane do usuwania nieokreślonych aktywnych reguł usług i portów:

    firewalld_purge_services: (opcjonalne, tylko wartości: true|false, domyślnie: false)
    firewalld_purge_ports: (opcjonalne, tylko wartości: true|false, domyślnie: false)

Poniższe zmienne służą do zdefiniowania reguły portu:

    firewalld_port_rules:
      name:
        port: (wymagane, port lub zakres portów)
        protocol: (opcjonalne, tylko wartości: tcp|udp, domyślnie: tcp)
        state: (opcjonalne, tylko wartości: enabled|disabled, domyślnie: enabled)
        zone: (opcjonalne, domyślnie: public)
        permanent: (opcjonalne, tylko wartości: true|false, domyślnie: true)
        immediate: (opcjonalne, tylko wartości: true|false, domyślnie: true)

Poniższe zmienne służą do zdefiniowania złożonej reguły:

    firewalld_rich_rules:
      name:
        rule: (wymagane, pełna reguła w języku złożonym firewalld)
        state: (opcjonalne, tylko wartości: enabled|disabled, domyślnie: enabled)
        zone: (opcjonalne, domyślnie: public)
        permanent: (opcjonalne, tylko wartości: true|false, domyślnie: true)
        immediate: (opcjonalne, tylko wartości: true|false, domyślnie: true)

Poniższa zmienna służy do zdefiniowania ipsets. Obsługiwany jest tylko typ hash:ip. UWAGA: ipsety utworzone poza tą zmienną nie będą zarządzane ani usuwane.

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

Handlery

Oto handlery zdefiniowane w tej roli:

  • ponowne uruchomienie firewalld

Przykład playbooka

    - hosts: serwer
      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

Licencja

MIT

Zainstaluj
ansible-galaxy install FlatKey.firewalld
Licencja
mit
Pobrania
2.1k
Właściciel