手当たり次第に書くんだ

飽きっぽいのは本能

CentOS 8 firewalld – zone とサービス許可の確認

CentOS 8 は既に通常の CentOS Linux としてはサポートが終了しています。このページは新規構築を推奨するものではなく、過去環境の保守、移行前調査、設定の読み解きに使うためのレガシー Linux 手順です。新規構築では、現在サポートされているディストリビューションを利用してください。

CentOS 8 サーバー管理ガイドへ戻る

この記事では、CentOS 8 の firewalld で zone とサービス許可を確認する基本を扱います。firewalld は単なるポート開放コマンドではなく、通信をどの zone に所属させ、どのサービスやポートを許可するかを管理する仕組みです。既存環境を読むときは、runtime と permanent の差分も確認します。

zone と service の考え方

項目意味
zoneインターフェイスや送信元に対する信頼レベル
serviceポート番号とプロトコルを名前でまとめた定義
permanent再起動後も残る永続設定
runtime現在動いている一時設定

現在の状態を確認する

最初に firewalld が動いているか、どの zone が有効か、インターフェイスがどの zone に所属しているかを確認します。--list-all-zones は情報量が多いため、既存環境を棚卸しするときに使います。

firewall-cmd --state
firewall-cmd --get-default-zone
firewall-cmd --get-active-zones
firewall-cmd --list-all
firewall-cmd --list-all-zones

runtime と permanent の差分を見る

firewalld では、現在だけ有効な runtime 設定と、再起動後も残る permanent 設定が分かれています。作業後に --reload すると runtime が permanent に寄るため、変更前後の差分を見ておくと意図しない開放を見つけやすくなります。

firewall-cmd --list-all
firewall-cmd --permanent --list-all

サービスを許可する

SSH や HTTP など、firewalld に service 定義があるものは、ポート番号を直接指定するより service として許可した方が読みやすくなります。どの zone に追加するかを明示すると、後から設定を追いやすくなります。

firewall-cmd --permanent --zone=public --add-service=ssh
firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --reload
firewall-cmd --zone=public --list-services

ポートを直接許可する場合

service 定義がない独自アプリケーションでは、ポート番号を直接許可します。ただし、後で見た時に用途が分かりにくいため、運用では設計メモや構成管理側にも用途を残しておく方が安全です。

firewall-cmd --permanent --zone=public --add-port=8080/tcp
firewall-cmd --reload
firewall-cmd --zone=public --list-ports

許可を取り消す

不要になったサービスやポートは削除します。削除後は reload して、runtime と permanent の両方で消えていることを確認します。

firewall-cmd --permanent --zone=public --remove-service=http
firewall-cmd --permanent --zone=public --remove-port=8080/tcp
firewall-cmd --reload
firewall-cmd --zone=public --list-all

インターフェイスと zone を確認する

複数 NIC や VLAN を使う環境では、どのインターフェイスがどの zone に入っているかが重要です。意図しない zone に入っていると、許可したつもりの通信が通らなかったり、逆に想定外の通信を許可したりします。

nmcli connection show
firewall-cmd --get-active-zones
firewall-cmd --zone=public --list-interfaces

確認するポイント

  • default zone と active zone が期待通りか。
  • runtime と permanent に意図しない差分がないか。
  • service で許可できるものを、無理に port 指定にしていないか。
  • 不要になった許可を削除しているか。
  • SSH など管理入口を閉じる変更を行う前に、代替経路を確認しているか。

まとめ

firewalld は、通信許可を zone と service で管理する仕組みです。CentOS 8 の既存環境でも、何となくポートを開けるのではなく、どの zone で何を許可しているか、runtime と permanent に差分がないかを確認すると、後から構成を読みやすくなります。

関連する記事

関連する記事

参考書籍

参考
書籍
参考書籍
ストーリーで覚える Linux CLI 入門

Linux のコマンドライン操作を基礎から確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。

Amazon で見る

このリンクは Amazon アソシエイトリンクです。

CentOS 8 firewalld – zone とサービス許可の確認

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る