首页主机资讯ubuntu下php-fpm安全设置有哪些

ubuntu下php-fpm安全设置有哪些

时间2025-10-27 14:49:04发布访客分类主机资讯浏览886
导读:1. 更新系统与PHP-FPM至最新版本 定期执行sudo apt update && sudo apt upgrade -y,确保Ubuntu系统、PHP核心及PHP-FPM组件为最新版本,及时修复已知安全漏洞。 2. 配...

1. 更新系统与PHP-FPM至最新版本
定期执行sudo apt update & & sudo apt upgrade -y,确保Ubuntu系统、PHP核心及PHP-FPM组件为最新版本,及时修复已知安全漏洞。

2. 配置PHP-FPM以非特权用户/组运行
编辑PHP-FPM进程池配置文件(路径通常为/etc/php/{ version} /fpm/pool.d/www.conf),将usergroup设置为非root用户(如www-data),降低权限滥用风险。

3. 限制PHP-FPM进程数量
www.conf中调整进程管理参数,避免过多进程消耗系统资源:

  • pm = dynamic(动态进程管理模式);
  • pm.max_children(最大子进程数,根据服务器内存调整,如50);
  • pm.start_servers(启动时的子进程数,如5);
  • pm.min_spare_servers(最小空闲进程数,如5);
  • pm.max_spare_servers(最大空闲进程数,如35);
  • pm.max_requests(每个进程处理的最大请求数,如500,防止内存泄漏积累)。

4. 配置监听地址与权限
修改www.conf中的listen指令,优先使用Unix socket(如/run/php/php{ version} -fpm.sock)替代TCP端口(如127.0.0.1:9000),减少网络暴露风险;若使用socket,需设置正确权限:

sudo chown www-data:www-data /run/php/php{
version}
-fpm.sock  
sudo chmod 755 /run/php/php{
version}
    -fpm.sock  
```。  

**5. 禁用危险函数与限制文件访问**  
- 在`php.ini`中禁用高危函数(如`exec`、`system`、`passthru`、`shell_exec`),防止恶意代码执行:  
  ```ini
  disable_functions = exec,passthru,shell_exec,system
  • 使用open_basedir限制PHP脚本可访问的目录(如/var/www/html/:/tmp/),避免访问敏感系统文件。

6. 关闭错误显示与配置日志

  • php.ini中关闭错误显示(防止敏感信息泄露):
    display_errors = Off  
    
  • 开启错误日志记录(便于排查问题):
    log_errors = On  
    error_log = /var/log/php-fpm/error.log  
    
  • www.conf中开启慢日志(监控性能瓶颈与潜在攻击):
    request_slowlog_timeout = 10s  
    slowlog = /var/log/php-fpm/www-slow.log  
    ```。  
    
    

7. 配置防火墙限制访问
使用ufw(Uncomplicated Firewall)限制对PHP-FPM端口的访问:

  • 若使用TCP端口(如9000),执行:
    sudo ufw allow 9000/tcp  
    
  • 若使用Unix socket,无需额外防火墙规则(仅本地访问);最后启用防火墙:
    sudo ufw enable  
    ```。  
    
    

8. 使用SELinux或AppArmor增强权限控制

  • AppArmor(Ubuntu默认启用):编辑PHP-FPM的AppArmor配置文件(/etc/apparmor.d/usr.sbin.php-fpm),添加或修改规则限制其访问路径(如/var/www/html/),然后强制执行:
    sudo aa-enforce /etc/apparmor.d/usr.sbin.php-fpm  
    
  • SELinux:若启用SELinux,设置适当的布尔值(如httpd_can_network_connect_db)限制网络访问,或创建自定义策略。

9. 定期监控与日志审计
定期检查PHP-FPM日志文件(/var/log/php-fpm/error.log/var/log/php-fpm/www-slow.log),使用工具(如fail2ban)监控异常进程(如频繁崩溃的进程),及时发现并处理潜在攻击。

10. 启用HTTPS加密传输
使用Let’s Encrypt免费获取SSL证书,配置Nginx/Apache启用HTTPS,加密客户端与服务器之间的数据传输,防止中间人攻击:

sudo apt install certbot python3-certbot-nginx  
sudo certbot --nginx -d yourdomain.com  
```。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: ubuntu下php-fpm安全设置有哪些
本文地址: https://pptw.com/jishu/735733.html
PHP在Ubuntu上如何进行分布式部署 ubuntu中php-fpm进程数设置多少合适

游客 回复需填写必要信息