firewall-cmdを使用してSLES 15ファイアウォールを設定する方法

SLES 15 サーバー上でサービスが実行されていても、ファイアウォールが新しい受信トラフィックをブロックするため、リモート クライアントでタイムアウトが発生する場合があります。通常、解決策は、アクティブな firewalld ゾーンを特定し、アプリケーションが必要とするサービスまたはポートのみを許可することです。この作業に使用する SLES コマンドライン ツールは ですfirewall-cmd。

このガイドは、SUSEのSLES 15 SP7セキュリティおよび強化ガイドとfirewalldコマンドリファレンス(2026年10月7日時点)に基づいています。以前のサービスパックやアップグレードされたSLES 12システムでは、状態が異なったり、ファイアウォールの設定が旧式になっている場合があります。ターミナル画面は代表的な例であり、実際のサーバーから取得した結果ではありません。インターフェース名、ゾーン、およびサービスは、ご使用のホストの値に置き換えてください。

1. firewalldが実行されていることを確認します。

SUSEのドキュメントによると、SLES 15ではfirewalldがデフォルトでインストールされ、有効になっています。YaSTは通常、インストール後にfirewalldを起動し、インターフェースをデフォルトpublicゾーンに配置します。しかし、デフォルト設定が変更されていないと想定するのではなく、マシンを確認してください。以下のコマンドを、使用が許可されているアカウントで実行してくださいsudo。

sudo systemctl status firewalld
sudo firewall-cmd --state

サービス マネージャーは、firewalldがアクティブであることを報告し、firewall-cmd --stateが報告する必要がありますrunning。サービスがインストールされているが停止している場合は、起動してブート時に有効にします。

sudo systemctl enable --now firewalld

firewall-cmdパッケージが見つからない場合は、firewalldパッケージがインストールされており、有効な SUSE リポジトリで利用可能かどうかを確認してください。管理対象サーバー上でファイアウォール コンポーネントを安易にインストールまたは交換しないでください。

SLESターミナルでfirewalldサービスのステータスを確認し、eth0上のアクティブなパブリックゾーンを一覧表示する例
サンプル端末はfirewalldの状態を確認し、eth0インターフェースを持つアクティブなパブリックゾーンの例を表示します。

2. サーバーインターフェースを保護するゾーンを見つける

Firewalldはルールをゾーンにグループ化し、各ゾーンは異なる信頼レベルを表します。publicゾーンは一般的に信頼されていないネットワークに使用されます。あるゾーンで開かれたサービスは、すべてのゾーンで自動的に開かれるわけではないため、正しいルールが間違ったゾーンにあると、アプリケーションにアクセスできなくなる可能性があります。

sudo firewall-cmd --get-active-zones
sudo firewall-cmd --get-default-zone
sudo firewall-cmd --zone=public --list-all

アクティブゾーンの出力を使用して、クライアントトラフィックを伝送するインターフェイスに接続されているゾーンを見つけます。インターフェイス名はeth0、、、ens160または別の名前の場合があります。1 つのインターフェイスを確認する必要がある場合は、次のコマンドを実行します。

sudo firewall-cmd --get-zone-of-interface=eth0

実際のインターフェースに置き換えてくださいeth0。ゾーンに明示的に割り当てられていないインターフェースは、デフォルトゾーンによって処理されます。デフォルトゾーンを安易に変更しないでください。変更すると、それに依存するインターフェースに影響が出る可能性があります。リモートサーバーでは、ファイアウォール設定を再読み込みする前に、SSH またはその他の管理ゾーンを特定し、そのアクセスルールを確認してください。コンソールまたは帯域外の復旧パスが存在する場合は、利用できるようにしておいてください。

SLESターミナルの例:パブリックデフォルトゾーン、インターフェースeth0、SSHサービス、および現在のゾーンルールを表示
ゾーン一覧には、変更前のサンプルパブリックゾーンに関連付けられているインターフェースとサービスが表示されます。

3. 名前付きサービスまたは特定のポートを選択します

firewalldサービスは、1つ以上のポートとプロトコルを含む名前付き定義です。ポート番号を記憶するよりも、既知のサービスを名前で許可する方が通常は簡単です。インストール済みのサービス一覧を確認し、使用する前に定義を検査してください。

sudo firewall-cmd --get-services
sudo firewall-cmd --info-service=http

Webサーバーの場合、定義済みのhttpサービスは通常TCPポート80をカバーします。TLS httpsWebトラフィック用のサービスは別途用意されています。SLESのドキュメントには、DHCPなどの例とともに、同じサービスベースの方法が示されています。アプリケーションに必要な実際のサービスを使用し、不明な場合はローカルでサービス定義を確認してください。

