Rocky Linux firewallの設定

Rocky Linux firewallの設定

Rocky Linuxで、firewallの設定の仕方をまとめて記載してます。Firewalldは、Rocky Linuxのファイアーウォールを設定するサービスのことです。

環境

  • OS  Rocky Linux release 8.4 (Green Obsidian)

ポートの許可

恒久的にポート88を許可する

sudo firewall-cmd --add-port=88/tcp --zone=public --permanent

## reloadしないと反映しない
sudo firewall-cmd --reload

設定したポート88を削除する

sudo firewall-cmd --remove-port=88/tcp --zone=public --permanent

firewallで許可されているポートを一覧確認する

sudo firewall-cmd --list-ports --zone=public

## 恒久的のみ確認する場合は以下を実行します
sudo firewall-cmd --list-ports --zone=public --permanent

また、ポートを一括で追加する場合は、以下のように実行します。

sudo firewall-cmd --add-port={8082,8083}/tcp --zone=public --permanent

サービスの許可

恒久的にhttpsサービスを許可する

sudo firewall-cmd --add-service=https --zone=public --permanent

## reloadで反映する
sudo firewall-cmd --reload

httpsサービスを削除する

sudo firewall-cmd --remove-service=https --zone=public --permanent

## reloadで反映する
sudo firewall-cmd --reload

firewallで許可されているービスを一覧確認する

sudo firewall-cmd --list-services --zone=public

## 恒久的のみ確認する場合は以下
sudo firewall-cmd --list-services --zone=public --permanent

登録可能サービス確認

登録可能なサービス名を一覧で確認するには以下のコマンドを実行します。

firewall-cmd --get-services

IPアドレスの許可

恒久的にIPアドレスを指定して許可

sudo firewall-cmd --add-source=192.168.1.0/24 --zone=public --permanent

## 恒久的のみ確認する場合は以下
sudo firewall-cmd --reload

IPアドレスの拒否

恒久的にIPアドレスを指定して拒否

sudo firewall-cmd --add-source=192.168.1.0/24 --zone=drop --permanent

## reloadで反映する
sudo firewall-cmd --reload

デフォルトゾーンの設定確認

デフォルトゾーンの設定確認は、以下のコマンドで可能です。

## デフォルトゾーンの確認
sudo firewall-cmd --list-all

## デフォルトゾーンの恒久的のみ確認
sudo firewall-cmd --list-all --permanent

## 全てのゾーンの確認
sudo firewall-cmd --list-all-zones

## activeなゾーンの確認
sudo firewall-cmd --get-active-zones

## 全てのゾーンの恒久的のみ確認
sudo firewall-cmd --list-all-zones --permanent

ゾーンの追加

ゾーンの追加は、以下のコマンドで可能です。

sudo firewall-cmd --new-zone=testzone --permanent

「/etc/firewalld/zones」に「testzone.xml」が追加されます。

ゾーンの削除

ゾーンの削除は以下となります。

sudo firewall-cmd --delete-zone=testzone --permanent

「/etc/firewalld/zones」にあった「testzone.xml」 がリネームされて「testzone.xml.old」となります。

ステータス確認

ステータスは、以下で確認できます。

systemctl status firewalld

<出力結果>
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2021-06-xx xx:23:13 JST; 2 days ago
     Docs: man:firewalld(1)
 Main PID: 952 (firewalld)
    Tasks: 3 (limit: 16492)
   Memory: 29.6M
   CGroup: /system.slice/firewalld.service
           └─952 /usr/libexec/platform-python -s /usr/sbin/firewalld --nofork --nopid

起動と停止

firewallを起動する場合と、停止する場合は、以下のコマンドを実行します。

## 起動
sudo systemctl start firewalld

## 停止
sudo systemctl stop firewalld

自動起動

マシン起動時に、自動起動を行う場合は「enable」を使用します。

## 有効化
sudo systemctl enable firewalld

## 無効化
sudo systemctl disable firewalld

## 状態確認
sudo systemctl is-enabled firewalld

バージョン確認

使用してるfirewallのバージョンは、以下で確認できます。

sudo firewall-cmd --version

<出力結果>
0.8.2

ヘルプ

ヘルプを実行する場合は、以下となります。

firewall-cmd --help

設定ファイルを直接編集

「/etc/firewalld/zones」にある「public.xml」を直接編集して設定することも可能です。

TCP 80番ポートの通信許可をする場合
<port protocol="tcp" port="80"/>

編集する前に、バックアップをとっておく場合は「cp」コマンドでコピーしておきます。

sudo cp /etc/firewalld/zones/public.xml{,.`date +%y%m%d_%H%M%S`}

編集後は、reloadすることで反映されます。

sudo firewall-cmd --reload

GUI

「firewall-config」をインストールするとGUIでfirewallの設定を行うことが可能です。

sudo dnf install firewall-config

インストールされていることが確認できます。

GUIからfirewallを設定することが可能です。