web-dev-qa-db-ja.com

複数のパブリックIPアドレスのIPTABLES

現在、次のようにPacemakerとCorosyncを使用してHAアクティブ/パッシブセットアップでDebian7を実行している2台のサーバーがあります。

node1->IP->xx.xx.xx.1
node2->IP->xx.xx.xx.2
VIP(Floating IP) ->xx.xx.xx.3

フェイルオーバーセットアップ用にハートビートで構成されます。上記のすべてのIPは公開されています。

他のノードに障害が発生した場合など、システムはすべて高可用性で想定どおりに機能しています。システムの1つがアクティブな場合、1つのサーバーに2つのIPが割り当てられます。

だからここに私の質問があります-

  1. 異なるIP(VIPと静的パブリックIP)に個別のiptableルールを追加する必要がありますか?
  2. たとえばDBサーバーのサービスの特定のIP(VIP)でのみトラフィックを許可(リッスン)し、外部の他のパブリックアドレス(xx.1)からのトラフィックを許可(リッスン)する方法。

    セキュリティなどの設定について何か気になることがあればコメントしてください。

ありがとう

3
vrOom

異なるIP(VIPと静的パブリックIP)に個別のiptableルールを追加する必要がありますか?

これは、既存のiptablesルールがどのように見えるかによって異なります。特定のIPアドレスへのアクセスを明示的に許可している場合は、はい、VIPにルールを追加する必要があります。特定のポートへの接続を受け入れるだけの場合は、いいえ。

たとえば、DBサーバーのサービスの特定のIP(VIP)でのみトラフィックを許可(リッスン)し、外部の他のパブリックアドレス(xx.1)からのトラフィックを許可(リッスン)する方法

これは、特定のサービスに使用されているソフトウェアによって異なります。例えば。 MySqlは、他のIPアドレスへの接続が成功しないように、特定のIPアドレスにバインドするように指示できます。 iptablesを使用して、VIPの高可用性サービスポート以外のすべてをブロックすることもできます。

iptablesに関する私の個人的なルールは、I knowが必要な接続を常に明示的に許可し、それ以外はすべてブロックすることです。

VIPで、高可用性を実現しているサービス(ポート80のhttpなど)を除くすべてをブロックする場合:

iptables -A INPUT -d xx.xx.xx.3 --protocol tcp --dport 80 -j ACCEPT
iptables -A INPUT -d xx.xx.xx.3 -j REJECT

同様に、必要に応じて非VIPアドレスのポートを許可またはブロックします。

ちなみに、すべてのプロトコルINPUTトラフィックを受け入れる以前のicmpルールが必要です。あいまいなネットワークの問題の多くは、人々がicmpパケットを無意識にブロックすることによって引き起こされます。

1
wurtel