我的知识记录

宝塔面板网站目录规划与安全加固:权限、open_basedir、独立用户

宝塔面板多站点环境下,目录规划和安全加固很重要,防止一个网站被黑影响其他网站。

标准目录结构。/www/wwwroot/域名1/、/www/wwwroot/域名2/,每个网站独立目录。/www/wwwlogs/存日志,/www/backup/存备份,/www/server/存软件。不要把多个网站放在同一目录,不要用子目录跑多个站点(除非刻意)。

目录权限配置。1. 网站根目录属主www:www,权限755。2. 文件权限644。3. 上传目录(upload、uploads)755,属主www(需要写入)。4. 配置文件(config.php、wp-config.php)644,含敏感信息的可以600。5. 不要用777,任何情况下都不要。6. 批量修复:find /www/wwwroot -type d -exec chmod 755 {} ; 和 find /www/wwwroot -type f -exec chmod 644 {} ;。

open_basedir防跨站。宝塔网站设置里"防跨站攻击(open_basedir)"默认开启,限制PHP只能访问网站目录和/tmp。1. 保持开启,不要关闭。2. ThinkPHP/Laravel等框架运行目录在public,open_basedir会自动包含上级目录。3. 如果程序需要访问其他目录,在PHP设置里调整open_basedir,但不建议。4. open_basedir能防止一个网站被黑后读取其他网站文件。

禁止上传目录执行PHP。这是防webshell的关键。1. Nginx配置:location ~* /upload/.*.php$ { deny all; },upload换成实际上传目录名。2. 宝塔网站设置-网站目录-禁止执行PHP,选upload目录(宝塔6.0+有这个功能)。3. Apache用.htaccess: Require all denied 。4. 即使黑客上传了php伪装的图片,也无法执行。

独立PHP-FPM用户(高级)。宝塔默认所有网站用同一个www用户运行PHP,一个网站被黑可能通过www用户访问其他网站。进阶配置:1. 每个网站创建独立Linux用户(如user1、user2)。2. 为每个用户配置独立PHP-FPM池,监听不同socket。3. 网站目录属主设为对应用户。4. Nginx fastcgi_pass指向对应socket。5. 这样一个网站被黑,攻击者只有该用户权限,影响不到其他网站。6. 配置较复杂,适合有运维能力的用户或高安全要求场景。

数据库隔离。1. 每个网站用独立数据库,数据库名和网站对应。2. 每个数据库用独立用户,只授权该数据库(GRANT ALL ON db1.* TO 'user1'@'localhost')。3. 不要所有网站共用root或同一个数据库用户。4. 数据库用户只给SELECT/INSERT/UPDATE/DELETE权限,不给DROP/ALTER/GRANT。5. 数据库密码每个都不同,强密码。

FTP隔离。1. 每个网站独立FTP账号,根目录限制在该网站目录。2. FTP账号只给需要的人,不用时禁用。3. 优先用SFTP(基于SSH),不用FTP(明文传输)。4. FTP密码强密码,定期更换。

端口和服务最小化。1. 安全组只放行80、443、22(SSH)、面板端口(限制IP)。2. 不要开放3306(MySQL)、6379(Redis)、21(FTP)到公网。3. 数据库和缓存只允许本地连接。4. 关闭不用的服务和软件。

文件完整性监控。1. 宝塔"文件监控"插件或tripwire,监控网站文件变化,异常修改告警。2. 定期(每周)对比网站文件和干净备份,看有没有被篡改。3. 重点监控index.php、config.php、.htaccess、上传目录。4. 发现陌生php文件立刻隔离排查。

定期备份。1. 每个网站每天自动备份文件+数据库,保留7份。2. 备份异地存储(OSS/COS/本地)。3. 每月恢复一次备份到测试环境,验证备份可用。4. 被黑时能快速恢复到干净状态。

PHP安全配置。1. disable_functions禁用危险函数:exec、system、shell_exec、passthru、popen、proc_open等。宝塔PHP设置-禁用函数。2. expose_php=Off,隐藏PHP版本。3. allow_url_include=Off,防止远程文件包含。4. open_basedir已配置。5. PHP版本保持受支持的版本(7.4+),不用PHP5.x。

WAF防护。1. 宝塔Nginx防火墙或云WAF,拦截SQL注入、XSS、文件上传攻击。2. 配置CC防护,防暴力破解和DDoS。3. 拦截异常UA和扫描器。4. WAF规则定期更新。

多站点安全是系统工程,目录隔离+权限+open_basedir+禁止执行PHP+数据库隔离,这五项做好,一个网站被黑不会扩散到其他网站。

宝塔面板网站目录规划与安全加固:权限、open_basedir、独立用户

标签:

更新时间:2026-08-26 18:05:52

上一篇:如何修改网站内容_后台编辑文章_更新产品信息_新手操作教程

下一篇:宝塔面板占用443端口怎么解决_Nginx_Apache_Docker_释放共存