RHEL、CentOS、FedoraでFirewallDを設定する方法

 

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

FirewallDの設定と使用
FirewallDの設定と使用

使用を開始することをお勧めします ファイアウォールで保護 の代わりに iptables これは将来中止される可能性があるためです。 しかしながら、 iptables は引き続きサポートされており、yumコマンドでインストールできます。 維持できない ファイアウォールで保護 そして iptables 両方が同じシステム内にあるため、競合が発生する可能性があります。

iptables、以前は次のように構成していました 入力、出力、フォワードチェーン しかし、ここで ファイアウォールで保護、コンセプトは使用します ゾーン。 デフォルトでは、firewalldで使用できるさまざまなゾーンがあります。これについては、この記事で説明します。

のような基本ゾーン パブリックゾーン そして プライベートゾーン。 これらのゾーンで問題を回避するには、指定されたゾーンサポートを備えたインターフェースを追加する必要があります。その後、firewalldにサービスを追加できます。

デフォルトでは、多くのサービスが利用可能であり、の最高の機能の1つです。 Firewalld つまり、事前定義されたサービスが付属しており、これらのサービスを例として、コピーするだけでサービスを追加できます。

 

ファイアウォールで保護 とうまく機能します IPv4IPv6、 そして イーサネットブリッジ あまりにも。 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
CentOS7にFirewalldをインストールする
Firewalldをインストールする

2.2。 後に Firewalld パッケージがインストールされたら、次のことを確認します。 iptables サービスが実行されているかどうかにかかわらず、実行されている場合は、以下のコマンドを使用してiptablesサービスを停止およびマスク(使用しない)する必要があります。

# systemctl status iptables
# systemctl stop iptables
# systemctl mask iptables
CentOS7でIptablesを無効にする
Iptablesサービスを無効にする

ステップ2:ファイアウォールで保護されたコンポーネントについて話し合う

3.3。 Firewalld構成に進む前に、各ゾーンについて説明したいと思います。 デフォルトでは、いくつかのゾーンが利用可能です。 インターフェースをゾーンに割り当てる必要があります。 ゾーンは、接続を取得するためにインターフェースに対して信頼または拒否されたゾーンのレベルを定義します。 ゾーンには、サービスとポートを含めることができます。

ここでは、Firewalldで利用可能な各ゾーンについて説明します。

  • ドロップゾーン:このドロップゾーンを使用すると、着信パケットはすべてドロップされます。 これは、追加に使用するものと同じです iptables -j drop。 ドロップルールを使用する場合、応答がないことを意味し、発信ネットワーク接続のみが使用可能になります。
  • ブロックゾーン:ブロックゾーンは、着信ネットワーク接続がicmp-host-prohibitedで拒否されることを拒否します。 サーバー内で確立された接続のみが許可されます。
  • パブリックゾーン:選択した接続を受け入れるために、パブリックゾーンでルールを定義できます。 これにより、サーバーで特定のポートのみを開くことができ、他の接続は切断されます。
  • 外部ゾーン:このゾーンは、マスカレードが有効になっているルーターオプションとして機能し、他の接続はドロップされて受け入れられず、指定された接続のみが許可されます。
  • DMZゾーン:一部のサービスへのアクセスを一般に許可する必要がある場合は、DMZゾーンで定義できます。 これにも、選択した着信接続のみが受け入れられるという機能があります。
  • 作業ゾーン:このゾーンでは、内部ネットワークのみを定義できます。つまり、プライベートネットワークのトラフィックが許可されます。
  • ホームゾーン:このゾーンは特にホームエリアで使用されます。このゾーンを使用して、ネットワーク上の他のコンピューターを信頼し、すべてのゾーンとしてコンピューターに害を及ぼさないようにすることができます。 これも、選択した着信接続のみを許可します。
  • 内部ゾーン:これは、許可された接続が選択された作業ゾーンに似ています。
  • トラステッドゾーン:トラステッドゾーンを設定すると、すべてのトラフィックが受け入れられます。

これで、ゾーンについてのより良いアイデアが得られました。次に、使用可能なゾーン、デフォルトゾーンを見つけ、次のコマンドを使用してすべてのゾーンを一覧表示します。

ファイアウォールで保護されたゾーンを一覧表示する

# firewall-cmd --get-zones
利用可能なファイアウォールゾーンを見つける
Firewalldで利用可能なゾーンを見つける

ファイアウォールで保護されたデフォルトゾーンを一覧表示する

# 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
Firewalldのデフォルトゾーンを設定する
Firewalldのデフォルトゾーンを設定する

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
Firewalldサービスを確認する
ファイアウォールで保護されたサービスを一覧表示する

9.9。 デフォルトで利用可能なすべてのサービスのリストを取得するには、次のディレクトリに移動します。ここで、サービスのリストを取得します。

# cd /usr/lib/firewalld/services/
デフォルトのFirewalldサービスを一覧表示する
デフォルトのFirewalldサービスを一覧表示する

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/
Firewalldサービスの作成
Firewalldサービスの作成
Firewalldにサービスを追加
Firewalldサービスを追加する

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

Firewalldサービスを設定する
Firewalldサービスを設定する

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
CentOS7でポートを開く
Firewalldでポートを開く

ステップ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アクティブルールを一覧表示
すべてのFirewallDアクティブルールを一覧表示

Firewalldについてもっと知るため。

# man firewalld

以上で、Firewalldを使用してネットフィルターを設定する方法を見てきました。 RHEL / CentOS そして Fedora

結論

Net-filterは、すべてのLinuxディストリビューションのファイアウォールのフレームワークです。 すべてに戻る RHEL そして CentOS エディション、使用しました iptables しかし、新しいバージョンでは、彼らは導入しました ファイアウォールで保護。 Firewalldを理解して使用する方が簡単です。 あなたが記事を楽しんだことを望みます。

Hope this helps!

Source link