Firewalldは、Red Hat EnterpriseLinuxおよびその派生Linuxディストリビューション(AlmaLinuxなど)にプリインストールされているデフォルトのファイアウォールプログラムです。
デフォルトでは、ファイアウォールはオンになっています。つまり、非常に限られた数のサービスが着信トラフィックを受信できます。これは優れたセキュリティ機能ですが、ユーザーがシステムに新しいサービス(HTTPDやSSHなど)をインストールするたびにファイアウォールを構成するのに十分な知識が必要であることを意味します。そうしないと、インターネットからの接続がこれらのサービスに到達できません。
AlmaLinuxのファイアウォールを完全に無効にするのではなく、ファイアウォールを通過する特定のポートを許可することができます。これにより、着信接続がサービスに到達できるようになります。このガイドでは、AlmaLinuxのファイアウォールを通過するポートを許可する方法を説明します。 AlmaLinuxを新たにインストールしたか、CentOSからAlmaLinuxに移行したかを自由にフォローしてください。
このチュートリアルでは、次のことを学びます。
- AlmaLinuxのファイアウォールを通過するポートまたはサービスを許可する方法
- 変更を有効にするためにファイアウォールをリロードする方法
- ファイアウォールで開いているポートとサービスを確認する方法
- ポートを開いた状態に設定した後でポートを閉じる方法
- 最も一般的なポートがファイアウォールを通過できるようにするためのコマンド例
カテゴリ | 使用する要件、規則、またはソフトウェアバージョン |
---|---|
システム | AlmaLinux |
ソフトウェア | firewalld |
その他 | rootまたはsudo を介したLinuxシステムへの特権アクセス コマンド。 |
コンベンション | # –指定されたLinuxコマンドは、rootユーザーとして直接、またはsudo を使用して、root権限で実行する必要があります。 コマンド$ –特定のLinuxコマンドを通常の非特権ユーザーとして実行する必要があります |
AlmaLinuxでファイアウォールを通過するポートを許可する方法
以下のステップバイステップの手順に従って、AlmaLinuxでfirewalldを介してポートまたはサービスを許可します。また、firewalldが構成した開いているポートを確認する方法もわかります。
- RHEL 8 / CentOS 8 Linuxでファイアウォールポートが開いているかどうかを確認するときは、ファイアウォールポートを2つの主な方法で開くことができることを知っておくことが重要です。まず、ファイアウォールポートは、事前構成されたサービスの一部として開くことができます。
HTTP
のポートを開くこの例を見てくださいpublic
へ zone。# firewall-cmd --zone=public --add-service=http --permanent
もちろん、HTTPサービスをfirewalldに追加することは、ポート
80
を開くことと同じです。 。 - 次に、カスタムユーザー定義済みポートとしてポートを直接開くことができます。ポート
8080
を開くこの例を見てください 。# firewall-cmd --zone=public --add-port 8080/tcp --permanent
8080には関連付けられたサービスがないため、このポートを開く場合は、サービス名ではなくポート番号を指定する必要があります。
- 開いているサービスポートを確認するには、次のコマンドを実行します。
# firewall-cmd --zone=public --list-services cockpit dhcpv6-client http https ssh
上記のサービス(コックピット、DHCP、HTTP、HTTPS、SSH)では、関連するポート番号が開いています。
- 開いているポート番号を確認するには、このコマンドを使用します。
# firewall-cmd --zone=public --list-ports 20/tcp 8080/tcp
上記のポート、
20
および8080
、着信トラフィックに開放されています。 - ポートとサービスがファイアウォールを通過することを許可した後、変更を有効にするには、firewalldをリロードする必要があります。
--permanent
を含むすべてのルール オプションがランタイム構成の一部になります。このオプションのないルールは破棄されます。# firewall-cmd --reload
-
--list-all
を使用して、開いているすべてのサービスとポートのリストを表示することもできます option。# firewall-cmd --list-all public (active) target: default icmp-block-inversion: no interfaces: ens160 sources: services: cockpit dhcpv6-client http ssh ports: 443/tcp protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
- firewalldはゾーンで機能することに注意してください。ネットワークインターフェイスが使用しているゾーンによっては、許可されたポートをその特定のゾーンに追加する必要がある場合があります。上記の最初のステップは、「パブリック」ゾーンにルールを追加する方法を示しています。そのゾーンのルールを具体的に確認するには、引き続き
--zone=
を使用してください。 構文。# firewall-cmd --list-all --zone=public public (active) target: default icmp-block-inversion: no interfaces: ens160 sources: services: cockpit dhcpv6-client http ssh ports: 443/tcp protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
- 以前に構成された開いているポートの1つを閉じる必要がある場合は、次のコマンド構文を使用できます。この例では、HTTPSのポートを閉じます。
# firewall-cmd --zone=public --permanent --remove-service=https
これですべてです。 Firewalldとfirewall-cmd
の詳細については Linuxコマンドについては、firewalldとfirewall-cmdの概要に関する専用ガイドをご覧ください。
一般的なポートの例
以下のコマンドを簡単なリファレンスガイドとして使用して、AlmaLinuxのファイアウォールを通過する最も一般的なサービスのいくつかを許可します。
- ファイアウォールを介したHTTPを許可します。
# firewall-cmd --zone=public --add-service=http --permanent
- ファイアウォールを介したHTTPSを許可します。
# firewall-cmd --zone=public --add-service=https --permanent
- ファイアウォールを介したMySQLの許可。
# firewall-cmd --zone=public --add-service=mysql --permanent
- ファイアウォールを介したSSHを許可します。
# firewall-cmd --zone=public --add-service=ssh --permanent
- ファイアウォールを介したDNSを許可します。
# firewall-cmd --zone=public --add-service=dns --permanent
- ファイアウォールを通過するPostgreSQLを許可します。
# firewall-cmd --zone=public --add-service=postgresql --permanent
- ファイアウォールを通過するtelnetを許可します。
# firewall-cmd --zone=public --add-service=telnet --permanent
まとめ
このガイドでは、AlmaLinuxのファイアウォールを通過するポートまたはサービスを許可する方法を説明しました。これには、firewalldに関連付けられたfirewall-cmdコマンドの使用が含まれます。これにより、使用する正しい構文がわかれば、プロセスが簡単になります。また、ファイアウォールを介して最も一般的なサービスの多くを許可するための複数の例を見ました。新しいルールを適用するゾーンに特に注意を払うことを忘れないでください。