大規模環境向けのiptables管理ツール


15

私が動作している環境は、大規模なWebホスティング操作です(管理下にある数百のサーバー、ほぼすべてのパブリックアドレッシングなど、ADSLリンクの管理について話すものはすべてうまく機能しない可能性があります)。コアルールセット(現在のカウントでiptablesの約12,000エントリ)と、お客様が管理するホストベースのルールセットの両方を快適に管理できるものを探しています。コアルータールールセットは1日に数回変更され、ホストベースのルールセットは月に50回(すべてのサーバーで変更されるため、月に5台のサーバーごとに1回変更される)です。

現在、filtergen(一般的にはボールであり、運用規模ではスーパーボール)を使用しており、過去に他のジョブでshorewallを使用しました(filtergenよりも望ましいでしょうが、そこにあるものよりも優れている)。

交換システムについて考え出した「ムスト」は次のとおりです。

  • ルールセットをかなり迅速に生成する必要があります(ルールセットで実行されるfiltergenは15〜20分かかります。これは非常識です)。これは次の点に関連しています。
  • iptables-restoreスタイルファイルを生成し、1回のヒットでロードする必要があります。ルールの挿入ごとにiptablesを呼び出す必要はありません
  • ルールセットのリロード中に長時間ファイアウォールを停止しないでください(これも上記の結果です)
  • IPv6をサポートする必要があります(IPv6互換ではない新しいものは展開していません)
  • DFSGフリーでなければなりません
  • プレーンテキストの構成ファイルを使用する必要があります(リビジョン管理を介してすべてを実行し、標準のUnixテキスト操作ツールを使用することがSOPです)
  • RedHatとDebianの両方をサポートする必要があります(パッケージ化が推奨されますが、少なくともどちらかのディストリビューションの標準に対してあからさまに敵対してはなりません)
  • システムの「ネイティブ言語」の一部ではない機能をサポートするために、任意のiptablesコマンドを実行する機能をサポートする必要があります

これらの基準をすべて満たさないものは考慮されません。以下は私たちの「持っているのがいい」です。

  • 構成ファイル「フラグメント」をサポートする必要があります(つまり、ディレクトリにファイルの山をドロップし、ファイアウォールに「このディレクトリのすべてをルールセットに含める」と言うことができます。構成管理を広範囲に使用し、この機能を使用したいサービス固有のルールを自動的に提供します)
  • 生のテーブルをサポートする必要があります
  • 着信パケットと拒否ルールの両方で特定のICMPを指定できるようにする必要があります
  • 複数のIPアドレスに解決するホスト名を適切にサポートする必要があります(filtergenでこれに数回捕らえられました;かなり王室の痛みです)
  • ツールがサポートするオプション/奇妙なiptables機能が(ネイティブで、または既存のプラグインまたは簡単に書き込み可能なプラグインを介して)より良い。私たちは時々iptablesの奇妙な機能を使用しますが、「機能する」ものが多いほど、すべての人にとって優れています。

私は噛みます-あなたの投稿で「ボール」と「スーパーボール」という用語は何をしますか?あなたは弾力のあるゴム球について話していないと思いますが、文脈が「良い」か「悪い」かを推測することはできません。
エヴァンアンダーソン

ボール==悪い。スーパーボール==余分に悪い。
ワンブル

多数のルールを使用して、確立された関連する接続を受け入れるACCEPTルールが一番上にあることを確認してください。PCにはTCAMがなく、その多くのルールがパフォーマンスに影響します。たくさん。
トーマス

@thomas:はい、ルールセットにはある程度の最適化があります。もちろん、どのファイアウォールツールを選択した場合でも、最適化についての「知識」を持っていることはボーナスです。
ワンブル

回答:


4

ルール駆動型のアプローチから、「必要な最終状態を説明する」方法に移行したい場合は、fwbuilderをご覧ください。

長所:

  • 複数のファイアウォールをサポート-コア+ホストベースのルール-1セットのオブジェクトから
  • SQL風の「方法を教えて」ではなく、「あなたが望むものを教えて」というアプローチ(注意:そこにSQLがあると言っているわけではありません!それは説明的なVs手続き型だからです:-)
  • これは、商用ハードウェアf / wベンダーのインターフェイスのようなGUIなので、従業員/スキルスタックにいくつかのタスクをプッシュすることができます。
  • 私が試したほとんどの「奇妙な」使用をサポートしています
  • さまざまなf / w実装のルールを生成できる-BSD / cicso / iptables / etc
  • フロントエンドをルールコンパイラから分離しているため、作成者にとって速度が懸念事項であることが期待されます。NB私はあなたがほのめかしているスケールの近くに何もありません
  • ファイル形式はバイナリではありません
  • IPv6
  • アトミックで高速なロードのためのiptables-save stylee構成を作成します

短所:

  • それはGUIです
  • 既存のルールセットを移動するのに苦労することはほとんどありません
  • GPLおよびDebianでは、Windows + OSXクライアントは30日間評価されます。これは、これらのOS向けの無料バージョンをクロスコンパイルした人はいないためです。したがって、開発者の商業部門はこれらのバイナリを独占しています
  • ファイル形式は技術的にはXMLです。NBはこれを遅らせないでください:彼らが提供するツール(たとえば、GUIを使用してCLI経由で操作することができます)、すでに存在するCLI XMLツールを見て、それを覚えておいてください-あなたのスケール-メタデータ+構造の見た目は/ bad /のものではありません!それは、編集、IIRC全体で非常にうまく違います。

