サーバーが適切に構成されている場合、なぜファイアウォールが必要なのですか?


59

私は、勤務している会社のクラウドベース(VPS)サーバーをいくつか管理しています。

サーバーは、LAMPスタックのビット/インバウンドデータ収集(rsync)を実行する最小限のUbuntuインストールです。データは大きいが、個人的、財務的、またはそのようなものではない(つまり、それほど面白くない)

ここで明らかに、人々はファイアウォールなどの設定について永遠に尋ねています。

たとえば、サーバーを保護するために多くのアプローチを使用します(ただし、これらに限定されません)

  • 非標準ポートのssh。パスワード入力なし、ログインなどの既知のIPからの既知のsshキーのみ
  • https、および一般に既知のキー/ IPからのみの制限付きシェル(rssh)
  • サーバーは最小限で、最新であり、定期的にパッチが適用されます
  • rkhunter、cfengine、lynis denyhostsなどを監視に使用します

UNIXシステム管理者の豊富な経験があります。私は自分のセットアップで何をしているかを知っていると確信しています。/ etcファイルを構成します。ファイアウォールのようなもの、iptablesなどをインストールする必要があると感じたことがありません。

VPSの物理的なセキュリティの問題については、しばらくの間脇に置いておきます。

Q?私が素朴であるか、fwが提供する増分保護がサーバーでの学習/インストールと追加の複雑さ(パッケージ、構成ファイル、可能なサポートなど)の努力に値するかどうかは判断できません。

これまで(木材に触れる)セキュリティに問題はありませんでしたが、満足しているわけでもありません。




6
私にあなたのIPアドレスを与え、私はよ示しファイアウォールを必要とする理由あなたを。
GregD

回答:


87

私はあなたがいくつかの異なるデーモンを結びつける素晴らしい仕事をしたことに注意します、そしてあなたが言ったことからあなたがすでにあなたがすでに保護したそれらのサービスを通してトラブルにさらされることはありそうにないと思います。これにより、「私が禁止しているもの以外はすべて許可された」状態のままになり、デーモンの後にデーモンを探し出し、それらを1つずつ保護してその状態から抜け出すことはできません。

デフォルトですべて拒否するように設定されたファイアウォールは、「許可されているものを除いてすべてが禁止されている」操作モードに移行します。

現在、システムに正当なシェルを持っている正当なユーザーがいる場合、彼女はインターネットのWebリクエストをプロキシするためにローカルの非特権デーモンを実行するか、ポート4662でファイル共有を開始するか、-gを使用して誤ってリスナーを開くことができますsshポートトンネリングを使用して、その機能を理解していない。または、sendmailをインストールすると、ポート587でMUAが実行されたままになる可能性があります。これは、ポート25でMTA sendailを保護するために行ったすべての作業にもかかわらず、不適切に構成されました。または、何を禁じるべきかを慎重に考えていたときに、それらが存在しなかったという理由だけで、慎重で思慮深いセキュリティをバイパスすることがあります。

私のポイントがわかりますか?現時点では、あなたが知っているすべてのものを保護するために多くの努力を払っていますが、彼らはあなたを噛まないようです。あなたが噛み付くのは、今あなたが知らないこと、あるいは今でもそこにないことです。

デフォルトでDENY ANY ANYに設定されているファイアウォールは、何か新しいものが来てこのサーバー上のネットワークリスナーを開く場合、明示的な許可を与えるまで誰も話せないというsysadminの方法です。


これは非常に洞察に満ちた答えです。特に、「すべてが許可されています...」から「すべてが禁止されています...」に切り替えることに関するテキストは、ローカルデーモンについても十分に説明されています。よくあることです-あなたは同意するでしょう-危険はしばしば「内側」にあります
-Aitch

12
(Aitch、私が少し推測すると、あなたのプロフィールはあなたがserverfaultで新しいことを示唆します。ローカルのエチケットは、あなたが答えに満足しているとき、メモリが役立つなら、チェックアウトラインをクリックすることでそれを受け入れます。もちろん、あなたがこれをすでに知っているか、他の、より良い、答えが現れるかどうかを待っているなら、それも非常に正しくて適切であり、私を無視してください。あなたはあなたの質問への答えに完全に満足しています、あなたはそれを受け入れます。)
MadHatter

