Я пытаюсь настроить fail2ban
, чтобы заблокировать плохой WordPress
попытки входа в систему, но у меня нет особого успеха.
Я использую WP fail2ban 3.0.0 , который правильно регистрирует неудачные попытки входа в / var / log / secure
, насколько я могу судить (если кому-то интересно, я предоставляю ниже свою конфигурацию для плагина):
Apr 19 18:21:42 droplet wordpress(website.com)[17157]: Authentication failure for admin from my.ip.add.ress
Фильтр
, похоже, также настроен правильно. По факту, если я запускаю wordpress со статусом fail2ban-client
, я вижу, что мой IP забанен:
Status for the jail: wordpress
|- Filter
| |- Currently failed: 2
| |- Total failed: 15
| `- File list: /var/log/secure
`- Actions
|- Currently banned: 1
|- Total banned: 1
`- Banned IP list: my.ip.add.ress
А также fail2ban-regex / var / log / secure /etc/fail2ban/filter.d/wordpress. conf
находит Failregex: всего 102
.
Тем не менее, я вполне могу просматривать веб-сайт и получить доступ к странице входа.
Конечно, чего-то еще не хватает, возможно, на Varnish сторона? Я не мог ничего узнать, есть идея?
Я использую CentOS 7.2.1511
, Apache / 2.4.6
и Varnish 4.0.3
].
Если кому-то интересно, вот как я настроил WP fail2ban
, чтобы он работал с Varnish
:
WordPress.
[wordpress]
enabled = true
порт = http, https
фильтр = wordpress
logpath = / var / log / secure
В wp-config.php
добавлены следующие строки:
define ('WP_FAIL2BAN_PROXIES', 'my.ser.ver.ip');
определить ('WP_FAIL2BAN_AUTH_LOG', LOG_AUTHPRIV);
Добавлены следующие строки в /etc/varnish/default.vcl
в блоке sub vcl_recv
:
if (req.restarts == 0) {
if (req.http.X-Forwarded-For) {
установите req.http.X-Forwarded-For = req.http.X-Forwarded-For + "," + client.ip;
} else {
установите req.http.X-Forwarded-For = client.ip;
}
}
Добавлены следующие строки в /etc/varnish/default.vcl
в блоке sub vcl_pipe
:
set bereq.http.connection = "close";
возврат (труба);
Хорошо, нашел ответ. Мне просто нужно было добавить действие запрета в соответствующий блок jail.local
. Итак, теперь это выглядит так:
[wordpress]
enabled = true
port = http,https
filter = wordpress
logpath = /var/log/secure
action = iptables-allports