ホーム > ネットワーク管理 > firewall-cmd

firewall-cmd: Firewalld ファイアウォール管理

firewall-cmd は firewalld デーモンのコマンドラインクライアントです。これにより、システムのファイアウォールルールを動的に管理できます。ポートの開放、サービスの追加、ネットワークゾーンの設定など、さまざまなファイアウォール操作を実行でき、ランタイムルールと永続ルールを区別して適用できます。

概要

firewall-cmd は firewalld サービスと連携してシステムのネットワークトラフィックを制御します。永続的なルールとランタイムルールを区別して適用でき、さまざまなネットワークゾーン(zone)を通じて柔軟なセキュリティポリシーを提供します。これにより、サーバーのセキュリティを強化し、特定のサービスへのアクセスを許可または拒否できます。

主な機能

  • ポートおよびサービス管理(追加/削除)
  • ネットワークゾーン(Zone)の設定および管理
  • IPアドレスおよびネットワークベースのルール(Rich Rules)
  • ランタイムおよび永続ルールの適用
  • マスカーレード(Masquerading)およびポートフォワーディング設定

主なオプション

firewall-cmd はさまざまなオプションを通じてファイアウォールルールを照会および設定できます。

ルールの適用と管理

情報照会

生成されたコマンド:

コマンドを組み合わせてみてください。

説明:

`firewall-cmd` コマンドを実行します。

これらのオプションを組み合わせて、AIと一緒に仮想的にコマンドを実行してみてください。

使用例

firewall-cmd を使用してファイアウォールルールを設定および管理するさまざまな例です。

現在アクティブなゾーンとルールの確認

firewall-cmd --list-all

デフォルトゾーン(public)の現在のランタイム設定をすべて確認します。

特定のゾーンの全設定確認

firewall-cmd --zone=internal --list-all

指定されたゾーン(例:internal)の全設定を確認します。

HTTPサービス追加(ランタイム)

sudo firewall-cmd --zone=public --add-service=http

public ゾーンに HTTP サービスを一時的に許可します。再起動すると消えます。

HTTPサービス追加(永続的)

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

public ゾーンに HTTP サービスを永続的に許可します。変更を適用するには --reload が必要です。

ファイアウォールルールのリロード

sudo firewall-cmd --reload

永続的に設定されたすべてのルールを現在のランタイムファイアウォールに適用します。

ポート 8080/tcp 追加(永続的)

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

public ゾーンに TCP 8080 ポートを永続的に許可します。適用後リロードが必要です。

SSHサービス削除(永続的)

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

public ゾーンから SSH サービスを永続的に削除します。適用後リロードが必要です。

全永続ルール適用

sudo firewall-cmd --reload

永続的に変更されたすべてのルールを即座に適用します。

インストール

firewall-cmd は firewalld パッケージの一部です。ほとんどの最新 Linux ディストリビューションにはデフォルトでインストールされているか、簡単にインストールできます。

CentOS/RHEL/Fedora

sudo dnf install firewalld

Red Hat 系 Linux で firewalld をインストールします。

Ubuntu/Debian

sudo apt install firewalld

Debian 系 Linux で firewalld をインストールします。

サービス開始と有効化

sudo systemctl start firewalld
sudo systemctl enable firewalld

インストール後、firewalld サービスを開始し、システム起動時に自動実行されるように有効化します。

ヒントと注意点

firewall-cmd 使用時の注意点と役立つヒントです。

ランタイム vs 永続ルール

  • `--permanent` オプションなしでは、現在のセッションにのみルールが適用され、再起動すると消えます。
  • 永続的に適用するには `--permanent` を使用した後、`firewall-cmd --reload` コマンドで変更を適用する必要があります。

ゾーン(Zone)の理解

  • firewalld はネットワークインターフェースを複数のセキュリティゾーンに割り当てて管理します。各ゾーンは異なるセキュリティレベルを持つことができます。
  • デフォルトゾーンは `public` で、ほとんどの外部接続に使用されます。`home`, `internal`, `trusted` など、さまざまなゾーンがあります。

サービス名の使用

  • ポート番号(例:80/tcp)の代わりに `http`, `https`, `ssh` のようなあらかじめ定義されたサービス名を使用する方が、可読性と管理の利便性の面で優れています。
  • `firewall-cmd --get-services` コマンドで利用可能なサービスの一覧を確認できます。

バックアップとテスト

  • 重要な変更を行う前に、`firewall-cmd --list-all --zone=<zone>` コマンドで現在の設定を記録しておくことをお勧めします。
  • 変更適用後、該当サービスが正常に動作するか必ずテストしてください。


同じカテゴリのコマンド