服务器主机的安全防护是一个系统工程,通常被称为“纵深防御”(Defense in Depth),没有单一的“银弹”,而是需要从网络层、系统层、应用层和数据层等多个维度进行加固。
以下是针对 Linux 和 Windows 服务器主机的通用防御指南,按优先级排序:
网络层防御(第一道防线)
- 最小化端口开放:
- 只开放业务必需的端口(如 Web 服务的 80/443,SSH 的 22 等)。
- 使用防火墙(如
iptables/firewalld或云厂商的安全组)拒绝所有其他入站连接。
- 修改默认端口:
将 SSH 默认端口(22)修改为高位随机端口(如 2222),可以大幅减少自动化脚本的扫描和攻击。
- 配置安全组/ACL:
如果服务器在云上,务必配置安全组规则,限制来源 IP,只允许特定管理 IP 访问 SSH,只允许 CDN 或负载均衡器访问 Web 端口。
- 启用 DDoS 防护:
对于公网服务器,建议购买云厂商的基础 DDoS 防护或高防 IP 服务,以抵御常见的流量型攻击。
身份认证与访问控制(核心防线)
- 禁用 root 直接登录:
- Linux:修改
/etc/ssh/sshd_config,设置PermitRootLogin no,然后重启 SSH 服务,通过普通用户登录后再使用sudo提权。 -
Windows:禁用默认的 Administrator 账户,创建新的管理员账户。
- Linux:修改
- 强制使用密钥认证:
- Linux:禁用密码登录(
PasswordAuthentication no),仅允许 SSH 密钥对登录,生成密钥时建议使用强密码短语(Passphrase)。 - Windows:启用 Windows Hello for Business 或智能卡认证。
- Linux:禁用密码登录(
- 实施多因素认证(MFA/2FA):
为 SSH 或远程桌面启用 MFA(如 Google Authenticator、YubiKey),即使密码泄露,攻击者也无法登录。
- 强密码策略:
强制使用长密码(12位以上),包含大小写字母、数字和特殊字符,定期更换密码。
系统与应用更新(修补漏洞)
- 及时打补丁:
- 定期更新操作系统内核、Web 服务器(Nginx/Apache/IIS)、数据库(MySQL/PostgreSQL/SQL Server)和编程语言环境(Python/Java/Node.js)。
- 订阅安全公告(如 CVE 列表),关注已知高危漏洞。
- 自动化更新:
- 配置自动安全更新(如 Linux 的
unattended-upgrades),确保紧急补丁能第一时间应用。
- 配置自动安全更新(如 Linux 的
主机入侵检测与监控(感知威胁)
- 部署主机入侵检测系统(HIDS):
- 使用开源工具如 OSSEC、Wazuh
或商业方案,它们可以监控文件完整性、异常登录、可疑进程等。
- 使用开源工具如 OSSEC、Wazuh
- 日志审计与集中管理:
- 开启系统日志(syslog)、SSH 登录日志、Web 访问日志。
- 将日志发送到集中式日志服务器(如 ELK Stack、Splunk、Graylog),以便进行关联分析和异常检测。
- 实时监控告警:
配置告警规则:如“同一 IP 5 分钟内失败登录超过 5 次”、“CPU 使用率异常飙升”、“新增未知用户”等,通过邮件、短信或钉钉/企业微信通知管理员。
应用层安全(Web 防护)
- 部署 Web 应用防火墙(WAF):
在 Web 服务器前部署 WAF(如简米云 WAF、Cloudflare、ModSecurity),拦截 SQL 注入、XSS 跨站脚本、CC 攻击等常见 Web 攻击。
- 输入验证与输出编码:
开发人员应在代码层面对所有用户输入进行严格过滤和验证,防止注入攻击。
- 隐藏版本信息:
配置 Web 服务器(Nginx/Apache/IIS)隐藏版本号和服务头信息,避免攻击者利用特定版本漏洞。
数据备份与灾难恢复(最后底线)
- 定期备份:
- 遵循 3-2-1 备份原则:3 份副本,2 种不同介质,1 份离线/异地存储。
- 包括:系统配置、应用程序代码、数据库、用户数据。
- 测试恢复流程:
定期演练数据恢复,确保在遭受勒索软件或数据损坏时能快速恢复业务。
- 加密备份数据:
对备份数据进行加密存储,防止备份文件被窃取后泄露敏感信息。
其他最佳实践
- 最小权限原则:
- 运行 Web 服务的进程不应以 root 身份运行。
- 数据库账户不应授予不必要的权限。
- 禁用不必要的服务:
关闭系统中不需要的服务(如 FTP、Telnet、打印机服务等),减少攻击面。
- 容器化与隔离:
如果可能,使用 Docker/Kubernetes 容器化应用,实现进程隔离,限制单个应用被攻破后对宿主机的影响。
- 定期安全扫描:
- 使用工具如
Nmap(端口扫描)、Nessus或OpenVAS(漏洞扫描)定期对服务器进行安全评估。
- 使用工具如
总结建议
- 立即行动:修改 SSH 端口、禁用 root 登录、启用密钥认证、更新系统补丁。
- 中期建设:部署 WAF、HIDS、日志审计系统。
- 长期维护:建立定期备份、漏洞扫描和安全培训机制。
安全是一个持续的过程,而非一次性任务,建议根据业务的重要性和风险承受能力,逐步实施上述措施。
首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/482912.html



