
核心要点(TL;DR)
- 宝塔面板不保护SSH,需独立加固。
- 查/var/log/secure找暴破IP与成功记录。
- 改端口+密钥登录+防火墙是核心。
- 用AegisX可自动封禁暴破IP。
为什么装了宝塔面板,SSH还是被暴力破解?
很多站长以为安装了宝塔面板就万事大吉,却忽略了SSH服务本身的安全。宝塔面板负责管理网站环境,但SSH是独立的系统服务,默认端口22对公网开放,攻击者通过扫描工具就能发起暴力破解。一旦成功,服务器将完全沦陷。本文从实战角度,带你排查入侵痕迹并彻底加固SSH。
第一步:检查是否已被入侵
首先查看SSH登录日志,确认是否有异常成功登录。CentOS/RHEL系统日志在/var/log/secure,Debian/Ubuntu在/var/log/auth.log。使用命令:
grep "Accepted" /var/log/secure
如果发现陌生IP,立即记录并封禁。同时检查当前登录用户:
w last -n 20
查看是否有未知用户在线。接着检查异常进程和网络连接:
ps aux | grep -v \[ \] netstat -antp | grep ESTABLISHED
若发现可疑进程或连接,使用kill -9 PID终止,并删除对应的恶意文件。
第二步:清理后门与持久化项
攻击者常留后门,需检查以下位置:
- 计划任务:
crontab -l和cat /etc/crontab - 启动项:
ls /etc/init.d/和systemctl list-unit-files --type=service - SSH公钥:
cat ~/.ssh/authorized_keys查看是否有陌生密钥 - 用户账户:
cat /etc/passwd检查新增用户
发现可疑项立即删除,并修改所有用户密码。
第三步:SSH加固清单
完成清理后,按以下步骤加固SSH:
- 修改默认端口:编辑
/etc/ssh/sshd_config,将Port 22改为非标准端口,如Port 22222。 - 禁用root密码登录:设置
PermitRootLogin prohibit-password,仅允许密钥登录。 - 启用密钥认证:本地生成密钥对
ssh-keygen -t rsa,将公钥上传至服务器~/.ssh/authorized_keys,设置PasswordAuthentication no。 - 限制登录用户:在sshd_config中添加
AllowUsers yourname。 - 配置防火墙:仅允许可信IP访问SSH端口。使用firewalld:
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="1.2.3.4" port port="22222" protocol="tcp" accept',然后重载。 - 安装Fail2ban:自动封禁多次失败的IP。安装后配置
/etc/fail2ban/jail.local,启用sshd监控。
重启SSH服务:systemctl restart sshd。务必在修改前保留一个活动会话,防止配置错误导致无法连接。
第四步:使用AegisX增强防护
除了基础加固,可借助AegisX的智能封禁功能,实时分析SSH日志并自动阻断暴力破解IP,减少人工干预。AegisX还能监控异常登录行为,提供告警,适合缺乏专职安全人员的团队。
行动建议与检查清单
立即执行以下操作:
- 修改SSH端口并禁用密码登录
- 配置防火墙白名单
- 部署Fail2ban或AegisX
- 定期检查日志与后门
- 保持系统和面板更新
安全是持续过程,建议每月进行一次安全巡检,确保服务器稳固。
常见问题(FAQ)
宝塔面板已经安装了,为什么SSH还会被暴力破解?
宝塔面板主要管理网站环境,其安全功能不覆盖SSH服务。SSH是独立服务,默认端口22暴露在公网就会遭受扫描和暴破。面板的防火墙可能只针对Web端口,未限制SSH。必须单独对SSH进行加固,如修改端口、禁用密码登录、配置Fail2ban等。
如何判断SSH是否已被成功入侵?
检查/var/log/secure或/var/log/auth.log,搜索“Accepted password”或“Accepted publickey”。查看是否有陌生IP成功登录。同时用`last`命令查看登录历史,`w`查看当前在线用户。若发现异常IP或未知用户,立即断开网络并排查。
修改SSH端口后还需要哪些加固措施?
修改端口只是减少扫描,仍需禁用root密码登录、使用密钥认证、限制登录用户、配置防火墙只允许可信IP访问SSH端口。建议安装Fail2ban自动封禁多次失败的IP。同时定期更新SSH服务,关闭不必要的功能。
宝塔面板的防火墙能防SSH暴力破解吗?
宝塔面板的防火墙主要针对Web应用,对SSH防护有限。它可能提供IP黑名单,但无法自动识别SSH暴破。建议使用系统防火墙(iptables/firewalld)或Fail2ban,结合AegisX等专业工具,实现实时封禁。
如何配置SSH密钥登录并禁用密码认证?
首先生成密钥对:`ssh-keygen -t rsa`,将公钥上传到服务器`~/.ssh/authorized_keys`。然后编辑`/etc/ssh/sshd_config`,设置`PasswordAuthentication no`、`PubkeyAuthentication yes`,重启sshd服务。测试密钥登录成功后再禁用密码,避免锁死。