Ограничение доступа по IP в Nginx
Ограничение доступа по IP-адресам — одна из базовых практик защиты веб-сервисов. В этой статье разберём, зачем ограничивать доступ к сервисам только из российских сетей, как это связано с требованиями Минцифры и какую роль играет Nginx в реализации такой схемы.
Безопасность публичных сервисов начинается не только с паролей, сертификатов и обновлений. Важная часть защиты — сокращение поверхности атаки: чем меньше лишних точек входа доступно из интернета, тем ниже вероятность автоматического сканирования, подбора учётных данных и эксплуатации уязвимостей.
В дополнение к внутренним требованиям безопасности, подобные меры соответствуют рекомендациям и требованиям регуляторов. В частности, по информации СМИ, Минцифры России обращает внимание операторов и владельцев онлайн-сервисов на необходимость ограничения доступа к чувствительным системам с зарубежных IP-адресов как меры снижения киберрисков.
Поэтому для части наших сервисов мы применяем географическое ограничение доступа: обращения с IP-адресов, не относящихся к российским сетям, блокируются.
Зачем это нужно
Большая часть легитимных пользователей наших внутренних и клиентских сервисов работает из российских сетей. При этом значительный объём нежелательного трафика поступает из зарубежных автономных систем, облачных площадок, анонимных прокси и автоматизированных сканеров.
Ограничение доступа по IP-диапазонам позволяет:
- соответствовать отраслевым рекомендациям и требованиям регуляторов (в том числе Минцифры);
- снизить количество автоматических сканирований;
- уменьшить нагрузку на публичные точки входа;
- сократить число попыток подбора паролей;
- уменьшить вероятность эксплуатации известных уязвимостей;
- сделать журналы безопасности чище и полезнее для анализа;
- дополнить существующие меры защиты без изменения пользовательского сценария.
Это не замена полноценной информационной безопасности. Мы по-прежнему используем аутентификацию, контроль доступа, обновления, журналирование, резервное копирование и мониторинг. Географическая фильтрация — дополнительный слой защиты.
Как формируется список разрешённых сетей
Для фильтрации используется актуальный список российских IP-диапазонов в формате CIDR. Такой список регулярно обновляется, потому что адресное пространство операторов связи меняется: появляются новые подсети, часть диапазонов передаётся другим владельцам, меняются маршруты и регистрационные данные.
В качестве одного из источников можно использовать агрегированные списки IPdeny. Они публикуют country IP zone files, включая агрегированные файлы по странам. Для России это файл:
Что видит пользователь
Если пользователь подключается из российской сети, сервис работает в штатном режиме.
Если подключение идёт с зарубежного IP-адреса, доступ может быть ограничен. В этом случае пользователь получает страницу с объяснением причины блокировки и рекомендацией обратиться в поддержку, если доступ действительно необходим.
Важное ограничение
Определение страны по IP-адресу не является абсолютно точным. Возможны ситуации, когда легитимный пользователь выходит в интернет через корпоративный VPN, зарубежный облачный шлюз, прокси или мобильного оператора с нестандартной маршрутизацией.
Такие случаи разбираются отдельно. При необходимости мы добавляем исключения для конкретных адресов или сетей, если это не противоречит требованиям безопасности.
Вывод
Ограничение доступа с зарубежных IP-адресов — это не только практическая мера снижения рисков для сервисов, ориентированных на пользователей из России, но и соответствие текущим рекомендациям регуляторов в области кибербезопасности. Она не усложняет работу основной аудитории, но уменьшает количество нежелательного трафика и повышает управляемость защиты.
Техническое описание реализации, скрипт обновления списка и пример настройки Nginx опубликованы в базе знаний: