У меня очень ограниченный ACL для моего VPC. У нас есть общедоступная подсеть и частная подсеть, каждая подсеть имеет свой индивидуальный ACL.
Я не понимаю, почему следующий ACL работает для отправки электронной почты через порт 465 через Amazon SES.
общественность:
частный:
Я получаю оба исходящих, но входящий для публики не имеет никакого смысла. Где в SMTP RFC сказано, что smtp-сервер (SES, реле) будет соединяться с клиентом обратно через порт 465? Я ожидал, что клиент выберет высокий порт, как показано в следующем netstat:
tcp 104 0 ip-10-0-1-75.ec:36836 ec2-54-243-225-221.:urd CLOSE_WAIT
tcp 0 0 ip-10-0-1-75.ec:50903 ec2-54-243-161-229.:urd ESTABLISHED
urd - 465, насколько я понимаю. Итак, мой экземпляр в частной подсети направляет запрос экземпляру NAT, а NAT (в общедоступной подсети) отправляет пакеты на удаленный сервер. Так зачем вообще нужен 465 входящий?
Чтобы убедиться, что мы ясны, src 0.0.0.0/0 port 465
относится к источник IP, но место назначения порт.
Источник трафика (диапазон CIDR) и целевой (прослушивающий) порт или диапазон портов.
http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_ACLs.html
Что интересно в этом вопросе, так это то, что "неправильное" (то есть источник путаницы) с правилом вовсе не порт, а диапазон IP-адресов.
Это правило разрешает вашим экземплярам в частных подсетях получать доступ к вашему экземпляру NAT (в общедоступной подсети), чтобы трафик мог быть перенаправлен оттуда в Интернет. Фактическая цель не в том, чтобы разрешить трафик из Интернета обратно (хотя он непреднамеренно делает что-то подобное, разрешая входящий трафик с портом назначения 465, что вам не нужно). Более правильное правило будет использовать блок cidr вашего VPC (например, 172.31.0.0/16) (или соответствующее подмножество) в качестве источника, а машину NAT или ее подсеть в качестве назначения.