📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

Wiki がページ「設定 - ファイヤーウォール」を「設定 - Firewalld」に、リダイレクトを残さずに移動しました
 
(同じ利用者による、間の8版が非表示)
1行目: 1行目:
== 概要 ==
== 概要 ==
firewalldは、CentOS7から採用されたデフォルトのファイアーウォールである。<br>
優れたファイアウォールシステムが、ネットワークセキュリティシステムへの不正アクセスを防ぐことができる。<br>
firewalldとiptablesは共存できないので、どちらかを選択すること。<br>
<br>
firewalldは、Netfilterと呼ばれる非常に強力なフィルタリングシステムが搭載されており、カーネルモジュールに組み込まれて、システムに渡る全てのパケットをチェックする。<br>
これは、受信、送信、転送等のあらゆるネットワークパケットを、宛先に到達する前にプログラムで検査、変更、拒否、削除できることを意味する。<br>
<br>
例えば、CentOS6ではiptablesだったが、CentOS7以降では、firewalldは、ホストベースのファイアウォールサービスを管理するための標準のツールになっている。<br>
firewalldとiptablesは共存できないため、どちらかを選択することに注意する。<br>
<br><br>


== firewalldの設定の確認 ==
firewalldの自動起動に設定されているかどうかを確認する。<br>
sudo systemctl is-enabled firewalld
<br>
firewalldのステータスを確認する。<br>
sudo systemctl status firewall
<br><br>


==ファイアーウォールのポートの開放例==
== firewalldを開始する ==
sudo firewall-cmd --permanent --zone=public --add-service=ftp     : FTPを開放
firewalldを開始する。<br>
sudo firewall-cmd --permanent --zone=public --add-port=4000-4029/tcp  : TCPポート4000から4029番を開放
  sudo systemctl start firewalld
sudo firewall-cmd --permanent --zone=public --add-service=http     : HTTPを開放
<br>
sudo firewall-cmd --permanent --zone=public --add-service=https    : HTTPSを開放
firewalldを再起動する。<br>
sudo firewall-cmd --permanent --zone=public --add-service=smtp     : SMTPを開放
  sudo systemctl restart firewalld
  sudo firewall-cmd --permanent --zone=public --add-service=pop3     : POP3を開放
<br><br>
sudo firewall-cmd --permanent --zone=public --add-service=imap     : IMAPを開放
sudo firewall-cmd --permanent --zone=public --add-service=smtps    : SMTPsを開放
  sudo firewall-cmd --permanent --zone=public --add-service=pop3s    : POP3sを開放
sudo firewall-cmd --permanent --zone=public --add-service=imaps    : IMAPsを開放


==firewallコマンドの基本的な使い方==
== firewalldを停止する ==
sudo firewall-cmd --permanent --zone=public --add-service=ssh   : SSHを開放
一時的にfirewalldを停止する。(firewalldがsystemdで管理されている場合)<br>
  sudo firewall-cmd --permanent --zone=public --add-port=22/tcp   : TCPポート22番を開放
  sudo systemctl stop firewalld
sudo firewall-cmd --permanent --zone=public --remove-service=ssh  : SSHを閉じる
<br><br>
sudo firewall-cmd --permanent --zone=public --remove-port=22/tcp  : TCPポート22番を閉じる


==設定を反映==
== firewalldの自動起動を有効にする ==
Firewalldの設定を反映させるには、以下のコマンドを実行するか再起動する。<br />
firewalldを自動起動する。<br>
sudo systemctl enable firewall
<br><br>
 
== firewalldの自動起動を無効にする ==
firewalldの自動起動を停止する。<br>
sudo systemctl disable firewalld
<br>
自動起動が停止されているかどうかを確認する。<br>
sudo systemctl is-enabled firewall
<br><br>
 
== firewall-cmdコマンドのオプション ==
==== --permanentオプション ====
設定変更を永続化して、再起動後も維持させる。<br>
このオプションを付加しない場合、変更は一時的で再起動すると失われる。<br>
<br>
永続設定と実行中の設定は別々に管理される。<br>
<br>
==== --zoneオプション ====
ファイアウォールゾーンを指定する。<br>
<br>
代表的なゾーンを以下に示す。<br>
* public
*: 外部からの接続を制限する。(デフォルト)
* trusted
*: 全ての接続を許可する。
* home
*: 内部ネットワーク向け。
* dmz
*: 一部のサービスのみ公開する。
<br>
特に、--permanentオプションと--zoneオプションの2つのオプションは組み合わせて使用することが多い。<br>
<br>
==== --stateオプション ====
ファイアウォールの稼働状態を確認する。<br>
running または not running という形式で状態が表示される。<br>
<br>
これは、サービスの正常性確認やトラブルシューティング時に使用する。<br>
<br>
==== --runtime-to-permanentオプション ====
現在実行中の一時的な設定を永続設定に変換する。<br>
例えば、--permanentオプションを付加せずにポート開放した後に、その設定を永続化する場合に使用する。<br>
<br>
これにより、再起動後も設定が維持される。<br>
<br>
一般的に、--permanentオプションを付加して直接永続設定を行うが、一時設定を試した後に永続化する場合等に使用する。<br>
<br><br>
 
