GNU/Linux >> Linux の 問題 >  >> Cent OS

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

ネットフィルター 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を理解して使用する方が簡単です。記事を楽しんでいただけたでしょうか。


Cent OS
  1. CentOS8およびFedora33にFail2Banをインストールおよび構成する方法

  2. CentOS/RHELおよびFedoraにPython3.5をインストールする方法

  3. CentOS/RHEL 8 で firewalld ロギングを構成する方法

  1. RHEL / CentOS /FedoraにWordPress3.8をインストール、構成、実行する方法

  2. CentOS / RHEL 7 :telnet をインストールして構成する方法

  3. CentOS / RHEL に Samba をインストールして構成する方法

  1. RHEL 8 / CentOS8LinuxシステムにRをインストールして構成する方法

  2. RHEL 8 /CentOS8にsambaをインストールして設定する方法

  3. CentOS/RHEL/Fedora でプロキシを構成する方法