你的服务器真的安全吗?一套拿来就能用的Linux加固SOP,从裸机到堡垒机

很多站长把服务器买回来,第一件事就是装宝塔、传代码、跑数据库,然后就不管了。直到某天收到云厂商的短信:“您的实例存在对外攻击行为,已被封禁。”或者更惨的,早上起来发现网站被挂马,数据库被删,只留下一张勒索信。

笔者运维过几百台生产环境服务器,踩过的坑比吃过的盐还多。今天不聊虚的,直接把一套经过实战检验的Linux服务器安全加固SOP拆开揉碎了讲给你听。这套流程从裸机交付开始,到最终验证收尾,每一步都有明确的参数和命令,照着做就能把90%的自动化扫描和暴力破解挡在门外。

一、核心原理:攻击者到底怎么进来的?

💡 推荐阅读:Docker容器到底该怎么跑?聊聊我从踩坑到上生产的标准流程

在动手之前,你得先明白敌人从哪来。绝大多数Linux服务器被入侵,入口无非这三个:

  • SSH暴力破解:攻击者用字典撞你的22端口,密码设得简单点,几分钟就沦陷。
  • 应用层漏洞:Web服务、数据库、中间件没打补丁,被利用后直接提权。
  • 配置疏忽:比如Redis未授权访问、MySQL弱口令、不必要的端口暴露在公网。

所以,安全加固的本质是收敛攻击面:能关的端口全关,能限的权限全限,能加的验证全加。下面这套SOP就是围绕这个思路展开的。

二、生产环境架构规范:从买机器那一刻就要想清楚

🔥 【限时特惠福利】高性价比独享云服务器限时 1 折起

搭建网站或部署容器推荐选择高稳定性独享云服务器。限时特惠通道开放中,点击即可领取专属满减代金券与特惠折扣:

👉 立刻领取云服务器限时优惠券

💡 延伸阅读:告别命令行焦虑:三款主流开源Docker管理平台深度横评,到底谁才是运维神器?

很多安全问题其实是架构阶段埋下的雷。笔者建议,如果你准备正经跑业务,别贪便宜买那种超售严重的灵车机器,选个靠谱的云厂商,至少网络层有基础防护。另外,域名务必走正规注册商,别用来历不明的免费域名,否则哪天解析被劫持了你都不知道。

架构上遵循三个原则:

  • 最小暴露原则:只有负载均衡或反向代理暴露80/443,后端应用服务器只开内网端口。
  • 分层隔离:Web层、应用层、数据层分在不同子网,安全组严格限制来源IP。
  • 跳板机机制:生产服务器禁止直接SSH公网登录,必须通过堡垒机(跳板机)中转。

三、安全加固调优清单(核心实操)

💡 深度技术指南:Linux服务器配置踩坑实录:SSH连不上、Nginx报502、磁盘满了?这几个高频故障站长帮你排明白了

假设你现在拿到一台全新的CentOS/Ubuntu服务器,按顺序执行以下步骤。

3.1 账户与登录安全

第一步:创建普通用户并禁用root远程登录

# 创建运维用户
useradd -m -s /bin/bash opsadmin
passwd opsadmin

# 赋予sudo权限
echo "opsadmin ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers.d/opsadmin
chmod 440 /etc/sudoers.d/opsadmin

# 修改SSH配置
vim /etc/ssh/sshd_config

关键参数高亮:

  • PermitRootLogin no —— 禁止root直接登录
  • PasswordAuthentication no —— 禁用密码认证,只用密钥
  • Port 59222 —— 改掉默认22端口,能挡掉80%的扫描
  • AllowUsers opsadmin —— 白名单机制,只允许特定用户登录

改完后重启SSH:systemctl restart sshd。注意,重启前先确保你的密钥能登录,别把自己关在门外。

第二步:配置SSH密钥登录

# 本地生成密钥对
ssh-keygen -t ed25519 -C "opsadmin@prod"

# 上传公钥到服务器
ssh-copy-id -i ~/.ssh/id_ed25519.pub -p 59222 opsadmin@your_server_ip

3.2 防火墙与端口收敛

云厂商的安全组是第一道墙,服务器本机的防火墙是第二道。笔者习惯用firewalldufw,规则越简单越好。

# Ubuntu示例
ufw default deny incoming
ufw default allow outgoing
ufw allow 59222/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable

然后检查监听端口:ss -tulnp。任何你不认识的端口,一律关掉。比如MySQL的3306、Redis的6379,绝对不要暴露在公网。

3.3 系统层内核加固

编辑/etc/sysctl.conf,加入以下参数:

# 防止SYN洪水攻击
net.ipv4.tcp_syncookies = 1
# 禁止ICMP重定向
net.ipv4.conf.all.accept_redirects = 0
# 禁止源路由
net.ipv4.conf.all.accept_source_route = 0
# 开启IP欺骗保护
net.ipv4.conf.all.rp_filter = 1

执行sysctl -p生效。

3.4 自动化安全工具部署

手动加固只是一时,持续防护得靠工具。笔者强烈建议装两个东西:

  • Fail2ban:监控日志,自动封禁暴力破解IP。配置/etc/fail2ban/jail.local,把bantime设为3600秒,maxretry设为3次。
  • AIDE:文件完整性检查,每天对比关键目录的哈希值,发现篡改立刻告警。

四、验证测试与SOP总结

加固完不是就完事了,你得验证。笔者通常做这几项检查:

检查项 命令/方法 预期结果
SSH端口 nmap -p 22,59222 your_ip 22关闭,59222开放
root登录 ssh root@your_ip 拒绝访问
防火墙规则 ufw status verbose 仅放行必要端口
Fail2ban状态 fail2ban-client status sshd 显示封禁列表

最后,把这套流程固化成SOP文档,每台新机器上线前必须过一遍。安全不是一次性的任务,而是持续的习惯。笔者见过太多人加固完就忘了,半年后漏洞库更新了也不管,结果还是被扫进去。

另外提醒一句,如果你的业务对稳定性要求高,别在主力服务器上直接改SSH配置,先开一台测试机跑通流程。还有,云服务器的快照功能一定要用起来,改配置前打个快照,出问题能秒回滚。

安全这件事,投入产出比极高。花一个下午把上面这些做完,往后几年你都能睡个安稳觉。

相关技术专题与延伸阅读

📦 【资源免费领】本文全套实操配置文件与避坑手册下载

本文涉及的全套 Docker Compose 配置文件、服务器运维避坑清单及 AI 提效指令库已完整打包,可免费极速转存:

👉 点击前往夸克网盘免费极速转存(手机端领 1TB 空间)

💡 提示:推荐使用手机【夸克网盘 App】打开保存,新用户首月免费赠送 1TB 超大空间与免流量极速下载特权。

滚动至顶部