web-dev-qa-db-ja.com

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

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

サーバーは、LAMPスタック/インバウンドデータコレクション(rsync)を実行する最小限のubuntuインストールです。データは大きいが、個人的、財務的、またはそのようなものではない(つまり、それほど興味深いものではない)

明らかにここでは、人々は永遠に firewalls などの設定について尋ねています。

たとえば、サーバーをセキュリティで保護するために多くのアプローチを使用しています(ただし、これらに限定されません)。

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

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

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

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

これまでのところ(木に触れる)私はセキュリティに関して問題を経験したことはありませんが、それについても満足していません。

59
Aitch

あなたはいくつかの異なるデーモンを結びつける素晴らしい仕事をしたことに気づきました、そしてあなたが言ったことから、あなたがすでに確保したそれらのサービスを通してあなた自身をトラブルにさらすことはありそうにないと思います。これでもまだ「私が禁止しているものを除いてすべて許可されている」状態のままであり、デーモンを次々と追い詰めて1つずつ保護することでその状態から抜け出すことはできません。

DENY ANY ANYに構成されたファイアウォールは、デフォルトで「許可されているものを除いてすべてが禁止されている」動作モードに移行します。長年にわたって、それらの方が優れていることがわかりました。

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

私の見解はわかりますか?現在、あなたはあなたが知っているすべてのものを保護することに多くの努力を払っています、そしてそれは彼らがあなたを噛まないようです。あなたを噛む可能性があるのは、今あなたが知らないことや、そこにさえないことです。

DENY ANY ANYにデフォルト設定されているファイアウォールは、システム管理者が新しいサーバーがこのサーバー上でネットワークリスナーを開いた場合、そのサーバーと通信できるようになるまでのことです。私は明示的な許可を与えました

88
MadHatter

最小特権の原則。ファイアウォールを使用すると、そこに到達できます。防御原則の詳細。ファイアウォールを使用すると、そこに到達することもできます。適切に設計された構成は、何らかの方法でこれら2つに明示的に依存しています。

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

ほとんどの場合、サーバーが一部のポート(80、443、sslポート、通常のOracle 1521ポート、rsyncポートなど)への要求のみを物理的に処理することを望んでいます。はい、もちろん、ソフトウェアファイアウォールをこれらのポートのみをリッスンするサーバー。しかし、NICは依然として不要なトラフィック(組織内の悪性または通常)の矢面に立たされています。その他の内部サーバーおよびサービス。)

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

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

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

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

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

15
luis.espinal

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

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

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

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

ただ理由は財務情報がない、またはサーバー上の個人データが「傷つく」ことを意味しないわけではありません。帯域幅やCPUの使用料を支払うか、従量制料金を持っていると思います。 (あなたが寝ている間に)夜の間に誰かがあなたのメーターを実行することを想像してみてください(これはVOIPスイッチプロバイダーで発生し、夜間に何百万分のトラフィックのためにヒットし、彼らが請求書を踏まなければならないことを見ました)。

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

4
Jakub

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

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

2
Ian Ringrose

ファイアウォールは、トラフィック操作でスパイス化されています。彼らはそれを素早く行い、リソースを持っています。また、トラフィックをフィルタリングするためにサーバーリソースを無駄にしないでください(ディスクio /処理時間など)。サーバー環境である程度のセキュリティを構成する必要がありますが、すべてのトラフィック検査やウイルススキャンなどは、特殊なサーバーで行う必要があります。

1
MealstroM

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

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

1
Allen

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

1
Alex