Защита WordPress с помощью fail2ban

Автор: | 29.10.2014

Первым делом установим fail2ban.

sudo apt-get install fail2ban

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

sudo nano /etc/fail2ban/filter.d/apache-wp-login.conf

Вставляем:

# FAIL2BAN CONFIGURATION FILE
#
#
 
[Definition]
 
# OPTION:  FAILREGEX
# NOTES.:  REGEXP TO CATCH APACHE DICTIONARY ATTACKS ON WORDPRESS WP-LOGIN
# VALUES:  TEXT
#
failregex = ^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,6}:[0-9]{1,5} <HOST>\ \-.*\"POST\ \/wp-login.php HTTP\/1\..*\"
 
# OPTION:  IGNOREREGEX
# NOTES.:  REGEX TO IGNORE. IF THIS REGEX MATCHES, THE LINE IS IGNORED.

Но fail2ban ничего не знает об этом конфиге, исправляем ситуацию.

Открываем конфиг jail.conf

sudo nano /etc/fail2ban/jail.conf

Находим строки:

#
# JAILS
#

и после втсавляем

[apache-wp-login]
 
enabled = true
port    = http,https
filter  = apache-wp-login
logpath = /var/log/apache*/other_vhosts_access.log
maxretry = 2
enabled — Активировать/Деактивировать правило
port — фильтруемый протокол (80/443)
filter — имя конфигурационного файла созданого ранее без окончания(.conf)
logpath — путь к лог файлу
maxretry — максимальное количество попыток

Сохраняем и перезагружаем fail2ban

sudo /etc/init.d/fail2ban restart

Проверка забаненых ip.

iptables -L -n

Успехов.