在Ubuntu下对php-fpm进行安全加固是一个重要的过程,可以提高服务器的安全性和稳定性。以下是一些关键步骤和建议:
确保系统和所有软件包都是最新的,以修复已知的安全漏洞:
sudo apt update
sudo apt upgrade
安装php-fpm及其必要的扩展:
sudo apt install php-fpm php-mysql
编辑php-fpm的主要配置文件 /etc/php/{version}/fpm/php.ini
,进行以下配置:
memory_limit 256M
防止单个脚本消耗过多内存。upload_max_filesize 10M
防止大文件上传。disable_functions eval, exec, system
防止执行恶意代码。doc_root /var/www/html
确保网站文件存储在非Web根目录下。编辑php-fpm的进程管理配置文件 /etc/php/{version}/fpm/pool.d/www.conf
,进行以下配置:
user
和 group
设置为非root用户和组,例如 user www-data group www-data
。listen
配置项。pm.max_children
(最大子进程数)、pm.start_servers
(启动时的子进程数)等参数。编辑Nginx的配置文件 /etc/nginx/conf.d/default.conf
,添加以下配置段:
location \.php {
include fastcgi_params;
fastcgi_pass unix:/var/run/php/php{version}-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME document_root ${document_root}${fastcgi_script_name};
}
重启php-fpm和Nginx服务以应用更改:
sudo systemctl restart php{version}-fpm
sudo systemctl restart nginx
配置防火墙允许外部访问php-fpm(如果需要):
sudo ufw allow 'Nginx Full'
如果使用SELinux或AppArmor,确保它们不会阻止php-fpm的正常运行。可能需要设置适当的策略。
定期检查系统和软件包的安全性,并进行更新:
sudo apt update
sudo apt upgrade