定義済みのサービスが該当しない場合は、必要なポートとプロトコルのみを開放してください。たとえば、TCPポート8443でリッスンするアプリケーションは、 で許可できます--add-port=8443/tcp。ファイアウォールでポートを開放しても、アプリケーションが起動したり、ネットワークにバインドされたり、セキュリティが確保されたりするわけではありません。サービス自体が目的のアドレスでリッスンするように設定されていることを確認してください。

まず一時的なルールをテストしてください。

短時間のテストを行うには、ランタイム構成にルールを適用します。ランタイムの変更は即座に有効になりますが、永続的に保存しない限り、ファイアウォールのリロードやサービスの再起動後に失われます。Firewalldは時間制限付きルールをサポートしており、テストを自動的に期限切れにしたい場合に便利です。

sudo firewall-cmd --zone=public --add-service=http --timeout=5m

一度限りのポートテストの場合は、--add-port=8443/tcp --timeout=5mの代わりにを使用してください--add-service=http。サーバーインターフェイスが実際に含まれているゾーンを選択してください。publicホストが別のゾーンを使用している場合は、をコピーしないでください。

SLESターミナルでHTTPサービスをパブリックゾーンに永続的に追加し、firewalldをリロードする例
この例のコマンドは、HTTPサービスをパブリックゾーンの永続的な設定に追加し、その後firewalldをリロードしてそれを適用します。

4. ルールを保存してfirewalldをリロードします

ルールを保存する準備ができたら、それを永続的な設定に追加します。次の例は、パブリックゾーンでのHTTPアクセスを許可するものです。

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

HTTPSの場合は、永続的なコマンドを繰り返します--add-service=https。カスタムアプリケーションポートの場合は、次のようなコマンドを使用します。

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

これらの例では、まず永続的な設定を変更し、その後システムをリロードして新しいルールを有効にします。リロードによって、実行時設定も永続的な設定に置き換えられます。そのため、他の場所で実行時のみに適用される変更は破棄される可能性があります。本番システムをリロードする前に、重要な実行時ルールと永続ルール、特にリモート管理アクセスについて確認してください。

ランタイム優先のワークフローもあります。ランタイムでルールをテストし、サービスが正常に動作することを確認してから、同じルールを追加して--permanent再読み込みします。他の管理者やソフトウェアによって行われた一時的な変更を含め、現在のすべてのランタイムルールを保存するつもりがない限り、ショートカットとして使用すること--runtime-to-permanentは避けてください。

変更が正しく機能したことをどのように確認できますか?

アクティブなランタイムルールと保存済みのルールの両方を確認してください。パブリックゾーンのHTTPサービスの場合は、以下を実行します。

sudo firewall-cmd --zone=public --query-service=http
sudo firewall-cmd --permanent --zone=public --list-services
sudo firewall-cmd --check-config

クエリは を返しyes、永続的なサービス リストには が含まれhttp、構成チェックは正常に完了するはずです。ポート ルールの場合は、同等のコマンドで--query-port=8443/tcpとを使用してください--list-ports。また、サーバーにアクセスできる別のクライアントからテストしてください。ローカル ファイアウォール クエリはルールが存在することを確認するものであり、DNS、ルーティング、アップストリーム ファイアウォール、またはアプリケーション リスナーが正しいことを確認するものではありません。

SLESターミナルの例:実行時および永続的な設定でHTTPが許可されていることを確認し、firewalldの設定をチェックする
検証コマンドは、アクティブなサービスルール、保存されたサービスリスト、および永続的な構成構文をチェックします。

よくある問題とその安全な対処法

  • ルールは存在しているのに接続タイムアウトが発生する場合は、クライアント側のインターフェースに割り当てられたゾーンにルールが追加されていることを確認してください。次に、アプリケーションが想定されるアドレスとポートでリッスンしていることを確認し、上流のネットワークファイアウォールもチェックしてください。
  • ルールは再読み込みまでは機能していました。おそらく実行時にのみ追加されていたのでしょう。ルールを追加して--permanent再読み込みし、両方の設定を照会してください。
  • SSHアクセスが危険にさらされています。リロードする前に、アクティブゾーンのサービスと永続サービスを確認してください。SSHが必要なのに利用できない場合は、sshリロードする前に適切なゾーンにサービスを永続的に追加してください。2つ目の接続をテストするまで、現在のリモートセッションを閉じないでください。
  • 以前のSUSEリリースから移行しています。SLES 15では、SuSEfirewall2がfirewalldに置き換えられました。SUSEは、従来のファイアウォールプロファイルには下位互換性が限られていることを警告しています。古いルールがすべて翻訳されていると想定するのではなく、移行ガイドを確認してください。
  • ルールが矛盾しているように見えます。firewalldはホストのファイアウォールルールを管理することを目的としています。SUSE は、などのツールを使用して同じルールを個別に変更することを推奨していません。iptablesこれは、アクティブな構成を混乱させる可能性があるためです。

