FlatKey.firewalld

ansible-firewalld角色

允许您配置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,默认值:trueimmediate: (可选,仅值:true|false,默认值:true

以下变量用于定义服务规则:

    firewalld_service_rules: 
      name:
        service: (可选,默认:如果未定义服务则使用名称)
        state: (可选,仅值:enabled|disabled,默认值:enabled)
        zone: (可选,默认:public)
        permanent: (可选,仅值:true|false,默认值:trueimmediate: (可选,仅值: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,默认值:falsefirewalld_purge_ports: (可选,仅值:true|false,默认值:false

以下变量用于定义端口规则:

    firewalld_port_rules:
      name:
        port: (必填,端口或端口范围)
        protocol: (可选,仅值:tcp|udp,默认值:tcp)
        state: (可选,仅值:enabled|disabled,默认值:enabled)
        zone: (可选,默认:public)
        permanent: (可选,仅值:true|false,默认值:trueimmediate: (可选,仅值:true|false,默认值:true

以下变量用于定义丰富规则:

    firewalld_rich_rules:
      name:
        rule: (必填,firewalld丰富语言中的完整规则)
        state: (可选,仅值:enabled|disabled,默认值:enabled)
        zone: (可选,默认:public)
        permanent: (可选,仅值:true|false,默认值:trueimmediate: (可选,仅值:true|false,默认值:true

以下变量用于定义ipsets。仅支持hash:ip类型。 注意:在此变量外创建的ipsets将不会被管理或删除。

    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.firewalld
许可证
mit
下载
2.1k
拥有者