Ubuntu PHP配置如何提升网站安全性
导读:Ubuntu PHP安全配置清单 一 基础与信息泄露防护 保持系统与软件为最新:执行sudo apt update && sudo apt upgrade,及时修补漏洞。 隐藏版本信息:在php.ini中设置expose_...
Ubuntu PHP安全配置清单
一 基础与信息泄露防护
- 保持系统与软件为最新:执行sudo apt update & & sudo apt upgrade,及时修补漏洞。
- 隐藏版本信息:在php.ini中设置expose_php = Off;在 Apache 中设置ServerTokens Prod与ServerSignature Off,减少攻击者情报收集。
- 错误显示与日志分离:生产环境将display_errors = Off、log_errors = On,并设置error_log为受限路径(如**/var/log/php_errors.log**),避免泄露路径与代码细节。
- 精简组件与扩展:仅启用业务必需的扩展,减少攻击面;可通过重命名或移除**/etc/php//mods-available/.ini**来禁用不需要的模块。
二 php.ini关键安全参数
- 禁用危险函数:设置disable_functions = exec,system,passthru,shell_exec,proc_open,popen,eval,assert,symlink,link,escapeshellarg,escapeshellcmd(按需裁剪,避免影响功能)。
- 远程包含与URL访问:如无远程包含需求,建议allow_url_fopen = Off、allow_url_include = Off,阻断RFI与部分代码注入路径。
- 文件系统访问控制:使用open_basedir = /var/www:/tmp(示例)限制脚本可访问目录,防止跨目录读取敏感文件。
- 资源与执行限制:设置max_execution_time = 30、max_input_time = 30、memory_limit = 40M(按业务调整),抑制DoS与资源滥用。
- 文件上传控制:仅在需要时开启file_uploads = On,并限制upload_max_filesize = 2M、post_max_size = 8M,降低大文件与恶意上传风险。
- 会话安全:启用session.cookie_httponly = 1、session.cookie_secure = 1、session.use_strict_mode = 1,并按需调整session.gc_maxlifetime,缓解会话劫持与固定。
- 性能与安全并重:启用OPcache(示例:zend_extension=opcache.so、opcache.enable=1、opcache.memory_consumption=128、opcache.interned_strings_buffer=8、opcache.max_accelerated_files=4000、opcache.revalidate_freq=60),减少暴露面并提升稳定性。
三 Web服务器与运行环境加固
- Apache安全头与模块:启用mod_security与mod_evasive进行WAF与抗DoS;配置ServerTokens Prod、ServerSignature Off;目录权限谨慎使用FollowSymLinks,为每个VirtualHost单独配置PHP参数。
- 仅允许必要HTTP方法:在Apache/Nginx中限制为GET/POST等必要方法,减少攻击面。
- 进程与权限:确保PHP进程以www-data等最小权限运行;网站目录建议chown -R www-data:www-data /var/www/html、chmod -R 755 /var/www/html,敏感目录(如配置、缓存)可设为750/700。
- 防火墙与入侵防护:启用UFW仅放行80/tcp与443/tcp,并使用Fail2ban防御暴力破解。
四 部署与运维实践
- 全站HTTPS:使用Let’s Encrypt获取免费证书并自动配置,例如sudo apt install certbot python3-certbot-apache后执行sudo certbot --apache,强制HTTPS并开启HSTS。
- 持续更新与依赖管理:定期执行sudo apt upgrade php与composer update*,关注安全公告并及时修补。
- 日志与监控:启用并集中监控访问日志/错误日志,对异常请求与扫描行为进行告警与处置。
- 安全编码:使用预处理语句/参数化查询防止SQL注入;对输入进行严格校验与过滤;定期进行代码审计与安全扫描。
五 快速检查与生效
- 确认配置路径:按运行模式编辑对应php.ini(如**/etc/php/7.4/apache2/php.ini**、/etc/php/7.4/fpm/php.ini、/etc/php/7.4/cli/php.ini),避免改错实例。
- 重启服务使生效:
- Apache:sudo systemctl restart apache2
- PHP-FPM:sudo systemctl restart php7.4-fpm
- Nginx + PHP-FPM:sudo systemctl restart php7.4-fpm & & sudo systemctl restart nginx
- 验证要点:
- 响应头不应出现X-Powered-By: PHP/x.y.z;
- 访问不存在脚本应返回404而非PHP错误信息;
- 上传目录不应解析**.php**文件;
- 生产环境**phpinfo()**页面应移除或限制访问。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu PHP配置如何提升网站安全性
本文地址: https://pptw.com/jishu/773349.html
