Як я можу заблокувати діапазон 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 для своїх примірників, ви можете вказати "Мережеві ACLS", які працюють у вашій підмережі. Мережеві ACL дозволяють писати як правила дозволу, так і заборонити, тому я рекомендую робити це таким чином.


це більше не працює
Кім Чен Ву

@KimJongWoo, що не працює? Я не бачу, що iptablesне працює, тому ви посилаєтесь на велику підмережу в групі безпеки?
Метт

12

Найпростішим способом зупинити трафік є (припустимо, що VPC використовується), додавши його до мережі VPC мережі VPC цього примірника і відмовившись від усього трафіку з цієї IP адреси.

Варто пам’ятати, що номер правила заборонити повинен бути меншим, ніж номер першого правила дозволу.


4
Ви маєте на увазі, що номер правила заборонити повинен бути меншим, ніж перший номер правила дозволу ?
Dan Tenenbaum

Так, це правильно.
pg2286

1
майте на увазі, що існує 20 правил ACL. І це смокче, Amazon.
Олексій

3

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

Якщо ваш ELB налаштований у більш сучасній конфігурації, дивіться цю відповідь ТА: /programming/20123308/how-to-configure-aws-elb-to-block-certain-ip-addresses- unknown -шпамери

У нашому випадку у нас нічого не було налаштовано, тому мені довелося використовувати 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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.