Гео-блокировка

Гео-блокировка смотрит, откуда пришёл посетитель: из какой он страны и к какой сети относится его адрес. Региональный магазин может открыть доступ только странам, куда доставляет товар. Сайт, на который большинство атак идёт из нескольких стран, может закрыть доступ этим странам, а любой сайт может отсечь облачные сети, откуда приходит почти весь автоматический трафик.

Включите её в настройках сайта: вкладка Дополнительно, раздел Гео-блокировка. Заблокированные посетители получают 404 или вашу собственную страницу блокировки.

Базы GeoIP

Гео-блокировка работает с базами MaxMind в формате .mmdb. WardPane читает их из /var/lib/wardpane/geoip (параметр GEOIP_DIR в .env).

  • База стран: GeoLite2-Country или GeoLite2-City (или коммерческие версии GeoIP2). Нужна для правил по странам. Если есть и файл City, и файл Country, используется City.
  • База ASN: GeoLite2-ASN. Нужна для правила по сетям хостингов и для номеров AS.

install.sh копирует все файлы .mmdb, которые найдёт рядом с собой или в папке ./maxmind/. Файлы можно положить в папку и самому: панель ищет новые или изменённые файлы каждые 10 минут и записывает в журнал каждую загруженную базу.

Автоматическое обновление

Если у вас есть бесплатная учётная запись MaxMind, WardPane сам обновляет базы. Создайте лицензионный ключ в своей учётной записи MaxMind, затем введите ID учётной записи и ключ в Настройки > Интеграции или пропишите их в /opt/wardpane/.env:

MAXMIND_ACCOUNT_ID=123456
MAXMIND_LICENSE_KEY=your_license_key

Панель проверяет базы раз в день и скачивает заново ту, чья копия на диске старше 7 дней. По умолчанию она обновляет ту базу стран, которая у вас уже есть (City, если установлен файл City, иначе Country), плюс ASN. MAXMIND_EDITIONS задаёт редакции явно. Скачанный файл, который не удаётся прочитать, никогда не заменяет рабочий.

City или Country и расход памяти

База City занимает в памяти около 100 МБ. На сервере с 512 МБ RAM ставьте вместо неё GeoLite2-Country (около 10 МБ). Для блокировки нужна только страна, так что вы ничего не теряете.

Без базы стран правила по странам не применяются, и панель показывает предупреждение в разделе «Гео-блокировка». Фильтр по языку работает без всякой базы.

Запрещены или Разрешены

Режим Действие
Запрещены Блокировать выбранные страны, пускать всех остальных.
Разрешены Пускать только выбранные страны, блокировать всех остальных.

Для режима «Разрешены» нужна хотя бы одна страна, иначе был бы заблокирован весь мир; такое правило панель не сохранит.

Чтобы добавить страну, введите название или двухбуквенный код и нажмите Enter; страна появится в виде метки. Страна определяется по реальному IP-адресу посетителя, в том числе за Cloudflare, когда включён этот переключатель.

Группы стран

Вместо того чтобы выбирать десятки стран по одной, добавьте группу. Всего групп 27.

Организации:

  • Бывший СССР (все 15 бывших советских республик, включая страны Балтии)
  • СНГ: нынешние и бывшие участники (включая Грузию и Украину, которые вышли, Молдову, которая выходит, и ассоциированного члена Туркменистан)
  • Евразийский экономический союз
  • ОДКБ (Армения заморозила участие, но формально остаётся членом)
  • Европейский союз
  • Европейская экономическая зона (ЕС плюс Исландия, Лихтенштейн и Норвегия)
  • Шенгенская зона
  • НАТО
  • «Пять глаз» (Five Eyes)
  • G7 («Большая семёрка»)
  • Страны G20 (страны-участницы; ЕС и Африканский союз не страны)
  • ОЭСР
  • БРИКС (полноправные члены; Саудовская Аравия не подтвердила членство и не включена)
  • Шанхайская организация сотрудничества
  • АСЕАН
  • Совет сотрудничества стран Персидского залива
  • Лига арабских государств
  • МЕРКОСУР (полноправные члены; членство Венесуэлы приостановлено, и она не включена)

