この記事では、CENTOSのファイアウォールを使用して高度なファイアウォールルールを実装する詳細を説明します。粒状制御に豊富なルールを利用して、ゾーンベースのアプローチを強調しています(例、ソースIP、ポート、プロトコルの指定)。ベストプラクティスには、の原則が含まれます
このセクションでは、CENTOSシステムでfirewalld
を使用して高度なファイアウォールルールを実装する方法について詳しく説明します。 firewalld
、簡単なポートオープニングを超えて、ファイアウォールを管理するための堅牢で柔軟な方法を提供します。その強みは、ゾーンベースのアーキテクチャと、豊富な構文を使用して複雑なルールを定義する能力にあります。
まず、 firewalld
がインストールされて実行されていることを確認してください。
<code class="bash">sudo yum install firewalld sudo systemctl start firewalld sudo systemctl enable firewalld</code>
通常、高度なルールは特定のゾーン内で追加されます。 default
ゾーンは通常、パブリックインターフェイス用ですが、 internal
やdmz
などの他のゾーンは、それぞれ内部ネットワークまたは非武装ゾーン用に作成されます。 default
ゾーンの特定のIPアドレス(192.168.1.100)からのみSSHアクセスを許可したいとします。 firewall-cmd
コマンドラインツールを使用してこれを実現できます。
<code class="bash">sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" accept' sudo firewall-cmd --reload</code>
このコマンドは、 default
ゾーンに永続的なルール( --permanent
を使用)を追加します。 --add-rich-rule
オプションは、XMLのような構文で指定された複雑なルールを可能にします。このルールは、 192.168.1.100
から発信されるIPv4トラフィック( family="ipv4"
)を具体的にターゲットにし、それを受け入れます( accept
)。 --reload
変更を有効にするために使用してfirewalld
をリロードすることを忘れないでください。ポート範囲、プロトコル(TCP/UDP)、およびrich rule
内のその他の基準など、より複雑な条件を追加できます。たとえば、そのIPからSSH(ポート22)のみを許可するには:
<code class="bash">sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="22" accept' sudo firewall-cmd --reload</code>
以下を使用して現在のルールを表示できます。
<code class="bash">sudo firewall-cmd --list-all sudo firewall-cmd --list-rich-rules</code>
firewalld
でCentOSサーバーを効果的に保護するには、階層化されたアプローチが必要です。
public
、 internal
、 dmz
)を利用して、ネットワークトラフィックを分離し、各ゾーンに適切なルールを適用します。これにより、違反の影響を制限することによりセキュリティが向上します。rich rules
を使用して、ソースIPアドレス、ポート、プロトコル、およびその他の基準に基づいて、非常に具体的なアクセス制御を定義します。sudo firewall-cmd --list-all
およびsudo firewall-cmd --list-rich-rules
を使用してファイアウォールルールを定期的に確認して、それらがまだ適切で妥協されていないことを確認します。firewalld
ます。firewalld
と組み合わせてFail2ban
を使用することを検討してください。 Fail2ban
、ブルートフォースログインを試みるIPアドレスを自動的に禁止します。アプリケーションに特定のポートとプロトコルを許可するには、アプリケーションで使用されるポートとプロトコルを識別し、適切なファイアウォールルールを作成することが含まれます。たとえば、HTTPトラフィック(ポート80)およびHTTPSトラフィック(ポート443)を許可するには:
<code class="bash">sudo firewall-cmd --permanent --add-port=80/tcp sudo firewall-cmd --permanent --add-port=443/tcp sudo firewall-cmd --reload</code>
特定のIPアドレスまたはその他の基準を含むより複雑なシナリオについては、 rich rules
を使用します。
<code class="bash">sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="8080" accept' sudo firewall-cmd --reload</code>
これにより、IPアドレス192.168.1.100からポート8080のTCPトラフィックが可能になります。これらの値を、特定のアプリケーションの適切なポート、プロトコル、およびIPアドレスに置き換えることを忘れないでください。常にプロトコル(TCPまたはUDP)を明示的に指定してください。
複雑なfirewalld
のトラブルシューティングには、体系的なアプローチが必要です。
sudo firewall-cmd --list-all
およびsudo firewall-cmd --list-rich-rules
ことを確認します。public
、 internal
)に関連付けられていることを確認してください。 sudo firewall-cmd --get-active-zones
を使用して、アクティブゾーンとそのインターフェイスをリストします。firewalld
ログの確認してください。ログファイルの場所は、システムの構成によって異なる場合がありますが、 /var/log/firewalld/
にあることがよくあります。ping
、 telnet
、 netstat
、 nc
などのツールを使用して、ルールの影響を受けるサービスへの接続性をテストします。sudo firewall-cmd --reload
を使用して常にfirewalld
をリロードしてください。頑固な場合、フル再起動( sudo systemctl restart firewalld
)が必要になる場合があります。iptables
(Advanced)を使用:非常に複雑なシナリオでは、基礎となるiptables
ルールを直接操作できますが、これは一般的にiptables
に精通していない限り落胆します。ただし、 iptables
に直接加えられた変更は、 firewalld
がリロードされると上書きされることを忘れないでください。firewalld
ドキュメントを参照してください。これらの手順とベストプラクティスに従うことにより、CentOSサーバー上のfirewalld
を使用して高度なファイアウォールルールを効果的に管理およびトラブルシューティングし、セキュリティと安定性を向上させることができます。
以上がCentosにファイアウォールを使用して高度なファイアウォールルールを実装する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。