别等被“脱库”了,才想起加固服务器
💡 推荐阅读:自己动手搭建私有云?聊聊开源Docker云平台的那些事儿
很多朋友买完云服务器,第一件事就是装宝塔、跑业务。至于安全?总觉得“我一个小站,黑客看不上”。但现实是,黑客的攻击脚本是全网无差别扫描的,你的服务器可能在被扫描的第5分钟就沦陷了。作为常年跟服务器打交道的运维老兵,站长今天不聊虚的,直接上一套从“入口”到“内核”的实战防护清单。
本文不涉及晦涩的内核源码级安全,只讲能落地、能执行的硬核操作。建议收藏后照着做,至少能挡住90%的恶意扫描和暴力破解。
第一步:关掉“大门”,改走“侧门”——SSH安全加固
SSH(端口22)是Linux服务器的第一道门。默认端口+密码登录,等于把钥匙挂在门上。我们首先要做的,就是把这扇门藏起来。
1. 修改默认端口与禁用Root登录
编辑SSH配置文件:
vim /etc/ssh/sshd_config
找到并修改以下几行:
# 修改端口,避免被脚本扫描到(建议用10000-65535之间的高位端口)
Port 22022
# 禁止Root用户直接登录,平时用普通用户切sudo
PermitRootLogin no
# 开启密钥登录,关闭密码登录(这步最关键)
PasswordAuthentication no
PubkeyAuthentication yes
修改后重启服务:systemctl restart sshd。注意:在修改前,请务必先创建普通用户并添加公钥,否则你会把自己锁在门外。
2. 配置Fail2ban——暴力破解的“自动反制器”
即便改了端口,也不能掉以轻心。安装Fail2ban,它会自动封禁那些尝试多次连接失败的IP。
# CentOS / Rocky
yum install fail2ban -y
# Debian / Ubuntu
apt install fail2ban -y
配置Jail规则(以SSH为例):
cat > /etc/fail2ban/jail.local <
设置开机自启并启动:systemctl enable fail2ban && systemctl start fail2ban。
第二步:给系统装上“防盗门”——防火墙与SELinux
很多云服务器默认防火墙是关闭的,或者只靠云平台的安全组。但本地防火墙能提供更细粒度的控制。
1. Firewalld / UFW 配置实例
如果用的是CentOS,默认是Firewalld;Debian系则是UFW。我们以Firewalld为例:
# 移除默认的22端口,添加新的SSH端口
firewall-cmd --permanent --remove-service=ssh
firewall-cmd --permanent --add-port=22022/tcp
# 放行常用服务
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
# 重新加载
firewall-cmd --reload
核心原则:默认拒绝,按需放行。 不要图省事直接 firewall-cmd --add-port=1-65535/tcp,那是给自己挖坑。
2. 千万别关SELinux
很多教程为了省事,让你直接 setenforce 0 关掉SELinux。站长的建议是:不要关。如果遇到程序被SELinux拦截,请针对性地放行,而不是一刀切关闭。
# 查看SELinux状态
getenforce
# 如果程序需要绑定特定端口,使用此命令放行
semanage port -a -t http_port_t -p tcp 8080
第三步:清理“内鬼”——用户与权限管理
服务器被入侵,往往不是外部攻破,而是内部权限失控。
1. 检查可疑登录与用户
# 查看最近登录日志
last -n 20
# 查看当前登录用户
w
# 查看是否有UID为0的用户(UID 0代表超级权限)
awk -F: '$3==0{print $1}' /etc/passwd
如果发现不明用户,立刻使用 userdel -r 用户名 删除。
2. 重要目录的“防写”保护
对于网站目录,建议使用 immutable 属性,防止被篡改(即使拿到root也无法轻易删除)。
# 锁定关键配置文件
chattr +i /etc/passwd /etc/shadow
但注意,这会增加运维复杂度,建议只对 /etc/shadow 这类核心文件操作。
第四步:专业工具加持——防病毒与Rootkit查杀
Linux不是百毒不侵,只是病毒少。但一旦中招,基本都是Rootkit级别的。
| 工具名称 | 作用 | 安装方式 |
|---|---|---|
| ClamAV | 开源杀毒引擎,查杀WebShell | yum install clamav -y |
| Lynis | 系统安全审计,发现配置弱点 | wget -O - https://cisofy.com/install | sh |
| Rkhunter | Rootkit检测工具 | yum install rkhunter -y |
建议每周执行一次扫描:
# 更新病毒库
freshclam
# 扫描网站目录
clamscan -r /www/wwwroot/
站长在管理客户服务器时,会将上述扫描任务写入cron定时任务,实现自动化巡检。
第五步:未雨绸缪——备份与入侵检测
防护做得再好,也要做好最坏的打算。备份是安全的最后一道防线。
1. 异地备份策略
不要将备份放在同一台服务器上!建议使用对象存储或者另一台独立机器。这里提供一个简单的cron备份脚本思路:
# 每天凌晨3点打包网站目录并同步到OSS
0 3 * * * tar -czf /backup/www_$(date +\%Y\%m\%d).tar.gz /www/wwwroot/ && ossutil cp /backup/www_*.tar.gz oss://your-bucket/
2. 日志审计
配置 logrotate 防止日志占满磁盘,同时关注 /var/log/secure 中的异常IP。
最后,站长的一点真心话
安全防护不是装一个软件就完事,而是一个持续运营的过程。很多朋友在选购服务器时,只盯着价格和配置,却忽略了服务商的安全能力。站长建议大家,选择靠谱的云服务商,比如阿里云、腾讯云等大厂,它们自带云盾、WAF等基础防护能力,能帮你拦截大部分DDoS和Web攻击。
如果你不想折腾这些命令行,也一定要做好最基础的“修改SSH端口+密钥登录”。这一个小动作,就能让你的服务器安全系数提升80%。
希望这份清单能帮你把服务器焊成铁桶。如果有任何操作卡壳,欢迎在评论区留言,我们一起探讨。
延伸阅读
- 自己动手搭建私有云?聊聊开源Docker云平台的那些事儿
- Linux服务与安全管理:从零搭建到加固,这些实战细节越早知道越好
- 别再被“环境地狱”折磨了,一文讲透Docker容器化技术到底牛在哪
- 从零到一:用 Docker 把开发环境装进“集装箱”,从此告别“在我电脑上是好的”
🎁 全套实操配置文件与 AI 提效资料包免费下载
本文涉及的全套 Docker Compose 配置文件、服务器运维避坑手册及 AI 提效指令库已完整打包上传至夸克网盘,可直接免费极速转存:
💡 提示:推荐使用手机【夸克网盘 App】打开保存,新用户首月免费赠送 1TB 超大空间与免流量极速下载特权。