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


27

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


1
インスタンスがVPC内にある場合、ネットワークACLを編集して特定の範囲を拒否できます。

回答:


17

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

セキュリティグループはホストの外部にあるため、データはユーザーに届きません。ただし、ほとんどのサーバーベースのファイアウォールほど設定可能ではありません。

残念ながら、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を使用する

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


これはもう機能しません
キムジョンウー

@KimJongWoo何が機能しないのですか?iptables動作していないことがわかりませんので、セキュリティグループで許可されている大きなサブネットを参照していますか?
マット

12

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

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


4
拒否ルール番号は、最初の許可ルール番号よりも小さくする必要がありますか?
ダンテネンバウム

それは正解です。
pg2286

1
20のACLルールの制限があることに注意してください。そして、これはアマゾン、残念だ。
アレックス

3

2回問題に遭遇しましたが、EC2の状況が少し異なることに気付きました:iptablesサーバーがElastic Load Balancer(ELB)の背後のクラスターにある場合は動作しません- インスタンスが知っているIPアドレスはELB。

ELBを最新の構成で構成している場合は、このSOの回答を参照してください:https : //stackoverflow.com/questions/20123308/how-to-configure-aws-elb-to-block-certain-ip-addresses-known -スパマー

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

これをApache設定に追加します(おそらくVirtualHostブロックに):

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

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

設定を保存しapache2ctl -t、debian / ubuntu(またはapachectl -tRHEL)でテストしてから、apacheを再起動します。

これは単に403 Forbidden応答を送り返します


2

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

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

ここに簡単なチュートリアルがあります:http : //chopmo.dk/posts/2015/06/13/blocking-traffic-in-aws.html

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.