在Debian系统上进行PHP安全设置,可以遵循以下步骤和建议:
sudo apt update && sudo apt upgrade -y
屏蔽PHP错误输出:
在 /etc/php.ini
文件中将 display_errors
设置为 Off
,并将错误日志写入日志文件。
display_errors = Off
error_reporting = E_ALL | E_NOTICE | E_STRICT | E_USER_NOTICE | E_USER_WARNING | E_USER_ERROR | E_USER_DEPRECATED | E_USER_NOTICE | E_STRICT | E_RECOVERABLE_ERROR | E_USER_纤维素 | E_USER_纤维素 | E_ALL
log_errors = On
error_log = /var/log/php_errors.log
屏蔽PHP版本信息:
将 expose_php
设置为 Off
,防止在返回头中显示PHP版本信息。
expose_php = Off
关闭全局变量:
将 register_globals
设置为 Off
,以减少脚本注入的风险。
register_globals = Off
限制文件系统访问:
使用 open_basedir
限制PHP可以访问的系统目录。
open_basedir = /var/www:/tmp
禁止远程资源访问:
将 allow_url_fopen
和 allow_url_include
设置为 Off
,以防止通过URL访问本地资源。
allow_url_fopen = Off
allow_url_include = Off
安装Suhosin扩展: Suhosin是一个PHP程序的保护系统,可以抵御各种攻击。
wget http://download.suhosin.org/suhosin-0.9.37.1.tar.gz
tar zxvf suhosin-0.9.37.1.tar.gz
cd suhosin-0.9.37.1
phpize
./configure --with-php-config=/usr/local/bin/php-config
make
make install
然后在 php.ini
文件中加入 extension=suhosin.so
。
/etc/nginx/sites-available/default
)正确设置,以支持PHP处理。server {
listen 80;
server_name example.com;
root /var/www/html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
}
iptables
或 ufw
配置防火墙,仅允许必要的端口(如HTTP、HTTPS和SSH)连接。sudo ufw enable
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 22/tcp
sudo ufw reload
sudo
命令提升权限。sudo useradd -m myuser
sudo usermod -aG sudo myuser
Logwatch
或 Fail2ban
监控系统活动。通过以上步骤,可以显著提高Debian系统上PHP应用的安全性。建议定期审查和更新安全设置,以应对新的安全威胁。