Блокуйте трафік як на сервері, так і на брандмауері, якщо можливо, на всякий випадок.
Групи безпеки хороші тим, що вони зовнішні для вашого хоста, тому дані ніколи не доходять до вас. Вони не так налаштовані, як більшість серверних брандмауерів.
На жаль, групи безпеки 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 дозволяють писати як правила дозволу, так і заборонити, тому я рекомендую робити це таким чином.