Из того, что я читал, межсетевые экраны без сохранения состояния больше используются для фильтрации пакетов. Почему AWS NACL не имеет состояния?
NACL заставляют открывать слишком большой диапазон портов для эфемерных портов.
Есть ли способ создать брандмауэры с отслеживанием состояния на AWS, отличные от групп безопасности? Группы безопасности кажутся слишком детализированными и могут быть пропущены по ошибке.
Под детализацией я имел в виду, что разрешения должны быть добавлены на каждом уровне виртуальной машины. Принудительно применять его на уровне подсети будет проще. Кроме того, если в NACL открыт широкий эфемерный диапазон портов, процесс виртуальной машины может использовать один из этих портов для выполнения каких-либо вредоносных действий.
Списки управления доступом к сети (ACL) имитируют традиционные брандмауэры. реализован на аппаратных маршрутизаторах. Такие маршрутизаторы используются для разделения подсетей и позволяют создавать отдельные зоны, например ДМЗ. Они просто фильтруют на основе содержимого пакета. Это их работа.
Группы безопасности — это дополнительная возможность в AWS, которая предоставляет возможности, подобные брандмауэру на уровне ресурсов. (Если быть точным, они подключены к эластичным сетевым интерфейсам, ENI). Это состояние, что означает, что они разрешают поток обратного трафика.
В общем, рекомендуется оставить NACL с настройками по умолчанию (разрешить весь входящий и исходящий трафик). Их следует менять только в том случае, если есть конкретная необходимость блокировать определенные типы трафика на уровне подсети.
Группы безопасности — это идеальный способ контролировать трафик с отслеживанием состояния, входящий и исходящий из ресурса, подключенного к VPC. Это НАСТОЯЩИЙ способ создания межсетевых экранов с отслеживанием состояния. Других подобных возможностей у VPC нет. Если вам нужно что-то другое, вы можете направить трафик через инстанс Amazon EC2, работающий как NAT, и тогда у вас будет полный контроль над его поведением.
Спасибо, Джон, за прямое указание на это. Каким-то образом я продолжал ассоциировать SG с виртуальными машинами и не представлял SG как объекты брандмауэра.
Что вы подразумеваете под «чувствовать себя слишком гранулированным и может быть пропущено по ошибке»? Если их не указывать, то трафик (по умолчанию) не будет разрешен и кто-то должен заметить проблему. Это намного безопаснее, чем разрешить весь трафик по умолчанию.