商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > ubuntu下php-fpm如何进行安全加固

ubuntu下php-fpm如何进行安全加固

  发布于2026-07-27 阅读(0)

扫一扫,手机访问

在Ubuntu系统下部署PHP-FPM,安全加固这件事儿,说简单也简单,说复杂也有不少细节。很多新手往往只关注功能实现,却忽略了底层的安全防护,等到被入侵或日志里出现异常请求时才追悔莫及。下面这几条措施,算是行业内比较统一的“基本功”,按顺序执行下来,基本能挡住绝大部分常见攻击。

ubuntu下php-fpm如何进行安全加固

1. 更新系统和软件包

这步没什么好说的,老旧软件包里的已知漏洞是最容易被利用的入口。保持系统最新是最基本的安全习惯:

sudo apt update && sudo apt upgrade -y

2. 配置PHP-FPM用户和组

PHP-FPM必须用非特权用户运行,千万别用root。默认的www-data就够用,但得确认配置文件里确实指定了:

; /etc/php/7.x/fpm/pool.d/www.conf
user = www-data
group = www-data

3. 禁用不必要的PHP模块

攻击面这种东西,能少一个是一个。有些PHP函数在Web环境中压根用不上,直接禁用:

; /etc/php/7.x/cli/php.ini
disable_functions = exec,passthru,shell_exec,system

当然,具体禁哪些得根据你实际应用来定,但上面这几个基本是“安全黑名单”里的常客。

4. 配置文件权限

配置文件要是被随便改了,那前面所有加固都白搭。确保权限足够严格:

sudo chown root:root /etc/php/7.x/fpm/pool.d/www.conf
sudo chmod 644 /etc/php/7.x/fpm/pool.d/www.conf

5. 使用防火墙

PHP-FPM端口(默认9000)不该暴露给外网。用ufw限制一下,只允许本地或内网访问:

sudo ufw allow 9000/tcp
sudo ufw enable

注意,如果你用的是Nginx反向袋里,其实不需要对外暴露9000端口,改成只允许本机访问更安全。

6. 配置SELinux(如果适用)

Ubuntu默认用AppArmor而不是SELinux,但如果你手动启用了SELinux,可以进一步收紧权限。比如禁止PHP-FPM网络连接数据库等:

sudo setsebool -P httpd_can_network_connect_db 0
sudo setsebool -P httpd_enable_homedirs 0

对于大多数场景,这两个选项关了反而更安全。

7. 使用HTTPS

数据在传输过程中要是明文,那跟没穿衣服一样。用Let's Encrypt免费证书搞定HTTPS:

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

8. 日志监控

日志是安全事件的“第一现场”。定期看一眼PHP-FPM的错误日志,能发现不少异常尝试:

tail -f /var/log/php7.x-fpm.log

最好配合日志分析工具,手动翻太累。

9. 定期备份

安全加固做的再好,也怕万一。配置文件和网站数据定期打包,出问题能快速恢复:

sudo tar -czvf php-fpm-backup.tar.gz /etc/php/7.x/fpm /var/www/html

10. 使用安全模块

mod_security这样的Web应用防火墙模块,可以给PHP应用再加一层防护:

sudo apt install libapache2-mod-security2
sudo systemctl enable apache2-mod-security2

不过要注意,规则配置不当可能导致误拦截,需要根据实际业务调整。

11. 配置错误报告

生产环境最忌讳把错误信息直接抛给用户。关掉显示,只记录到日志文件:

; /etc/php/7.x/cli/php.ini
display_errors = Off
log_errors = On
error_log = /var/log/php_errors.log

12. 使用安全的PHP版本

老版本意味着老漏洞。尽量用最新的稳定版,并定期更新:

sudo apt install php7.x-fpm

(注意替换成你实际使用的版本号,比如8.1、8.2等)

以上这些措施,每一条都经历过真实攻击的考验。关键不在于一次做完,而在于形成习惯——每次更新系统、每次部署新应用,都把这些步骤过一遍。安全没有终点,只有持续加固的过程。

本文转载于:https://www.yisu.com/ask/18669235.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注