有没有办法设置无法禁止阻止访问 wp-login 次数过多的 IP?
我曾尝试添加这个jail.local:
[apache-wp-login]
enabled = true
action = iptables[name=wplogin, port=http, protocol=tcp]
sendmail-whois[name=wplogin, dest=root, [email protected]]
filter = apache-wp-login
logpath = /var/log/apache2/other_vhosts_access.log
maxretry = 5
然后在 /etc/fail2ban/filter.d/apache-wp-login.conf 中添加定义:
[Definition]
# Option: failregex
# Notes.: Regexp to catch Apache dictionary attacks on Wordpress wp-login
# Values: TEXT
#
failregex = [\w\.\-]+ [\w\.\-]+ .*] "POST /wp-login.php
wp-login 尝试次数仍然远远超过 maxentry 限制...这可能是因为我使用的是组合日志格式,而不是通用格式?
答案1
我修改了我的 WordPress 主题 functions.php 文件以添加以下内容:
add_action('wp_login_failed', 'log_wp_login_fail'); // hook failed login function log_wp_login_fail($username) { error_log("WP login failed for username: $username"); }
登录失败现在已写入我的错误日志中。
我的 apache-wp-config.conf 如下所示:
[Definition] failregex = [[]client <HOST>[]] WP login failed.* ignoreregex =
我的jail.local包含以下内容:
[apache-wp-login] enabled = true filter = apache-wp-login action = iptables-multiport[name=apache-wp-login, port="http,https"] sendmail-whois[name=apache-wp-login, dest=root, [email protected]] logpath = /home/*/logs/*error.log bantime = 720 maxretry = 6
更多信息请访问此处地点