== ファイアーウォールのポート開放 ==
sudo firewall-cmd --permanent --zone=public --add-service=ftp        # FTPを永続的に開放
sudo firewall-cmd --permanent --zone=public --add-service=http        # HTTPを永続的に開放
sudo firewall-cmd --permanent --zone=public --add-service=https      # HTTPSを永続的に開放
sudo firewall-cmd --permanent --zone=public --add-service=smtp        # SMTPを永続的に開放
sudo firewall-cmd --permanent --zone=public --add-service=pop3        # POP3を永続的に開放
sudo firewall-cmd --permanent --zone=public --add-service=imap        # IMAPを永続的に開放
sudo firewall-cmd --permanent --zone=public --add-service=smtps      # SMTPsを永続的に開放
sudo firewall-cmd --permanent --zone=public --add-service=pop3s      # POP3sを永続的に開放
sudo firewall-cmd --permanent --zone=public --add-service=imaps      # IMAPsを永続的に開放
sudo firewall-cmd --permanent --zone=public --add-port=49152/tcp     # TCPポート49152番を開放
sudo firewall-cmd --permanent --zone=public --add-port=4000-4029/tcp  # TCPポート4000から4029番を開放
<br>
以下に示すように、複数のポートを同時に開放、あるいは、閉じることもできる。<br>
# httpとhttpsを同時に開放 (80/tcp および 443/tcp)
sudo firewall-cmd --permanent --zone=public --add-service={http,https}
# 任意の複数ポートを同時に開放
sudo firewall-cmd --permanent --zone=public --add-port={139/tcp,445/tcp,137/udp,138/udp}
<br><br>
 
== ファイアーウォールのポート遮断 ==
sudo firewall-cmd --permanent --zone=public --remove-service=ssh        # SSHを永続的に遮断
sudo firewall-cmd --permanent --zone=public --remove-port=22/tcp        # TCPポート22番を永続的に遮断
sudo firewall-cmd --permanent --zone=public --remove-port=4000-4029/tcp  # TCPポート4000から4029番を永続的に遮断
<br>
<br><br>
 
== firewalldの設定を反映する ==
Firewalldの設定を反映するには、以下のコマンドを実行する、または、OSを再起動する。<br>
  sudo firewall-cmd --reload
  sudo firewall-cmd --reload
<br><br>


==設定の確認==
== firewalldの設定の確認 ==
Firewalldの設定を確認するには、以下のコマンドを実行する。<br>
firewalldの設定を全て確認する。<br>
  sudo firewall-cmd --list-all
  sudo firewall-cmd --list-all
<br>
特定のゾーンに記載されているルールを確認する。<br>
sudo firewall-cmd --list-all --zone="<ゾーン名>"
例. sudo firewall-cmd --list-all --zone="public"  # 初期状態ではdhcpv6-clientおよびsshがファイアウォールサービスを通して許可されている
<br>
利用可能な全てのゾーンを確認する。<br>
sudo firewall-cmd --get-zones      # 利用可能な各ゾーン名の一覧のみを表示
# または
sudo firewall-cmd --list-all-zones  # 利用可能な各ゾーンの詳細な設定も個別に表示
<br>
デフォルトのゾーンを特定のゾーンに変更する。<br>
# まず、特定ゾーンに変更する前に、現在のデフォルトのゾーンを確認する
sudo firewall-cmd --get-default-zone
# デフォルトのゾーンの変更
sudo firewall-cmd --set-default-zone=<ゾーン名>
# デフォルトのゾーンが変更されているかどうかを確認する
sudo firewall-cmd --get-default-zone
<br>
特定のネットワークインターフェースを別のゾーンに変更する。<br>
例えば、システムに2つのネットワークインターフェイスがある場合(例. enp1s0とenp1s1)、デフォルトでは全てのネットワークインターフェイスはデフォルトゾーンに割り当てられている。<br>
sudo firewall-cmd --zone=<ゾーン名> --change-interface=<ネットワークインターフェイス名>
# ゾーンを確認する
sudo firewall-cmd --get-active-zones
<br><br>
== ゾーンの種類 ==
firewalldでは、ゾーンという概念がある。(カテゴリとテンプレートのようなもの)<br>
ゾーンをNICごとに適応して運用することになる。<br>
<br>
初期状態では、9種類のゾーンが存在する。<br>
* drop
*: 全てのパケットを破棄する。
*: 内部から外部へのパケットは許可されるが、返信されてきたパケットも破棄してしまうので実質的に通信不可となる。
*: <br>
* block
*: 外部からのパケットは基本的に破棄される。
*: 内部からの通信パケットの返信は許可されるようになっている。
*: <br>
* public
*: 初期状態では、sshとdhcpv6-clientのみ許可されている。
*: <br>
* external
*: 初期状態では、sshのみ許可される。
*: ipマスカレードが有効になる。
*: <br>
* dmz
*: 初期状態では、sshのみ許可されている。
*: <br>
* work
*: 初期状態では、dhcpv6-client、ipp-client、sshが許可される。
*: <br>
* home
*: 初期状態では、dhcpv6-client、ipp-client、mdns、samba-client、sshが許可される。
*: <br>
* internal
*: 初期状態では、dhcpv6-client、ipp-client、mdns、samba-client、sshが許可される。
*: <br>
* trusted
*: 全てのパケットが許可される。
<br><br>
<br><br>


__FORCETOC__
__FORCETOC__
[[Category:CentOS]][[Category:SUSE]][[Category:Raspberry_Pi]]
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:PinePhone]]