ネットフィルター Linuxのファイアウォールであることは誰もが知っています。 Firewalld は、ネットワークゾーンをサポートするファイアウォールを管理するための動的デーモンです。以前のバージョンでは、 RHEL & CentOS 6 iptablesを使用しています パケットフィルタリングフレームワークのデーモンとして。 RHEL / CentOS 7/8 およびFedora iptables インターフェースはfirewalldに置き換えられています 。

Firewalldの使用を開始することをお勧めします iptablesの代わりに これは将来中止される可能性があるためです。ただし、 iptables は引き続きサポートされており、yumコマンドを使用してインストールできます。 Firewalldを維持することはできません およびiptables 両方とも同じシステム内にあるため、競合が発生する可能性があります。
iptables 、以前は入力、出力、転送チェーンとして構成していました しかし、ここでは Firewalld 、コンセプトはゾーンを使用します 。デフォルトでは、firewalldで使用できるさまざまなゾーンがあります。これについては、この記事で説明します。
パブリックゾーンのような基本ゾーン およびプライベートゾーン 。これらのゾーンで問題を回避するには、指定されたゾーンサポートを備えたインターフェースを追加する必要があります。その後、firewalldにサービスを追加できます。
デフォルトでは、多くのサービスが利用可能であり、 firewalldの最高の機能の1つです。 つまり、事前定義されたサービスが付属しており、これらのサービスを例として、コピーするだけでサービスを追加できます。
Firewalld IPv4でうまく機能します 、 IPv6、 およびイーサネットブリッジ それも。 Firewalldでは、実行時と永続的な構成を個別に設定できます。
ゾーンを操作して独自のサービスを作成する方法と、firewalldのはるかにエキサイティングな使用法を始めましょう。
テスト環境
Operating System : CentOS Linux release 7.0.1406 (Core) IP Address : 192.168.0.55 Host-name : server1.tecmintlocal.com

ステップ1:CentOSにFirewalldをインストールする
1。 Firewalld パッケージはデフォルトでRHEL/ CentOS 7/8にインストールされます およびFedora 。そうでない場合は、次のyumコマンドを使用してインストールできます。
# yum install firewalld -y

2。 firewalldの後 パッケージがインストールされたら、 iptablesかどうかを確認します。 サービスが実行されているかどうかにかかわらず、実行中の場合は、以下のコマンドを使用してiptablesサービスを停止してマスクする(使用しない)必要があります。
# systemctl status iptables # systemctl stop iptables # systemctl mask iptables

ステップ2:ファイアウォールで保護されたコンポーネントについて話し合う
3。 Firewalld構成に進む前に、各ゾーンについて説明したいと思います。デフォルトでは、いくつかのゾーンが利用可能です。インターフェースをゾーンに割り当てる必要があります。ゾーンは、接続を取得するためにインターフェースに対して信頼または拒否されたゾーンを定義します。ゾーンにはサービスとポートを含めることができます。
ここでは、Firewalldで利用可能な各ゾーンについて説明します。
- ドロップゾーン :このドロップゾーンを使用すると、着信パケットはすべてドロップされます。これは、 iptables -j dropを追加するために使用するのと同じです。 。ドロップルールを使用すると、応答がなく、発信ネットワーク接続のみが使用可能になります。
- ブロックゾーン :ブロックゾーンは、着信ネットワーク接続がicmp-host-prohibitedで拒否されることを拒否します。サーバー内で確立された接続のみが許可されます。
- パブリックゾーン :選択した接続を受け入れるために、パブリックゾーンでルールを定義できます。これにより、サーバーで特定のポートのみを開くことができ、他の接続は切断されます。
- 外部ゾーン :このゾーンは、マスカレードが有効になっているルーターオプションとして機能し、他の接続はドロップされて受け入れられず、指定された接続のみが許可されます。
- DMZゾーン :一部のサービスへのアクセスを一般に許可する必要がある場合は、DMZゾーンで定義できます。これにも、選択した着信接続のみが受け入れられるという機能があります。
- ワークゾーン:このゾーンでは、内部ネットワークのみを定義できます。つまり、プライベートネットワークトラフィックが許可されます。
- ホームゾーン :このゾーンはホームエリアで特別に使用されます。このゾーンを使用して、ネットワーク上の他のコンピューターを信頼し、すべてのゾーンとしてコンピューターに害を及ぼさないようにすることができます。これも、選択した着信接続のみを許可します。
- 内部ゾーン :これは、許可された接続が選択された作業ゾーンに似ています。
- 信頼できるゾーン :トラステッドゾーンを設定すると、すべてのトラフィックが受け入れられます。
これで、ゾーンについてのより良いアイデアが得られました。次に、使用可能なゾーン、デフォルトゾーンを見つけ、次のコマンドを使用してすべてのゾーンを一覧表示しましょう。
ファイアウォールゾーンの一覧表示
# firewall-cmd --get-zones

ファイアウォールで保護されたデフォルトゾーンのリスト
# firewall-cmd --get-default-zone

すべてのファイアウォールゾーンを一覧表示
# firewall-cmd --list-all-zones
<強い色:赤;">注 :上記のコマンドの出力は、block、dmz、drop、external、home、internal、public、trusted、workなどのすべてのゾーンが一覧表示されるため、1つのページに収まりません。ゾーンにリッチルールがある場合は、有効なサービスまたはポートもそれぞれのゾーン情報とともに一覧表示されます。
ステップ3:デフォルトのファイアウォールゾーンを設定する
4。 デフォルトゾーンを内部、外部、ドロップ、作業、またはその他のゾーンとして設定する場合は、以下のコマンドを使用してデフォルトゾーンを設定できます。ここでは「内部」を使用しています 」ゾーンがデフォルトです。
# firewall-cmd --set-default-zone=internal
5。 ゾーンを設定したら、以下のコマンドを使用してデフォルトのゾーンを確認します。
# firewall-cmd --get-default-zone

