Я написал веб-ловушку для PayPal IPN и хочу разрешить доступ с серверов PayPal через порт 80/443 только к экземпляру EC2, на котором размещена конечная точка.
В консоли группы безопасности EC2 я могу фильтровать только по IP / диапазону. Этого недостаточно, поскольку PayPal заявляет, что они меняют IP-адрес случайным образом и без предварительного уведомления, поэтому необходимо использовать имена хостов.
Я видел здесь ответы, в которых рекомендуется расширить блок IP и т. Д., Но нет реального прямого решения. Одно из предлагаемых решений заключалось в обновлении группы безопасности с помощью API AWS.
Это лучший вариант? Что я мог бы сделать, так это запланировать задачу для сравнения текущего IP-адреса, разрешенного хостом PayPal, с последним известным IP-адресом. Если они разные, обновите группу AWS EC2.
Я бы запустил эту задачу на том же компьютере, потому что если машина остановится, доступ к конечной точке все равно будет недоступен.
Это наиболее подходящее решение? Я сделаю то же самое для своего дома, где у меня есть аналогичная проблема.
Группы безопасности не выполняют фильтрацию имен хостов, только диапазоны IP-адресов или другие логические ссылки в AWS.
Поскольку AWS предлагает API для SG, вы можете обновлять их по мере изменения IP-адресов, хотя этот метод кажется слишком хрупким для производственной службы.
Доступно много других вариантов, но они требуют немного больше работы. Например, настройка прокси-сервера позволит вам управлять доступом, например, через имя хоста.
AWS предлагает подробное руководство по установке и настройке squid здесь. https://aws.amazon.com/articles/6884321864843201
Это небольшой фрагмент, который поможет вам понять, в чем дело:
$ sudo vim /etc/squid/squid.conf
acl s3 dstdom_regex .*s3\.amazonaws\.com
acl s3 dstdom_regex .*s3\.ap-southeast-2\.amazonaws\.com
acl s3 dstdom_regex .*s3\.ap-southeast-1\.amazonaws\.com
http_access allow localnet s3
$ sudo service squid restart
Должна ли фильтрация выполняться на уровне AWS. Вы можете добавить дополнительный программный брандмауэр в экземпляр (или в качестве другого экземпляра между IGW и экземпляром), Pfsense должен разрешить блокировку брандмауэра на основе имени хоста.