【firewalld(firewall-cmd)】Zone の作成, 追加, 削除, インタフェースのZone変更 | SEの道標
Linux基礎

【firewalld(firewall-cmd)】Zone の作成, 追加, 削除, インタフェースのZone変更

firewalld の Zone とは

firewalld では Zone という概念が使われています。これはNW機器のファイアウォールでは一般的な概念です。詳細は以下をご参照下さい。

【図解】FW/UTM や Linux firewalld のゾーンとは何か?ゾーンベースポリシーによるアクセス制御
従来方式(インタフェースベースポリシー)の問題点 ファイアウォールというNW機器...

firewalld で定義済のZone

firewalld にはプリセットで以下のZoneが定義されています。いずれのZoneも送信(outbound)は規制しません。(drop は返りの通信もdropするだとか、設定追加できないといった情報もありますが、少なくとも現在はdropゾーンであっても返りの通信は許可しますし、許可ルール設定追加も可能です。)

block : 全ての inbound 通信を拒否し、ICMP の Destination Unreachable を返す。
drop : 全ての inbound 通信を拒否する。(ICMPも返さない)
dmz : DMZ配置インタフェース用Zone。
external : 外部接続インタフェース用Zone。NAPT(masquerade)が有効。
home : 内部インタフェース用Zone。
internal : 内部インタフェース用Zone。
public : 標準Zone。
trusted : 全てを許可するZone。
work : 作業エリアインタフェース用Zone。

用途は示しているものの、結局はその後に設定する内容次第で如何様にもなるのであまり意味はないです。

Zone の新規追加方法

Zone は新規に作成することができます。--new-zone の後に新規作成するZone名を書きます。なお、--permanent が必須となります。--reload した後に使えるようになります。

[root@localhost ~]# firewall-cmd --new-zone OriginalZ --permanent
success
[root@localhost ~]# firewall-cmd --reload
success
[root@localhost ~]# firewall-cmd --add-service=ssh --zone=OriginalZ --permanent
success
[root@localhost ~]# cat /etc/firewalld/zones/OriginalZ.xml
<?xml version="1.0" encoding="utf-8"?>
<zone>
<service name="ssh"/>
</zone>
[root@localhost ~]# firewall-cmd --reload
[root@localhost ~]# firewall-cmd --list-all --zone=OriginalZ
OriginalZ
  target: default
  icmp-block-inversion: no
  interfaces:
  sources:
  services: ssh
  ports:
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

[root@localhost ~]#

Interface の Zone 変更方法

Zone のインタフェース変更は、firewall-cmd のコマンドでも実施できますが、NetworkManager で管理されている場合は警告が出ます。警告を出さないためには nmcli コマンドを使います。

[root@localhost ~]# firewall-cmd --change-interface enp0s3 --zone=internal --per
manent
The interface is under control of NetworkManager, setting zone to 'internal'.
success
[root@localhost ~]# nmcli connection modify enp0s3 connection.zone internal
[root@localhost ~]# nmcli connection show enp0s3 | grep zone
connection.zone:                        internal
[root@localhost ~]#

--reload 不要で即時反映されます。

コメント

タイトルとURLをコピーしました