web-dev-qa-db-ja.com

Amazon EC2インスタンスでIPアドレスの範囲をブロックするにはどうすればよいですか?

特定の範囲のIPアドレスがサーバーに問題を引き起こしていることがわかっています。172.64.*.* Amazon EC2インスタンスへのアクセスをブロックする最良の方法は何ですか?セキュリティグループを使用してこれを行う方法はありますか、それともサーバー自体のファイアウォールで行う方が良いですか?

28
cwd

可能であれば、サーバーとファイアウォールの両方でトラフィックをブロックします。

セキュリティグループは、ホストの外部にあり、データが届かないため、優れています。ただし、ほとんどのサーバーベースのファイアウォールほど構成可能ではありません。

残念ながら、EC2セキュリティグループは、デフォルトの拒否ポリシーを通じてのみサービスを「許可」できます。したがって、小さなIP範囲に対して公に「許可された」サービスへのアクセスをブロックしようとしている場合、「インターネットの残りの部分」に対する許可ルールの構築は、IP範囲をブロックすることよりも少し複雑です。ニースの大きなチャンクを指定したので、172.64.0.0/16を含まないネットワーク範囲のリストは長すぎません。

0.0.0.0/1
128.0.0.0/3
160.0.0.0/5
168.0.0.0/6
172.0.0.0/10
173.0.0.0/8
174.0.0.0/7
176.0.0.0/4
192.0.0.0/3
224.0.0.0/3

このリストは、ポートに追加する必要があります。次に、そのポートの「すべて許可」ルールを削除できます。連続していない複数のポートがある場合、それらのリストは複数回入力する必要があります。複数のセキュリティグループがある場合、これはすぐに管理できなくなる可能性があります。

ローカルファイアウォールも機能します。 iptablesはデフォルトのAmazon AMIおよびすべてのLinuxディストリビューションで利用できます

Sudo iptables -I INPUT -s 172.64.0.0/16 -j DROP

ルールを追加したら、ルールを保存し、iptablesサービスが起動時に開始することを確認する必要があります。

# For Amazon Linux
Sudo service iptables save

# Other distributions might use one of these:
#Sudo iptables-save > /etc/sysconfig/iptables-config
#Sudo iptables-save > /etc/iptables/rules.4

保存先の設定ファイルはディストリビューションによって異なります。

VPCネットワークACLの使用

インスタンスに [〜#〜] vpc [〜#〜] を使用する場合、サブネットで機能する「ネットワークACL」を指定できます。ネットワークACLでは、許可ルールと拒否ルールの両方を記述できるため、この方法で作成することをお勧めします。

18
Matt

トラフィックを停止する最も簡単な方法は、そのインスタンスのVPCネットワークACLにトラフィックを追加し、そのIPアドレスからのすべてのトラフィックを拒否することです(VPCが使用されていると想定)。

覚えておくべきことの1つは、拒否ルール番号は最初の許可ルール番号よりも小さい必要があることです。

11
pg2286

私は2回問題に遭遇し、EC2の状況が少し異なることに気づきました:サーバーがElastic Load Balancer(ELB)の背後にあるクラスターにある場合、iptablesは機能しません-IPアドレスinstanceは、ELBのインスタンスであることを認識しています。

ELBをより新しい構成で構成している場合は、SO回答: https://stackoverflow.com/questions/20123308/how-to-configure-aws- elb-to-block-certain-ip-addresses-known-spammers

私たちの場合、うまく設定できなかったため、X-FORWARDED-FORヘッダーを検索してそこからIPアドレスをブロックできるApacheを使用する必要がありました。

これをApache構成に追加します(おそらくVirtualHostブロックにあります)。

RewriteEngine On
RewriteCond %{HTTP:X-FORWARDED-FOR] ^46\.242\.69\.216
RewriteRule .* - [F]

これは、ELBによって設定されたヘッダーをチェックします

設定を保存し、debian/ubuntuの場合はApache2ctl -tでテストし(RHELの場合はapachectl -t)、Apacheを再起動します。

これは403 Forbidden応答を返すだけです

3
Tom Harrison Jr

AWSの単一のIP/IP範囲からのトラフィックをブロックする

  1. VPCダッシュボードを開く
  2. 「ネットワークACL」ビューを開く
  3. ACLエディターを開く
  4. トラフィックをブロックするルールを追加します

これは簡単なチュートリアルです: http://chopmo.dk/posts/2015/06/13/blocking-traffic-in-aws.html

2
k.t