网站后台登录失败日志,暴力破解识别
网站后台被反复尝试登录,通常会在日志里留下大量失败记录。
本文从零基础出发,教你查看网站后台登录失败日志,并通过失败次数和来源 IP 识别暴力破解行为,最后给出封禁和加固步骤。
先分清日志位置和查看方式
不同环境日志位置不同,先确认你的网站后台类型。
- 宝塔面板:登录失败日志在
/www/wwwlogs/下,常见文件是面板日志或网站访问日志。 - WordPress:可安装登录日志插件,或查看服务器访问日志中
wp-login.php的请求。 - 自建后台:日志一般在项目
runtime/log/或/var/log/下。
如果使用宝塔面板,直接进入 面板设置 -> 日志 查看;
也可以 SSH 登录服务器,用命令查看:
# 查看最近登录失败记录(宝塔面板日志示例)
tail -n 100 /www/wwwlogs/panel.log | grep -i "登录失败"
结果会显示时间、IP 和失败原因。这是识别暴力破解的第一步:先确认日志是否真的记录失败。
统计失败次数和来源 IP
只看几条日志不够,需要统计频率。
用下面命令按 IP 统计失败次数:
# 统计访问日志中登录失败次数最多的 IP
grep "登录失败" /www/wwwlogs/panel.log | awk '{print $1}' | sort | uniq -c | sort -nr | head -20
如果日志格式不同,把 $1 换成实际 IP 所在列。
输出中次数明显偏高的 IP,就是可疑来源。
判断条件:同一 IP 在 10 分钟内失败超过 10 次,基本可视为暴力破解尝试。 正常用户不会连续输错这么多次。
封禁可疑 IP 并加固后台
确认可疑 IP 后,先封禁再加固。
宝塔面板操作路径:安全 -> 防火墙 -> IP 规则,添加要封禁的 IP,选择“拒绝”。
命令行方式(使用 iptables):
# 封禁单个 IP
iptables -I INPUT -s 192.168.1.100 -j DROP
# 保存规则
service iptables save
如果使用 firewalld:
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" reject'
firewall-cmd --reload
加固建议:
- 修改后台默认路径,不要用
/admin或/wp-login.php这类常见地址。 - 开启登录验证码或双因素认证。
- 限制登录尝试次数,例如宝塔面板可设置“登录失败几次后锁定”。
注意:封禁前确认不是自己或公司出口 IP,避免把自己关在门外。
常见坑和验证是否生效
几个容易踩的坑:
- 日志没开:部分面板默认不记录失败详情,需要手动开启日志功能。
- 只封 IP 不加固:攻击者换 IP 后仍可继续,必须配合验证码和限制次数。
- 误封 CDN 节点:如果网站用了 CDN,日志里的 IP 可能是 CDN 回源 IP,封禁前先确认。
验证方法:封禁后再次查看日志,确认可疑 IP 不再出现,或出现“拒绝”记录。
tail -f /www/wwwlogs/panel.log | grep "192.168.1.100"
如果几分钟内没有新记录,说明封禁生效。
日常巡检和自动提醒
不想每天手动查,可以加一个简单定时任务,每天统计一次失败次数:
# 每天凌晨 3 点统计失败 IP,输出到文件
0 3 * * * grep "登录失败" /www/wwwlogs/panel.log | awk '{print $1}' | sort | uniq -c | sort -nr > /root/login_fail_report.txt
然后定期查看 /root/login_fail_report.txt。网站后台登录失败日志是发现暴力破解最直接的线索,建议至少每周检查一次。
如果发现某个 IP 持续攻击,也可以结合云服务商的安全组或 WAF 做更细的拦截。
具体功能以你所用面板和云平台的实际显示为准。