Рубрики: Рабочее

Защита WordPress от подбора паролей в админку при помощи fail2ban

Чтобы не забыть:

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

Потом на wordpress устанавливаем плагин WP fail2ban от автора Charles Lecklider и активируем его.

В папке с плагином лежит еще одна папочка с инструкциями для fail2ban, называется filters.d, в ней находим два файла, wordpress-hard.conf и wordpress-soft.conf. Эти два файла нужно скопировать в /etc/fail2ban/filters.d/.

В зависимости от степени активности злоумышленников выбираем мягкий фильтр или жесткий фильтр, и в файл /etc/fail2ban/jail.local добавляем следующие строки:

[wordpress-hard]
enabled = true
filter = wordpress-hard
logpath = /var/log/auth.log
maxretry = 1
port = http,https

или

[wordpress-soft]
enabled = true
filter = wordpress-soft
logpath = /var/log/auth.log
maxretry = 3
port = http,https

По умолчанию плагин использует LOG_AUTH для логирования попыток входа. Однако, некоторые системы используют для записи событий LOG_AUTHPRIV. То есть, смотрим, есть ли у нас вообще файл /var/log/auth.log. Если он есть и не пустой, ничего менять не надо. Если его нет, то вероятнее всего, логирование происходит в файл /var/log/secure. Если это так, нужно добавить в wp-config.php такую строчку:

define('WP_FAIL2BAN_AUTH_LOG',LOG_AUTHPRIV);

А в /etc/fail2ban/jail.local меняем строку logpath = /var/log/auth.log на logpath = /var/log/secure. После этого делаем рестарт нашему fail2ban:

# fail2ban-client reload

Не забудьте проверить, внесен ли ваш IP в список исключений fail2ban, вам ведь наверняка захочется протестировать его работу. Это делается командой:

# fail2ban-client get wordpress-hard ignoreip

Если в ответе команды будет ваш IP, можете начинать тестировать. Хорошей работы, быстрых серверов и широких каналов вам.

Прокомментируйте: