首页主机资讯centos环境下php-fpm安全配置指南

centos环境下php-fpm安全配置指南

时间2025-10-15 09:54:03发布访客分类主机资讯浏览854
导读:CentOS环境下PHP-FPM安全配置指南 1. 更新系统与PHP组件 确保系统和PHP及相关扩展为最新版本,修复已知安全漏洞: sudo yum update -y sudo yum install epel-release -y su...

CentOS环境下PHP-FPM安全配置指南

1. 更新系统与PHP组件

确保系统和PHP及相关扩展为最新版本,修复已知安全漏洞:

sudo yum update -y
sudo yum install epel-release -y
sudo yum install php php-cli php-fpm php-mysqlnd php-gd php-mbstring php-xml php-bcmath -y

2. 配置PHP-FPM以非root用户运行

编辑PHP-FPM池配置文件(通常为/etc/php-fpm.d/www.conf),修改以下参数:

  • 用户/组设置:将usergroup设置为非特权用户(如nginxapache,根据Web服务器调整);
  • 监听权限:设置listen.ownerlisten.group为相同用户/组,listen.mode0660(限制socket文件访问权限)。
    示例配置:
user = nginx
group = nginx
listen = /run/php-fpm/www.sock
listen.owner = nginx
listen.group = nginx
listen.mode = 0660

3. 限制PHP-FPM进程资源

通过pm(进程管理)参数控制PHP-FPM进程数量,避免资源耗尽:

pm = dynamic  # 动态进程管理模式
pm.max_children = 50  # 最大子进程数(根据服务器内存调整,如1GB内存建议30-50)
pm.start_servers = 5  # 启动时的子进程数
pm.min_spare_servers = 5  # 最小空闲进程数
pm.max_spare_servers = 35  # 最大空闲进程数
pm.max_requests = 1000  # 每个子进程处理1000个请求后重启(防止内存泄漏)

4. 禁用危险PHP函数

编辑/etc/php.ini,通过disable_functions禁用可能被恶意利用的函数:

disable_functions = exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source

5. 强化PHP错误处理

避免敏感信息泄露,配置错误日志记录:

display_errors = Off  # 生产环境关闭错误显示
log_errors = On       # 开启错误日志
error_log = /var/log/php_errors.log  # 日志路径(需确保目录可写)

6. 配置会话安全

编辑/etc/php.ini,增强会话防护:

session.cookie_httponly = On  # 防止XSS窃取cookie
session.cookie_secure = On    # 仅通过HTTPS传输cookie(需开启HTTPS)
session.cookie_samesite = Strict  # 限制cookie跨站发送
session.use_strict_mode = On  # 防止会话固定攻击

7. 限制文件上传安全

编辑/etc/php.ini,控制文件上传行为:

file_uploads = On           # 允许文件上传(如需禁用则设为Off)
upload_max_filesize = 2M    # 单个文件最大大小(根据需求调整,建议≤5M)
post_max_size = 8M          # POST数据最大大小(需大于upload_max_filesize)
max_file_uploads = 5        # 单次请求最多上传文件数

8. 配置防火墙限制访问

使用firewalld开放HTTP/HTTPS端口,限制对PHP-FPM端口(如使用Unix socket则无需开放TCP端口)的访问:

sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload

9. 启用HTTPS加密

使用certbot申请免费SSL证书,强制网站使用HTTPS:

sudo yum install -y certbot python3-certbot-nginx  # Nginx服务器
sudo certbot --nginx -d yourdomain.com  # 替换为你的域名

10. 监控与日志审计

定期检查PHP-FPM和PHP错误日志,监控异常行为:

# 查看PHP-FPM错误日志(路径取决于配置)
sudo tail -f /var/log/php-fpm/error.log
# 查看PHP错误日志
sudo tail -f /var/log/php_errors.log

11. 可选:使用SELinux增强安全

若系统启用SELinux,确保其处于enforcing模式,并配置PHP-FPM上下文:

sudo setenforce 1  # 开启SELinux
sudo vi /etc/selinux/config  # 确认SELINUX=enforcing
# 设置Web目录上下文(如/var/www/html)
sudo chcon -Rv --type=httpd_sys_rw_content_t /var/www/html

完成上述配置后,重启PHP-FPM和Web服务器(如Nginx)使更改生效:

sudo systemctl restart php-fpm
sudo systemctl restart nginx  # 或httpd(Apache)

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


若转载请注明出处: centos环境下php-fpm安全配置指南
本文地址: https://pptw.com/jishu/726716.html
如何监控centos上php-fpm的状态 centos上laravel队列怎么设置

游客 回复需填写必要信息