firewalldを使ったファイアーウォールの設定の確認
今回のコラムは、ファイアーウォールの設定の中でも「firewalld」の設定状態を確認する方法を解説します。【連載コラム:Linuxを学ぼう(31)】
前回は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回:ファイアーウォールの設定を確認する
第28回:SELinuxの動作を確認する
第27回:SELinuxについて
第26回:Webサーバーのログ設定の内容を確認する