2013-08-31 10 views
9

Webサーバー(apacheまたはnginx)を使用して、x-forwarded-forヘッダーを見つけて、ELBのIPではなくクライアントのIPアドレスを見つけることができます。AWS ELBの背後にあるクライアントIPを取得する方法は?

IPTablesを使って同じことをして、特定のIPアドレスをブロックすることはできますか?

私はウェブサーバーレベルでこれを行うことができます。しかし、これは少し効率が悪いと思うし、私はIPテーブルなどでこれを達成できると思っていますか?

答えて

6

iptablesは、ELBがインスタンスへの接続を確立しているため、iptablesには弾力性のあるロードバランサのIPアドレスしか見えないので、これを行うことはできません。

x-forwarded-forの特定の値をブロックするためにWebサーバーを使用することは、特に効率的ではありませんが、IPアドレスでELBにアクセスできるユーザーを制御する場合は、 ELB。


アップデート:少なくとも今のように、「古典的」EC2上のELBは、インバウンドのセキュリティグループやネットワークアクセス制御リストをサポートしていませんが、VPC上のELBはない、ので、あなたのコメントは、部分的に正しいです。

Q:Elastic Load Balancerのフロントエンドにセキュリティグループを設定できますか。

Amazon Virtual Private Cloudを使用している場合は、Elastic Load Balancerのフロントエンドにセキュリティグループを設定できます。 —   http://aws.amazon.com/ec2/faqs/#ELB6

セキュリティグループを使用すると、特定のIPアドレス範囲の比較的小さなセットを許可する必要があるときに使用するのが最も簡単です。ほとんどを許可したいが少数をブロックしたい場合は、VPC Network Access Control Listがより簡単な方法です。

+0

ELBにはセキュリティグループがありません。少なくとも、IPは追加/削除できません。 – Abs

11

7月30日以降、ELBはProxy Protocolをサポートしています。 this thread in the AWS forumの最後に述べたように:(ELB)をバランス弾性荷重が今プロキシプロトコルバージョン1 をサポートしています

この機能を使用するには、に追加 洞察を提供し、TCPの負荷分散を使用する場合、クライアントの接続 情報を識別することができますあなたのアプリケーションへの訪問者。この情報を持っていると、トラフィックログの分析、接続の収集、IPアドレスのホワイトリストのトラブルシューティング、または管理のために役立ちます。

あなたはenable Proxy Protocol in the ELBである必要があります。

developers guideには、プロキシプロトコルに関する詳細があります。

+0

注:プロキシプロトコルは、 'TCP'リスナーを使用する場合にのみ必要です。 'HTTP'リスナの場合、' X-Forwarded-For'ヘッダを使用することができます。 –

+0

これはまだですか?リンクは機能しません:/ –

+0

どのリンクが動作しませんか? –

関連する問題