+1 @MatHatter-ファイアウォールが選択ではなくデフォルトでセキュリティを提供する方法の適切な説明。
コープス

それは計算されたリスクです。少なくともOpenBSDでは、pfを有効にすると、カーネルに35K行のコードが追加されますが、これにはバグがある可能性があります。一方、デフォルトの拒否-および適切なロギングファイアウォール-は、お金で買える最大のIDSです。Snortを使用して不良なものを探すのをやめる:マシンのいずれかが、特に許可していないことを実行するたびに、通知を受け取る必要があります。
アレックスホルスト

14

最小特権の原則。ファイアウォールは、そこに到達するのに役立ちます。多層防御の原則。ファイアウォールもそこに到達するのに役立ちます。適切に設計された構成は、これら2つに何らかの形で明示的に依存しています。

もう1つのことは、サーバーが汎用ハードウェア、または標準サーバーOS(Unix、NT、Linux)上で実行されるサーバーソフトウェアの処理に固有のハードウェアである可能性が高いことです。つまり、着信トラフィックを効率的に処理およびフィルタリングするための特別なハードウェアがありません。サーバーに、可能な限りすべてのマルチキャスト、ICMPパケット、またはポートスキャンを処理させますか?

ほとんどの場合、サーバーが一部のポート(80、443、sslポート、一般的なoracle 1521ポート、rsyncポートなど)のみへのリクエストを物理的に処理することです。はい、もちろんソフトウェアファイアウォールを設定しますこれらのポートのみをリッスンするサーバー。ただし、NICには不要なトラフィック(組織の悪性または正常)の影響が残ります。NICが攻撃されると、サーバーを通過するネットワークパス(および場合によっては、サーバーと内部クライアントおよび接続)他の内部サーバーとサービス。)

NICが破壊されるだけでなく、ソフトウェアファイアウォールは、取得するすべてのパケットまたはデータグラムを検査する必要があるため、使用されます。

一方、ファイアウォール、特にサブネットのエッジにある(またはサブネットを外部から分離する)ファイアウォールは、そのタイプのボリュームを処理するために特別に構築された特殊なハードウェアである傾向があります。

N個のサーバーをM個のファイアウォールで囲むことができます(N >> M)。また、特定のポートに向けられていないものはすべてダンプするようにファイアウォールハードウェアを設定します。ポートスキャン、ICMP、およびその他のがらくたが出ています。次に、特定の機能に応じて、サーバーのソフトウェアファイアウォールを微調整します。

これで、完全なブラックアウトの可能性が減少しました(完全には除去されませんでした)。これにより、ネットワークのパーティション分割または最悪の場合の部分的な障害になります。そのため、攻撃や設定ミスに耐えるシステムの能力が向上しました。

サーバーにファイアウォールがあるため、ファイアウォールがない場合は、霧のため視界がゼロの状態で120 mphで運転しているときにシートベルトを着用しても安全だと感じます。それはそのようには機能しません。


4

ある種のパケットレベルの検査を行うファイアウォールがない場合、多くの攻撃が成功する可能性があります。

例はクリスマスツリーのパケットです

http://en.wikipedia.org/wiki/Christmas_tree_packet

DDOS攻撃がシステムに対して実行される可能性があります。ファイアウォール(おそらく、サーバーの前に外部)は、サーバーを無効にする前にトラフィックを停止/減速/強制終了します。

ちょうどので、あなたがサーバー上で、金融、または個人データを持っていないあなたは「傷つける」を取得しないという意味ではありません。帯域幅やCPU使用率に料金を払うか、従量制料金をお支払いします。一晩中(寝ている間に)誰かがメーターを使い果たすことを想像してください(VOIPスイッチプロバイダーでこの現象が発生するのを目にしました。

だから賢く、それがあれば保護を使用してください。あなたは完璧ではなく、ソフトウェアでもありません。次のエクスプロイトが見つかるまで安全です。;)


2

