Как я могу заблокировать диапазон IP-адресов с экземпляром Amazon EC2?

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 для своих экземпляров, вы можете указать «Network ACLS», который работает в вашей подсети. Сетевые ACL-списки позволяют вам писать и разрешать, и запрещать правила, поэтому я бы порекомендовал сделать это так.

Matt
источник
это больше не работает
Ким Чен Ву
@KimJongWoo, что не работает? Я не вижу, iptablesне работает, так что вы имеете в виду большие подсети разрешает в группе безопасности?
Мэтт
12

Простейший способ остановить трафик (при условии использования VPC) - добавить его в ACL сети VPC этого экземпляра и запретить весь трафик с этого IP-адреса.

Следует помнить, что номер запрещающего правила должен быть меньше первого разрешенного номера правила.

pg2286
источник
4
Вы имеете в виду, что номер запрещающего правила должен быть меньше первого разрешенного номера правила?
Дэн Тененбаум
Да, это правильно.
pg2286
1
Имейте в виду, что существует ограничение в 20 правил ACL. И это отстой, Амазонка.
Алекс
3

Я дважды сталкивался с проблемой и понял, что моя ситуация в EC2 немного другая: iptablesне работает, если ваши серверы находятся в кластере за эластичным балансировщиком нагрузки (ELB) - IP-адрес, о котором знает экземпляр, это адрес ELB.

Если ваш ELB настроен в более современной конфигурации, посмотрите этот ответ SO: /programming/20123308/how-to-configure-aws-elb-to-block-sure-ip-addresses-known -spammers

В нашем случае у нас не все было хорошо настроено, поэтому мне пришлось использовать 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 -tдля RHEL), затем перезапустите apache.

Это просто отправляет 403 Forbiddenответ обратно

Том Харрисон младший
источник
2

Блокировка трафика с одного диапазона IP / IP в AWS

  1. Откройте панель управления VPC
  2. Откройте представление «ACL сети»
  3. Откройте редактор ACL
  4. Добавить правило для блокировки трафика

Вот краткое руководство: http://chopmo.dk/posts/2015/06/13/blocking-traffic-in-aws.html

кт
источник