在Ubuntu上配置PHP-FPM(FastCGI Process Manager)时,确保其安全性是非常重要的。以下是一些关键的安全设置步骤,可以帮助你提高PHP-FPM的安全性:
首先,确保你的系统和所有软件包都是最新的:
sudo apt update
sudo apt upgrade
默认情况下,PHP-FPM可能以www-data用户和组运行。你可以根据需要更改这些设置,但通常建议保持默认设置以减少潜在的安全风险。
编辑PHP-FPM配置文件:
sudo nano /etc/php/7.x/fpm/pool.d/www.conf
找到以下行并进行修改:
user = www-data
group = www-data
在www.conf文件中,你可以限制PHP-FPM进程的数量,以防止资源耗尽攻击:
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
禁用不必要的PHP模块可以减少攻击面。编辑PHP配置文件:
sudo nano /etc/php/7.x/cli/php.ini
注释掉或删除不需要的模块:
;extension=gd
;extension=mysqli
使用ufw(Uncomplicated Firewall)来限制对PHP-FPM端口的访问:
sudo ufw allow 9000/tcp
sudo ufw enable
如果你使用的是SELinux或AppArmor,可以进一步限制PHP-FPM的权限。
安装SELinux并配置策略:
sudo apt install selinux-basics selinux-policy-default
sudo setenforce 1
安装AppArmor并配置策略:
sudo apt install apparmor apparmor-utils
sudo aa-enforce /etc/apparmor.d/usr.sbin.php-fpm7.x
定期更新PHP-FPM和相关软件包,以确保你拥有最新的安全补丁。同时,设置监控和日志记录,以便及时发现和响应潜在的安全事件。
确保你的网站使用HTTPS来加密数据传输。你可以使用Let’s Encrypt免费获取SSL证书:
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d yourdomain.com
通过以上步骤,你可以显著提高Ubuntu上PHP-FPM的安全性。记住,安全性是一个持续的过程,需要定期审查和更新配置。