firewalldを使ったファイアーウォールの設定の確認

今回のコラムは、ファイアーウォールの設定の中でも「firewalld」の設定状態を確認する方法を解説します。【連載コラム:Linuxを学ぼう(31)】

最終更新日:2024年03月01日

前回はLinuxカーネルのパケットフィルタリング機能であるnetfilterについて解説しました。実際のシステムにおいては、firewalldやUFWなどを使ってファイアーウォールの設定を行います。今回はfirewalldの設定状態を確認する方法を解説します。


firewalldとは

firewalldは、netfilterやnftablesを操作設定するために用意された仕組みです。nftablesの操作のためにnftコマンドが用意されていますが、詳細な設定ができる反面、煩雑になってしまうので、細かい設定が不要な場合にはより簡易に設定が行えるfirewalldを使用します。名前の後ろにデーモンのdがついているように、サービスとして実行します。

firewalldの動作状態の確認

まず、firewalldがサービスとして動作しているかどうかを確認します。

$ sudo systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
     Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; preset>
     Active: active (running) since Tue 2024-02-06 00:10:59 JST; 1 week 6 days >
       Docs: man:firewalld(1)
   Main PID: 909 (firewalld)
      Tasks: 2 (limit: 10552)
     Memory: 28.7M
        CPU: 290ms
     CGroup: /system.slice/firewalld.service
             └─909 /usr/bin/python3 -s /usr/sbin/firewalld --nofork --nopid

 2月 06 00:10:59 host1.example1.jp systemd[1]: Starting firewalld - dynamic fir>
 2月 06 00:10:59 host1.example1.jp systemd[1]: Started firewalld - dynamic fire>

サービスとして動作していることがわかります。動作していない場合には、起動するようにしてください。

firewalldの設定状態の確認

firewalldの操作はfirewall-cmdコマンドを使用します。まず、現在の設定状態を確認してみます。

$ sudo firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens160
  sources:
  services: cockpit dhcpv6-client dns ssh
  ports:
  protocols:
  forward: yes
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

いろいろな情報が表示されますが、確認したいのは以下の3行です。

public (active)

publicとはゾーンと呼ばれるものの名前です。名称から、外側に接続されているネットワーク領域、ぐらいのニュアンスで理解しておけばよいでしょう。状態がactiveなので有効になっています。

target: default

targetは、このゾーンに入ってきたパケットをどのように扱うかを設定しています。defaultの場合、ICMPは通すが、それ以外は通さない設定となります。ICMPはpingコマンドなどで使われるプロトコルです。pingコマンドに対して応答はする、ということになります。

services: cockpit dhcpv6-client dns ssh

servicesは、パケットの通過を許可するサービスです。具体的にはポート番号ということになりますが、FTPのような一部のプロトコルについては接続形態などを考慮して設定が必要になります。

servicesの設定で許可されていないプロトコル(ポート番号)への通信は、targetの設定に従って拒否される、という動作になります。

他にも細かく設定状態を確認するオプションがありますので、是非--helpオプションで表示して確認してみてください。


筆者紹介
宮原 徹 氏

宮原 徹 氏

株式会社びぎねっと

Linux標準教科書、Linuxサーバー構築標準教科書などの監修者。LinuCレベル1/レベル2 Version10.0の改訂作業にも協力。また、幅広いOSSに関する情報提供の場として「オープンソースカンファレンス(OSC)」の企画運営も。

バックナンバー

第30回:ファイアーウォールの設定を確認する

第29回:Booleanを使ったSELinuxの制御

第28回:SELinuxの動作を確認する

第27回:SELinuxについて

第26回:Webサーバーのログ設定の内容を確認する

ページトップへ