Ответ
В AWS эту роль выполняют Security Groups (Группы безопасности).
Security Groups — это виртуальческий брандмауэр уровня инстанса (виртуальной машины) со следующими ключевыми характеристиками:
- Stateful: Если вы разрешаете входящий трафик по определенному правилу, ответный трафик автоматически разрешен, независимо от исходящих правил (и наоборот).
- Действуют только на разрешение (Allow): Правила Security Groups только разрешают трафик. Неявно весь трафик, не подпадающий под правила, запрещен. Нет правил типа "Deny".
- Привязка к инстансу: Один инстанс EC2 может быть ассоциирован с несколькими Security Groups.
Пример типичного сценария настройки: Допустим, нам нужно разрешить SSH-доступ (порт 22) только с офисного IP-адреса и HTTP/HTTPS трафик (порты 80, 443) из любой точки мира для веб-сервера.
-
Правило для SSH:
- Тип: SSH
- Протокол: TCP
- Порт: 22
- Источник:
203.0.113.0/24(конкретная подсеть)
-
Правило для HTTP/HTTPS:
- Тип: HTTP (или HTTPS)
- Протокол: TCP
- Порт: 80 (и 443 для HTTPS)
- Источник:
0.0.0.0/0(любой IP)
Дополнительный механизм: На уровне подсети (VPC) существует Network Access Control Lists (NACL), который является stateless-брандмауэром и работает с правилами как на разрешение, так и на запрет. Однако для повседневной защиты инстансов EC2 в первую очередь используются именно Security Groups.
Ответ 18+ 🔞
А, ну это же про эти ваши Security Groups в AWS! Ёпта, сейчас объясню на пальцах, без этой ихней заумной документации, от которой мозг вскипает, как каша в микроволновке.
Представь себе, что твой сервер в облаке — это твоя хата. Так вот, Security Groups — это такой охранник на входе, который не просто тупой болван, а stateful, то есть с памятью. Если ты ему сказал: «Вася, впусти Петю с пивом» — он Петю впустит. А когда Петя уйдёт, охранник его обратно выпустит, не спрашивая отдельного разрешения. Автоматом. Удобно же, блядь? Не надо каждый раз звонить и говорить: «Вася, выпусти Петю, он уже бухой». Весь ответный трафик он пропускает сам, без лишних вопросов. Красота!
И второе, главное правило этого охранника — он только разрешает. То есть по умолчанию он стоит такой мрачный и всех посылает нахуй. Весь трафик запрещён. А ты ему шепчешь на ушко: «Вася, вот с этого IP пускай ребята по SSH (порт 22) заходят, админку поправлять». И он кивает. «А вот на порты 80 и 443 пускай вообще кто угодно валится, сайт смотреть». И он опять кивает. Всё, больше него ничего не прошибёт. Правил «запретить вот этого рыжего» у него нет — он либо пропускает по твоему списку, либо нет. Всё просто, как три копейки.
И прикрутить этого охранника можно не к одному, а к нескольким серверам сразу. Один и тот же Вася может и за твоей хатой присмотреть, и за соседской. Подозрение ебать чувствую, что это экономия какая-то, но работает.
Пример, чтобы вообще всё встало на свои места, как надо:
Допустим, у тебя веб-сервер. Надо, чтобы с офисного IP (допустим, 203.0.113.0/24) к нему по SSH подключались, а сайт (порты 80, 443) был доступен всем подряд, с любого IP.
-
Правило для админов (SSH):
- Тип: SSH (тут AWS сама подставит, что порт 22, TCP).
- Источник:
203.0.113.0/24. То есть только с адресов офиса. - Всё. Больше никто не докопается до командной строки. Доверия ебать ноль ко всем остальным.
-
Правило для народа (HTTP/HTTPS):
- Тип: HTTP (порт 80) и HTTPS (порт 443).
- Источник:
0.0.0.0/0. Это магическая формула, означающая «пускай вообще все, с любого IP на планете». - Теперь любой чувак из интернета может сайт посмотреть.
И всё! Охранник Вася стоит, правила выполняет. Волнение ебать — ноль. Трафик ходит только там, где ты сказал.
А, ну и есть ещё одна штука — NACL (Network ACL). Это уже не охранник у двери, а старый, блядовитый дед на КПП всей твоей деревни (подсети). Он stateless, то есть без памяти, тупой как пробка: если ты впустил машину в деревню, это не значит, что он её выпустит. Надо отдельное правило писать. И у него есть правила «Deny». Но это, честно говоря, овердохуища сложности для обычных дел. Для повседневной защиты твоих серверов-хат Security Groups — это твои лучшие друзья, твоя броня. На них и ставь, не ошибёшься.