Регионы:

  • Ближний Восток
  • Латинская Америка
  • Европа
  • Азия
  • Африка
  • Северная Америка (включая Центральную Америку и Карибские острова)
  • Южная Америка
  • Океания
  • Антарктида

Состав групп указан на октябрь 2026 года. Континенты соответствуют геосхеме ООН с обычными поправками: Россия и Кипр в Европе, Турция и Кавказ в Азии. Подсказка к каждой группе в панели объясняет спорные случаи.

Сайт хранит ссылку на группу и не копирует её страны. Когда обновление панели меняет группу (страна вступает или выходит), ваше правило подхватывает изменение автоматически.

Исключения и итоговый список

Исключения (поле «Кроме этих стран») задают страны, к которым правило никогда не применяется, даже если они входят в группу или выбраны вами. Например:

  • «Запрещены», группа «СНГ: нынешние и бывшие участники», исключение Казахстан: заблокировать СНГ, кроме Казахстана.
  • «Разрешены», группа «Европейский союз», исключение Венгрия: пускать только ЕС, без Венгрии.

Под списками панель показывает итоговый список: какие именно страны охватывает правило после объединения ваших стран, групп и исключений. Если в режиме «Разрешены» исключения убирают всё, панель об этом сообщит.

Посетители с неизвестной страной

Некоторых адресов нет ни в одной базе, например совсем новых выделений и зарезервированных диапазонов. По умолчанию их пускают. Чтобы блокировать их, отметьте Блокировать посетителей, чью страну не определить. Это работает в обоих режимах.

Сети хостингов и облаков

Блокировать хостинги и облака закрывает доступ посетителям из сетей крупных хостинг- и облачных провайдеров. Живые люди редко заходят на сайты из дата-центра, а скрипты, сканеры, парсеры и многие VPN работают как раз оттуда. В списке Amazon AWS, Microsoft Azure, Google Cloud, Oracle Cloud, IBM Cloud, Alibaba Cloud, Tencent Cloud, Huawei Cloud, DigitalOcean, Hetzner, OVH, Akamai/Linode, Vultr, Contabo, Scaleway, Leaseweb, M247, Datacamp/CDN77, Hostinger, Selectel, Timeweb, Hostkey, FranTech/BuyVM, Psychz и Aeza.

Для этого нужна база ASN. Правило работает и в режиме «Запрещены», и в режиме «Разрешены», вдобавок к правилу по странам. Поисковые системы, боты превью ссылок и ваш собственный мониторинг тоже могут работать из этих сетей. Если они вам нужны, проверьте результат в статистике или разрешите их адреса в белом списке сайта.

Номера AS

В поле Также блокировать сети (номера AS) задаётся ваш собственный список сетей в виде AS12345 или 12345, через запятую или по одному на строку. Пригодится для провайдера, с адресов которого ваш сайт постоянно атакуют. Нужна база ASN.

Порядок проверок внутри гео-блокировки

  1. Язык браузера (самая дешёвая проверка, база не нужна).
  2. Сети хостингов и облаков.
  3. Ваши номера AS.
  4. Неизвестная страна.
  5. Правило по странам («Запрещены» или «Разрешены»).

Адреса из белого списка сайта пропускают все эти проверки. Если сайт проксируется через Cloudflare, но не отмечен как «За Cloudflare», каждый запрос приходит с адреса Cloudflare, по которому о посетителе ничего не узнать. Для таких запросов проверки страны и сети пропускаются, и работает только фильтр по языку.

Проверка IP

Внизу раздела «Гео-блокировка» введите адрес (например, 8.8.8.8) и нажмите Проверить. Панель покажет его страну, сеть (номер и название AS) и то, считается ли она сетью хостинга. Так удобно проверить правило, прежде чем на него полагаться.

Откат на старую версию

Группы и исключения появились в версии 1.4.0. Итоговый список стран также сохраняется в поле, которое читают старые версии, поэтому при откате ниже 1.4.0 сайт продолжает блокировать ровно те же страны. Редактировать группы там нельзя. Если вы измените правило в старой версии, а потом снова обновитесь, её список стран сохранится, а группы и исключения будут удалены, и в журнале появится запись об этом.