温馨提示×

CentOS服务器如何提升网站安全性

小樊
40
2025-11-27 23:18:09
栏目: 云计算

CentOS 服务器网站安全加固清单

一 基础系统与账户加固

  • 保持系统与软件为最新:执行sudo yum update -y,及时修补漏洞。
  • 关闭不必要服务与端口:列出并禁用不需要的服务,例如sudo systemctl disable vsftpd && sudo systemctl stop vsftpd
  • 强化 SSH 登录:编辑**/etc/ssh/sshd_config**,建议设置PermitRootLogin noPasswordAuthentication no、仅允许特定用户AllowUsers yourusername,并重启 SSH 服务。
  • 配置密码策略:编辑**/etc/login.defs**,设置如PASS_MAX_DAYS 90PASS_MIN_DAYS 7PASS_WARN_AGE 14,提升口令强度与轮换频率。
  • 启用防火墙并仅开放必要端口:启动firewalld,开放80/443(HTTP/HTTPS)与22(SSH),按需添加端口并重载规则。

二 网络与访问控制

  • 防火墙最小权限:仅放行业务所需端口与服务,使用firewall-cmd --permanent --add-service=http/https/ssh后执行firewall-cmd --reload;如需端口范围,使用**–add-port=10000-10010/tcp**。
  • 限制暴力登录:部署fail2ban,安装后启用服务sudo systemctl enable --now fail2ban,自动封禁反复失败的来源 IP。
  • 精细化速率限制:在 firewalld 中对来源不限的入站连接做限速,例如sudo firewall-cmd --permanent --add-rich-rule='rule family=“ipv4” source address=“0.0.0.0/0” limit value=“5/m” accept’–reload,缓解扫描与爆破。
  • 云环境配合:除系统防火墙外,确保云平台安全组同样仅放行80/443/22等必要端口。

三 Web 服务与加密通信

  • 启用 HTTPS:优先使用Let’s EncryptCertbot自动获取并部署证书。
    • CentOS 7 + Apache:sudo yum install epel-release && sudo yum install certbot python2-certbot-apache,执行sudo certbot --apache按向导完成申请与自动配置(含 HTTP→HTTPS 重定向)。
    • CentOS 8 + Apache:sudo dnf install epel-release && sudo dnf install certbot python3-certbot-apache mod_ssl,执行sudo certbot --apache
  • 手动安装证书(Apache 示例):将证书与私钥放置安全目录并设置权限(如600),在**/etc/httpd/conf.d/ssl.conf中配置SSLCertificateFile**、SSLCertificateKeyFile及(如有)SSLCertificateChainFile,随后sudo systemctl restart httpd;部署前确保443端口已在系统与云安全组放行。

四 应用与数据库安全

  • 部署 WAF:使用ModSecurity等 Web 应用防火墙识别并阻断SQL 注入、XSS等常见攻击;安装相应模块并将规则引擎由DetectionOnly切换为On后重启 Web 服务。
  • 数据库加固:为数据库设置强口令最小权限账户,仅允许应用所在主机访问;禁止在生产环境使用root远程登录;定期备份与异地保存。
  • 文件与目录:限制 Web 目录的执行权限,禁止上传目录执行脚本;为敏感文件设置chmod 600/640chown最小化权限。

五 运维监控与备份恢复

  • 审计与日志:启用auditd记录关键系统调用与登录审计,集中存储与分析日志,及时发现异常行为。
  • 漏洞扫描与整改:定期使用OpenVASNessus进行漏洞扫描,针对高危项及时修补与复测。
  • 备份策略:定期备份网站文件与数据库,例如使用rsyncmysqldump脚本化备份,保留多份并做离线/异地副本,定期演练恢复流程。
  • 持续加固:保持系统与组件的及时更新,遵循最小权限默认拒绝原则,定期审查防火墙与访问控制策略。

0