保持系统和PHP更新
定期运行sudo apt update && sudo apt upgrade -y命令,确保Debian系统及PHP软件包(如php-fpm、php-cli、php-mysql等)安装最新安全补丁,及时修复已知漏洞。
优化PHP核心配置
修改/etc/php.ini(或对应版本的php.ini,如/etc/php/8.2/fpm/php.ini)关键参数:
display_errors = Off,避免将数据库凭证、路径等敏感信息暴露给攻击者;启用log_errors = On并将error_log指向专用文件(如/var/log/php_errors.log),便于后续审计。expose_php = Off,防止HTTP响应头泄露PHP版本信息,减少针对性攻击风险。register_globals = Off(默认值,无需修改),避免用户输入自动注册为全局变量导致脚本注入;设置allow_url_fopen = Off、allow_url_include = Off,禁止通过URL访问远程资源,防范文件包含漏洞。open_basedir指定PHP可访问的目录(如open_basedir = /var/www/html:/tmp),防止非法访问系统敏感文件(如/etc/passwd)。安装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/bin/php-config # 根据实际php-config路径调整
make
sudo make install
编辑php.ini添加extension=suhosin.so,重启PHP服务(如sudo systemctl restart php8.2-fpm)使配置生效。
强化Web服务器配置
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock),并限制仅处理.php文件。mod_security模块(sudo apt install libapache2-mod-security2),配置OWASP核心规则集,防范SQL注入、XSS等常见攻击。配置防火墙限制访问
使用ufw(推荐)或iptables配置防火墙规则,仅允许必要端口:
sudo ufw enable
sudo ufw allow 80/tcp # HTTP
sudo ufw allow 443/tcp # HTTPS
sudo ufw allow 22/tcp # SSH
sudo ufw reload
避免开放不必要的端口(如FTP、Telnet),减少攻击面。
强化SSH与用户权限
/etc/ssh/sshd_config,设置PermitRootLogin no;启用SSH密钥认证(PasswordAuthentication no),替换密码登录,防止暴力破解。sudo useradd -m myuser && sudo usermod -aG sudo myuser),通过sudo执行特权命令,避免直接使用root账户。防范常见Web攻击
$stmt->prepare("SELECT * FROM users WHERE id = ?")),避免直接拼接SQL语句。htmlspecialchars()函数转义(如echo htmlspecialchars($user_input, ENT_QUOTES, 'UTF-8')),防止恶意脚本执行。$_SESSION['csrf_token']),验证请求合法性。定期审计与监控
Logwatch(sudo apt install logwatch)每日生成系统日志报告,或Fail2ban(sudo apt install fail2ban)自动封禁多次失败的登录尝试。lynis(sudo apt install lynis)扫描系统漏洞,或OpenVAS进行深度安全评估。