Я пытаюсь заблокировать порты в своих подсетях, и у меня проблема с экземпляром nginx, на котором я работаю ECS.
Трафик поступает в систему на : 443
к ELB, который направляет часть его к экземпляру nginx, работающему на ECS, который proxy_pass
передает его на внешний www. адрес.
nginx настроен на proxy_pass
для имени домена, и он использует конфигурацию преобразователя nginx: resolver 8.8.8.8 ipv6 = off valid = 10s
, чтобы преобразовать это в IP адрес. IP не статический, поэтому я должен это сделать.
Однако, когда я применяю свой сетевой acl, все работает, кроме этого разрешения DNS. Nginx возвращает ответы Bad Gateway с жалобами на то, что мой домен не может быть разрешен (110: Превышено время ожидания операции)
.
Сетевой acl настроен на разрешение всего исходящего трафика для всех протоколов, но ограничивает входящий трафик определенным набором портов.
Я попытался добавить 53 (UDP и TCP) во входящие правила, но разрешение все равно не удается.
Важно отметить, что если я разрешаю весь входящий трафик, то разрешение DNS работает.
Мой вопрос:
Один из возможных ответов - разрешить весь трафик, поступающий из 8.8.8.8.
Однако важно отметить, что некоторые сервисы AWS (например, ELB) используют эфемерные порты ( https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html# nacl-ephemeral-ports ), и они также должны быть открыты.
Конечно, они представляют большой диапазон портов, но, как указано в документации, вы всегда можете ОТКАЗАТЬ трафик от вредоносных портов.