RHEL系(CentOS)
---
Linuxのfirewalldサービスを起動するとデフォルト設定だと通信が
遮断されてしまいます。
Firewalldサービスを起動する前に、最低限、押さえておきたい
初期設定を解説します。
以下の3つのことを確認してからFirewalldサービスを起動してください。
1.Firewalldサービス起動時のZONE(ゾーン)を決定
2.デフォルト設定
/etc/firewalld/firewalld.confファイル
「DefaultZone=public」箇所でZONE(ゾーン)を選択
3.各NICで設定
FirewalldはNIC単位で設定します。
NIC毎に設定をしたい場合、デフォルト設定と違う設定にしたい場合に設定する
※設定なければデフォルト設定が適用
/etc/sysconfig/network-scripts/ifcfg-XXファイル
「ZONE=trusted」を追加してZONE(ゾーン)を選択
※デフォルトは「public」でifcfg-XXを「trusted」にした場合
Firewalldサービス起動前の確認
9種類のZONE(ゾーン)について
Firewallサービスを起動するまえにどのソーンを設定するかを決めてから起動します。
サーバのNIC(ネットワークインターフェース)毎にゾーンを設定します。
ZONE(ゾーン) | 説明 |
drop | 全てのパケットを破棄。 内部から外部へのパケットは許可されるが返信されてきたパケットも 破棄するので通信不可になります。 |
block | 外部からのパケットは破棄。 内部からの通信パケットの返信は許可されます。 |
public | デフォルトは「ssh」・「dhcpv6-client」のみ許可。 |
dmz | デフォルトは「ssh」のみ許可。 |
internal | デフォルトは「ssh」・「dhcpv6-client」・ 「ipp-client」・「mdns」・「samba-client」が許可。 |
work | デフォルトは「 ssh」・「dhcpv6-client」・「ipp-client」が許可。 |
home | デフォルトは「ssh」・「dhcpv6-client」・ 「ipp-client」・「mdns」・「samba-client」が許可 |
external | デフォルトは「ssh」のみ許可。IPマスカレードが有効 |
trusted | 全てのパケットが許可 |
■注意事項
icmp(ping)は、「drop」ゾーン「block」ゾーン以外はブロックされずに
許可されています。
target(ターゲット)について
定義にマッチしないパケットをどうするかターゲットで決められています。
ターゲット | 状態 | ゾーンの初期設定 |
DROP | 破棄 | dropゾーン |
REJECT | 拒否 | blockゾーン |
default | 拒否 | public、dmz、internal、work、home、externalゾーン |
ACCEPT | 許可 | trustedゾーン |
■ポイント
1.「REJECT」のデフォルトが「default」なので同じ意味のターゲットになります。
2.ゾーン毎にターゲットが設定されています。(変更可)
3.基本、ACCEPT以外は、許可する設定をゾーンで設定するします。
定義がないものは、破棄か拒否されます。
4.「DROP」は応答が全くない状態(反応なし)
「REJECT」は応答があり、拒否通知がある
Firewalld初期設定
Zone(ゾーン)のデフォルト設定について
必ずどのZONE(ゾーン)を適用するか決めてから設定してください
何も考えずにFirewalldサービスを起動すると
デフォルトの設定は「public」ゾーンが選択されて、ターゲットは「REJECT」となり
状態が「拒否」からスタートします。
■注意事項
稼働中のサービスでFirewalldサービスを起動すると「public」ゾーンとなり
提供していたサービスが利用できなくなるので注意してください。
この場合は、「trusted」ゾーン設定をして、拒否するポリシーを設定するように
すると安全にFirewalldサービスを起動することができます。
設定箇所1:Firewalldサービス起動時のZONE(ゾーン)設定箇所
# vi /etc/firewalld/firewalld.conf
firewalld.confファイルの
DefaultZone=public
箇所でfirewalldサービス起動時のデフォルトのZONE(ゾーン)を決定します。

設定箇所2:NICインターフェースでZONE(ゾーン)を設定
Firewalldの設定はNIC単位で行います。
NICが複数あり各NIC毎に設定したい場合に利用します。
※設定しなければ、Firewalldサービス起動時のデフォルトのZONE(ゾーン)が
各NICに反映されます。
# vi /etc/sysconfig/network-scripts/ifcfg-XX
XX:適宜インターフェース毎で異なります。
例 「eth0」、「eth1」、「enp0s3」など
ifcfg-XXファイルに
ZONE=trusted
を追加することでNIC毎にZONE(ゾーン)を選択します。
■注意事項
設定後はネットワークインターフェース(NIC)の再起動をしないと適用されません。
※「systemctl restart network.service」が必要
例えば、
ifcfg-XXファイルにZONE(ゾーン)設定をしてNICの再起動をせずに
Firewalldサービスを起動してもifcfg-XXファイルに設定した
ZONE(ゾーン)設定は反映されません

補足:Firewalldサービス起動方法
インストールされていなければ
「yum install firewalld*」でインストールしてください
状態確認
# systemctl status firewalld.service
自動起動
# systemctl enable firewalld.service
サービス起動
# systemctl start firewalld.service
コメント