リンク:http : //www.fwbuilder.org


Hrm ...見てみましょう。GUIの存在(XMLは言うまでもありません)によって私はかなり激しく動揺しますが、いくつかの興味深いアイデア(インフラストラクチャ全体に対する単一のルールセット)を提起します。OS Xの問題は問題になりません。
ワンブル

私は同意しますが、GUIによって元々WTFが作成されましたが、CLI側から見たものにも満足しました。とにかく、セットアップはどの程度動的ですか?1日に10回、1年に10回変更されますか?これは、ここで詳しく説明するのに役立つ要素かもしれません。また、XMLファイル形式の便利な機能として、XML対応ツールを使用すると、単一定義オブジェクトを使用して1つのファイルに構成全体を保持できますが、個々のサーバーの構成と変更セットを文書化するノード固有の変更ログを生成できます。ただ、思考...
ジョナサン・マシューズ

@ジョナサン:あなたは正しい、ルールセットのダイナミズムは知っておくことが重要です。質問を編集しました。コアルールセットのほとんどの稼働日は1日に数回です。
ワンブル

3

自分で書いてください。真剣に-この規模では合理的です。

ipsetおよび/またはたくさんのiptableテーブル/サブテーブルを使用します。可能な場合は、一部のサブテーブル/一部のipsetセットのみをリロードします。これにより、再構成が高速化されます。

おそらくあなたはすでにそれを行っていますが、それでも言及する価値があります-ルーターの負荷と、新しい接続を設定するパケットに必要な検索の平均数を減らすためにネストされたテーブルを使用します。明らかに-A FORWARD -m state --state ESTABLISHED、RELATEDが一番のルールです。


「自分で書く」というのはテーブルの外にあるわけではありませんが、そもそもfiltergenを私たちにもたらしたものです。今では元従業員によって書かれました。可能であれば、まだ別のファイアウォール管理ツールを作成しないことをお勧めします。
ワンブル

IPSETは、大きなルールセットに対して非常に高速です。「複数のIPアドレスまたはポート番号を保存し、1回でiptablesによるコレクションと照合します。パフォーマンスを低下させることなく、IPアドレスまたはポートに対してiptablesルールを動的に更新します。 IPセットの「私はそれを海岸壁で使用します。しかし、ショアウォールがあなたの規模でどのように機能するかはわかりません。
アーティフェックス

2

聖なるボール(キーピンがテーマを生きている!)男... 12,000コアルール?

単にセットをCVSにドロップするなど、簡単なオプションをすべて検討したと思いますか?PuppetまたはCFengine?

正直なところ、あなたが与えた広範な概要から、ネットワーク設計を再評価することを強くお勧めします。おそらくあまりにも単純すぎますが、12,000のiptablesルールを必要とする設計を単純に理解することはできません。これは、ファイアウォールルールを管理するためのより良い方法よりも、SLBタイプのソリューションから多くの利益を得るもののように聞こえます。

補足として、コメントを追加するのと「回答」を追加するのはどうですか。


コメントするには最低限の評判が必要です。リンクすると、リンクが表示されます。
jay_dubya 09

iptablesルールにはおそらくある程度の冗長性がありますが、それは主にfiltergenの機能であり、可能な限り効率的ではありません。ただし、/ 19のIPスペースと顧客ごとのVLAN、およびかなり制限のある「デフォルトポリシー」があります(顧客の要求に応じてポートを開くにはIPごとの例外が必要です)。確かに、これらのルールのいくつか以上を取り除くことはできません。ああ、はい、すでにPuppetを使用しています。運用規模でルールセットを手書きで書き始めるつもりはありません。
ウォンブル

まあ、確かにあなたは自分よりも大きなIPスペースを維持していますが、それでも多くのルールを正当化するのはまだ難しいと思います。これらを、チョークポイントでフォールスルールール設定を利用できるツリー構造に分割することを考えましたか?つまり、サブネットXのすべてのWeb専用サーバー、サブネットYのすべてのWeb + smtpサーバーですか?実際にそれらをサブネット化する必要はなく、単に階層化されたファイアウォールの背後で論理的にグループ化するだけです...この時点でノイズを追加している場合は申し訳ありません...私は単純に十分に洗練されていないかもしれません。ファイアウォールルールセットが短くて残忍だ=)
Greeblesnort 09

私たちは実際にそのようなものを「ティア」する立場にありません。私たちは主に専用のサーバーホスティングプロバイダーであるため、お客様が日々マシンを使用して決定することは変更される可能性があり、社内サービス専用のインフラストラクチャを実行する場合よりも多くの踊りが必要になります。
ワンブル

0

12000ルール?あなたは非常識ですか?この量のフィルタリングが実行されることでパフォーマンスの問題が発生しませんか?12,000個のルールが必要な理由がわかりませんか?ルールセットが実際にポリシーを実施していることをどのように確認しますか?

ポリシーとは何ですか?

ポリシーをどのようにテストしますか?

12,000のルールは、本のすべてのセキュリティルールに違反する可能性があります。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.