FlatKey.firewalld

ansible-firewalld-role

firewalldを設定するための役割です。

設定オプション:

  • デフォルトゾーン
  • ゾーンのインターフェース
  • ゾーンのソース
  • サービスルール(定義されていないルールの削除も可能)
  • ポートルール
  • リッチルール

要件

RHEL 7、CentOS 7、Fedora 29のみでテストされています。

Ansible 2.0以上が必要です。

役割の変数

これらの変数ブロックをすべて使用する必要はありません、本当に必要な設定オプションのみを使用できます。

以下の変数は、firewalldのデフォルトゾーンを定義するために使用されます:

    default_zone: (オプション, デフォルト: public)

以下の変数は、ゾーンに割り当てられるインターフェースを定義するために使用されます:

    firewalld_zone_interfaces:
      - name: (必須, 例: public)
        interfaces: (必須, インターフェースのリスト, 1つ以上可)

例:

    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)

以下の変数は、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
所有者