6。 ここで、インターフェイスは enp0s3です。 、インターフェースが制限されているゾーンを確認する必要がある場合は、以下のコマンドを使用できます。
# firewall-cmd --get-zone-of-interface=enp0s3

7。 Firewalldのもう1つの興味深い機能は、「 icmptype ‘はfirewalldでサポートされているicmpタイプの1つです。サポートされているicmpタイプのリストを取得するには、以下のコマンドを使用できます。
# firewall-cmd --get-icmptypes
ステップ4:Firewallで独自のサービスを作成する
8。 サービスは、Firewalldで使用されるポートとオプションを備えた一連のルールです。有効になっているサービスは、 Firefoxのときに自動的に読み込まれます サービスを稼働させます。
デフォルトでは、多くのサービスを利用できます。利用可能なすべてのサービスのリストを取得するには、次のコマンドを使用します。
# firewall-cmd --get-services

9。 デフォルトで利用可能なすべてのサービスのリストを取得するには、次のディレクトリに移動します。ここにサービスのリストが表示されます。
# cd /usr/lib/firewalld/services/

10。 独自のサービスを作成するには、次の場所でサービスを定義する必要があります。たとえば、ここで RTMPのサービスを追加したいと思います ポート1935 、最初にいずれかのサービスのコピーを作成します。
# cd /etc/firewalld/services/ # cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/
次に、サービスファイルがコピーされた場所に移動し、次にファイルの名前を「 ssh.xml」に変更します。 ‘から‘ rtmp.xml ‘下の写真に示すように。
# cd /etc/firewalld/services/


11。 次に、ファイルを開いて、見出し、説明、プロトコル、およびポート番号として編集します。 、下の図に示すように、RTMPサービスに使用する必要があります。

12。 これらの変更を有効にするには、firewalldサービスを再起動するか、設定を再読み込みします。
# firewall-cmd --reload
13。 サービスが追加されているかどうかを確認するには、以下のコマンドを実行して、使用可能なサービスのリストを取得します。
# firewall-cmd --get-services

ステップ5:ファイアウォールゾーンへのサービスの割り当て
14。 ここでは、firewall-cmdコマンドを使用してファイアウォールを管理する方法を確認します。ファイアウォールとすべてのアクティブゾーンの現在の状態を知るには、次のコマンドを入力します。
# firewall-cmd --state # firewall-cmd --get-active-zones
15。 インターフェイスenp0s3のパブリックゾーンを取得するには 、これはデフォルトのインターフェースであり、 /etc/firewalld/firewalld.confで定義されています。 DefaultZone =publicとしてファイル 。
このデフォルトのインターフェースゾーンで利用可能なすべてのサービスを一覧表示します。
# firewall-cmd --get-service
ステップ6:ファイアウォールゾーンへのサービスの追加
16。 上記の例では、 rtmpを作成して独自のサービスを作成する方法を見てきました。 サービス、ここでは rtmpを追加する方法を説明します ゾーンへのサービスも。
# firewall-cmd --add-service=rtmp
17。 追加したゾーンを削除するには、次のように入力します。
# firewall-cmd --zone=public --remove-service=rtmp
上記の手順は一時的なものです。永続的にするには、オプション –permanentを指定して以下のコマンドを実行する必要があります。 。
# firewall-cmd --add-service=rtmp --permanent # firewall-cmd --reload
18。 ネットワークソース範囲のルールを定義し、いずれかのポートを開きます。たとえば、ネットワーク範囲を開きたい場合は、「 192.168.0.0/24」と言います。 ‘およびポート‘ 1935 ‘次のコマンドを使用します。
# firewall-cmd --permanent --add-source=192.168.0.0/24 # firewall-cmd --permanent --add-port=1935/tcp
サービスまたはポートを追加または削除した後は、必ずfirewalldサービスをリロードしてください。
# firewall-cmd --reload # firewall-cmd --list-all

ステップ7:ネットワーク範囲にリッチルールを追加する
19。 http、https、vnc-server、PostgreSQLなどのサービスを許可する場合は、次のルールを使用します。まず、ルールを追加して永続化し、ルールを再読み込みしてステータスを確認します。
# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="http" accept' # firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="http" accept' --permanent # firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="https" accept' # firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="https" accept' --permanent # firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="vnc-server" accept' # firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="vnc-server" accept' --permanent # firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="postgresql" accept' # firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="postgresql" accept' --permanent
現在、ネットワーク範囲は 192.168.0.0/24 私のサーバーから上記のサービスを使用できます。オプション–永続的 すべてのルールで使用できますが、ルールを定義し、クライアントアクセスを確認してから、永続的にする必要があります。
20。 上記のルールを追加したら、ファイアウォールルールを再読み込みし、次のコマンドを使用してルールを一覧表示することを忘れないでください。
# firewall-cmd --reload # firewall-cmd --list-all

Firewalldについてもっと知るために。
# man firewalld
これで、 RHEL / CentOSでFirewalldを使用してネットフィルターを設定する方法を確認しました。 およびFedora 。
結論
Net-filterは、すべてのLinuxディストリビューションのファイアウォールのフレームワークです。すべてのRHELに戻る およびCentOS エディションでは、 iptablesを使用しました ただし、新しいバージョンでは、 Firefoxが導入されています。 。 Firewalldを理解して使用する方が簡単です。記事を楽しんでいただけたでしょうか。