2009-04-03 7 views
5

WebサーバーをDMZに配置し、80および443以外のすべてのポートにインバウンドトラフィックをブロックする必要性を理解しています。サーバーが侵害された場合に備えて、ほとんどのアウトバウンドトラフィックをブロックする必要がある理由もわかります。Webサーバーのファイアウォールは、ポート80を介して送信HTTPトラフィックをブロックする必要がありますか?

しかし、ポート80を介して送信HTTPトラフィックをブロックする必要がありますか?もしそうなら、なぜですか?最近の多くのWebアプリケーションは、外部のWebサービスやAPIからのデータの送受信に依存しているため、ポート80を介して送信されるトラフィックをブロックすると、この機能が妨げられます。これを正当化するのに十分なセキュリティ上の懸念はありますか?

答えて

7

私の考える唯一の理由は、あなたのマシンが何らかの形で遠隔から感染していて、ポート80で別のウェブサイトをDDoSすることができない場合です。

-2

あなたは二つの可能性を持っているポート80

上のアウトバウンドトラフィックをブロックして何を意味しています。このセッションのためにクライアントからあなたのウェブサーバへの通信を可能にするダイナミックルールを生成します。ステートフルファイアウォールルールを検索します。

一般に、確立された接続が相互に通信し、相互に通信することを許可します。

通常、ポート80経由ですべての送信トラフィックをブロックすると、Webサーバーはどのクライアントにも返信できませんでした。

あなたのWebサーバーがAPIを取得する必要がある場合は、逆も同様です。 jqueryライブラリ彼は自分のポートとしてポート80を使用して、APIを保持しているWebサーバと通信しません。

あなたのWebサーバーは、通常、1024より大きいポートを選択し、リモートサーバーからAPIを取得する要求に使用します。

したがって、ポート80経由ですべてのトラフィックをブロックすると(接続先のポートとして)、サーバーからapisなどの要求が送信されることはありません。クライアントとして機能するときにポート80を使用しないためです。

+0

私は、Webサーバーがインターネット上の他のサーバーに送信HTTP接続(ポート80)を開始できるようにすることを話しています。たとえば、気象ウィジェットを持つPHPページがあるとします。そのスクリプトは外部Webサービスから気象データを要求する必要があります。 –

+0

ああ、ポート80を開始ポートとしてブロックしていると思った。 これをブロックすると、他のページからapisなどを読み込むことはできません。信頼できるサイトをルールに追加することもできます。 しかし、ポート80をブロックすることは一般的にはあまり意味がありません。 – evildead

+0

他の観点からは、サーバーがハッキングされ、そのトラフィックをブロックすると、他のサイトからabituaryコードをロードできなくなります。しかし、誰がハッカー/ロボット/彼の要求にポート80を使用しているかを保証します:) – evildead

0

それをブロックしてスロットルします。 iptables -m limitを使用してください。

0

私は外部Webサービスを呼び出すいくつかのWebアプリケーションを持っているので、出力HTTPトラフィックをブロックするのは悪い考えです。セキュリティに懸念がある場合は、セキュリティをブロックして特定の宛先のみを許可することができます。

+0

ホワイトリストは良い提案ですが、OpenIDでは動作しません.Webサーバは、 OpenIDです。 –

+0

それだけでなく、IPアドレスを変更するウェブサイトでは動作しません。これは、ファイアウォールがドメインレベルではなく、IPレベルでの変更を要求するために必要な作業です(これは効率化のためです)。一部のIPが大きく変わるので、本当に苦しいです。 –

+0

また、別のホストにDDOSを使用すると思われるサービスが常に存在するのではないでしょうか?たとえば、アウトバウンドHTTPロックダウンされたホストでは、pingは引き続きすべてのホストに接続できます。 –

0

あなたのSQLのバージョンに応じて、SQLサーバーの問題を、証明書認証時間を持つことができ、2005年

0

ファースト - 。私はそれを絞る、むしろそれを阻止する」スロットリング上@vartecに同意のiptables -m制限を使用します"少なくともソリューションの一部として。

しかし、私は常にポート80の送信をブロックしない別の理由を提供することができます。自動セキュリティ更新プログラムを有効にしている場合、サーバーはセキュリティ更新プログラムを開始するためにポート80を介してPPAに到達できません。したがって、自動セキュリティアップデートが設定されていると、それらは実行されません。 Ubuntuでの自動セキュリティアップデートをして14.04 LTSに投入されています

sudo apt-get install unattended-upgrades update-notifier-common && \ 
sudo dpkg-reconfigure -plow unattended-upgrades 
(then select "YES") 

より優雅な解決策は、あなたの場合は、おそらくまた、iptablesのに加えて、CLI経由でAWSセキュリティグループのルールを変更し、自動的にポートを開くansibleスクリプトだろうAWSにいます。私は、ステルスボックスによって開始されたAWS CLIを介して、アウトバウンドルールを一時的に変更することをお勧めします。これにより、AWS S3のログバケットに更新情報が記録されますが、サーバー自体のログには表示されません。さらに、更新を開始するサーバーは、プライベートサブネットACLにいる必要はありません。

おそらく両方を実行しますか?攻撃がサブネット内の内部IPから中継される時を把握しなければならないので、バックアップとセキュリティアップデートを自動化する機能を維持しながら倍増するメリットがあります。

こちらがお役に立てば幸いです。返信しない場合は、より具体的で正確なコード例を提供してください。 #おげんきで !

0

マシンが侵害され、ポート80の送信トラフィックが許可されている場合、侵入者は収穫されたデータを自分自身に返送しやすくなります。送信トラフィックを許可すると、マシンから外部に接続を開始することができます。より良いアプローチは、世界中のどの宛先でもなく、信頼する特定のウェブサイト/アドレス(つまり、Microsoft Windows Update、Google reCAPTCHA)にのみ発信トラフィックを許可することです。

関連する問題