🔥

AlmaLinuxでfirewalldの設定とポート開放

2024/06/28に公開

ファイアーウォールとは

ファイアウォールとは外部ネットワークと内部ネットワークの境界に設けられた防護壁であり、侵入してくる不正なアクセスを防御するためのシステムです。一般的なファイアウォールは送信されてくるパケットの情報から接続を許可するかを判断しています。これをパケットフィルタリング言います。しかし、外部からのアクセスが全て遮断されては、ネットワークの意味をなしていません。そこで、外部からの通信が指定したポートを経由して内部ネットワークの特定のサービスやアプリケーションにアクセスできるようにするため、ファイアウォールにはポート開放という機能が備わっています。この記事ではLinuxでのファイアウォールの設定を解説します。

使い方

Linuxのファイアーウォールとしてよく使用されるのは、iptablesやその後継であるfirewalldです。以下では、firewalldの使い方について説明します。

起動と停止

ファイアーウォールのサービスを起動・停止するには、以下のコマンドを使用します。

起動

sudo systemctl start firewalld

停止

sudo systemctl stop firewalld

状態確認

現在のfirewalldの状態を確認するには、以下のコマンドを使用します。

sudo systemctl status firewalld
ruuning

ポートの追加と削除

ポート番号とは、ネットワーク通信において特定のサービスやアプリケーションを識別するために使用される数値です。TCP/IPネットワークにおいて、ポート番号は16ビットの整数(0から65535までの範囲)で表されます。各ポート番号は、特定のネットワークサービスやプロトコルと関連付けられています。
ファイアーウォールで特定のポートを許可またはブロックするには、以下のコマンドを使用します。

ポートの追加(許可)

例えば、HTTPのポート80を許可するには、以下のコマンドを使用します。

sudo firewall-cmd --permanent --add-port=80/tcp

変更を反映させるためにfirewalldをリロードします。

sudo firewall-cmd --reload

ポートの削除(ブロック)

許可されたポートを削除するには、以下のコマンドを使用します。

sudo firewall-cmd --permanent --remove-port=80/tcp

同様に、変更を反映させるためにfirewalldをリロードします。

sudo firewall-cmd --reload

サービスの追加と削除

特定のサービスを許可することも可能です。サービス追加は、特定のサービスに関連するすべての必要なポートとプロトコルを一括で許可するために使用します。例えば、SSHサービスを許可するには、以下のコマンドを使用します。

sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload

サービスを削除するには、以下のコマンドを使用します。

sudo firewall-cmd --permanent --remove-service=ssh
sudo firewall-cmd --reload

ルールの確認

現在設定されているルールを確認するには、以下のコマンドを使用します。

sudo firewall-cmd --list-all

ゾーンの設定

firewalldはzone(ゾーン)ごとに設定を行うことができます。zone(ゾーン)とは、firewalldでネットワーク接続のセキュリティレベルを管理するために使用される指標です。デフォルトゾーンの設定を確認するには、以下のコマンドを使用します。

sudo firewall-cmd --get-default-zone

特定のゾーンにポートを追加するには、以下のようにします。

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

Discussion