-1

ファイアウォールルールの再読み込み中にエラー状態を処理するための堅牢で信頼性の高いエレガントな方法が必要です。背景は次のとおりです。

  1. 私たちのサーバーはホワイトリストメカニズムを使用しています。つまり、一部のサーバーが多くの異なる宛先と通信する必要がある場合は、大量のルールが必要です。
  2. ファイアウォールルールファイルを生成する別のツールがあります。これはiptables/ipfilterにフィードされますが、ファイルの形式が正しくない可能性は非常にまれです。
  3. ファイアウォールルール番号が非常に大きくなる可能性があるため、一部のレガシーハードウェアのリソース制限により、iptables / ipfilterがファイアウォールルールファイルの読み込みに失敗する場合があります。たとえば、20kを超えるルールを再読み込みするときに、メモリが不足する場合があります。完全に。

だから私の質問は:

  1. 実際にロードする前にファイアウォールルールの構文をチェックするために使用できる既存のツールはありますか?

  2. リロードプロセスをアトミックにする方法はありますか?たとえば、新しいルールを正常にリロードするか、以前の正常なルールセットを予約するだけですか?

  3. 現在の実行環境とルールセットを考慮して、リロードが確実に成功することをどのように確認できますか?または、リロードが成功/失敗する可能性が高いと推定するためのツールはありますか?

どんな提案でも大歓迎です。前もって感謝します。

4

1 に答える 1

2

iptables-restoreはアトミックであると言われています。 私はそれを確認することはできませんが、それが真実であると仮定すると、それは賢明なアプローチのように思えます。

  1. テストマシンで、すべてのルールをフラッシュしてから、生成されたルールを適用してそれらを検証します。
  2. 検証したら、を使用iptables-saveしてルールセットをダンプします。

    [root@testmachine]$ iptables-save > new_rules.iptables
    
  3. 以下を使用して、実動マシンのルールセットを再確認してくださいiptables-restore -t

    [root@production]$ iptables-restore --test < new_rules.iptables
    
  4. 新しいルールセットを実稼働マシンにロードします。

    [root@production]$ iptables-restore < new_rules.iptables
    
于 2012-10-19T10:50:05.510 に答える