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