ファイアウォールを使用せずに最小特権の原則を実施できる場合、おそらくそれは必要ありません。私の観点からは、ファイアウォールを使用せずに安全なシステムを構築するには、より多くの労力が必要であり、非常に怠laです。単一の構成を使用してトランスポートレベルで特権を分離できるのに、他のツールとおそらく多くの構成ファイルを使用してTCP接続を制限する必要があるのはなぜですか。


1
単一の構成についての良い点は、エラーの余地が少ないことです。可能な限り怠けていることに同意します!cfengineは、多くの構成ファイルの問題を部分的に軽減するために、この複雑さの一部を取り除きます。.......もちろん、書かれているルールと同じくらい良いだけです。したがって、ほとんどの設定ファイルを「デフォルト」(またはそれに近い)で二次的な障壁として残し、ファイアウォールを(少なくともレイヤーの意味で)主な関心事にします。
-Aitch

2
最初にPoLPに賛成票を投じ、次に怠lazに反対票を投じました。ファイアウォールは、所有者がだらしないようにするツールではありません。攻撃者がファイアウォールを通過した場合(結局何かを開く必要がある)、攻撃者はiptablesをオフにすることができるため、攻撃対象領域を厳しくする必要があります。怠inessを所属する場所に適用します。システムを可能な限りスロップフリーにします。そのため、長時間修正する必要はありません。
マーチン

@Marcin誰かがファイアウォールを使用せずにシステムを保護したい場合、最初に包括的な脅威モデルを作成する必要があるということです。ファイアウォールは、ある種のよく知られたよく説明された脅威モデルを暗示しているため、すべてのホストについてゼロから構築する必要はありません。もちろん、軍事レベルのセキュリティについて話す場合、選択肢はありません。正式な脅威モデルを構築する必要があります。
アレックス

1

ファイアウォールは、不要なパケットがサーバーに到達するのを阻止することもできます。それらを個々のサーバーレベルで処理する代わりに、ファイアウォールで処理できます。この構成アクティビティはすべて、複数のサーバーではなく単一のファイアウォールで維持できます。

たとえば、攻撃者が外部IPの制御を取得し、サーバーに不要なパケットを送り込み、サーバーへの影響を軽減したい場合、影響を受ける各サーバーを設定して悪意のあるパケットをドロップすることができますまたは、ファイアウォールで変更を加えるだけで、すべてのサーバーが保護されます。ファイアウォールを使用すると、反応時間が短縮されます。


さらに、これを行うことはとにかくファイアウォールを設定することです-たまたま各サーバー上にあります。
mfinni

1

あなたや他の誰かがあなたのサーバー設定でエラーを起こすかもしれません、それからファイアウォールはあなたが入るのを止める2回目のチャンスを与えます。私たちは完全ではなく、エラーを犯します。

(OSの単一のバグのように、ファイアウォールをサーバーと同じ OSで実行しないでください。Unixのすべてのバージョンは、共通点が多いため、同じOSであると考えています)


優れたプラットフォーム(OSとハードウェア)を混在させることが重要です。
オランダの叔父

1

ファイアウォールは、トラフィック操作に特化しています。彼らはそれを素早く行い、リソースを持っています。また、トラフィックをフィルタリングするためにサーバーリソースを浪費してはいけません(ディスクio / proc時間/など)。サーバー環境でいくつかのセキュリティを設定する必要がありますが、すべてのトラフィック検査やウイルススキャンなどは専用サーバーで行う必要があります。


-2

あなたがハッキングされて、ファイアウォールが設置されていないのではないかと心配しています。ハッカーはサーバー上の他のポートを開く可能性があります。また、コンサルタントがクリーンアップと監査を行うために連れてこられる場合、彼らが最初に言うのは、「何?!?!ファイアウォールがありません!」です。その後、火傷する可能性があります。


-1少しセンセーショナルな答え+実際に建設的ではない。
コープス

2
サーバーが危険にさらされている場合、侵入したbozoが単に無効にしたときにファイアウォールが必ずしも役立つとは限りません!*免責事項、質問では、個別のハードウェアファイアウォールではなく、iptablesを使用することに言及していました。
ブライアン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.