CentOS 8でFirewallDを使用してネットワークアクセスを制限する方法

Linuxユーザーは、 CentOS / RHEL 8およびFedoraなどのほとんどのRHELベースのディストリビューションにネイティブのファイアウォールファイアウォールを使用して、一部のサービスまたはIPアドレスへのネットワークアクセスを許可または制限することができます。

firewalldファイアウォールは、 firewall-cmdコマンドラインユーティリティを使用してファイアウォールルールを構成します。

設定を行う前に、次に示すようにsystemctlユーティリティを使用してfirewalldサービスを有効にします。

 $ sudo systemctl enable firewalls

有効にしたら、次のコマンドを実行してfirewalldサービスを開始できます。

 $ sudo systemctl start firewalls

次のコマンドを実行して、 firewalldのステータスを確認できます。

 $ sudo systemctl status firewalls

以下の出力は、 firewalldサービスが稼働中であることを確認しています。

Firewalldステータスを確認する
Firewalldステータスを確認する

Firewalldを使用したルールの設定

firewalldが実行されたので、いくつかの構成をすぐに作成できます。 Firewalldを使用すると、ポート、ブラックリスト、およびホワイトリストのIPアドレスを追加およびブロックして、サーバーへのアクセスを提供できます。設定が完了したら、新しいルールを有効にするために、必ずファイアウォールをリロードしてください。

TCP / UDPポートの追加

ポート、たとえばHTTPSのポート443を追加するには、次の構文を使用します。ポート番号の後に、ポートがTCPポートかUDPポートかを指定する必要があることに注意してください。

$ sudo firewall-cmd --add-port=22/tcp --permanent

同様に、 UDPポートを追加するには、次のようにUDPオプションを指定します。

$ sudo firewall-cmd --add-port=53/udp --permanent

--permanentフラグを使用すると、再起動後もルールが維持されます。

TCP / UDPポートのブロック

ポート22などのTCPポートをブロックするには、コマンドを実行します。

$ sudo firewall-cmd --remove-port=22/tcp --permanent

同様に、 UDPポートをブロックすると、同じ構文に従います。

$ sudo firewall-cmd --remove-port=53/udp --permanent

サービスを許可する

ネットワークサービスは/ etc / servicesファイルで定義されてます。 httpsなどのサービスを許可するには、次のコマンドを実行します

$ sudo firewall-cmd --add-service=https

サービスをブロックする

FTPなどのサービスをブロックするには、次のコマンドを実行します。

$ sudo firewall-cmd --remove-service=https

IPアドレスをホワイトリストに登録する

ファイアウォールを越えて単一のIPアドレスを許可するには、次のコマンドを実行します。

$ sudo firewall-cmd --permanent --add-source=192.168.2.50

CIDR(クラスレスドメイン間ルーティング)表記を使用して、IPの範囲またはサブネット全体を許可することもできます。たとえば、 255.255.255.0サブネット内のサブネット全体を許可するには、実行します。

$ sudo firewall-cmd --permanent --add-source=192.168.2.0/24

ホワイトリストに登録されたIPアドレスの削除

ファイアウォールでホワイトリストに登録されたIPを削除する場合は、次のように--remove-sourceフラグを使用します。

$ sudo firewall-cmd --permanent --remove-source=192.168.2.50

サブネット全体に対して、次を実行します。

$ sudo firewall-cmd --permanent --remove-source=192.168.2.50/24

IPアドレスのブロック

これまでに、ポートとサービスを追加および削除する方法と、ホワイトリストに登録されたIPをホワイトリストに登録および削除する方法について説明しました。 IPアドレスをブロックするには、この目的で「 リッチルール 」を使用します。

たとえば、IP 192.168.2.50をブロックするには、次のコマンドを実行します。

$ sudo firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.2.50' reject"

サブネット全体をブロックするには、次のコマンドを実行します。

$ sudo firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.2.0/24' reject"

ファイアウォールルールの保存

ファイアウォールルールに変更を加えた場合は、以下のコマンドを実行して、変更をすぐに適用する必要があります。

 $ sudo firewall-cmd --reload

ファイアウォールルールの表示

ファイアウォール内のすべてのルールを確認する必要がある場合は、次のコマンドを実行します。

 $ sudo firewall-cmd --list-all
ファイアウォールルールの表示
ファイアウォールルールの表示

これで、 CentOS / RHEL 8で FirewallDを使用してネットワークアクセスを許可または制限する方法について、このガイドは終わりです。このガイドがお役に立てば幸いです。

Source