WP Manifestindependent plugin directory
manifest / security / advanced-security-ip-blocker

Advanced Security IP Blocker

Продвинутая система безопасности: блокировка IP, защита wp-login.php и xmlrpc.php, блокировка опасных файлов и ботов с поддержкой ASN, автоматическая блокировка при брутфорс атаках

by Robert Bennett · github.com/robertobennett/advanced-security-ip-blocker · website

★ 1stars
0forks

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)

Установка

  1. Скачайте плагин
  2. Загрузите в папку /wp-content/plugins/
  3. Активируйте через меню "Плагины" в WordPress
  4. Перейдите в "Настройки" → "Безопасность"

Базовая настройка

  1. Настройте брутфорс-защиту в соответствующей вкладке
  2. Добавьте свой IP в белый список перед включением защиты wp-login
  3. Настройте уведомления (email и/или Telegram)
  4. Включите нужные модули защиты

🚀 Использование

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

  1. Получите API ключ в Cloudflare
  2. Укажите Email, API Key и Zone ID в настройках
  3. Все блокировки будут автоматически синхронизироваться

🔧 Расширенные функции

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

🛠️ Техническая информация

Таблицы базы данных

  1. wp_security_login_attempts - журнал попыток входа
  2. 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
  • Очистка старых записей - ежедневно

⚠️ Важные предупреждения

Перед включением защиты:

  1. Всегда добавляйте свой IP в белый список
  2. Создайте резервную копию .htaccess
  3. Протестируйте на staging-окружении

При миграции сайта:

  1. Экспортируйте списки блокировок
  2. Отключите защиту
  3. Перенесите сайт
  4. Восстановите настройки

🔄 Обновление

С версии 1.x на 2.x

  1. Создайте полную резервную копию
  2. Деактивируйте старую версию
  3. Установите новую версию
  4. Проверьте настройки
  5. Включите нужные модули

🆘 Поддержка и устранение неполадок

Частые проблемы

Проблема: Не работает блокировка через .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/                # Зависимости

🤝 Вклад в проект

  1. Форкните репозиторий
  2. Создайте ветку для вашей функции
  3. Внесите изменения
  4. Напишите тесты
  5. Отправьте pull request

📞 Контакты и поддержка


🔔 Обновления и новости

  • Версия 2.2.0: Полная поддержка IPv6, улучшенная интеграция с Myip.ms, массовая блокировка через AJAX
  • Версия 2.1.0: Добавлена аналитика атак, интеграция с Cloudflare, REST API
  • Версия 2.0.0: Полный рефакторинг, поддержка ASN, геоблокировка, Redis

⚠️ ВНИМАНИЕ: Этот плагин предоставляет мощные инструменты безопасности. Используйте его ответственно. Неправильная настройка может заблокировать легитимных пользователей или вас самих. Всегда тестируйте изменения на staging-окружении перед применением на основном сайте.