Releases: RobertoBennett/Advanced-Security-IP-Blocker
Release list
Advanced Security IP Blocker
Advanced Security IP Blocker
Продвинутая система безопасности WordPress: блокировка IP, защита wp‑login.php и xmlrpc.php, блокировка опасных файлов и ботов с поддержкой ASN, гео‑блокировки, honeypot‑страниц, интеграция с внешними черными листами, Fail2Ban, Redis, Cloudflare, Аналитикой и REST API.
🛡️ Основные возможности
1. Блокировка IP/ASN/CIDR
- Поддержка IP-адресов (IPv4/IPv6)
- Поддержка CIDR-диапазонов (например,
192.168.0.0/24) - Поддержка ASN (автоматически блокирует все IP-диапазоны автономной системы)
- Автоматическое удаление дубликатов и нормализация записей
2. Защита критических файлов
- Ограничение доступа к
wp-login.phpиxmlrpc.php - Гибкая система белых списков для доступа
- Поддержка IP/CIDR/ASN в белом списке
3. Блокировка опасных файлов
- Защита от доступа к конфигурационным, лог- и бэкап-файлам
- Поддержка масок файлов (например,
*.log,*.bak)
4. Защита от ботов и сканеров
- Блокировка по User-Agent
- Группировка правил для оптимизации .htaccess
- Поддержка частичных совпадений
5. Интеллектуальная защита от брутфорса
- Автоматическое отслеживание неудачных попыток входа
- Настраиваемые параметры: максимальное количество попыток, временное окно, длительность блокировки
- Два режима блокировки: временная (на указанное время) и постоянная
- Интеграция с внешними сервисами репутации IP (IPQualityScore)
6. Географическая блокировка
- Блокировка по странам (через ipinfo.io)
- Кеширование данных геолокации для оптимизации
- Быстрая проверка на уровне PHP
7. Интеграция с Myip.ms
- Автоматическая загрузка черных списков с Myip.ms
- Два режима работы: через .htaccess или на уровне WordPress
- Кроновое обновление (ежечасно)
- Резервные источники данных на случай недоступности основного
- Поддержка IPv6
8. Honeypot-ловушки
- Автоматическое создание страниц-приманок
- Немедленная блокировка IP, попавших в honeypot
- Журналирование атак
9. Redis-интеграция
- Общий блок-лист для нескольких сайтов
- Быстрая проверка блокировок
- Автоматическое истечение временных блокировок
10. Cloudflare интеграция
- Автоматическая блокировка/разблокировка IP в Cloudflare Firewall
- Поддержка как отдельных IP, так и ASN
- Синхронизация с локальными правилами
11. Расширенная аналитика атак
- Визуализация атак по типам и времени
- Статистика уникальных атакующих
- Экспорт данных для анализа
12. Многоуровневая система уведомлений
- Email-уведомления о блокировках
- Telegram-бот для мгновенных оповещений
- Настраиваемые шаблоны сообщений
13. REST API для управления
- Получение списка заблокированных IP
- Блокировка и разблокировка через API
- Интеграция с внешними системами мониторинга
14. Поддержка разных серверов
- Apache с .htaccess
- Nginx (генерация конфигурационных файлов)
- Универсальная проверка на уровне PHP
📊 Технические особенности
Архитектура
- Объектно-ориентированный код с четким разделением ответственности
- Кеширование на разных уровнях (файловый кеш, Redis, транзиенты WordPress)
- Минимальное влияние на производительность сайта
Безопасность
- Валидация всех входящих данных
- Защита от SQL-инъекций (использование prepared statements)
- Безопасная работа с файловой системой
- Проверка прав доступа для всех операций
Производительность
- Оптимизированные SQL-запросы с индексами
- Пакетная обработка операций
- Ленивая загрузка ресурсоемких компонентов
- Автоматическая очистка старых данных
🖥️ Установка и настройка
Требования
- WordPress 5.0 или выше
- PHP 7.4 или выше
- MySQL 5.6 или выше / MariaDB 10.0 или выше
- Права на запись в
.htaccess(для режима Apache) - cURL или allow_url_fopen (для внешних API)
Установка
- Скачайте плагин
- Загрузите в папку
/wp-content/plugins/ - Активируйте через меню "Плагины" в WordPress
- Перейдите в "Настройки" → "Безопасность"
Базовая настройка
- Настройте брутфорс-защиту в соответствующей вкладке
- Добавьте свой IP в белый список перед включением защиты wp-login
- Настройте уведомления (email и/или Telegram)
- Включите нужные модули защиты
🚀 Использование
1. Блокировка IP вручную
192.168.0.1
10.0.0.0/24
AS15169 (Google)
2. Массовая блокировка через интерфейс
- Вставьте список IP (по одному на строку)
- Укажите причину блокировки
- Нажмите "Заблокировать список"
3. Использование REST API
# Получить список заблокированных IP
GET /wp-json/asb/v1/list
# Заблокировать IP
POST /wp-json/asb/v1/block
{
"target": "192.168.0.1",
"reason": "Спам-атака"
}
# Разблокировать IP
POST /wp-json/asb/v1/unblock
{
"target": "192.168.0.1"
}4. Интеграция с Cloudflare
- Получите API ключ в Cloudflare
- Укажите Email, API Key и Zone ID в настройках
- Все блокировки будут автоматически синхронизироваться
🔧 Расширенные функции
WP-CLI команды
# Получить список заблокированных IP
wp asb list
# Заблокировать IP
wp asb block <ip> --reason="Спам"
# Разблокировать IP
wp asb unblock <ip>
# Обновить список Myip.ms
wp asb update-myipms
# Очистить кеш
wp asb clear-cacheИнтеграция с Fail2Ban
- Плагин пишет логи в формате, понятном Fail2Ban
- Настройте фильтры для автоматической блокировки
Гео-блокировка
RU,CN,IR,KR
Блокирует все IP из указанных стран (ISO-коды через запятую)
📈 Аналитика и мониторинг
Встроенная статистика
- Количество попыток входа за 24 часа
- Топ атакующих IP
- Графики атак по времени
- Уникальные атакующие
Внешняя интеграция
- Экспорт данных в CSV/JSON
- Webhook-уведомления
- Интеграция с Grafana/Prometheus
🛠️ Техническая информация
Таблицы базы данных
wp_security_login_attempts- журнал попыток входаwp_security_unblock_history- история разблокировок
Файловая структура
wp-content/
├── security-blocker-backups/ # Резервные копии .htaccess
├── security-blocker-cache/ # Кеш ASN и GeoIP
└── asb-myipms-blocked.txt # Локальный список Myip.ms
Кроновые задачи
asb_myipms_update_event- ежечасное обновление Myip.ms- Очистка старых записей - ежедневно
⚠️ Важные предупреждения
Перед включением защиты:
- Всегда добавляйте свой IP в белый список
- Создайте резервную копию .htaccess
- Протестируйте на staging-окружении
При миграции сайта:
- Экспортируйте списки блокировок
- Отключите защиту
- Перенесите сайт
- Восстановите настройки
🔄 Обновление
С версии 1.x на 2.x
- Создайте полную резервную копию
- Деактивируйте старую версию
- Установите новую версию
- Проверьте настройки
- Включите нужные модули
🆘 Поддержка и устранение неполадок
Частые проблемы
Проблема: Не работает блокировка через .htaccess
Решение: Проверьте права на файл .htaccess (должны быть 644)
Проблема: Не приходят уведомления
Решение: Проверьте настройки SMTP для email и токен для Telegram
Проблема: Высокая нагрузка на сервер
Решение: Включите Redis для кеширования, уменьшите частоту проверок
Проблема: Ложные срабатывания
Решение: Настройте белый список, отрегулируйте параметры брутфорс-защиты
📄 Лицензия
GPL v2 или выше
👨💻 Разработка
Требования для разработки
- PHP 7.4+
- Composer
- Node.js 14+
- Docker (опционально)
Сборка
# Установка зависимостей
composer install
npm install
# Сборка для производства
npm run build
# Запуск тестов
npm testСтруктура кода
advanced-security-ip-blocker/
├── src/ # Исходный код
│ ├── Core/ # Основные классы
│ ├── Modules/ # Модули защиты
│ ├── Api/ # REST API
│ └── Cli/ # WP-CLI команды
├── assets/ # CSS/JS ресурсы
├── languages/ # Файлы перевода
├── tests/ # Тесты
└── vendor/ # Зависимости
🤝 Вклад в проект
- Форкните репозиторий
- Создайте ветку для вашей функции
- Внесите изменения
- Напишите тесты
- Отправьте pull request
📞 Контакты и поддержка
- GitHub Issues: Отчеты об ошибках и предложения
- Документация: WiKi проекта
- Автор: Robert Bennett
🔔 Обновления и новости
- Версия 2.2.0: Полная поддержка IPv6, улучшенная интеграция с Myip.ms, массовая блокировка через AJAX
- Версия 2.1.0: Добавлена аналитика атак, интеграция с Cloudflare, REST API
- Версия 2.0.0: Полный рефакторинг, поддержка ASN, геоблокировка, Redis
Advanced Security IP Blocker
Advanced Security IP Blocker — Продвинутая система безопасности для WordPress
Описание
Advanced Security IP Blocker — это комплексный плагин безопасности для WordPress, обеспечивающий многоуровневую защиту сайта от атак, брутфорс-попыток, вредоносных ботов и нежелательного трафика. Плагин сочетает в себе мощные инструменты блокировки IP, защиты критических файлов, гео-блокировки, honeypot-ловушек и интеграцию с внешними системами.
Основные возможности
1. Блокировка IP, ASN и CIDR
- Поддержка обычных IP-адресов, диапазонов CIDR и автономных систем (ASN)
- Автоматическое добавление всех IP-диапазонов по ASN (например,
AS15169) - Интеграция с
.htaccessдля блокировки на уровне сервера
2. Защита wp-login.php и xmlrpc.php
- Ограничение доступа к странице входа и XML-RPC только для указанных IP
- Поддержка whitelist для доверенных адресов и сетей
- Гибкая настройка: можно защищать только wp-login, только xmlrpc или оба файла
3. Блокировка опасных файлов
- Запрет доступа к файлам с опасными расширениями (
.log,.bak,.sqlи др.) - Настраиваемый список файлов/масок через интерфейс администратора
4. Защита от ботов (User-Agent)
- Блокировка по сигнатурам User-Agent
- Поддержка частичных совпадений и группировки правил
- Автоматическое разделение на группы для избежания ограничений
.htaccess
5. Брутфорс-защита
- Автоматическое обнаружение подозрительных попыток входа
- Настраиваемые лимиты: количество попыток, временное окно, длительность блокировки
- Временные и постоянные блокировки
6. Гео-блокировка
- Интеграция с MaxMind GeoLite2
- Блокировка трафика из определённых стран по ISO-кодам
- Автоматическое скачивание и обновление базы GeoIP
7. Honeypot-ловушки
- Создание скрытых URL-ловушек (например,
wp-admin-honeypot) - Автоматическая блокировка IP, попавших в ловушку
- Простая интеграция через rewrite rules
8. Интеграция с внешними системами
- Fail2Ban: логирование событий для интеграции с Fail2Ban
- Redis: общий блок-лист для распределённых систем
- Внешние чёрные списки: проверка репутации IP через IPQualityScore
- Telegram-уведомления: мгновенные оповещения о блокировках
9. Управление через интерфейс
- Многотабовый административный интерфейс
- Реальная статистика попыток входа
- История блокировок и разблокировок
- Пагинация и поиск по заблокированным IP
10. WP-CLI команды
- Управление блокировками через командную строку:
wp asb block <IP/ASN>— заблокироватьwp asb unblock <IP>— разблокироватьwp asb list— список заблокированныхwp asb whitelist— показать белый список
11. Кеширование и оптимизация
- Кеширование ASN-диапазонов для снижения нагрузки
- Очистка кеша браузера, OPcache, Redis, Memcached
- Интеграция с популярными кеширующими плагинами
12. Резервное копирование и откат
- Автоматическое создание резервных копий
.htaccessперед изменениями - Хранение до 10 последних резервных копий
- Возможность ручного создания резервных копий
Установка и настройка
Требования
- WordPress 5.0+
- PHP 7.2+ (рекомендуется 7.4+)
- Поддержка
.htaccess(Apache) или возможность использования nginx-фрагментов - Права на запись в директорию WordPress
Установка
- Загрузите плагин в директорию
/wp-content/plugins/ - Активируйте плагин через меню "Плагины" в WordPress
- Перейдите в "Настройки" → "Безопасность" для настройки
Рекомендуемая начальная настройка
- Добавьте свой IP в белый список во вкладке "Защита wp-login/xmlrpc"
- Включите брутфорс-защиту с настройками по умолчанию
- Настройте блокировку ботов по умолчанию
- Включите резервное копирование .htaccess
Безопасность и производительность
Особенности безопасности
- Все операции с
.htaccessпредваряются созданием резервных копий - Валидация всех вводимых IP, CIDR и ASN
- Защита от CSRF через nonce-токены
- Проверка прав доступа (только администраторы)
Производительность
- Кеширование ASN-диапазонов на 24 часа
- Оптимизированные SQL-запросы с индексами
- Фоновая загрузка GeoIP без блокировки интерфейса
- Интеграция с Redis для быстрой проверки блокировок
Мониторинг и отладка
Журналирование
- Детальный журнал операций в интерфейсе администратора
- Запись событий в error_log WordPress
- Интеграция с системным журналом для Fail2Ban
Статистика
- Количество попыток входа за 24 часа
- Число заблокированных IP
- Топ-10 подозрительных IP
- Последние 20 попыток входа
Совместимость
Веб-серверы
- Apache (полная поддержка через
.htaccess) - nginx (генерация конфигурационных фрагментов)
Кеширующие системы
- OPcache
- Redis
- Memcached
- W3 Total Cache
- WP Rocket
Другие плагины безопасности
- Совместим с большинством плагинов безопасности
- Не конфликтует с базовыми механизмами WordPress
Обновление и поддержка
Обновления
- Автоматическое создание таблиц БД при обновлении
- Сохранение настроек между версиями
- Обратная совместимость с предыдущими версиями
Поддержка
- GitHub репозиторий: https://github.com/RobertoBennett/IP-Blocker-Manager
- Поддержка через Issues на GitHub
- Документация в README файле
Лицензия и автор
Автор
- Robert Bennett — разработчик и сопровождающий
Лицензия
- Распространяется под лицензией GPL v2 или позднее
- Бесплатное использование и модификация
Важные предупреждения
- Перед включением защиты wp-login.php обязательно добавьте свой IP в белый список
- Регулярно проверяйте резервные копии .htaccess
- Тестируйте настройки на staging-окружении перед применением на рабочем сайте
- При использовании гео-блокировки убедитесь, что ваш IP не находится в блокируемой стране
Заключение
Advanced Security IP Blocker — это профессиональное решение для защиты WordPress-сайтов, сочетающее простоту использования с мощными функциями безопасности. Плагин подходит как для небольших блогов, так и для корпоративных сайтов с высокими требованиями к безопасности.
Advanced Security IP Blocker
Advanced Security IP Blocker
Продвинутая система безопасности для WordPress: блокировка IP, защита wp-login.php и xmlrpc.php, блокировка опасных файлов и ботов с поддержкой ASN, автоматическая блокировка при брутфорс атаках.
Описание
Плагин "Advanced Security IP Blocker" предоставляет комплексное решение для защиты вашего сайта WordPress от различных угроз, включая брутфорс атаки, нежелательный трафик, доступ к конфиденциальным файлам и активность вредоносных ботов. Плагин работает на уровне .htaccess и WordPress, обеспечивая мощную и гибкую защиту.
Ключевые особенности:
- Блокировка IP-адресов: Ручная и автоматическая блокировка IP-адресов и CIDR-диапазонов.
- Поддержка ASN: Блокировка целых автономных систем (ASN) для эффективной борьбы с крупными источниками спама и атак.
- Защита wp-login.php и xmlrpc.php: Ограничение доступа к критически важным файлам WordPress, позволяя доступ только с разрешенных IP-адресов или ASN.
- Блокировка опасных файлов: Защита от прямого доступа к конфиденциальным файлам, таким как
.htaccess,wp-config.php, логи и резервные копии. Поддержка масок файлов. - Защита от ботов: Блокировка нежелательных User-Agent, включая спам-ботов, сканеры уязвимостей и парсеры.
- Автоматическая защита от брутфорс атак: Интеллектуальная система, которая автоматически блокирует IP-адреса после заданного количества неудачных попыток входа.
- Управление блокировками: Удобный интерфейс для просмотра, разблокировки и ручного добавления IP-адресов в черный и белый списки.
- Логирование и статистика: Подробная статистика попыток входа и история блокировок для анализа угроз.
- Email-уведомления: Оповещения администратора о заблокированных IP-адресах.
- Резервное копирование .htaccess: Автоматическое создание резервных копий файла
.htaccessперед внесением изменений. - Очистка кэша: Интегрированная функция для очистки различных типов кэша после изменения правил безопасности.
Установка
- Загрузка: Загрузите файлы плагина в директорию
/wp-content/plugins/advanced-security-ip-blocker/. - Активация: Активируйте плагин через меню "Плагины" в админ-панели WordPress.
- Доступ: После активации плагин будет доступен в меню "Настройки" -> "Безопасность".
Требования
- WordPress 4.0+
- PHP 7.0+
- Права на запись в файл
.htaccess(обычно/var/www/html/.htaccessили в корневой директории WordPress). - Расширения PHP
curlилиallow_url_fopenдля получения информации по ASN.
Использование
После установки и активации плагина перейдите в Настройки -> Безопасность в вашей админ-панели WordPress.
Интерфейс плагина разделен на несколько вкладок для удобного управления:
1. Блокировка IP
- Назначение: Ручная блокировка IP-адресов, CIDR-диапазонов и целых автономных систем (ASN).
- Форматы:
- Отдельные IP:
192.168.1.100 - CIDR диапазоны:
192.168.1.0/24 - ASN (автономные системы):
AS15169или15169(плагин автоматически преобразует ASN в IP-диапазоны).
- Отдельные IP:
- Действие: Все указанные IP-адреса будут заблокированы на уровне
.htaccess.
2. Защита wp-login.php и xmlrpc.php
- Назначение: Ограничение доступа к страницам входа (
wp-login.php) и XML-RPC интерфейсу (xmlrpc.php) только для разрешенных IP-адресов. - Важно: Обязательно добавьте свой текущий IP-адрес в белый список, чтобы не потерять доступ к админ-панели. Ваш текущий IP отображается на этой вкладке.
- Разрешенные IP: Укажите IP-адреса, CIDR-диапазоны или ASN, которым разрешен доступ.
- Форматы разрешенных IP:
- Отдельные IP:
192.168.1.100 - CIDR диапазоны:
192.168.1.0/24 - ASN:
AS15169или15169 - Маска подсети:
192.168.1.0 255.255.255.0 - Частичные IP:
192.168.1(блокирует все IP, начинающиеся с192.168.1.)
- Отдельные IP:
- Рекомендация: Если вы не используете мобильные приложения WordPress или внешние сервисы, рекомендуется заблокировать
xmlrpc.php, так как он часто используется для брутфорс атак.
3. Блокировка опасных файлов
- Назначение: Запрет прямого доступа к файлам, которые могут содержать конфиденциальную информацию или использоваться для атак.
- Примеры файлов:
.htaccess,.htpasswd,wp-config.php,readme.html,license.txt,*.sql,*.log,*.bak,error_logи т.д. - Поддержка масок: Вы можете использовать маски файлов (например,
*.logдля блокировки всех файлов с расширением.log).
4. Защита от ботов
- Назначение: Блокировка доступа к сайту для нежелательных User-Agent (идентификаторов ботов).
- Формат: Список User-Agent, разделенных символом
|(вертикальная черта). - Пример:
BadBot|SpamBot|Crawler - Действие: Плагин использует правила
SetEnvIfNoCaseв.htaccessдля блокировки запросов от указанных User-Agent.
5. Защита от брутфорс атак
- Назначение: Автоматическая блокировка IP-адресов, которые совершают слишком много неудачных попыток входа в админ-панель.
- Настройки:
- Включить защиту: Активирует/деактивирует автоматическую блокировку.
- Максимум попыток: Количество неудачных попыток входа, после которых IP будет заблокирован.
- Временное окно (минуты): Период времени, в течение которого подсчитываются попытки.
- Длительность блокировки (минуты): Как долго IP будет заблокирован. Установка
0означает постоянную блокировку (требует ручной разблокировки). - Добавлять в .htaccess: Если включено, заблокированные IP будут добавлены в
.htaccessдля более быстрой блокировки. Если отключено, блокировка будет работать только на уровне WordPress. - Email уведомления: Отправлять ли администратору уведомления о блокировках.
- Статистика: Отображает общее количество попыток входа, заблокированных IP-адресов, топ IP по попыткам и последние попытки входа. Статистика обновляется в реальном времени.
- Очистить старые записи: Кнопка для удаления старых записей попыток входа из базы данных.
6. Управление блокировками
- Назначение: Просмотр и управление всеми заблокированными IP-адресами (временными, постоянными, через
.htaccess). - Поиск и пагинация: Удобный поиск по IP-адресам и пагинация для больших списков.
- Разблокировка: Возможность разблокировать IP-ададреса вручную.
- История: Просмотр подробной истории попыток входа для конкретного IP-адреса.
- История разблокировок: Журнал всех ручных разблокировок.
- Добавить IP в черный список: Ручное добавление IP-адресов или CIDR-диапазонов в постоянный черный список.
7. Белый список
- Назначение: IP-адреса, добавленные в этот список, никогда не будут заблокированы системой, даже при множественных неудачных попытках входа или других нарушениях.
- Форматы: Поддерживаются те же форматы, что и для блокировки IP (отдельные IP, CIDR, ASN).
- Управление: Добавление и удаление IP-адресов из белого списка.
8. Статус системы
- Назначение: Обзор состояния компонентов плагина и активных защит.
- Информация: Проверяет доступность
.htaccessдля записи, состояние директорий резервных копий и кэша ASN, наличие таблиц базы данных плагина, а также отображает ваш текущий IP. - Активные защиты: Показывает, какие модули защиты активны и сколько записей они содержат.
- Действия: Кнопки для создания резервной копии
.htaccessи очистки всего кэша плагина.
Разработка
Плагин использует стандартные хуки WordPress (admin_menu, admin_init, wp_login_failed и т.д.) для интеграции своих функций. Для взаимодействия с пользователем используется AJAX.
Структура данных
- Таблица
{$wpdb->prefix}security_login_attempts: Хранит записи о попытках входа (IP-адрес, имя пользователя, время, User-Agent, статус блокировки). - Таблица
{$wpdb->prefix}security_unblock_history: Хранит историю разблокировок IP-адресов. - Опции WordPress: Плагин использует опции WordPress для хранения настроек (например,
asb_dangerous_files,asb_blocked_bots,asb_brute_force_enabled,asb_whitelist_ips,asb_wp_blocked_ips).
Взаимодействие с .htaccess
Плагин вставляет свои правила в файл .htaccess с использованием специальных маркеров (# IP_BLOCKER_SAFE_MARKER, # LOGIN_PROTECTION_MARKER, # DANGEROUS_FILES_MARKER, # BOT_PROTECTION_MARKER). Это позволяет плагину управлять только своими секциями, не затрагивая другие правила в файле.
Кэширование ASN
Для повышения производительности и снижения нагрузки на внешние API, плагин кэширует IP-диапазоны, полученные по ASN, в директории wp-content/security-blocker-cache/. Кэш обновляется каждые 24 часа.
Очистка кэша
Класс ASB_Cache_Handler предоставляет методы для очистки различных типов кэша, включая браузерный, OPcache, Redis, Memcached и кэш популярных плагинов WordPress (W3 Total Cache, WP Super Cache, WP Rocket).
Часто задаваемые вопросы
В: Мой сайт перестал работать после активации плагина или изменения настроек. Что делать?
О: Скорее всего, вы заблокировали свой собственный IP-адрес.
1. Через FTP/SSH: Подключитесь к вашему серверу по FTP или SSH.
2. Найдите .htaccess: Перейдите в корневую директорию вашего WordPress и найдите файл .htaccess.
3. Удалите правила плагина: Откройте .htaccess и удалите все секции, заключенные между маркерами плагина (например, # IP_BLOCKER_SAFE_MARKER ... # IP_BLOCKER_SAFE_MARKER).
...