ネットフィルター Linuxのファイアウォールであることは誰もが知っています。 ファイアウォールで保護 は、ネットワークゾーンをサポートするファイアウォールを管理するための動的デーモンです。 以前のバージョンでは、 RHEL & CentOS 6 私たちは使用しています iptables パケットフィルタリングフレームワークのデーモンとして。 に RHEL/CentOS 7/8 そして Fedora iptables インターフェイスはに置き換えられています Firewalld。
使用を開始することをお勧めします ファイアウォールで保護 の代わりに iptables これは将来中止される可能性があるためです。 しかしながら、 iptables は引き続きサポートされており、yumコマンドでインストールできます。 維持できない ファイアウォールで保護 そして iptables 両方が同じシステム内にあるため、競合が発生する可能性があります。
に iptables、以前は次のように構成していました 入力、出力、フォワードチェーン しかし、ここで ファイアウォールで保護、コンセプトは使用します ゾーン。 デフォルトでは、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.1。 ファイアウォールで保護 パッケージはデフォルトでにインストールされます RHEL / CentOS 7/8 そして Fedora。 そうでない場合は、次のyumコマンドを使用してインストールできます。
# yum install firewalld -y
2.2。 後に Firewalld パッケージがインストールされたら、次のことを確認します。 iptables サービスが実行されているかどうかにかかわらず、実行されている場合は、以下のコマンドを使用してiptablesサービスを停止およびマスク(使用しない)する必要があります。
# systemctl status iptables # systemctl stop iptables # systemctl mask iptables
ステップ2:ファイアウォールで保護されたコンポーネントについて話し合う
3.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.4。 デフォルトゾーンを内部、外部、ドロップ、作業、またはその他のゾーンとして設定する場合は、以下のコマンドを使用してデフォルトゾーンを設定できます。 ここでは「内部」ゾーンがデフォルトです。
# firewall-cmd --set-default-zone=internal
5.5。 ゾーンを設定した後、以下のコマンドを使用してデフォルトのゾーンを確認します。
# firewall-cmd --get-default-zone
6.6。 ここで、私たちのインターフェースは enp0s3、インターフェイスが制限されているゾーンを確認する必要がある場合は、以下のコマンドを使用できます。
# firewall-cmd --get-zone-of-interface=enp0s3
7。 Firewalldのもう1つの興味深い機能は ‘icmptype‘はfirewalldでサポートされているicmpタイプの1つです。 サポートされているicmpタイプのリストを取得するには、以下のコマンドを使用できます。
# firewall-cmd --get-icmptypes
ステップ4:Firewalldで独自のサービスを作成する
8.8。 サービスは、Firewalldで使用されるポートとオプションを備えた一連のルールです。 有効になっているサービスは、 ファイアウォールで保護 サービスが稼働しています。
デフォルトでは、多くのサービスを利用できます。利用可能なすべてのサービスのリストを取得するには、次のコマンドを使用します。
# firewall-cmd --get-services
9.9。 デフォルトで利用可能なすべてのサービスのリストを取得するには、次のディレクトリに移動します。ここで、サービスのリストを取得します。
# cd /usr/lib/firewalld/services/
10.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.11。 次に、ファイルを開いて編集します。 見出し、説明、プロトコル、およびポート番号、下の図に示すように、RTMPサービスに使用する必要があります。
12.12。 これらの変更を有効にするには、firewalldサービスを再起動するか、設定を再読み込みします。
# firewall-cmd --reload
13.13。 サービスが追加されているかどうかを確認するには、以下のコマンドを実行して、使用可能なサービスのリストを取得します。
# firewall-cmd --get-services
ステップ5:ファイアウォールで保護されたゾーンへのサービスの割り当て
14.14。 ここでは、firewall-cmdコマンドを使用してファイアウォールを管理する方法を説明します。 ファイアウォールとすべてのアクティブゾーンの現在の状態を知るには、次のコマンドを入力します。
# firewall-cmd --state # firewall-cmd --get-active-zones
15.15。 インターフェイスのパブリックゾーンを取得するには enp0s3、これはデフォルトのインターフェースであり、で定義されています。 /etc/firewalld/firewalld.conf としてファイル DefaultZone = public。
このデフォルトのインターフェースゾーンで利用可能なすべてのサービスを一覧表示します。
# firewall-cmd --get-service
ステップ6:ファイアウォールで保護されたゾーンにサービスを追加する
16.16。 上記の例では、を作成して独自のサービスを作成する方法を見てきました。 rtmp サービス、ここでは追加する方法を見ていきます rtmp ゾーンへのサービスも。
# firewall-cmd --add-service=rtmp
17.17。 追加したゾーンを削除するには、と入力します。
# firewall-cmd --zone=public --remove-service=rtmp
上記の手順は一時的なものです。 永続的にするには、オプションを指定して以下のコマンドを実行する必要があります –永続的。
# firewall-cmd --add-service=rtmp --permanent # firewall-cmd --reload
18.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
以上で、Firewalldを使用してネットフィルターを設定する方法を見てきました。 RHEL / CentOS そして Fedora。
結論
Net-filterは、すべてのLinuxディストリビューションのファイアウォールのフレームワークです。 すべてに戻る RHEL そして CentOS エディション、使用しました iptables しかし、新しいバージョンでは、彼らは導入しました ファイアウォールで保護。 Firewalldを理解して使用する方が簡単です。 あなたが記事を楽しんだことを望みます。
Hope this helps!