注意してください:私はこれを炎の戦争にすることに興味はありません!ファイアウォールソリューションに多大な努力を注いだこと、そして彼らの必要性を信じるように教化されていることから、多くの人々がこのテーマについて強く信じている信念を持っていることを理解しています。
しかし、私はセキュリティに専門家である人々からの回答を探しています。これは重要な質問だと思います。その答えは、私自身と私が働いている会社だけではありません。私は何年もの間、何の妥協もせず、ファイアウォールも一切使用せずにサーバーネットワークを運用してきました。私たちが /持っていたセキュリティの妥協は、ファイアウォールで防げなかったでしょう。
私がここで長い間働いていたと思います。「サーバー」と言うときは、「秘密の内部課金データベース」ではなく、常に「一般に提供されるサービス」を意味するからです。そのため、ファイアウォールでするのルールは、インターネット全体へのアクセスを許可する必要があります。また、パブリックアクセスサーバーはすべて、オフィスとは別の専用データセンターにあります。
他の誰か が同様の質問をしたところ、私の回答は負の数に投票されました。これにより、反対票を投じた人々が私の答えを本当に理解していなかったか、または現在行っていることを行うのに十分なセキュリティを理解していないと私は信じるようになります。
これがサーバーのセキュリティに対する私のアプローチです。
オペレーティングシステムの セキュリティガイドライン before に従ってサーバーをインターネットに接続します。
TCPラッパーを使用して、SSH(およびその他の管理サービス)へのアクセスを少数のIPアドレスに制限します。
Munin でこのサーバーの状態を監視します。また、デフォルト構成でMunin-nodeに固有の悪質なセキュリティ問題を修正します。
新しいサーバーをNmapします(サーバーをインターネットに接続する前にも)。このサーバーをファイアウォールで保護する場合、これは、着信接続を制限するポートの正確なセットでなければなりません。
サーバーをサーバールームにインストールし、パブリックIPアドレスを割り当てます。
オペレーティングシステムのセキュリティ更新機能を使用して、システムを安全に保ちます。
私の哲学(および質問の根拠)は、強力なホストベースのセキュリティによってファイアウォールが不要になることです。全体的なセキュリティの考え方では、ファイアウォールを使用している場合でも、強力なホストベースのセキュリティが必要であると述べています( セキュリティガイドライン を参照)。この理由は、パブリックサービスをサーバーに転送するファイアウォールは、ファイアウォールをまったく使用しないのと同じくらい攻撃者を可能にするためです。脆弱なのはサービス自体であり、インターネット全体にそのサービスを提供することはその操作の要件であるため、アクセスを制限することは重要ではありません。
インターネット全体からアクセスする必要のないサーバー上に利用可能なポートがある場合、そのソフトウェアは手順1でシャットダウンする必要があり、手順4で確認されました。攻撃者が脆弱なソフトウェアを介してサーバーに侵入し、自分でポートを開いた場合、攻撃者はランダムなポートで送信接続を行うことで、ファイアウォールを簡単に破ることができます(実際にそうします)。セキュリティのポイントは、攻撃が成功した後に自分を守ることではなく、すでに不可能であることが証明されています。そもそも攻撃者を排除することです。
開いているポート以外にもセキュリティに関する考慮事項があることが示唆されていますが、私には、自分の信仰を守るように聞こえます。オペレーティングシステム/ TCPスタックの脆弱性は、ファイアウォールが存在するかどうかにかかわらず、ポートがそのオペレーティングシステム/ TCPスタックに直接転送されるという事実に基づいて、同様に脆弱である必要があります。同様に、ファイアウォールをルーター(またはさらに悪いことに両方の場所)に置くのではなく、サーバー自体でファイアウォールを実行すると、不要な複雑なレイヤーが追加されるようです。 「セキュリティは重ねる」という理念は理解していますが、X層の合板を重ねて屋根を作り、そこから穴を開けるようなものです。合板の別の層は、意図的に作成しているその穴からの漏れを止めることはできません。
正直に言うと、ファイアウォールがサーバーで使用されているのを見る唯一の方法は、スパムのRBLのような既知の攻撃者からのすべてのサーバーへのすべての接続を禁止する動的ルールがあるかどうかです(偶然にも、私たちのメールサーバーはほとんどそれを行っています)。 。残念ながら、それを実行するファイアウォールは見つかりません。次善の策はIDSサーバーですが、それは攻撃者が最初に実サーバーを攻撃しないこと、および攻撃者が攻撃の前に before 攻撃を行ってネットワーク全体を調査することを想定していることを前提としています。さらに、これらは多数の誤検知を引き起こすことが知られています。
ファイアウォールの利点:
とりわけ、ファイアウォールがなく、システムが危険にさらされている場合、どのようにそれを検出しますか?ローカルシステムでいくつかのコマンド 'ps'、 'netstat'などを実行しようとすると、これらのバイナリが置き換えられる可能性があるため、信頼できません。リモートシステムからの「nmap」は、攻撃者が選択した送信元IPアドレスからの接続のみを選択してルートキットが受け入れることを保証できるため、保護は保証されません。
ホストOS /ファイルと比較してファイアウォールOS /ファイルを変更することは非常に難しいため、ハードウェアファイアウォールはこのようなシナリオで役立ちます。
ファイアウォールの短所:
TCP Wrappersは間違いなくホストベースのファイアウォール実装と呼ぶことができます。あなたはネットワークトラフィックをフィルタリングしています。
攻撃者が任意のポートでアウトバウンド接続を行うという点については、ファイアウォールは発信トラフィックも制御する手段を提供します。適切に構成されたファイアウォールは、システムに関連するリスクに適した方法で入力と出力を管理します。
TCP脆弱性がファイアウォールによって緩和されない方法についての点では、ファイアウォールがどのように機能するかについてはよくわかりません。シスコでは、ダウンロードされたパケットを識別するルールがたくさんあります。特定のオペレーティングシステムの問題を引き起こす方法です。Snortを取得して適切なルールセットで実行を開始すると、この種の警告が表示されます。もちろん、Linux iptablesは悪意のあるパケットを除外できます。
基本的に、ファイアウォールはプロアクティブな保護です。プロアクティブになることから遠ざかるほど、問題を回避するのではなく、問題に対応している状況に陥る可能性が高くなります。専用ファイアウォールのように境界に保護を集中すると、ルールをどこにでも複製するのではなく、中央にチョークポイントがあるため、管理が容易になります。
しかし、必ずしも最終的な解決策はありません。一般的に、優れたセキュリティソリューションはマルチレイヤーで、境界にファイアウォールがあり、TCPデバイスにラッパーがあり、内部ルーターに関するいくつかのルールも同様です。通常はネットワークを保護する必要があります。インターネットから接続し、ノードを相互に保護します。この多層のアプローチは、合板の複数のシートに穴を開けるようなものではなく、侵入者がドアを2つ開けるようなもので、侵入者は2つのロックを解除するだけでなく、 1つ。これは物理的なセキュリティのマントラップと呼ばれ、ほとんどすべての建物に理由があります。
(「 ファイアウォールのない生活 」を読むことをお勧めします)
今:パッチがもう公開されないレガシーシステムについてはどうですか?必要なときにNマシンにパッチを適用できず、同時にネットワーク(ファイアウォール)内のより少ないノードにパッチを適用できるのはどうですか?
ファイアウォールの存在や必要性について議論する意味はありません。本当に重要なのは、セキュリティポリシーを実装する必要があるということです。そのためには、それを実装し、管理、拡張、および進化させるのに役立つツールを使用します。そのためにファイアウォールが必要な場合は、それで問題ありません。それらが不要な場合も問題ありません。本当に重要なのは、セキュリティポリシーの実用的で検証可能な実装を持つことです。
あなたの説明のほとんどはファイアウォールの必要性を否定しているようですが、ファイアウォールを設定するための短い時間を除いて、ファイアウォールを使用することの欠点は見当たりません。
みことばの厳密な意味で「必要」なものはほとんどありません。セキュリティとは、可能なすべての封鎖をセットアップすることです。サーバーに侵入するために必要な作業が多いほど、攻撃が成功する可能性は低くなります。マシンに侵入する作業を他の場所よりもやりやすくしたいと考えています。ファイアウォールを追加すると、作業が増えます。
主な用途はセキュリティの冗長性だと思います。ファイアウォールのもう1つの利点は、拒否された要求に応答するのではなく、任意のポートへの接続試行を単純にドロップできることです。これにより、攻撃者にとってnmmapが少し不便になります。
質問の実際的なメモで私にとって最も重要なのは、SSH、ICMP、およびその他の内部サービスをローカルサブネットにロックできることと、DOS接続を緩和するために着信接続をレート制限できることです。
「セキュリティのポイントは、攻撃が成功した後で自分を守ることではありません。これはすでに不可能であることが証明されています。攻撃者をそもそも防ぐことです。」
同意しません。ダメージを制限することも同様に重要です。 (この理想の下で、なぜパスワードをハッシュするのか、それともデータベースソフトウェアをWebアプリケーションとは別のサーバーに固定するのか?)私は、昔の「すべての卵を1つのバスケットに固定しないでください」という言い方が当てはまると思います。
Should I firewall my server?
良い質問。正当に開いている少数のポートを除くすべてへの接続試行をすでに拒否しているネットワークスタック上にファイアウォールを配置することにはほとんど意味がないように思われます。悪意を持って作成されたパケットがホストを妨害/悪用することを可能にする脆弱性がOSにある場合、ファイアウォールが同じホストで実行されているため、悪用を防ぐことができますか?まあ、たぶん...
そして、それがおそらくすべてのホストでファイアウォールを実行する最も強力な理由です:ファイアウォールmightは、ネットワークスタックの脆弱性が悪用されるのを防ぎます。それは十分に強い理由ですか?わかりませんが、「ファイアウォールをインストールしたことで誰も解雇されなかった」と言うこともできるでしょう。
サーバーでファイアウォールを実行するもう1つの理由は、これらの2つの他の方法では強く相関する懸念を切り離すことです。
ファイアウォールがなければ、(tcpwrappersなどの構成とともに)実行されているサービスのセットは、サーバーが開くポートのセットと、接続を受け入れるポートのセットを完全に決定します。ホストベースのファイアウォールにより、管理者は新しいサービスをより広く利用できるようにする前に、制御された方法で新しいサービスをインストールおよびテストすることができます。このような柔軟性が必要ない場合は、サーバーにファイアウォールをインストールする理由はあまりありません。
最後に、セキュリティチェックリストに記載されていない項目が1つありますが、これは常にホストベースの侵入検知システム(HIDS)です-- [〜#〜] aide [〜#〜 ] または samhain 。優れたHIDSは、侵入者がシステムに不要な変更を加えて検出されないままにすることを非常に困難にします。すべてのサーバーが何らかのHIDSを実行している必要があると思います。
ファイアウォールはツールです。それ自体は安全ではありませんが、安全なネットワークのレイヤーとして貢献できます。それはあなたがそれを必要とすることを意味しません、そして私は確かに彼らがそのように考える理由を理解せずに盲目的に「ファイアウォールを手に入れなければならない」と言い、ファイアウォールの長所と短所を理解していない人々を心配します。
不要だと言えるツールはたくさんあります...アンチウイルスなしでWindowsコンピュータを実行することは可能ですか?はい、そうです...しかし、それを持っていることは、保険の素晴らしい層です。
ファイアウォールについても同じだと思います-他に何と言ってもファイアウォールは素晴らしいレベルの保険です。これらは、パッチの適用、マシンのロック、使用していないサービスの無効化、ロギングなどに代わるものではありませんが、役立つ補足になることがあります。
また、注意深く管理されているサーバーのグループの前にファイアウォールを配置するかどうか、またはワークステーションとサーバーが混在する一般的なLANの前にファイアウォールを配置するかどうかによって、方程式が多少変わることをお勧めします。 、ITチームの最善の努力と願いにもかかわらず、いくつかはかなり毛深いものを実行している可能性があります。
考慮すべきもう1つのことは、明らかに強化されたターゲットを作成することの利点です。目に見えるセキュリティ、それが明るいライト、重いロック、建物の明らかな警報ボックスであるかどうか。または、企業のIPアドレスの範囲にある明らかなファイアウォールは、偶然の侵入者を阻止できます-彼らはより簡単な獲物を探しに行きます。これは、あなたが欲しい情報を持っていることを知っていて、それを取得しようと決意している侵入者を阻止するものではありませんが、特に侵入者を阻止することには価値があります。 。
すべての素晴らしい質問。しかし、私はPERFORMANCEが提示されていないことに非常に驚いています。
CPU使用率の高いWebフロントエンドの場合、ローカルファイアウォールは実際にパフォーマンスを低下させます。負荷テストを試してみてください。私はこのトンを何度も見ました。ファイアウォールをオフにすると、パフォーマンス(1秒あたりのリクエスト数)が70%以上向上しました。
このトレードオフを考慮する必要があります。
ファイアウォールは追加の保護です。ネットワークスタック攻撃(つまり、サーバーOSに、ポートのレベルに到達しない特別に細工されたパケットに対する脆弱性がある)、「フォーンホーム」への接続(またはスパムの送信など)の成功)、またはサーバーポートを開く侵入が成功した場合、または検出が困難な場合は、ポートを開く前にポートノッキングシーケンスを監視します。確かに、最後の2つは侵入の被害を防ぐのではなく軽減することと関係がありますが、それが役に立たないという意味ではありません。セキュリティは全か無かの命題ではないことに注意してください。 1つは、ベルトとサスペンダーというレイヤードアプローチを採用して、ニーズに十分なレベルのセキュリティを実現します。
小規模な設定ではファイアウォールは必要ありません。 1つまたは2つのサーバーがある場合は、ソフトウェアファイアウォールを維持できます。そうは言っても、専用のファイアウォールなしでは実行できません。この哲学を維持する理由はいくつかあります。
役割の分離
サーバーはアプリケーション用です。ファイアウォールは、パケット検査、フィルタリング、およびポリシー用です。 Webサーバーは、Webページの提供について心配する必要があります。それだけです。両方の役割を1つのデバイスに配置することは、会計士にセキュリティガードも兼任するよう依頼するようなものです。
ソフトウェアは動くターゲットです
ホスト上のソフトウェアは常に変化しています。アプリケーションは独自のファイアウォール例外を作成できます。 OSが更新され、パッチが適用されます。サーバーはトラフィック量の多い「管理」エリアであり、ファイアウォールポリシー/セキュリティポリシーは、多くの場合、アプリケーション構成よりもセキュリティの方が重要です。 Windows環境で、誰かが何らかのグループポリシーレベルでミスを犯し、デスクトップPCでWindowsファイアウォールをオフにしていて、それがサーバーに適用されることを認識していないとします。クリックするだけで大きく開きます。
更新と言えば、ファイアウォールファームウェアの更新は通常、年に1〜2回行われますが、OSとサービスの更新は常に流れています。
再利用可能なサービス/ポリシー/ルール、管理性
「Webサーバー」と呼ばれるサービス/ポリシーを一度設定した場合(TCP 80およびTCP 443)など)、それを「Webサーバーグループ"ファイアウォールレベルでは、10個のボックスにファイアウォールサービスを設定し、2つのポートを10回開くことよりもはるかに効率的であり(構成変更のカップル)、人為的エラーが発生しにくくなります。ポリシーを変更する必要がある場合は、 1対10の変更です。
攻撃中または侵害後もファイアウォールを管理できます
ホストベースのファイアウォール+アプリケーションサーバーが攻撃され、CPUがチャートから外れているとしましょう。何が起こっているのかを理解し始めるために、私は自分の負荷が攻撃者がそれを取得して確認するよりも少ないのに翻弄されています。
実際の経験-私はかつてファイアウォールルールをめちゃくちゃにして(ポートを特定のものではなくすべてに残し、サーバーに脆弱なサービスがあった)、攻撃者は実際にボックスへのライブリモートデスクトップセッションを行っていました。セッションの開始を開始するたびに、攻撃者はセッションを終了または切断します。独立したファイアウォールデバイスからその攻撃をシャットダウンすることができなかった場合、それははるかに悪化した可能性があります。
独立監視
専用ファイアウォールユニットでのロギングは、通常、ホストベースのソフトウェアファイアウォールよりもはるかに優れています。正確な画像を取得するために外部のSNMP/NetFlow監視ソフトウェアを必要としないほど十分なものもあります。
IPv4保存
1つがWeb用であり、1つがメール用である場合、2つのIPアドレスを持つ理由はありません。サービスを別々のボックスに保存し、それを行うように設計されたデバイスを介してポートを適切にルーティングします。
私は決してセキュリティの専門家ではありませんが、ファイアウォールのように聞こえます。ファイアウォールのコア機能の一部を取り、それをポリシーと手順の一部にしたかのようです。いいえ、ファイアウォールと同じ作業を自分で行う場合は、ファイアウォールは必要ありません。私自身は、セキュリティを維持するためにできる限りのことをしたいと思っていますが、ファイアウォールを肩越しに見ています。
すでに述べたように、一般的にセキュリティはタマネギです。ファイアウォールが存在する理由はいくつかあります。それは、他のすべてのレミングが愚かであるだけではありません。
この答えは、このページで「fail2ban」を検索しても結果が得られなかったためです。他のコンテンツを2倍にした場合、我慢してください。すみません、少し不満があれば、他の人に役立つかもしれないので、私は明白な経験を提供します。 :)
これはLinux固有のものであり、通常はユースケースであるホストベースのファイアウォールに集中しています。外部ファイアウォールは、適切なネットワーク構造と密接に関連しており、通常、その他のセキュリティ上の考慮事項がそれに含まれます。ここで何が暗示されているかがわかっている場合は、この投稿はおそらく必要ありません。または、そうしない場合は、そのまま読み進めてください。
ファイアウォールを外部およびローカルで実行することは、直感に反し、二重の作業に見えるかもしれません。しかし、これにより、背後にある他のすべてのホストのセキュリティを損なうことなく、外部ルールのルールが変更される可能性もあります。デバッグの理由から、または誰かがちょうど干渉したために、必要性が生じる可能性があります。もう1つの使用例は、「適応型グローバルファイアウォール」セクションにあり、グローバルファイアウォールとローカルファイアウォールの両方が必要になります。
ファイアウォールは、適切に保護されたシステムの1つの側面にすぎません。お金がかかるので、ファイアウォールをインストールしない、SPOFを導入する、なんでもばかげている、ここではフランス語を許してください。クラスターをセットアップするだけです。ああ、でも、もし消防車が停止したとしたら?次に、2つ以上の防火区画にまたがるようにクラスターをセットアップします。
しかし、両方の外部キャリアが廃業しているため、データセンター全体に到達できない場合はどうなりますか(掘削機がファイバーを停止しました)。次に、クラスターを複数のデータセンターにまたがるようにします。
それは高価です?クラスターが複雑すぎる?まあ、パラノイアは払わなければなりません。
SPOFについては馬鹿げているが、より多くのお金を払いたくない、またはもう少し複雑な設定を作成したくないというのは、ダブルスタンダードの明らかなケースか、企業または顧客側の単なる財布です。
このパターンは、どのサービスが現在の問題であるかに関係なく、これらすべてのディスカッションに適用されます。それがVPNゲートウェイであるかどうかに関係なく、ファイアウォールとしてのみ使用されるCisco ASA、MySQLまたはPostgreSQLデータベース、仮想システムまたはサーバーハードウェア、ストレージバックエンド、スイッチ/ルーターなど.
今ではあなたはアイデアを理解する必要があります。
理論的にはあなたの推論は健全です。 (実行中のサービスのみを利用できます。)
しかし、これは真実の半分にすぎません。ファイアウォール、特にステートフルファイアウォールは、さらに多くのことができます。ステートレスファイアウォールは、すでに述べたようなパフォーマンスの問題が発生した場合にのみ重要です。
TCPラッパーと基本的に同じ機能を実装してラッパーを実装することについて言及しました。議論のために、誰かがtcpd
を知らず、マウスの使用が好きだとしましょうか? fwbuilder
が思い浮かぶかもしれません。
管理ネットワークから完全にアクセスできるようにすることは、有効にする必要があります。これは、ホストベースのファイアウォールの最初の使用例の1つです。
データベースがどこか別の場所で実行され、何らかの理由で両方(またはすべて)のマシンを共有(プライベート)サブネット内に配置できないマルチサーバーセットアップについてはどうですか?ファイアウォールを使用して、他のサーバーの指定された単一のIPアドレスに対してのみ、ポート3306でのMySQLアクセスを許可します。
また、UDPでも問題なく機能します。または、どんなプロトコルでも。ファイアウォールは非常に柔軟です。 ;)
さらに、ファイアウォールを使用すると、カーネルとそのネットワークスタックを介してタイムスパンあたりの接続数を監視でき、ファイアウォールがそれに作用するため、一般的なポートスキャンを検出して軽減できます。
また、無効またはあいまいなパケットは、アプリケーションに到達する前に処理できます。
発信トラフィックのフィルタリングは通常、お尻の痛みです。しかし、契約次第では、それは必需品になる可能性があります。
ファイアウォールが提供できるもう1つのことは統計です。 (watch -n1 -d iptables -vnxL INPUT
を考えてください。特別なIPアドレスのルールを先頭に追加して、パケットが着信しているかどうかを確認してください。)
物事が機能するか機能しないかは、日光の下で見ることができます。これは、接続のトラブルシューティングを行い、電話で他の人にパケットを取得できないことを伝えることができ、おしゃべりtcpdump
に頼る必要がない場合に非常に役立ちます。ネットワーキングは楽しいですが、ほとんどの人は今やっていることを知っているだけで、ほとんどの場合それは単なるルーティングエラーです。地獄、私はいつも自分が何をしているかわからない。文字通り何十もの複雑なシステムやアプライアンスを扱ってきましたが、今ではトンネルもしばしば使用しています。
Layer7ファイアウォールは、適切に参加されず、定期的に更新されない場合、通常はヘビ油(IPS/IDS)です。さらに、ライセンスは非常に高額なので、お金で購入できるすべてのものを取得する必要が本当にない場合は、ライセンスを取得するのを惜しみません。
簡単です。これをラッパーで試してください。 :D
マスカレードを参照してください。
顧客が動的IPアドレスを持ち、VPNセットアップが展開されていない場合はどうなりますか?またはファイアウォールの他の動的アプローチ?これは既に質問で示唆されており、の使用例が表示されます残念ながら、それを実行するファイアウォールは見つかりません。の部分。
パスワードによるルートアカウントアクセスを無効にすることは必須です。アクセスが特定のIPアドレスに制限されている場合でも。
また、sshキーが失われたり、展開が失敗したりした場合に、パスワードログインで別のblankoアカウントを準備しておくと、何かが本当にうまくいかない場合(ユーザーがマシンへの管理アクセス権を持っていて、「問題が発生した」?) Linuxでシングルユーザーモードを使用している場合や、ローカルアクセスにgrub
を使用してinit=/bin/bash
を使用している場合は、ネットワークアクセスの場合と同じ考え方です。笑わないでください、それを禁止している仮想化製品があります。機能が存在していても、機能のない古いソフトウェアバージョンを実行するとどうなりますか?
とにかく、22ではなく難解なポートでsshデーモンを実行した場合でも、ポートノッキングなどの実装を実装していない場合(別のポートを開いてポートスキャンを軽減し、あまりにも非現実的であることを徐々に認識)、ポートスキャンは最終的にサービス。
通常、効率上の理由から、すべてのサーバーを同じ構成で同じポートとサービスでセットアップします。マシンごとに異なるポートにsshを設定することはできません。また、スキャン後なので、「公開」情報であると見なすたびにすべてのマシンで変更することはできません。ハッキングされたWi-Fi接続を自由に利用できる場合、nmap
が合法かどうかの問題は問題になりません。
このアカウントの名前が「root」ではない場合、「バックドア」のユーザーアカウント名を推測できない可能性があります。しかし、彼らがあなたの会社から別のサーバーを取得するか、単にWebスペースを購入するか、そして/etc/passwd
をunchrooted/unjailed/uncontainerに見ているかは、彼らは知っています。
純粋に理論的な例では、ハッキング可能なWebサイトを使用してサーバーにアクセスし、通常の場所での動作を調べることができます。ハック検索ツールは24時間年中無休で実行される場合があり(通常、ファイルシステムスキャンのディスクパフォーマンス上の理由から夜間に実行されます)、ウイルススキャナーは2番目に更新されません。新しい zero-day が表示されますそのため、これらの出来事を一度に検出することはできません。また、他の保護手段がなければ、何が起こったのかを知ることさえできません。現実に戻るために、誰かがゼロデイエクスプロイトにアクセスできる場合、これらは非常に高価であるため、とにかくサーバーを標的にしない可能性が非常に高いです。これは、「ニーズ」が発生した場合に常にシステムに入る方法があることを示すためのものです。
しかし、再びこのトピックでは、余分なパスワード付きアカウントを使用しないでください。読んでください。
攻撃者がこの追加のアカウントの名前とポートを取得したとしても、8文字のパスワードしか使用していなくても、fail2ban
+ iptables
の組み合わせはそれらを短くします。さらに、fail2banは他のサービスにも実装できるため、監視範囲が広がります。
独自のサービスの場合、必要が生じた場合:基本的に、ファイルへのすべてのサービスロギングの失敗は、ファイルを提供することでfail2banサポートを取得できます。一致する正規表現と許容される失敗の数は、ファイアウォールがすべてのIPアドレスを許可するだけです。に言われています。
8桁のパスワードを使用するように言っているのではありません。しかし、5回の間違ったパスワード試行で24時間禁止された場合、そのような粗末なセキュリティを使用してもボットネットを自由に利用できない場合、彼らが試行する必要がある時間は推測できます。そして、ssh
だけでなく、顧客が使用する傾向のあるパスワードに驚くことでしょう。 Plesk を使用して人々のメールパスワードを確認すると、知りたくないことはすべてわかりますが、私がここで暗黙に伝えようとしていることはありません。 :)
fail2ban
は、iptables -I <chain_name> 1 -s <IP> -j DROP
に沿って何かを使用するアプリケーションの1つにすぎませんが、Bashのマジックを使用すると、このようなものを非常に高速に簡単に構築できます。
このようなものをさらに拡張するには、ネットワーク内のサーバーからすべてのfail2ban IPアドレスを追加のサーバーに集約します。これにより、すべてのリストが管理され、コアファイアウォールに渡されて、ネットワークのエッジにあるすべてのトラフィックをブロックします。
このような機能を販売することはできません(もちろん、販売することはできますが、システムは壊れやすく、使い物になりません)。ただし、インフラストラクチャに組み込む必要があります。
その間、ブラックリストIPアドレスまたは他のソースからのリストを使用することもできます。自分自身または外部のアドレスによって集約されます。
Blockquoteさて、あなたは正しいです、私はそこにどんな短所も入れませんでした。短所:増加したネットワークの複雑さ、単一障害点、帯域幅がボトルネックになる単一のネットワークインターフェイス。同様に、1つのファイアウォールでの管理ミスは、ネットワーク全体を停止させる可能性があります。そして、神々はそれがサーバールームに20分の旅行である間、あなたがそれから自分自身をロックすることを禁じます。
まず、ネットワークを介して最大で1つの追加のルーティングホップを追加することは複雑ではありません。第2に、単一障害点を実装したファイアウォールソリューションが完全に役に立たないことはありません。重要なサーバーまたはサービスをクラスター化し、結合されたNICを使用するのと同じように、高可用性ファイアウォールを実装します。そうしないこと、またはそうすることを認識していないことは非常に近視眼的です。単一のインターフェースがあることを単に述べるだけでは、何かが自動的にボトルネックになるわけではありません。このアサーションは、ネットワークを通過するトラフィックを処理するサイズのファイアウォールを適切に計画および展開する方法がわからないことを示しています。ポリシーの間違いはネットワーク全体に害を及ぼす可能性があると言って間違いはありませんが、すべてのサーバーで個々のポリシーを維持することは、単一の場所よりもはるかにエラーが発生しやすいと私は主張します。
セキュリティのパッチ適用に追いつき、セキュリティガイドに従うという議論については、それはせいぜい不安定な議論です。通常、セキュリティパッチは、脆弱性が発見されるまで利用できません。つまり、公開アドレス指定可能なサーバーを実行している間は、パッチが適用されるまで脆弱です。他の人が指摘したように、IPSシステムはそのような脆弱性による侵害を防ぐのに役立ちます。
システムが可能な限り安全であると考えている場合、それは十分な自信です。ただし、ネットワークで専門的なセキュリティ監査を実施することをお勧めします。目を開くだけかもしれません。
現実の世界では、人々は貴重品を金庫に入れて安全を確保しています。しかし、侵入できない金庫はありません。金庫、またはセキュリティコンテナは、侵入を強制するのにかかる時間によって評価されます。安全の目的は、攻撃者が検出されるまで攻撃者を遅らせることであり、アクティブな対策は攻撃を停止します。
同様に、適切なセキュリティの前提は、公開されたマシンが最終的に侵害されることです。ファイアウォールと要塞ホストは、サーバー(貴重なデータを含む)が侵害されるのを防ぐために設定されていませんが、攻撃者にそれらを最初に侵害させ、貴重なものが失われる前に攻撃を検出(および阻止)できるようにします。
ファイアウォールも銀行の金庫も内部の脅威から保護しないことに注意してください。これが、銀行の会計士が2週間連続で休暇をとる理由の1つであり、要塞ホストによって保護されていても、サーバーには完全な内部セキュリティ対策が講じられています。
元の投稿では、「外界」のパケットをファイアウォール経由で直接サーバーに転送しているように思われます。その場合、はい、ファイアウォールはあまり機能していません。 2つのファイアウォールと要塞ホストを使用して境界防御を強化します。外部から内部への直接の論理接続はありません。すべての接続はDMZ要塞ホストで終了します。すべてのパケットが適切に検査されます。 (そしておそらく解析されて)転送する前に。
まず、ポートフォワーディングについての話で、ファイアウォールとNATingを融合させていると思います。最近、NATは事実上ファイアウォールとして機能することがよくありますが、NATが設計された目的ではありません。 NATはルーティングツールです。ファイアウォールはアクセスを規制するためのものです。これらの概念を明確にしておくことは、考え方を明確にするために重要です。
もちろん、サーバーをNATボックスの後ろに置き、NATを構成してそのサーバーに何かを転送するように構成することは、インターネット上で直接サーバー。これは誰もが主張することはないと思います。
同様に、すべてのトラフィックを許可するように構成されたファイアウォールは、ファイアウォールではありません。
しかし、「すべてのトラフィックを許可する」というポリシーは本当に望んでいるのでしょうか。ロシアのIPアドレスからサーバーにsshする必要がある人はいますか?新しい実験的なネットワークデーモンの設定をいじくり回している間、全世界が本当にそれにアクセスする必要がありますか?
ファイアウォールの威力は、開いておく必要があることがわかっているサービスだけを開いたままにして、このポリシーを実装するための単一の制御点を維持できることです。
ステートフルパケットインスペクションファイアウォールは、パブリックサーバーの前にはありません。すべての接続を受け入れるので、状態の追跡はほとんど役に立ちません。従来のファイアウォールはDDoS攻撃の大きな責任であり、通常、DDoS攻撃で最初に失敗するのは、リンクの帯域幅やサーバーリソースが完全に消費される前であってもです。
ルーター上のステートレスパケットフィルターは、パブリックサーバーの前では意味がありますが、すべての入力および出力トラフィック(ルーターのハードウェアACLなど)のラインレートを処理できる場合に限られます。
グーグル、フェイスブック、そしてマイクロソフトさえも公共のサーバーの前に伝統的な「ファイアウォール」を置きません。 「複数のサーバー」規模でパブリックWebサービスを実行したことがある人なら、誰でもこれを知っているはずです。
Cisco ASAなどの従来のファイアウォールにあるその他の機能、またはホスト自体に最適に実装されている機能で、効果的にスケールアウトできます。いずれにしても、ロギング、IDSなどはファイアウォールのすべてのソフトウェア機能であるため、一般にアクセス可能なサーバーの前に置くと、それらは巨大なボトルネックとなり、DDoSターゲットになります。
脆弱性を予測することは困難です。インフラストラクチャがどのように悪用されるかを予測することは事実上不可能です。ファイアウォールを使用すると、脆弱性を悪用しようとする攻撃者の「障壁を引き上げ」ます。これは、その脆弱性が何かを知る前に重要な部分です。さらに、ファイアウォールの影響は事前に簡単に理解できるため、回避する可能性のある問題よりも深刻な問題がファイアウォールで発生することはほとんどありません。
これが「ファイアウォールをインストールしたことで誰も解雇されなかった」理由です。それらの実装はリスクが非常に低く、悪用を防止または軽減する可能性が非常に高くなります。また、本当に厄介な脆弱性のほとんどは自動化によって悪用されるため、「異常な」ものはすべてボットを破壊するか、少なくとも簡単なターゲットを優先してボットをスキップします。
サイドノート;ファイアウォールはインターネット専用ではありません。あなたの経理部。 LDAPサーバーへのssh /何も必要ないので、それらに与えないでください。内部サービスを区画化すると、何かが城壁を突破した場合のクリーンアップジョブに大きな違いをもたらす可能性があります。
サーバーを強化し、攻撃や脆弱性を軽減するために多くのことをしているように見えますが、ファイアウォールに対するあなたのスタンスには同意しません。
私はセキュリティを玉ねぎのように扱います。理想的には、コアに到達する前に通過する必要があるレイヤーがあり、個人的には、ネットワークの境界に何らかの形のハードウェアファイアウォールを設置しないことは、かなり誤解されていると思います。
私が「慣れている」角度からここに来ていることは認めますが、毎月、Microsoftからその月のパッチのニースの小さなリストを受け取り、その多くは実際に悪用されています。 。同じことが、ほとんどすべてのOSとアプリケーションのセットについて考えられると思います。
ファイアウォールがこれを排除することを提案しているわけではありません。また、ファイアウォールがバグ/脆弱性の影響を受けないわけでもありません。「ハードウェア」ファイアウォールは、ハードウェアスタックで実行されるソフトウェアにすぎません。
そうは言っても、ポート443のみがWebからアクセス可能である必要があるサーバーがある場合、境界Juniperはポート443のみがWebからアクセス可能であることを確認しているので、ずっと安全に眠ります。それだけでなく、私のパロアルトは、入ってくるトラフィックが復号化され、検査され、ログに記録され、IPS/IDSをスキャンすることを保証します-サーバーを安全かつ最新の状態に保つ必要がなくなるのではなく、しかし、ゼロデイエクスプロイトと古き良き人為的エラーを軽減できるという利点があるのに、なぜそれを見つけられないのでしょうか。
すべてのサーバーにパブリックアドレスが必要なのはなぜですか?
サーバーをサーバールームに設置し、パブリックIPアドレスを割り当てます。
私が定期的に実行している14台ほどのサーバーのうち、パブリックにアクセスできるインターフェイスを備えているのは2台だけです。
編集して追加:私が管理に携わってきた他のネットワークでは、ファイアウォールを管理するためのアクセス権がなかったのに対し、サービスを自由にオフ/オンにすることができました。 。もちろん、不注意で不要なサービス(SMTP)がオンにされて何度もオンにされた回数をお伝えすることもできません。スパムダンプになってプロセスでブラックリストに登録されるのを防ぐ唯一の方法は、ファイアウォールでした。
また、サーバー間を通過するすべてのトラフィックは完全に暗号化されていますか?
あなたは確かにシートベルト、エアバッグ、はげタイヤなしで時速100マイルの車を運転することができます、しかしあなたはなぜですか?
ファイアウォールは、システムユーザーが管理者が認識していないネットワークアクセス可能なサービスを開いたり、他のマシンへのポート転送を行ったりするのを防ぐことができます。ファイアウォールはハッシュ制限モジュールを利用することにより、リモートIPに基づいて悪用者をレート制限することもできます。
ファイアウォールは、ポリシーが遵守されることを保証するもう1つのセーフティネットです。もちろん、予期しないサービスを実行しないでください。
たとえば、ソフトウェアの更新はタイムリーに適用することをお勧めしますが、すべてのマシンにファイアウォールを適用することもお勧めします。運転するときのようです。もちろん、障害物や他の車を避けようとしますが、予期せぬ事態に備えて、シートベルトを着用し、エアバッグも持っています。
すべての人elseがファイアウォールを使用しているからといって、ファイアウォールからどれほどの利益を得ているかを理解していない可能性があります。文字通り誰でも、家庭のDSLユーザーがファイアウォールを設置している日には、ポートスニッフィングは実行可能な攻撃ベクトルとしてはほとんどあきらめられました。まともなハッカーは、そのようなものをチェックするために時間を無駄にするつもりはありません。