Advanced Security IP Blocker
Продвинутая система безопасности: блокировка IP, защита wp-login.php и xmlrpc.php, блокировка опасных файлов и ботов с поддержкой ASN, автоматическая блокировка при брутфорс атаках
by Robert Bennett · github.com/robertobennett/advanced-security-ip-blocker · website
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/robertobennett/advanced-security-ip-blocker/archive/refs/heads/main.zipПродвинутая система безопасности 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
⚠️ ВНИМАНИЕ: Этот плагин предоставляет мощные инструменты безопасности. Используйте его ответственно. Неправильная настройка может заблокировать легитимных пользователей или вас самих. Всегда тестируйте изменения на staging-окружении перед применением на основном сайте.