核心结论先行
服务器安全配置的核心不是购买昂贵的防护设备,而是建立“最小暴露面 + 纵深防御 + 持续审计”的闭环体系。 任何服务器,只要暴露在公网,就必然面临扫描、爆破、漏洞利用等风险,但实践中,90%的安全事件源于基础配置疏漏,而非高级攻击,本文直接给出优先级最高的配置清单,并逐层展开,帮助你用最低成本抵御绝大多数威胁。
第一层防线:账号与认证体系(最关键)
务必禁用root直接登录,强制使用密钥认证,并关闭密码登录。 这是成本最低、效果最明显的安全措施。
- 创建普通用户并赋予sudo权限:日常操作使用普通用户,需要管理时通过sudo提权,避免使用root执行所有命令,减少误操作和攻击者直接获得最高权限的风险。
- 配置SSH密钥认证:在本地生成密钥对,将公钥上传至服务器的
~/.ssh/authorized_keys,修改/etc/ssh/sshd_config:PasswordAuthentication no(关闭密码登录)PermitRootLogin no(禁止root登录)AllowUsers yourusername(限制允许登录的用户)
- 修改默认SSH端口(可选但强烈建议):将22端口改为高位端口(如22222),能自动拦截大量批量扫描攻击,需同步配置防火墙放行新端口。
独立见解:密钥认证并非绝对安全,若本机被入侵,密钥同样泄露,因此建议为私钥设置强口令,并定期轮换密钥,在服务器端启用fail2ban,对连续失败尝试的IP自动封禁,形成第二道保险。
第二层防线:系统最小化与补丁管理
安装系统时只选择必要组件,删除所有不需要的服务和软件。 每个额外的服务都是攻击入口。
- 关闭不必要端口:使用
netstat -tulnp检查所有监听端口,仅保留22(或自定义SSH端口)、80、443等必须端口,其他一律通过防火墙阻断。 - 及时更新补丁:设置自动安全更新,CentOS/RHEL使用
,Ubuntu/Debian使用
yum update --security
unattended-upgrades。不要长期跳过更新,大量勒索病毒利用的是已公开数月的漏洞。 - 卸载编译器与无用工具:生产环境不建议安装gcc、make等编译工具,防止攻击者本地编译攻击代码。
酷番云经验案例:曾有一位用户购买云服务器后,默认开放了3306、6379等端口,且数据库密码设置为“admin123”,我们介入后发现,该服务器已被植入挖矿程序,处置过程:隔离实例 → 快照备份 → 排查进程与定时任务 → 清除恶意文件 → 修复端口策略并强制密钥登录,如果你使用的是酷番云服务器,建议开启控制台中的“安全组”功能,只放行业务所需端口,并为数据库等敏感服务绑定仅内网访问的规则,从云平台层面先行拦截。
第三层防线:防火墙与入侵检测
配置默认拒绝策略,仅放行必要流量。 这是网络层的关键防线。
- 使用iptables或firewalld(以firewalld为例):
firewall-cmd --set-default-zone=drop(默认丢弃所有流量)- 逐一放行所需端口,如:
firewall-cmd --permanent --add-port=22222/tcp --add-service=http --add-service=https - 重新加载配置:
firewall-cmd --reload
- 部署简单的入侵检测:除fail2ban外,可安装
rkhunter或chkrootkit定期扫描后门与rootkit,建议每周执行一次并邮件发送报告。 - 日志集中管理:将
/var/log/secure、/var/log/messages等关键日志实时同步至异地存储或对象存储,防止攻击者清理日志后无法溯源。
第四层防线:Web环境与应用安全
Web服务应遵循低权限运行原则,并严格限制目录执行权限。
- 使用非root用户运行Nginx/Apache:修改配置文件中的
user指令,例如user www-data;,各站点目录属主设置为www-data,权限为755
,文件为
644。 - 禁止上传目录执行脚本:若业务需要上传图片等文件,务必在上传目录的Nginx配置中添加:
location ~ .(php|jsp|asp)$ { deny all; },防止上传WebShell。 - 启用HTTPS并配置安全头部:使用Let’s Encrypt免费证书,并在Nginx中添加:
add_header X-Frame-Options "SAMEORIGIN";add_header X-Content-Type-Options "nosniff";add_header Strict-Transport-Security "max-age=31536000";
- 数据库最小权限:为每个应用创建单独数据库账号,仅授予
SELECT, INSERT, UPDATE, DELETE权限,禁止使用root连接数据库。
第五层防线:备份与恢复预案
安全配置的最终目标是可恢复,没有备份的安全策略是不完整的。 建议遵循“3-2-1”原则:生产环境保留3份数据副本,存储于2种不同介质,其中1份异地存储。
- 自动化备份:使用crontab定时执行
mysqldump或tar压缩网站目录,并同步至对象存储(如酷番云对象存储),备份文件需加密并设置权限600。 - 定期演练恢复:每月至少在测试环境恢复一次备份,验证数据完整性。恢复演练比备份本身更重要,否则备份可能只是心理安慰。
酷番云深度建议:我们在维护客户服务器时发现,许多人忽略了对服务器“元数据”的备份,如Nginx配置、PHP配置、防火墙规则、计划任务列表,这些配置丢失后,网站虽能运行,但安全配置全部失效,建议使用版本控制工具(如Git)管理这些配置文件,每次变更提交一次,以便快速回滚。
持续运营与人员管理
技术配置完成后,还需要在“人”的层面建立机制:
- 定期安全巡检:每月检查一次账号列表、sudo权限、开放端口、异常定时任务、最近登录日志。
- 废弃账号清理:员工离职后立即删除或禁用其账号,包括SSH密钥、云平台子账号。
-

