ポート80を超えるWebサーバのファイアウォールのブロック発信HTTPトラフィックをすべきか?
質問
私は、あなたはおそらくも、サーバーが危険にさらされた場合に最もアウトバウンドトラフィックをブロックする必要があり、なぜ私も見ることができるDMZ内のWebサーバーを置き、80と443を除く全てのポートへの着信トラフィックをブロックするための必要性を理解します。
しかし、それは、ポート80を介して発信HTTPトラフィックをブロックする必要があるのでしょうか?もしそうなら、なぜですか?これらの日は非常にこの機能を妨げるポート80を介して送信トラフィックをブロックし、送信/外部WebサービスとAPIからデータを取り出すに依存しているWebアプリケーションの多くは。これを正当化するのに十分な有効なのセキュリティ上の問題はありますか?
解決
私は考えることができる唯一の理由は、あなたのマシンが何とかリモートでcompromomisedされている場合、それはそれは私が正常にかかわらず行うものではないのですポート80上の別のウェブサイトのDDoSすることはできませんです。
他のヒント
は、むしろそれをブロックし、それを絞ります。 iptablesの-m制限を使用します。
私は、外部のWebサービスを呼び出すいくつかのWebアプリがあるので、私はそれが出力HTTPトラフィックをブロックするために悪い考えだと言うでしょう。あなたは、セキュリティに関係している場合、あなたはそれをブロックしてのみ、特定の目的地のためにできる可能性があります。
あなたのSQLのバージョンによっては、SQL Server 2005の問題を、証明書認証時間を持つことができます。
まず - 「むしろ、それを阻止することを絞るのiptables -m制限を使用してください」。私はスロットリング上@vartecに同意液の少なくとも一部として、
しかし、私はすべての回で、ポート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")
より優雅な解決策は、あなたがAWSである場合、おそらくまた、iptablesのに加えて、CLI経由でAWSセキュリティグループのルールを変更し、自動的にポートを開くansibleスクリプトになります。私はステルスボックスによって開始AWS CLIを経由して、一時的に私のアウトバウンドルールを変更することを好みます。決して私のAWS S3ログバケット内の更新までのログを記録しないが、この力は、サーバー自体のログに表示されます。また、アップデートを開始し、サーバでもプライベートサブネットのACLである必要はありません。
たぶん両方のですか?あなたは攻撃がバックアップやセキュリティアップデートを自動化する機能を保持しながら、ダブルダウンにメリットがあるので、あなたのサブネット内の内部IPをオフに中継するために起こっている時期に把握する必要があります。
私はこのことができます願っています。より具体的かつ正確にはより多くのコード例を返信して提供する場合ではありません。 #staysafe!
マシンが損なわれ、ポート80上のアウトバウンドトラフィックが許可されている場合、それはそれが簡単に侵入者が自分自身に戻って収穫したデータを送信するために作るでしょう。アウトバウンドトラフィックを許可すると、あなたが外の世界へあなたのマシンから接続を開始できることを意味します。より良いアプローチは、あなただけではなく、世界の任意の宛先よりも(すなわち、マイクロソフトのWindows Updateは、GoogleのreCAPTCHAを)信用し、特定のWebサイト/アドレスへの発信トラフィックを許可することになる。
あなたがポート80を介して送信トラフィックをブロックすると何を意味するのです。
あなたは二つの可能性があります。このセッションのためのウェブサーバーにクライアントからの通信を許可Gernerate動的ルール。ステートフルファイアウォールルールを検索します。
それとも、一般的に通信するための接続を確立し、相互に出射許可します。
あなたは、一般的にポート80上のすべての送信トラフィックをブロックする場合は、あなたのWebサーバは、任意のクライアントに返信することができませんでした。
他の方法で回避、あなたのウェブサーバは、いくつかのAPIを取得する必要がある場合、例えば彼は文句を言わないAPIを保持しているWebサーバーと通信するために彼のポートとしてポート80を使用してjQueryライブラリます。
あなたのWebサーバは通常> 1024ポートを選択し、リモートサーバーからのAPIを取得するために彼の要求のためにそれを使用することになります。
だから、APIとそのようなことのために任意のリクエストを送信するからサーバーを防ぐことはできませんでしょう(あなたのポートとしてあなたからの接続)ポート80上のすべてのトラフィックをブロックします。彼はクライアントとして動作するとき、彼はポート80を使用doesntのためます。