服务器被暴力破解,如何锁定 IP 地址?

服务器被暴力破解?手把手教你锁定恶意IP地址

刚买的服务器还没用几天,后台日志全是登录失败的记录?
别慌,这是有人在用字典跑你的密码。
本文直接教你怎么把这些恶意IP锁死,让暴力破解彻底失效。
这里用的方法不需要编程基础,只要会复制粘贴就行。

准备工作:先确认你的服务器环境

登录服务器后,先确定你用的是哪种防火墙。
大多数Linux系统默认自带iptables,新一点的系统推荐用ufwfirewalld
这里我以最通用的iptables为例,同时也会提一下fail2ban自动封禁工具。
先检查一下iptables是否安装:

which iptables

如果返回路径比如/usr/sbin/iptables,说明已安装。
没有的话执行apt install iptablesyum install iptables-services
另外,建议先备份当前的防火墙规则:iptables-save > /root/iptables_backup_$(date +%F).rules

操作:手动和自动两种方式封禁IP

方式一:手动封禁临时IP

如果只有一两个IP在反复尝试,可以直接手动封掉。
先用lastbjournalctl查看失败的登录来源IP:

lastb | awk '{print $3}' | sort | uniq -c | sort -rn | head -10

找到可疑IP(比如192.168.1.100)后,执行:

iptables -A INPUT -s 192.168.1.100 -j DROP

这条命令会把来自该IP的所有访问都给丢弃。
如果想永久生效,需要保存规则:

iptables-save > /etc/iptables/rules.v4   # Debian/Ubuntu
iptables-save > /etc/sysconfig/iptables  # CentOS 7

手动封禁的缺点是发现一个封一个,比较累。
所以更推荐用自动工具。

方式二:用fail2ban自动封禁IP

fail2ban会监控登录日志,发现连续失败次数超过阈值就自动封IP。
安装很简单:

# Debian/Ubuntu
apt install fail2ban -y
# CentOS 7
yum install epel-release && yum install fail2ban -y

安装后,配置SSH保护。
编辑/etc/fail2ban/jail.local(如果没有就新建),写入:

[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 3600

参数说明:maxretry = 3表示失败3次就触发,bantime = 3600是封禁3600秒(1小时)。
保存后重启fail2ban:

systemctl restart fail2ban
systemctl enable fail2ban

之后所有SSH登录失败的IP都会被自动加入iptables的DROP链,你不需要再手动操作。

避坑:新手最容易犯的几个错误

1. 忘记开放自己IP:配置防火墙前一定先确认自己当前IP没有被封。
如果从远程操作,可以先执行iptables -P INPUT ACCEPT再测试,否则可能把自己锁在外面。
建议先在本地开一条放行自己IP的规则:iptables -I INPUT -s 你的IP -j ACCEPT

2. fail2ban日志路径不对:CentOS 7的SSH日志在/var/log/secure,Ubuntu在/var/log/auth.log
写错路径会导致fail2ban无法工作。
可以用fail2ban-client status sshd查看状态,如果显示Currently banned: 0且没有IP,检查日志路径是否匹配。

3. 封禁后忘了保存规则:手动iptables规则重启就没了,一定要用iptables-save保存。
fail2ban的封禁默认是内存里的,建议设置banaction = iptables-multiport并保持持久化配置。

验证:怎么确认IP已经被锁住?

手动验证:从被封的IP(比如另一台服务器)远程SSH连接,会直接超时或提示无响应。
也可以用命令查看iptables规则:

iptables -L INPUT -v -n | grep DROP

会看到类似DROP all -- 192.168.1.100 0.0.0.0/0的行。

fail2ban验证:执行fail2ban-client status sshd,如果输出包含Banned IP list: 192.168.1.100就说明封禁生效。
你也可以查看日志tail -f /var/log/fail2ban.log,看有没有Ban记录。

如果你正在处理服务器被暴力破解的问题,建议先按本文步骤完整执行封禁,再根据自己的环境微调规则。
遇到异常时,优先回看避坑部分,或者检查防火墙和fail2ban的日志输出。
防御暴力破解,重中之重是先把密码换成SSH密钥,或者直接关闭密码登录,然后用fail2ban兜底——这样就算有IP扫描也无济于事。

分享到:
上一篇
Docker 容器数据丢失?教你正确备份数据
下一篇
用大模型做运维故障诊断,常见误判场景
1
系统公告

泽御云五一特惠活动🔥

泽御云持证合规运营,资质齐全可查,长久稳定! 五一限时多重福利同步开启: ✅ 香港 2 核 2G 云服务器超值拼团,低价入手团长免费 ✅ 4 核 4G 多机房年付拼团,性价比拉满 ✅ 内蒙古新区限时 7 折(zeyuyunnmg)特惠,专属优惠码锁价续费 ✅ 全站通用 75 折优惠,老用户充值享专属赠金 官方站点:zeyuyun.com 合规资质齐全|售后有保障|活动限时错过不再有
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意