在Debian系统上进行PHP安全设置,可以遵循以下步骤和建议:
sudo apt update && sudo apt upgrade -y
编辑php.ini文件:
屏蔽PHP错误输出,防止敏感信息泄露:
display_errors Off
error_reporting E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~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版本信息,防止在返回头中泄露PHP版本信息:
expose_php Off
关闭全局变量,减少脚本注入风险:
register_globals Off
限制PHP可以访问的系统目录,使用open_basedir:
open_basedir /var/www:/tmp
禁止远程资源访问,防止通过allow_url_fopen和allow_url_include发起攻击:
allow_url_fopen Off
allow_url_include Off
安装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
使用Apache:
配置Apache的配置文件以启用必要的模块和设置:
sudo cp /etc/php/8.2/fpm/pool.d/www.conf{,_bak}
sudo sed -i 's/^listen = .*/listen = 0.0.0.0:9000/' /etc/php/8.2/fpm/pool.d/www.conf
sudo sed -i -e "/pm.max_requests/s/;//" -e '/pm.max_requests/s/500/3000/' /etc/php/8.2/fpm/pool.d/www.conf
sudo sed -i '/pm.status_listen/s/;//' /etc/php/8.2/fpm/pool.d/www.conf
sudo sed -i '/pm.status_path/s/;//' /etc/php/8.2/fpm/pool.d/www.conf
sudo systemctl restart php8.2-fpm
使用Nginx:
确保在配置文件中正确设置了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/php8.2-fpm.sock;
}
}
iptables或其他防火墙工具限制访问权限,仅允许必要的端口(如HTTP、HTTPS和SSH)连接:sudo apt install iptables
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables-save
sudo systemctl restart iptables
sudo nano /etc/ssh/sshd_config
# 设置 PermitRootLogin no
# 设置 PasswordAuthentication no
sudo systemctl restart sshd
Logwatch或Fail2ban监控系统活动。通过以上步骤,可以显著提高Debian系统上PHP应用的安全性。建议定期审查和更新安全设置,以应对不断变化的安全威胁。