IPBan: настройка белого списка и блокировка всего остального в Windows

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

Что такое IPBan и зачем нужен белый список

IPBan — это бесплатная утилита с открытым исходным кодом для Windows, которая анализирует логи и журналы событий, выявляет подозрительные IP-адреса и автоматически блокирует их через встроенный брандмауэр. Она часто используется как аналог fail2ban для Windows. Основная задача IPBan — защита от брутфорс-атак на RDP, SSH, веб-серверы и другие службы.

Концепция «белого списка» (whitelist) предполагает, что доступ к серверу разрешён только для заранее определённых IP-адресов или подсетей. Все остальные адреса блокируются. Такой подход особенно актуален, когда нужно ограничить доступ к критичным ресурсам (например, к панели администрирования, RDP или корпоративному веб-приложению) только для доверенных клиентов или сотрудников.

IPBan позволяет гибко настраивать белые списки через конфигурационный файл, а также задавать время блокировки, пороги срабатывания и правила для разных источников логов.

Установка IPBan на Windows Server

Установка IPBan выполняется с помощью PowerShell-скрипта из официального репозитория на GitHub. Скрипт скачивает последнюю версию, размещает файлы в C:\Program Files\IPBan и создаёт службу Windows.

Пример команды для установки:

$ProgressPreference = 'SilentlyContinue'
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
iex ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/DigitalRuby/IPBan/master/IPBanCore/Windows/Scripts/install_latest.ps1'))

После установки служба IPBan запускается автоматически. Для управления используется конфигурационный файл ipban.config, расположенный в папке программы. Все изменения в конфигурации вступают в силу после перезапуска службы командой:

Restart-Service ipban

Важно: перед началом настройки рекомендуется удалить из конфигурации правила для неиспользуемых служб (например, MSSQL, Exchange, SmarterMail), чтобы избежать ложных срабатываний.

Структура конфигурационного файла ipban.config

Файл ipban.config имеет формат XML и содержит несколько ключевых секций:

  • LogFilesToParse — определяет текстовые лог-файлы, которые нужно анализировать, и регулярные выражения для извлечения IP-адресов.
  • ExpressionsToBlock — паттерны для поиска подозрительных событий в журналах Event Viewer (Security, Application) с последующей блокировкой.
  • ExpressionsToNotify — аналогично предыдущему, но только для уведомлений, без немедленной блокировки.
  • appSettings — глобальные настройки службы: время блокировки, белый список, пороги срабатывания и другие параметры.

Пример настройки белого списка в секции appSettings:

Здесь перечислены IP-адреса и подсети, которые никогда не будут заблокированы. Можно указывать как одиночные адреса, так и CIDR-диапазоны.

Настройка белого списка для полного доступа

Чтобы реализовать политику «запретить всё, кроме белого списка», необходимо:

  1. В секции appSettings задать параметр Whitelist с перечнем разрешённых IP-адресов.
  2. Установить время блокировки (BanTime) в максимальное значение или в значение, соответствующее политике безопасности (например, 365.00:00:00 для блокировки на год).
  3. Настроить правила для логов таким образом, чтобы любое событие с небелого адреса приводило к блокировке.

Однако сам по себе IPBan не блокирует весь трафик — он реагирует только на события, которые соответствуют заданным паттернам. Чтобы действительно запретить все подключения, кроме белого списка, нужно дополнительно настроить брандмауэр Windows. IPBan создаёт правила с именем IPBan_Block_*, которые блокируют IP-адреса, но не отменяют существующие разрешающие правила.

Рекомендуется сначала создать в брандмауэре Windows правило, которое разрешает трафик только для IP из белого списка, а затем использовать IPBan для автоматического добавления нарушителей в чёрный список.

Блокировка по логам IIS: пример настройки

Один из частых сценариев — защита веб-сервера IIS от DDoS-атак и брутфорса. IPBan может анализировать логи IIS и блокировать IP-адреса, которые генерируют большое количество ошибок (например, 404 или 405).