明确责任边界:如果是团队协作,服务器管理员、应用开发者、DBA之间应权限分离,避免一人拥有全部控制权。
相关问答模块
问1:我已经关闭了密码登录并使用密钥,还需要启用fail2ban吗?
答:需要,密钥认证虽然解决了“密码被爆破”的问题,但SSH服务本身可能存在的漏洞(如未修复的OpenSSH漏洞)仍可能被利用,fail2ban会监控SSH日志,对短时间内大量连接失败的IP进行动态封禁,即使攻击者尝试利用漏洞前飘测端口,也会被快速隔离,当你的服务器需临时开放密码登录给同事时,fail2ban能有效降低暴力破解风险,建议始终开启fail2ban,并配置阈值:maxretry = 5、bantime = 3600。
问2:配置了安全组,为什么服务器还是被攻击?
答:安全组相当于网络层的大门,而服务器本身是房屋内部的安全设施,安全组只能过滤进出的网络流量,但无法阻止以下情况:
- 业务端口(如80/443)上存在的应用漏洞,攻击者通过Web应用入侵。
- 合法端口上的暴力破解,如SSH、数据库端口。
- 服务器上运行的恶意进程主动外联(如下载挖矿程序),此时安全组出方向若为允许,则无法阻断。
因此安全组必须与主机防火墙(如firewalld)、应用层防护(如Web应用防火墙)、主机加固措施配合使用,同时应开启安全组的“出方向”为默认拒绝,仅允许必要的对外访问(如DNS、HTTPS、备份同步),这样即使服务器被植入后门,也无法向外部传输数据。
欢迎交流
服务器安全配置是一个持续迭代的过程,没有“一劳永逸”的方案,如果你在配置过程中遇到任何具体问题(如特定服务的加固、异常日志分析、迁移后的安全复查),欢迎在评论区留言,我会结合酷番云的实际运维经验为你提供针对性建议,你的实战案例和独到方法,也欢迎分享出来供大家参考。安全,始于每一处细节的认真对待。
图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/774454.html

