第一项,也是最重要的,就是SSH安全加固。SSH是远程管理的唯一通道,也是攻击者的首要目标。您必须修改默认的22端口,改为一个不常用的高端口,比如22222或更大;同时禁止root用户直接远程登录,设置PermitRootLogin no;最关键的是要禁用密码认证,只允许密钥登录,因为密钥无法被暴力破解。在操作之前,请先生成您的密钥对并上传公钥,避免把自己锁在门外。另外,建议配置登录失败锁定策略,比如连续失败3次就锁定几分钟,可以有效阻断自动破解工具。
第二项是防火墙与网络访问控制。无论您使用云平台的安全组还是服务器本地的防火墙,核心原则都是“默认拒绝所有入站,只开放必需端口”。例如,只放行新的SSH端口、80和443用于Web服务,其他所有端口一律关闭。对于数据库、缓存、管理后台等敏感服务,绝对不要暴露在公网,应绑定内网地址或通过VPN访问。在Ubuntu上可以使用UFW,CentOS使用firewalld,配置起来都很简单,关键是要在启用前先放行SSH端口,否则会断开连接。

第三项是用户和权限管理。要坚决遵循最小权限原则,每个服务都运行在独立的低权限账号下,比如Nginx用www-data,MySQL用mysql,绝对不要用root运行应用程序。对于需要提权的操作,使用sudo并精确控制可执行的命令,而不是给全部权限。同时要定期审计系统里的用户账户,及时删除离职员工或已废弃的测试账号,并启用账户锁定策略,防止暴力猜解。
第四项是限制远程登录的来源IP。如果您的办公网络或VPN出口有固定公网IP,建议在安全组或防火墙中设置只允许这些IP访问SSH端口。这样即使账号密码泄露,攻击者也无法从其他网络连接,极大提升了安全性。
第五项是及时更新系统和软件补丁。操作系统内核、Web服务器、数据库、编程语言运行时等组件,每个月都可能爆出高危漏洞。您需要定期执行系统更新命令(如apt update && apt upgrade或yum update),并关注常用软件的安全公告。生产环境更新前务必在测试环境验证,并做好备份,防止更新引发兼容性问题。
第六项是关闭不必要的服务和端口。很多Linux发行版默认开启了FTP、邮件服务、RPC、打印服务等,这些您可能根本用不到,却增加了攻击面。使用netstat或ss命令查看当前监听端口,对于非业务需要的服务,直接停止并禁用自启动。服务越少,风险越低。
第七项是强密码策略。虽然我们推荐密钥登录,但系统里仍可能有普通用户使用密码,数据库、应用后台等也依赖密码。所有密码必须包含大小写字母、数字和特殊符号,长度不少于12位,并且不要重复使用。建议使用密码管理器生成随机密码,并定期更换。
第八项是内核参数调优。通过修改/etc/sysctl.conf可以增强系统抗攻击能力,例如启用SYN Cookie防御SYN Flood攻击,禁用IP转发和源路由,开启地址空间布局随机化(ASLR)增加漏洞利用难度。还可以对/tmp目录设置noexec和nosuid挂载选项,防止攻击者从临时目录执行恶意程序。调整后执行sysctl -p生效。
第九项是审计和日志配置。安全事件发生后,日志是追溯和取证的唯一依据。您需要安装auditd来监控关键文件和目录的访问,配置系统日志(如/var/log/auth.log、/var/log/syslog)的轮转策略,防止磁盘写满。最好将日志实时同步到远程服务器或对象存储,避免攻击者删除本地日志。日常运维中,应定期检查登录失败记录和异常进程。
第十项也是最后一道防线,就是定期备份并验证可恢复性。再完善的安全配置也无法保证百分百不被突破,因此必须对业务数据、配置文件、数据库进行自动备份,并且至少每季度演练一次恢复流程,确保备份文件可用、恢复步骤清晰。备份可以存放在异地或云存储,与生产环境隔离。
如果您使用的是宝塔面板,除了上述通用措施外,还需要额外注意:修改面板默认的8888端口为随机高端口;开启面板访问白名单,只允许您的办公IP登录;启用面板SSL加密;绑定宝塔APP或Google身份验证器实现双因素认证;禁止root直接管理数据库,为每个网站创建独立数据库账号并设置高强度密码。
服务器安全不是一次性工作,而是一个持续迭代的过程。以上10项配置都是经过大量实战验证的基础操作,投入成本低但防护效果显著。请记住,当您的服务器连上公网的那一刻,就相当于把家门敞开在闹市区,无数自动扫描器会日以继夜地试探。不要心存侥幸,先做好基础加固,再部署业务,才是负责任的做法。希望这篇指南能帮助您筑牢第一道防线,让运维工作更加安心