插件窝 干货文章 如何通过宝塔面板进行网站的安全加固

如何通过宝塔面板进行网站的安全加固

面板 宝塔 设置 文件 672    来源:    2025-04-18

通过宝塔面板进行网站安全加固需要从系统、面板、网站、数据库等多层面入手。以下是详细的操作步骤和关键措施:


一、宝塔面板自身安全加固

  1. 修改默认入口和账号

    • 登录面板 → 面板设置 → 修改默认的8888端口为非常用端口(如35279)。
    • 修改默认的admin用户名和复杂密码(建议12位以上,含大小写、数字、符号)。
    • 关闭/www/server/panel/data/admin_path.pl文件中的默认入口提示。
  2. 开启基础安全防护

    • 防火墙:确保系统防火墙(如firewalld/iptables)已启用,仅开放必要端口(SSH、面板、网站端口)。
    • SSH防护:在面板的【安全】页面禁用SSH的22默认端口,改为高端口(如5922),并禁止root密码登录,仅允许密钥认证。
    • Fail2Ban:安装Fail2Ban插件,自动封禁多次登录失败的IP。
  3. 面板访问限制

    • 在【面板设置】→【安全设置】中:
      • 绑定访问域名(仅允许特定域名访问面板)。
      • 限制IP访问(仅允许管理员IP)。
      • 启用【BasicAuth认证】增加二次验证。
    • 定期更新宝塔面板至最新版本(bt 16)。

二、网站服务层加固

  1. Web服务器配置优化

    • Nginx/Apache
      • 隐藏版本号:在配置中添加 server_tokens off;(Nginx)或 ServerTokens Prod(Apache)。
      • 禁用不必要的HTTP方法:
        nginx if ($request_method !~ ^(GET|POST|HEAD)$ ) { return 444; }
      • 启用HTTPS并强制跳转,使用免费SSL证书(Let's Encrypt)或商业证书。
  2. PHP安全设置

    • 在【PHP管理】中:
      • 禁用危险函数:exec, system, shell_exec, passthru等。
      • 设置open_basedir限制PHP可访问的目录。
      • 关闭display_errors防止泄露敏感信息。
  3. 文件权限控制

    • 网站目录权限设置为:
      • 文件夹:755(chmod -R 755 /www/wwwroot)。
      • 文件:644(chmod -R 644 /www/wwwroot)。
    • 关键配置文件(如.env)设置为只读(chmod 400)。

三、数据库安全

  1. MySQL/MariaDB加固

    • 修改默认的root用户名和强密码。
    • 删除匿名账户和测试数据库:
      sql DROP DATABASE test; DELETE FROM mysql.user WHERE User=''; FLUSH PRIVILEGES;
    • 限制数据库远程访问:在【数据库】页面仅允许本地127.0.0.1连接。
  2. Redis加固

    • 如果使用Redis,需设置密码并绑定127.0.0.1
      ini requirepass YourStrongPassword bind 127.0.0.1

四、防入侵与监控

  1. 定期备份

    • 使用宝塔【计划任务】自动备份网站文件和数据库到远程存储(如OSS、FTP)。
    • 设置备份保留策略(如保留最近7天备份)。
  2. 防篡改与木马扫描

    • 安装【宝塔企业版】的防篡改插件或使用免费工具(如rkhunter)。
    • 定期使用【宝塔安全扫描】或clamav进行木马查杀。
  3. 日志监控

    • 分析Nginx/Apache日志(/www/wwwlogs)中的异常请求(如大量404、SQL注入尝试)。
    • 启用宝塔【日志清理工具】避免日志占满磁盘。

五、其他高级措施

  • CDN/WAF:接入Cloudflare或阿里云WAF,防御CC/DDoS攻击。
  • 禁用敏感文件:阻止访问.git.env等文件:
    nginx location ~ /\.(git|env|svn) { deny all; }
  • 限制User-Agent:屏蔽恶意爬虫:
    nginx if ($http_user_agent ~* (wget|curl|httrack|nikto) ) { return 403; }

六、应急响应

  • 发现入侵后:
    1. 立即关闭网站或面板访问。
    2. 排查后门文件(如/tmp下的可疑脚本)。
    3. 重置所有密码(面板、数据库、SSH)。
    4. 从干净备份恢复数据。

通过以上措施可显著提升网站安全性,但需注意:安全是持续过程,需定期更新补丁、审计日志,并保持最小权限原则。