不要な永続的なサービスまたはポートを削除するには、一致するオプションを とともに使用し--remove-service、--remove-portその後--permanent再読み込みして再度確認します。たとえば、sudo firewall-cmd --permanent --zone=public --remove-service=httpの後に を続けて使用して、パブリック ゾーンから HTTP を削除しますsudo firewall-cmd --reload。

終了する前に自己チェックしてください

  • firewalld実行中で、サーバー起動時に開始されます。
  • トラフィックを受信するインターフェースのアクティブゾーンを特定しました。
  • そのゾーンでは、アプリケーションが必要とするサービスまたはポートのみが許可されます。
  • 再起動前および再起動後も、リモート管理は引き続き可能です。
  • このルールは実行時クエリと永続クエリの両方に表示され、構成チェックも合格します。
  • 別のホストからの接続テストにより、アプリケーションにアクセス可能であることが確認されました。

リリース固有の詳細については、SUSE SLES 15 SP7 ファイアウォール ガイド、firewall-cmd マニュアル、および firewalld の実行時および永続的な構成、ポートまたはサービスのオープンに関する注意事項を参照してください。

コメントを残す

Fix Screen Tearing on Intel Graphics in Pardus Linux: A Result-Focused Guide

Fix Screen Tearing on Intel Graphics in Pardus Linux: A Result-Focused Guide

Fix Intel graphics screen tearing in Pardus Linux by checking X11 vs. Wayland, compositor settings, refresh rate, active Xorg driver, and TearFree only when appropriate.

firewall-cmdを使用してSLES 15ファイアウォールを設定する方法

firewall-cmdを使用してSLES 15ファイアウォールを設定する方法

SLES 15 で firewalld を設定する: ゾーンの確認、サービスまたはポートの許可、永続ルールの保存、安全なリロード、およびアクセスの検証。

SLESライブパッチ設定ガイド:再起動せずにカーネルアップデートを適用する

SLESライブパッチ設定ガイド:再起動せずにカーネルアップデートを適用する

SLES 15 SP7 でカーネルのライブパッチ適用を有効にし、再起動せずにサポートされている修正プログラムを適用し、有効なパッチを確認し、カーネルの再起動が必要な場合を把握します。

SUSE Linux Enterprise Server 15でFIPSモードを有効にする方法

SUSE Linux Enterprise Server 15でFIPSモードを有効にする方法

SUSEがサポートするセットアップユーティリティを使用してSLES 15でFIPSモードを有効にし、安全に再起動し、カーネルと暗号化ポリシーの状態を確認し、認証制限をチェックします。

セキュリティポリシーに違反することなく、Gooroom OSにGoogle Chromeをインストールする方法

セキュリティポリシーに違反することなく、Gooroom OSにGoogle Chromeをインストールする方法

公式の.debパッケージ、APT、ポリシーチェック、アップデートガイダンス、および管理対象デバイス向けの修正プログラムを使用して、Gooroom OSにGoogle Chromeを安全にインストールします。

SLESシステムログをリモートSyslogサーバーに安全にエクスポートする方法

SLESシステムログをリモートSyslogサーバーに安全にエクスポートする方法

rsyslog、TLS証明書、ピア名検証、キュー、検証、テスト機能を使用して、SLESシステムログをリモートのsyslogサーバーに安全に転送します。

SLES 15 Active DirectoryとSSSDの統合:ステップバイステップガイド

SLES 15 Active DirectoryとSSSDの統合:ステップバイステップガイド

YaSTを使用して、SSSD経由でSLES 15をActive Directoryに参加させます。DNSと時刻の設定、ドメインログインの構成、Kerberosの検証、SSSD、Winbind、およびrealmdの比較を行います。

Pardus Linux 上の Realtek RTL8821CE Wi-Fi ドライバーの問題を修正する

Pardus Linux 上の Realtek RTL8821CE Wi-Fi ドライバーの問題を修正する

Pardus Linux 上の RTL8821CE Wi-Fi の問題を解決するには、内蔵の rtw88 ドライバー、Realtek ファームウェア、rfkill、NetworkManager、および安全なフォールバックオプションを確認してください。

systemd-resolvedを使用してDebian 12で発生する「DNS解決の一時的な失敗」を修正する

systemd-resolvedを使用してDebian 12で発生する「DNS解決の一時的な失敗」を修正する

systemd-resolvedを使用して、Debian 12のDNS解決エラーを診断および修正します。これには、resolv.conf、NetworkManager、networkd、キャッシュ、および検証が含まれます。

Pardus LinuxをWindows 11と安全にデュアルブートする方法

Pardus LinuxをWindows 11と安全にデュアルブートする方法

Windows 11のバックアップ、ボリュームの縮小、UEFI USBからの起動、既存のEFIパーティションとリカバリパーティションの保護を行うことで、Windows 11の横にPardus 25.2をインストールできます。