Когда написано 18.136.60.252:443 is accessing 10.0.12.61:55584
, я бы не сказал, что 18.136.60.252"обращается" к вашему локальному IP-адресу VPC.Я бы скорее сказал, что «18.136.60.252» отправляет ответ на ваш локальный IP-адрес VPC, на произвольный порт SRC, назначенный ОС для установления связи TCP (55584), через уже установленное соединение TCP (инициированное ecs-agent).в вашем случае).
Вам не нужно концентрироваться на том, какой порт источника следует разрешить.Вы скорее хотите сказать ОС (брандмауэр) «разрешить ответам входить для уже установленных соединений».В iptables это выглядит так:
Из экземпляра в сеть, для доступа к удаленному порту 443:
iptables -A OUTPUT -o eth0 -p tcp -m multiport --dports 80,443 -j ACCEPT
С удаленного хоста до вашего экземпляра, чтобы позволить ответам возвращаться:
iptables -A INPUT -i eth0 -p tcp -m multiport --sports 80,443 -m state --state RELATED,ESTABLISHED -j ACCEPT
. ^ source port ^ the rule only applies to already established connections
Здесь вы можете найти более подробные объяснения:
https://unix.stackexchange.com/q/323546/18256
https://superuser.com/a/1171322/131073
Почему мой ECS запрашивает данные, используяпорт источника 44920
ОС - это та ОС, которая назначает эти порты агенту ECS для использования в качестве порта источника, это просто свободный случайный выбор.
Редактировать после уточнений с помощью OP и самообучения
Так что на уровне AWS NACL мне следует разрешить весь диапазон эфемерных портов?
Согласно Документам AWS NACL :
На практике для охвата различных типов клиентов, которые могут инициировать трафик к публичным экземплярам вваш VPC, вы можете открыть эфемерные порты 1024-65535.Однако вы также можете добавить правила в ACL, чтобы запретить трафик на любые вредоносные порты в этом диапазоне.Убедитесь, что вы поместили правила DENY в таблицу раньше, чем правила ALLOW, которые открывают широкий диапазон эфемерных портов.
Но учтите:
Вы можете установитьсетевые ACL с правилами, аналогичными вашим группам безопасности, чтобы добавить дополнительный уровень безопасности к вашему VPC. (выделение мое)
.
А на уровне ОС это сделать?Если я использую Docker, мне нужно сделать это через Dockerfile?
Я рекомендую управлять этим с помощью групп безопасности, так как они «с состоянием» означают, что они отслеживают каждое установленное соединение, автоматически разрешая »ответы "на эфемерные порты, без настройки этих правил.Например, вы можете «ОТКАЗАТЬ» весь входящий трафик и разрешить TCP 443 для исходящего трафика.Это означает, что не означает, что ответы не могут достичь эфемерного порта, они действительно могут (несмотря на DENY весь входящий трафик), потому что Группа безопасности запоминает соединение.Подробнее здесь :
Группа безопасности: с состоянием: возврат трафика разрешен автоматически, независимо от каких-либо правил
ACL сети: без сохранения состояния: возврат трафикадолжно быть явно разрешено правилами <- это ответ на предыдущий вопрос об эфемерных портах </em>
Что касается ОС и iptables, я бы рассмотрел первые группы безопасности, которые легченастраивать и поддерживать, по крайней мере, для данного варианта использования.