環境
Ubuntu20.4
内容
Linuxでファイヤーウォールを導入する場合、現在では、firewalldを利用する場合が多いようです。
CentOS6までは、ファイヤーウォールツールにiptablesがプレインストールされていましたが、CentOS7からは、firewalldがプレインストールされています。CentOS7には、iptablesはプレインストールされていません。CentOS7からはfirewalldが推奨されるようになっています。つまり、iptablesは既にレガシーとなりつつあります。これから使うのであれば、firewalldを使う方がモダンということになります。CentOS7でも、iptablesを動かしたい場合は、インストールすることはできるようになってます。
Ubuntuの場合は、iptablesもfirewalldもプレインストールされていません。Ubuntuで使いたい場合は、aptを使って、共に、インストールすることができます。
Ubuntuには、代わりに、ufwというファイヤーウォールツールがプレインストールされています。ufwは、iptablesのラッパーで、iptablesの簡易版として位置づけられています。iptablesを使うには敷居が高い場合は、代わりに、ufwを使うとことができます。基本的な設定だけで運用する分には、ufwで十分だと思います。
Firewalld、iptablesですが、それぞれ、別ツールのように思われますが、Firewalldも、iptablesもNetfilterにアクセスするための管理インターフェースであります。Netfilterとは、Linuxカーネル内に存在するサブシステムのことです。Firewalld、iptablesともに、設定した内容は、Netfilterの設定ファイルに書き込まれています。
Ubuntuでufwが本当にプレインストールされているのか、確認することができます。ufwのサービスを確認して、表示されればインストールされています。下記のどちらのコマンドを使ってもOKです。
$service --status-all | grep ufw
$systemctl status ufw.service
ufwのステータスを表示するコマンドです。デフォルトでufwのサービスは起動されるようになっていますが、ufw自体の設定は行っていないため、ufwは有効になっていません。有効になっていれば、ステータスはactiveと表示されます。
$sudo ufw status
Status: inactive
ufwを使わないのであれば、サービスを無効化しておいた方がいいかと思います。少しでもメモリの負荷が軽減されるためです。
ufwサービスを無効化する
ufwサービスを停止します。
$systemctl stop ufw.service
ステータスを確認して、サービスが停止したことを確認します。
$systemctl status ufw.service
サービスが有効化になっているか無効化になっているかを確認します。現時点ではまだ有効化になっています。サービスを停止しても、サービスが有効化されていれば、次回OSを起動したときに、自動起動されることになります。
$systemctl is-enabled ufw.service
enabled
次回から、サービスが自動起動しないように、サービスを無効化します。ルート権限で実行しないと、update-rc.d: error: Permission denied と表示されます。
$sudo systemctl disable ufw.service
サービスを表示して、無効化されていればOKです。
systemctl is-enabled ufw.service
disable