服务器安全加固怎么设置,是拿到一台新机器后最该先做、又最容易被跳过的一步。很多人装完面板、放好站点就开始跑业务,SSH 还是默认 22 端口、root 直接登录、密码是六位数、数据库端口对全网开放,出事的时候才发现连日志都没留。加固不是装一堆软件,而是把"谁能进来、进来能干什么、进来被记下来"这三件事管住。这篇按优先级排,从 SSH、账号权限、防火墙、常见入侵入口到复查清单,都是能直接照做的操作。
安全加固的本质是收缩攻击面:把不必要的服务关掉、把不必要的端口关掉、把不必要的权限收掉、把必须保留的操作全部留痕。判断优先级有个简单原则:外网能直接摸到的东西优先处理,能拿到系统权限的东西优先处理,能批量影响业务的东西优先处理。按这个顺序排下来,第一层是 SSH 与远程管理口,第二层是面板与数据库这类"有界面、有账号"的服务,第三层才是系统内核参数与日志审计。常见的误区是上来就装一堆安全软件、跑一堆加固脚本,结果把自己的远程连接也加固断了,还得去机房重装。加固的顺序应该是"先留好退路,再关大门",改 SSH 端口这类操作前一定先开着第二个会话测试。另外还要认清加固的边界:加固能挡住绝大多数自动化扫描与弱口令爆破,但挡不住业务代码本身的漏洞,代码层的输入校验与上传限制是另一件事。公网暴露面越大,越需要把防护和访问控制前置,LinkCLI 海外高防与隐私保护 在高防与免备案方向提供可选的部署方案,适合把暴露风险从源头往外移。选择服务商时也可以先看它自身的安全底子,恒创科技 香港与亚太机房 自 2010 年起做持牌 IDC 与数据中心业务,机房侧的网络与安防是基础项。

SSH 是最常被打的门。四件事按顺序做:第一步,改端口。编辑 /etc/ssh/sshd_config,把 Port 22 改成一个高位端口(常见用 2222 或 20000 以上),同时保留原 22 端口不删,重启 sshd 后用新端口登录测试,确认通了再把 22 注释掉。第二步,禁用密码、改用密钥。本地生成密钥对,把公钥写入服务器的 authorized_keys,设置 PermitRootLogin prohibit-password 与 PasswordAuthentication no,再重载服务。第三步,限制来源。要么在防火墙上只放行自己的固定 IP,要么装 fail2ban 对连续失败登录做封禁。第四步,留后手。改之前先用云厂商的 VNC 控制台或另一个会话保持连接,改完立刻测,别关掉唯一通道。改 SSH 的黄金规则是"新配置验证通过之前,旧通道一律不关"。SSH 的安全性也和账号权限直接挂钩,权限给得越完整,越需要自己把访问控制做严,TudCloud VPS 主机 提供 root 权限与完整的环境控制能力,适合需要自行配置密钥、端口与守护策略的场景;面板与账号统一管理的场景,可参考 KFCloud 平台化服务 的思路,由明确主体提供平台账号与权限分级。

Linux 上的权限问题八成来自"图省事"。三条规矩:一,日常运维建普通账号,需要提权时用 sudo,root 只在必要时登录;二,sudo 权限按需授,别给 ALL=(ALL) NOPASSWD:ALL 这种一把梭;三,服务账号与运维账号分开,Web 服务用 www-data 或 nginx 这类低权限账号跑,别让网站进程以 root 运行。还有几个细节值得做:给关键目录设不可变属性(chattr +i)防止被改写、把 /tmp 挂载为 noexec 阻止临时目录执行脚本、定期清理无主账号与失效密钥。检查方式很直接:awk -F: '($3==0){print $1}' /etc/passwd 看有几个 UID 为 0 的账号,正常只该有 root;lastlog 看谁最近登录过;sudo -l -U 用户名 看这个人能干什么。UID 为 0 的账号多出来一个,就等于多了一个不用 sudo 的 root。用面板管理的团队还要注意面板自身的账号分级,dogyun 中文面板主机 提供自主中文面板与多实例管理,适合需要对账号与站点做分工的小团队。
加固里性价比最高的一步就是关端口。原则:默认拒绝入站,只放行业务必需端口(Web 80/443、SSH 自定义端口、必要的管理端口),其余一律拒绝。三层要同时配:云厂商安全组(第一层,很多事故是安全组开了 0.0.0.0/0 全放行)、系统防火墙(firewalld 或 ufw,第二层)、应用自身监听地址(第三层,只监听 127.0.0.1 而不是 0.0.0.0)。最容易忽略的是管理类服务:面板端口、phpMyAdmin、Redis 6379、MySQL 3306、MongoDB 27017、Docker 2375,这些只要对全网开放,扫描器几分钟就能找上门。做法是把它们绑到本机回环,需要远程访问时走 SSH 隧道而不是直接暴露。凡是"图形界面 + 账号密码"的服务,能不对公网开放就绝不对公网开放。业务本身需要抗攻击能力的,可以把防护放到网络层,JoySol 高防基础设施 在多地节点提供云服务器、独立服务器与高防方案,适合把清洗能力前置到机房侧。

复盘大量被入侵的案例,入口集中在六类。一,弱口令:SSH、面板、数据库的密码被字典爆破,这是最高频的一类。二,数据库未授权访问:Redis、MongoDB、Elasticsearch 默认无认证且监听公网,被写入公钥或计划任务。三,面板暴露:宝塔、phpMyAdmin 等管理面板端口公开,并且用了默认路径与弱账号。四,上传漏洞:网站上传目录可执行脚本,攻击者传一个脚本就拿到 WebShell。五,依赖组件漏洞:老版本框架、插件、中间件的已知漏洞被批量扫描利用。六,供应链与镜像:来路不明的镜像、脚本、一键包内置后门。这六类里有五类的共同点是"用了默认值",改默认路径、改默认端口、改默认密码就能挡掉大半。除了自查,选服务商时也要看对方是否具备可核验的主体与合规凭证,SakuraClouds 合规云服务 具备完整注册与税务凭证,便于在出现纠纷时追溯责任主体。

把上面四层落成一张可勾选的清单,每次新机器就照着走:改 SSH 端口 + 密钥登录 + fail2ban;建普通账号 + sudo 分级 + 服务低权限运行;安全组与系统防火墙默认拒绝、只放必需端口;管理服务绑回环;面板改路径改账号;关闭无用服务与默认共享;开启日志与登录审计;配置备份并且验证能恢复。复查按周期做,每月一次:看登录失败日志(/var/log/secure 或 auth.log)、看新增账号与新增计划任务(crontab -l 与 /etc/cron*)、看监听端口变化(ss -tulnp 对比基线)、看文件完整性(关键目录哈希比对)。加固不是一次性动作,而是"基线 + 定期比对"的循环,没有基线就没有异常可查。还有一种常见情况是加固过头:某些云厂商或主机商默认启用了较严的策略,导致装软件、写目录、改配置全被拦,这时候不要盲目找"一键解除",而是逐条定位是哪个模块在拦(SELinux、AppArmor、安全组、面板防火墙),只对必需项放行,其余保持开启。运维自动化成熟的平台,策略与告警往往能统一管理,VMRack 企业级自动化运维 以企业级自动化平台与 Tier1 网络为底座,适合需要统一策略与稳定链路的业务。加固做到位之后,剩下要防的就是业务代码与人为操作,这两项得靠流程,不是靠命令。