温馨提示×

如何保护debian php

小樊
36
2026-10-11 00:39:36
栏目: 编程语言

保护运行在 Debian 上的 PHP 环境,需要从系统层、PHP 本身、Web 服务器、应用代码、运维习惯几个层面来做。下面是一套比较实用、可落地的做法。


一、系统层面

1. 保持系统更新

sudo apt update
sudo apt upgrade -y

定期更新 Debian 和 PHP 相关包,修复已知漏洞。

2. 使用官方/稳定源

  • 使用 Debian 官方仓库
  • 如需要新版本 PHP,可使用 deb.sury.org(知名 PHP 维护源)

3. 最小化安装

  • 不装不需要的 PHP 模块
  • 示例:
apt install php-fpm php-cli

而不是 php-all


二、PHP 安全配置(非常重要)

编辑 PHP 配置文件(通常是):

/etc/php/*/fpm/php.ini
/etc/php/*/cli/php.ini

关键安全项

expose_php = Off
display_errors = Off
log_errors = On
allow_url_fopen = Off
allow_url_include = Off
enable_dl = Off
disable_functions = exec,passthru,shell_exec,system,proc_open,popen

如应用确需某些函数,再按需放开。

文件上传安全

file_uploads = On
upload_max_filesize = 2M
post_max_size = 8M

三、PHP-FPM 安全

1. 使用独立用户

user = www-data
group = www-data

避免 PHP 以 root 运行。

2. 限制 FPM 池

  • 每个站点一个 pool
  • 限制资源:
pm = dynamic
pm.max_children = 20

四、Web 服务器(Nginx / Apache)

Nginx 示例

  • 禁止访问敏感文件
location ~ /\. {
    deny all;
}
location ~ \.(php|php5)$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php-fpm.sock;
}

Apache

  • 禁用目录浏览
Options -Indexes

五、文件与权限

推荐权限

chown -R www-data:www-data /var/www/html
find /var/www/html -type d -exec chmod 755 {} \;
find /var/www/html -type f -exec chmod 644 {} \;

禁止写执行目录

  • uploads/ 等目录禁止执行 PHP

六、应用层防护

  • 使用框架(Laravel / Symfony)
  • 防 SQL 注入(PDO / 预处理)
  • 防 XSS(输出转义)
  • 防 CSRF(Token)
  • 输入校验 + 白名单

七、防火墙 & 网络

ufw allow 22
ufw allow 80
ufw allow 443
ufw enable

如非必要:

  • 不开放 PHP-FPM 端口
  • 不暴露 phpMyAdmin

八、监控与日志

  • 开启 PHP 错误日志
  • 使用 fail2ban
  • 定期检查:
/var/log/php-fpm.log
/var/log/nginx/access.log

九、进阶(可选)

  • SELinux / AppArmor
  • 容器化(Docker)
  • WAF(如 ModSecurity)
  • 定期安全扫描(lynis)

如果你能说明:

  • Debian 版本
  • PHP 版本
  • Nginx 还是 Apache
  • 是否生产环境

我可以给你一套更精确的安全配置示例。

0 踩