FlatKey.firewalld

ansible-firewalld-role

Permet de configurer firewalld.

Options de configuration :

  • zone par défaut
  • interface d'une zone
  • source d'une zone
  • règles de service (avec suppression des règles non définies, si nécessaire)
  • règles de port
  • règles avancées

Exigences

Testé uniquement sur RHEL 7, CentOS 7 et Fedora 29.

Ansible 2.0 ou supérieur

Variables de rôle

Il n'est pas nécessaire d'utiliser tous ces blocs de variables, vous pouvez utiliser uniquement les options de configuration dont vous avez vraiment besoin.

La variable suivante est utilisée pour définir la zone par défaut de firewalld :

    default_zone: (facultatif, par défaut : public)

Les variables suivantes sont utilisées pour définir les interfaces assignées aux zones :

    firewalld_zone_interfaces:
      - name: (obligatoire, par exemple public)
        interfaces: (obligatoire, liste d'interfaces, une ou plusieurs possibles)

Exemple :

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

Les variables suivantes sont utilisées pour définir la source d'une zone :

    firewalld_zone_source:
      public:
        zone: (obligatoire, nom de la zone)
        source: (obligatoire, tableau de sources par exemple [ 192.168.1.1/24, 10.16.16.23 ])
        state: (facultatif, uniquement les valeurs : enabled|disabled, par défaut : enabled)
        permanent: (facultatif, uniquement les valeurs : true|false, par défaut : true)
        immediate: (facultatif, uniquement les valeurs : true|false, par défaut : true)

Les variables suivantes sont utilisées pour définir une règle de service :

    firewalld_service_rules: 
      name:
        service: (facultatif, par défaut : utiliser le nom si le service n'est pas défini)
        state: (facultatif, uniquement les valeurs : enabled|disabled, par défaut : enabled)
        zone: (facultatif, par défaut : public)
        permanent: (facultatif, uniquement les valeurs : true|false, par défaut : true)
        immediate: (facultatif, uniquement les valeurs : true|false, par défaut : true)

Exemples :

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

ou

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

Les variables suivantes sont utilisées pour purger les règles de service et de port actives non définies :

    firewalld_purge_services: (facultatif, uniquement les valeurs : true|false, par défaut : false)
    firewalld_purge_ports: (facultatif, uniquement les valeurs : true|false, par défaut : false)

Les variables suivantes sont utilisées pour définir une règle de port :

    firewalld_port_rules:
      name:
        port: (obligatoire, port ou plage de ports)
        protocol: (facultatif, uniquement les valeurs : tcp|udp, par défaut : tcp)
        state: (facultatif, uniquement les valeurs : enabled|disabled, par défaut : enabled)
        zone: (facultatif, par défaut : public)
        permanent: (facultatif, uniquement les valeurs : true|false, par défaut : true)
        immediate: (facultatif, uniquement les valeurs : true|false, par défaut : true)

Les variables suivantes sont utilisées pour définir une règle avancée :

    firewalld_rich_rules:
      name:
        rule: (obligatoire, une règle complète en langage rich de firewalld)
        state: (facultatif, uniquement les valeurs : enabled|disabled, par défaut : enabled)
        zone: (facultatif, par défaut : public)
        permanent: (facultatif, uniquement les valeurs : true|false, par défaut : true)
        immediate: (facultatif, uniquement les valeurs : true|false, par défaut : true)

La variable suivante est utilisée pour définir les ipsets. Seul le type hash:ip est supporté. REMARQUE : les ipsets créés en dehors de cette variable ne seront pas gérés ni supprimés.

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

Gestionnaires

Voici les gestionnaires définis dans ce rôle :

  • redémarrer firewalld

Exemple de Playbook

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

Licence

MIT

Installer
ansible-galaxy install FlatKey.firewalld
Licence
mit
Téléchargements
2.1k
Propriétaire