Linux下PHP-FPM安全配置指南
PHP-FPM(FastCGI Process Manager)是Linux环境下PHP应用的关键组件,其安全配置直接影响服务器整体安全性。以下是分步骤的安全加固措施:
定期更新系统和PHP-FPM是修复已知安全漏洞的首要步骤。使用包管理器(如apt)执行:
sudo apt update && sudo apt upgrade php-fpm php-cli
确保所有依赖包同步更新,避免因旧版本漏洞引发风险。
避免PHP-FPM以root身份运行,降低权限滥用风险。编辑PHP-FPM进程池配置文件(通常位于/etc/php/{版本号}/fpm/pool.d/www.conf),修改以下参数:
user = www-data
group = www-data
修改后重启服务使变更生效:
sudo systemctl restart php{版本号}-fpm
```。
### **3. 选择安全的监听方式(Unix Socket优先)**
- **Unix Socket**:相比TCP端口,Unix Socket仅限本地访问,更安全。修改配置文件中的`listen`指令:
```ini
listen = /run/php/php{版本号}-fpm.sock
确保Socket文件权限正确(属主为www-data,权限为755):
sudo chown www-data:www-data /run/php
sudo chmod 755 /run/php
127.0.0.1),并配置防火墙规则。通过进程池参数控制PHP-FPM的资源消耗,防止资源耗尽攻击:
pm = dynamic # 动态进程管理模式
pm.max_children = 50 # 最大子进程数(根据服务器内存调整,如2GB内存建议30-40)
pm.start_servers = 5 # 启动时的子进程数
pm.min_spare_servers = 5 # 最小空闲进程数
pm.max_spare_servers = 35 # 最大空闲进程数
合理配置可平衡性能与安全性。
php.ini(或fpm/php.ini)中禁用可执行系统命令的函数,防止恶意代码执行:disable_functions = exec,passthru,shell_exec,system,eval
allow_url_fopen和allow_url_include,防止远程文件包含攻击:allow_url_fopen = Off
allow_url_include = Off
expose_php,避免泄露PHP版本信息:expose_php = Off
display_errors = Off
log_errors = On
error_log = /var/log/php_errors.log
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
```。
通过open_basedir限制PHP脚本只能访问指定目录,防止非法访问系统文件:
open_basedir = /var/www/html/:/tmp/
多个目录用冒号分隔,确保包含网站根目录(如/var/www/html)和临时目录(如/tmp)。
使用ufw(Uncomplicated Firewall)限制对PHP-FPM的访问:
9000),仅允许必要IP(如本地127.0.0.1):sudo ufw allow from 127.0.0.1 to any port 9000/tcp
sudo ufw enable
同时,限制SSH(22/tcp)、HTTP(80/tcp)、HTTPS(443/tcp)等必要服务的访问。
开启慢日志可识别执行缓慢的脚本(可能被恶意利用),在进程池配置文件中添加:
request_slowlog_timeout = 10s # 超过10秒的请求视为慢请求
slowlog = /var/log/php-fpm/www-slow.log
定期检查慢日志,优化性能或排查异常。
sudo apt install selinux-basics selinux-policy-default
sudo setenforce 1
sudo apt install apparmor apparmor-utils
sudo aa-enforce /etc/apparmor.d/usr.sbin.php-fpm
根据实际需求调整策略。
www.conf、php.ini)的权限(属主应为root,权限为644),确保无未经授权的修改;通过以上步骤,可显著提升Linux环境下PHP-FPM的安全性,降低被攻击的风险。配置完成后,重启PHP-FPM服务使变更生效:
sudo systemctl restart php{版本号}-fpm