Блокировка IP-адресов с помощью AWS WAF, так что только пользователи, подключенные к VPN, могут получить доступ к CloudFront

Цель: использовать AWS WAF для фильтрации трафика, который попадает в CloudFront, так что только пользователи, подключенные к сети OpenVPN, могут получить доступ к веб-приложению.

OpenVPN назначает любому подключенному пользователю IP-адрес в диапазоне сети 172.xx.yyy.z/a.
Поэтому я внес в белый список этот диапазон с помощью правила WAF для веб-ACL и внес в черный список любые другие IP-адреса.
Однако я не могу получить доступ к сайту.

Просматривая CloudWatch, становится ясно, что это связано с тем, что IP-адрес, назначенный VPN, фактически не используется для доступа к веб-приложению. Это модифицированный IP-адрес, который очень похож на публичный IP-адрес моего устройства.

Насколько я понимаю, я не могу определить диапазон для этих "пользовательских" ip. Учитывая это, как я могу обеспечить доступ к сайту только пользователям, подключенным к VPN?

Я пропустил что-то важное? Любая помощь в решении этой проблемы приветствуется.

Спасибо!

3 ответа

Решение

172.16.0.0/12 IP-адреса являются частными (172.16.0.0 - 172.31.255.255) и не маршрутизируются в общедоступном Интернете.

Если IP-адрес, на который вы ссылаетесь, находится в этом диапазоне, то это адрес в частной сети, то есть VPN-туннель. Устройство на дальнем конце VPN будет иметь доступ к Интернету и будет иметь публичный IP-адрес, который можно маршрутизировать в общедоступном интернете, и то, что видит CloudFront.

Вам нужно было бы знать все блоки CIDR Public IP служб VPN, которые используют ваши посетители, иначе вы не сможете заблокировать по IP.

Хотя вы можете ограничиться HTTP-заголовком. Если вы изучите соединения, проходящие через (без WAF), вы можете узнать об этом из запросов.

Обратите внимание, что было бы предпочтительнее направлять трафик внутри компании .

Согласно комментарию выше:

похоже, вы используете сторонний сервис. «Это модифицированный IP-адрес, который очень похож на общедоступный IP-адрес моего устройства».

Похоже, это связано с тем, что пользователи VPN используют внешнюю адресацию ресурса (через CloudFront или иным образом), и этот внешний адрес может быть разрешен через третью сторону, например Cloudflare, или замаскирован через сами сервисы AWS. Вероятно, через сервисы AWS (так что технически это не «третья сторона»), НО результат тот же => маскированная адресация. Я считаю, что именно поэтому проблема, на которую указал OP, существует.

AWS только что представила за последние несколько недель CloudFront-Viewer-Address headerкоторый помогает решить эту проблему в зависимости от ваших вариантов.

Вместо того, чтобы использовать общедоступный IP-адрес для выходного узла для вашей сети VPN, я предлагаю (настоятельно) изучить возможность улучшения маршрутизации для вашей VPN и связанных ресурсов, чтобы «внутренний» трафик не попадал в открытый Интернет, вводя или улучшить маршрутизацию и перейти к подходу, в основном основанному на VPC. Возможно, начнем с введения в VPC от Amazon.

Конечным решением было убедиться, что весь трафик проходил через OpenVPN.

Это будет означать, что любой, подключающийся к VPN, будет иметь публичный IP-адрес, назначенный VPN-серверу.

Следовательно, этот IP-адрес был единственным, которому разрешен доступ к сайту через WAF.

Другие вопросы по тегам