Пример правила для блокировки IP, отправляющих запросы с кодом ответа 405:


  IIS405
  C:/inetpub/logs/LogFiles/W3SVC1/*.log

  Windows
  5000
  100000000
  5
  00:00:5

Здесь:

  • PathAndMask — путь к лог-файлам (слеши инвертированы).
  • FailedLoginRegex — регулярное выражение для поиска строк с кодом 405 и извлечения IP.
  • FailedLoginThreshold — количество срабатываний до блокировки.
  • MinimumTimeBetweenFailedLoginAttempts — минимальный интервал между попытками.

Аналогично можно настроить блокировку по коду 404 или другим признакам аномальной активности.

Проверка регулярных выражений и отладка

Перед применением правил в IPBan необходимо тщательно протестировать регулярные выражения. Для этого можно использовать PowerShell или онлайн-сервисы, например regex101.com.

Пример проверки в PowerShell:

$logLine = "2025-12-08 19:37:39 192.168.0.100 POST / - 443 - 95.128.157.17 Mozilla/5.0... 405 0 1 172"
$regex = '^(?\d{4}-\d{2}-\d{2}\s+\d{2}:\d{2}:\d{2})\s+\S+\s+\S+\s+\S+\s-\s\d+\s-\s(?\S+).*?\s405\s+\d+\s+\d+\s+\d+$'
if ($logLine -match $regex) {
    Write-Host "Совпадение: IP $($Matches.ipaddress)" -ForegroundColor Green
} else {
    Write-Host "Нет совпадения" -ForegroundColor Red
}

IPBan ведёт собственный лог-файл logfile.txt, в который записываются все действия: обнаруженные IP, блокировки, ошибки парсинга. Этот файл помогает диагностировать проблемы и убедиться, что правила работают корректно.

Ограничения и альтернативы IPBan

IPBan — мощный инструмент, но у него есть ограничения:

  • Он работает только на уровне приложений и логов, а не на уровне сетевого трафика. Для полной фильтрации всех пакетов требуется дополнительная настройка брандмауэра.
  • Бесплатная версия поддерживает только CLI-режим и текстовый конфигурационный файл. Графический интерфейс доступен в платной версии.
  • При большом количестве заблокированных IP (например, более 1000) создаются дополнительные правила брандмауэра с суффиксами _1000, _2000 и т.д., что может усложнить управление.
  • IPBan не анализирует зашифрованный трафик (HTTPS) — он работает только с открытыми данными в логах.

Альтернативы:

  • Fail2ban — классический инструмент для Linux, который также можно использовать на Windows через WSL.
  • Специализированные WAF (Web Application Firewall) — например, ModSecurity для IIS.
  • Сетевые экраны — аппаратные или программные (например, iptables на Linux-шлюзе).

Для Linux-систем часто используется связка iptables + ipset, где можно создать белый список IP и запретить весь остальной трафик. Однако IPBan остаётся одним из немногих простых решений для Windows.

Практические рекомендации по безопасности

При настройке IPBan и белых списков учитывайте следующие моменты:

  • Всегда добавляйте в белый список IP-адреса администраторов и критичных служб. Иначе вы рискуете заблокировать самих себя.
  • Используйте CIDR-диапазоны для целых подсетей (например, офисная сеть 10.10.0.0/16).
  • Настройте уведомления о блокировках, чтобы своевременно реагировать на ложные срабатывания.
  • Регулярно анализируйте логи IPBan и корректируйте регулярные выражения при изменении формата логов.
  • Комбинируйте IPBan с другими методами защиты: ограничение числа подключений через IIS Filtering, блокировка подозрительных User-Agent, использование CAPTCHA.
  • Периодически проверяйте список заблокированных IP и очищайте устаревшие записи, если время блокировки истекло.

Пример проверки количества заблокированных IP в правиле брандмауэра:

(Get-NetFirewallrule -DisplayName 'IPBan_Block_4000' | Get-NetFirewallAddressFilter).remoteaddress | Measure

Это позволяет оценить эффективность защиты и при необходимости скорректировать пороги срабатывания.

Заключение: когда стоит использовать IPBan с белым списком

IPBan с белым списком — эффективное решение для защиты Windows-серверов от брутфорс-атак и DDoS, особенно если:

  • У вас небольшой веб-сервер или терминальный сервер с известным кругом клиентов.
  • Вы хотите автоматизировать блокировку без постоянного ручного мониторинга.
  • Вам нужно быстро развернуть защиту без покупки дорогих лицензий.

Однако для крупных инфраструктур с высокой нагрузкой и сложными требованиями к фильтрации трафика лучше рассмотреть профессиональные WAF или сетевые экраны. IPBan — отличный стартовый инструмент, который при правильной настройке может значительно повысить безопасность сервера.

Вопросы и ответы

Как добавить IP-адрес в белый список IPBan?

Откройте файл ipban.config, найдите секцию appSettings и добавьте параметр Whitelist. Например: `. После изменения перезапустите службу IPBan командой Restart-Service ipban`.

Можно ли с помощью IPBan запретить весь трафик, кроме белого списка?

IPBan блокирует только те IP, которые соответствуют заданным правилам (например, превысили порог ошибок). Чтобы запретить весь трафик, кроме белого списка, необходимо дополнительно настроить брандмауэр Windows, создав правило, разрешающее доступ только для IP из белого списка, и запрещающее все остальные подключения.

Как проверить, какие IP заблокированы IPBan?

Используйте PowerShell: (Get-NetFirewallrule -DisplayName 'IPBan_Block_*' | Get-NetFirewallAddressFilter).remoteaddress. Также можно просмотреть лог-файл IPBan logfile.txt, где записаны все заблокированные адреса.

Что делать, если IPBan заблокировал легитимный IP?

Добавьте этот IP в белый список в параметре Whitelist конфигурационного файла и перезапустите службу. После этого IPBan удалит блокировку для данного адреса. Рекомендуется также проанализировать причину ложного срабатывания и скорректировать регулярное выражение или порог срабатывания.

Поддерживает ли IPBan анализ HTTPS-трафика?

Нет, IPBan работает только с открытыми текстовыми логами и журналами событий. Для HTTPS он может анализировать только начальные этапы соединения (например, CONNECT-запросы к прокси), но не содержимое зашифрованного трафика. Для глубокого анализа HTTPS требуется WAF или SSL-инспекция.

Какие альтернативы IPBan существуют для Windows?

Популярные альтернативы: Windows Firewall с ручным управлением, Sysmon + EventSentry, платные решения (например, CrowdSec для Windows), а также использование Linux-шлюза с iptables и fail2ban для фильтрации трафика перед Windows-сервером.