firewalld

ansible-firewalld-role

Позволяет настраивать firewalld.

Опции конфигурации:

  • зона по умолчанию
  • интерфейс зоны
  • источник зоны
  • правила для служб (с удалением неопределенных правил, если необходимо)
  • правила для портов
  • расширенные правила

Требования

Тестировалось только на RHEL 7, CentOS 7 и Fedora 29.

Ansible 2.0 и выше

Переменные роли

Не обязательно использовать все эти блоки переменных, вы можете использовать только те опции конфигурации, которые вам действительно нужны.

Следующая переменная используется для определения зоны по умолчанию для firewalld:

    default_zone: (необязательно, по умолчанию: public)

Следующие переменные используются для определения, какие интерфейсы назначены зонам:

    firewalld_zone_interfaces:
      - name: (обязательно, например, public)
        interfaces: (обязательно, список интерфейсов, один или несколько возможных)

Пример:

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

Следующие переменные используются для определения источника зоны:

    firewalld_zone_source:
      public:
        zone: (обязательно, имя зоны)
        source: (обязательно, массив источников, например: [ 192.168.1.1/24, 10.16.16.23 ])
        state: (необязательно, только значения: enabled|disabled, по умолчанию: enabled)
        permanent: (необязательно, только значения: true|false, по умолчанию: true)
        immediate: (необязательно, только значения: true|false, по умолчанию: true)

Следующие переменные используются для определения правила для службы:

    firewalld_service_rules: 
      name:
        service: (необязательно, по умолчанию: использовать имя, если служба не определена)
        state: (необязательно, только значения: enabled|disabled, по умолчанию: enabled)
        zone: (необязательно, по умолчанию: public)
        permanent: (необязательно, только значения: true|false, по умолчанию: true)
        immediate: (необязательно, только значения: true|false, по умолчанию: true)

Примеры:

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

или

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

Следующие переменные используются для удаления неопределенных активных правил для служб и портов:

    firewalld_purge_services: (необязательно, только значения: true|false, по умолчанию: false)
    firewalld_purge_ports: (необязательно, только значения: true|false, по умолчанию: false)

Следующие переменные используются для определения правила для порта:

    firewalld_port_rules:
      name:
        port: (обязательно, порт или диапазон портов)
        protocol: (необязательно, только значения: tcp|udp, по умолчанию: tcp)
        state: (необязательно, только значения: enabled|disabled, по умолчанию: enabled)
        zone: (необязательно, по умолчанию: public)
        permanent: (необязательно, только значения: true|false, по умолчанию: true)
        immediate: (необязательно, только значения: true|false, по умолчанию: true)

Следующие переменные используются для определения расширенного правила:

    firewalld_rich_rules:
      name:
        rule: (обязательно, полное правило в языке расширенных правил firewalld)
        state: (необязательно, только значения: enabled|disabled, по умолчанию: enabled)
        zone: (необязательно, по умолчанию: public)
        permanent: (необязательно, только значения: true|false, по умолчанию: true)
        immediate: (необязательно, только значения: true|false, по умолчанию: true)

Следующая переменная используется для определения наборов ip. Поддерживается только тип hash:ip. ПРИМЕЧАНИЕ: наборы ip, созданные вне этой переменной, не будут управляться или удаляться.

    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

Пример плейбука

    - 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

Лицензия

MIT

Установить
ansible-galaxy install FlatKey/ansible-firewalld-role
Лицензия
mit
Загрузки
2109
Владелец