私はWebサーバーにソフトウェアファイアウォール(pf)をセットアップすることを検討しており、それらについていくつかの調査を行いました。私がそれをするなら、それは基本的に80、443を除くすべてのポートへの接続と、SSH接続に使用している非標準ポートをブロックすることを伴います。
しかし、とにかく私のサーバーはすでにこれらのポートで実行されているサービスしか持っていないので、それは無意味でしょうか?現時点では、IPをリージョンブロックしたり、そのような複雑なものをブロックしたりする必要は本当にありません。
IPネットワーキングを完全には理解していない人でも理解できる簡単な言葉で言えば、この方法でファイアウォールを構成することは私にとってまだ有用でしょうか?機能的に、ブロックするポートでサービスを実行し続けないのとどう違うのですか?
TL; DR
ネットワーク接続を手動で許可する必要があるため、サービスを手動でローカルホストのみをリッスンするように構成する必要がなくなり、攻撃者がボックスを再調整するために必要な労力が増加します。これは、攻撃者と不適切な構成の両方に対して効果的なツールであることを意味します。はい、ファイアウォールを実行する必要があります。
詳細
ポートには2つの主要な状態があります。
あなたは2つの状態に精通しているようです-ポートはデフォルトで「クローズ」になり、サービスが待機している場合は「オープン」に切り替えます。開いているポートと閉じているポートの両方を列挙するのは非常に高速です。OSは実際に、「ここにサービスがあります」(ポートが開いている)または「ここにサービスがない」(ポートが閉じている)のいずれかを示す応答を送信します。
ファイアウォールを使用する場合は、ポートをフィルタリングするオプションが提供されます。フィルタリングされたポートの場合、OSはまったく応答しません。つまり、コンピュータが応答を送信しなかったかどうか、または応答が転送中に失われたかどうかを知る方法がないため、攻撃者はより多くの時間をかけてポートの状態を判断する必要があります。
さらに、ファイアウォールを実行している場合は、誤って追加のサービスをインターネットに公開しないように保護します。
ファイアウォールをオフにしたデスクトップのサンプルスキャンを含めました(検出されたポートの数とスキャンにかかった時間に特に注意してください):
$ nmap 192.168.1.26
Starting Nmap 6.40 ( http://nmap.org ) at 2015-01-24 21:41 EST
Nmap scan report for TehPwner (192.168.1.26)
Host is up (0.00017s latency).
Not shown: 987 closed ports
PORT STATE SERVICE
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open Microsoft-ds
902/tcp open iss-realsecure
912/tcp open apex-mesh
2869/tcp open icslap
5357/tcp open wsdapi
8081/tcp open blackice-icecap
49152/tcp open unknown
49153/tcp open unknown
49154/tcp open unknown
49163/tcp open unknown
49176/tcp open unknown
Nmap done: 1 IP address (1 Host up) scanned in 2.30 seconds
ファイアウォールを有効にしました:
$ nmap 192.168.1.26
Starting Nmap 6.40 ( http://nmap.org ) at 2015-01-24 21:42 EST
Note: Host seems down. If it is really up, but blocking our ping probes, try -Pn
Nmap done: 1 IP address (0 hosts up) scanned in 3.03 seconds
もう一度、pingプローブをスキップします。
$ nmap 192.168.1.26 -Pn
Starting Nmap 6.40 ( http://nmap.org ) at 2015-01-24 21:42 EST
Nmap scan report for TehPwner (192.168.1.26)
Host is up (0.00090s latency).
Not shown: 996 filtered ports
PORT STATE SERVICE
902/tcp open iss-realsecure
912/tcp open apex-mesh
2869/tcp open icslap
5357/tcp open wsdapi
Nmap done: 1 IP address (1 Host up) scanned in 49.29 seconds
idealの世界では、背後でサービスが実行されていない開いているポートは、開かれていないポートと同じです。 realの世界では、人間は間違いを犯します。システムに対する制御が弱いほど、システムへの攻撃は間違いによって増幅される可能性が高くなります。
ファイアウォールは、コンピュータシステムに追加の制御層を追加することにより、ミスを軽減するのに役立ちます。これは、構成に基づいて接続を受け入れる、拒否する、またはドロップすることによって行われます。副作用として、攻撃者がオペレーティングシステム(OS)をフィンガープリントして、より的を絞った攻撃を仕掛ける能力を減らすのに役立ちます。
OSに慣れていない場合は、無効にしたサービスを誤って再度有効にしたり、システムのアップグレードによってインストールされた新しいサービスを開始したりする可能性があります。 netstat
などのプログラムを使用して一貫してチェックを行わない限り、これらのサービスは着信接続を静かにリッスンしますなし知識。そのうちのいくつかは、時間の経過とともに攻撃に対して脆弱になり、攻撃者がシステムに侵入するためのギャップを提供する可能性があります。
ファイアウォールを実行し、アクティブなサービスなしでポートをブロックすることにより、セキュリティ制御が失敗したり、システムのライフサイクル中に脆弱性が悪用された場合に冗長性を提供して、システムを本質的に強化します。このアプローチは、多層防御として知られています。