アプリケーションを中断せずにファイアウォールを有効にする方法は?

アプリケーションを中断せずにファイアウォールを有効にする方法は?

同じLANに複数のCentOS 7システムがあります。各アプリケーションは複数の異なるアプリケーションと通信し、それぞれ異なるポート(データベース、Webサーバー、ロードバランシングサービスなど)でリッスンする1つ以上のアプリケーションがインストールされています。一般的なネットワークアーキテクチャに関する内容です。

これでfirewalld、この機能はすべて無効になりました。どこでもアクティブにしたいです。

通常は次のようになります。

  1. systemctl enable firewalld
  2. systemctl start firewalld
  3. firewall-cmd <...>(ポート、ソース、サービスなどを追加)

問題は、ファイアウォールサービスを開始すると、基本的に手順3を実行する機会があるまでほとんどのコンテンツ1をブロックすることです。そして、追加する必要がある構成(ポート、ソース)の量を考慮すると、サービスを理解するまで、デフォルトではサービスが利用できないかアクセスできなくなります。

私が最も重要に思う機能は次のとおりです。

  • 一部のシステムでは、GlusterFSを使用してネットワークファイルシステムを作成し、それを別のシステムにマウントしています。
  • 私はCorosync + Pacemakerを使用していくつかのシステム間にいくつかのクラスタを作成していますが、これらのツールはさまざまなポートを使用してハートビートと同様の機能を実装しています。

これらのシステムでファイアウォールをオンにすると、ステートメントがたくさん実行されるまですべてのサービスがすぐにブロックされますfirewall-cmd <...>。私はこれの結果を知らない。


私の質問は:ステップ2の前にステップ3を実行する方法はありますか?これにより、サービスを開くときにすべてが所定の位置になります。

/etc/firewalld/zones私の唯一のアイデアは、フォルダ内のXMLファイルを手動で編集することです。しかし、これは非常にエラーが発生しやすいようです。特にそのような編集が簡単にできるほどファイアウォールに慣れていないからです。


1 =私が知っている限り、ポート80/443(HTTP / HTTPS)と22(SSH)のみが開き、他のすべてのポートは明示的に開くまでブロックされます。

ベストアンサー1

サービスを開始する前に、構成ファイルを介してfirewalldパラメーターを指定する必要があります。各サービス(GlusterFS、Pacemaker ...)のルールファイルを作成し、そのファイルに必要なすべてのポートを配置することをお勧めします。たとえば(心拍数調整器の場合クラスター・コンポーネントを許可するように iptables ファイアウォールを構成する) /etc/firewalld/services/pacemaker.xml:

<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>Pacemaker</short>
  <description>Pacemaker service</description>
  <port protocol="tcp" port="2224"/>
  <port protocol="tcp" port="3121"/>
  <port protocol="tcp" port="5403"/>
  <port protocol="udp" port="5404"/>
  <port protocol="udp" port="5405"/>
  <port protocol="tcp" port="21064"/>
</service>

より多くの情報と例を得ることができます。FirewallDを使用してCentOS 7でファイアウォールを設定する方法

それからfirewalld始めても安全です。

手動編集領域ファイルが破損する可能性がある場合は、firewalld作業システムに適用する前に仮想環境でテストしてみてください。

おすすめ記事