改端口和开防爆破仅能拦截80%自动化扫描,剩余20%更危险;需同步配置防火墙、SELinux、客户端,并禁用root登录、启用密钥认证、部署Fail2Ban及日志审计。

直接改端口 + 开启面板内置防爆破,能拦下 80% 以上的自动化扫描;但只做这两步远远不够,漏掉的那 20% 往往更危险。
修改 SSH 默认端口后连不上怎么办
改端口不是改完就完事,很多用户卡在「改完登不进去了」。核心问题出在三处:防火墙没放行新端口、SELinux 拦截、客户端没同步更新配置。
- 改完端口必须在宝塔「安全」→「防火墙」里手动添加新端口(如
22222),否则系统防火墙会直接丢包 - 若服务器启用了 SELinux(
sestatus查看状态),需运行semanage port -a -t ssh_port_t -p tcp 22222才能放行,否则sshd启动会失败 - Xshell / FinalShell 等客户端连接时,必须手动改掉端口号,不能只靠记忆——建议改完立刻新建一个连接配置,旧配置保留但标注「已停用」
- 改端口后务必先用
systemctl restart sshd重启服务,并用ss -tlnp | grep :22222确认监听生效
宝塔「SSH防暴破」开关开了却没效果
这个功能本质是读取 /var/log/secure 日志,统计单位时间内失败次数并调用 iptables 封 IP。它不工作,通常是因为日志路径不对、规则阈值太松、或被其他安全软件接管了防火墙。
- 确认日志路径是否被修改过:运行
grep "authpriv" /etc/rsyslog.conf,确保输出包含/var/log/secure;若指向了别的路径(如/var/log/messages),需在宝塔防爆破设置里手动填入正确路径 - 默认「5 分钟内失败 10 次封 10 分钟」太宽松,建议调成「3 分钟内失败 5 次封 24 小时」,对应配置项是
maxretry和bantime - 如果装了云锁、安全狗等第三方软件,它们常会接管
iptables链,导致宝塔的封禁指令静默失败——此时要么卸载第三方软件,要么改用 Fail2Ban(它兼容性更好) - 封禁后可查效果:
iptables -nL INPUT | grep DROP,看到带目标 IP 的规则才说明真封了
为什么只改端口和开防爆破还不够
攻击者早就不靠「扫 22 端口」了,现在主流扫描器会全端口探测(尤其 1–65535 范围),且大量使用代理池绕过单 IP 封禁。单纯依赖这两招,等于把门锁换成新钥匙,却忘了窗没关。
- 必须禁用
root直接登录:编辑/etc/ssh/sshd_config,把PermitRootLogin改为no,再systemctl restart sshd - 强制用密钥登录比密码可靠得多:生成密钥对后,把公钥追加到
~/.ssh/authorized_keys,再设PasswordAuthentication no - Fail2Ban 比宝塔自带防爆破更稳:它支持多日志源(Nginx、vsftpd、面板登录等),还能自动解封、邮件告警,宝塔软件商店里一键安装后,重点配好
sshd和bt_panel这两个 jail - 别忽略登录通知:在宝塔「安全」→「SSH登录告警」里至少启用邮件,收到
Accepted password for xxx提醒,才能第一时间发现异常登录
最常被跳过的其实是日志审计——/var/log/secure 里藏着所有失败记录,但没人定期翻。建议每周执行一次 awk '/Failed password/ {print $9}' /var/log/secure | sort | uniq -c | sort -nr | head -20,看看哪些 IP 在反复试探,手动加到防火墙黑名单里。这步动作小,但能提前掐掉有组织的定向攻击。










