保持系统和软件包最新
定期运行sudo apt update && sudo apt upgrade命令,确保Debian系统、PHP核心及扩展(如PHP-FPM、Apache/Nginx模块)安装最新安全补丁,及时修复已知漏洞。
优化PHP配置文件(php.ini)
display_errors设为Off,避免敏感信息(如数据库凭证、服务器路径)通过错误页面泄露;启用log_errors并将日志路径设置为/var/log/php_errors.log(需创建目录并赋予权限sudo chown www-data:www-data /var/log/php_errors.log)。expose_php = Off,防止HTTP响应头中暴露PHP版本,减少针对性攻击。register_globals(防止全局变量注入)、allow_url_fopen/allow_url_include(阻止通过URL访问远程文件,防范文件包含漏洞)。open_basedir指定PHP可访问的目录(如/var/www:/tmp),隔离Web应用与系统关键目录。wget http://download.suhosin.org/suhosin-0.9.37.1.tar.gz,依次执行tar zxvf、phpize、./configure、make、make install),在php.ini中添加extension=suhosin.so,增强PHP防注入、防缓冲区溢出能力。配置Web服务器安全
mod_security模块(sudo a2enmod security2),配置规则过滤恶意请求;确保AllowOverride None(禁用.htaccess覆盖关键配置),减少攻击面。fastcgi_pass unix:/var/run/php/php8.2-fpm.sock),而非TCP端口;设置pm.max_requests = 3000(定期重启PHP进程,防止内存泄漏);禁用不必要的HTTP方法(如limit_except GET POST { deny all; })。强化防火墙与网络隔离
使用ufw(Uncomplicated Firewall)限制入站流量,仅允许HTTP(80/tcp)、HTTPS(443/tcp)和SSH(22/tcp)端口:sudo ufw allow 80/tcp && sudo ufw allow 443/tcp && sudo ufw allow 22/tcp && sudo ufw enable;若使用云服务器,还需配置安全组规则,阻断非必要IP段的访问。
提升SSH与用户权限安全
/etc/ssh/sshd_config,设置PermitRootLogin no;PasswordAuthentication设为no,使用ssh-keygen生成密钥对并将公钥添加至~/.ssh/authorized_keys;sudo useradd -m myuser && sudo usermod -aG sudo myuser),避免直接使用root账户操作。定期审计与监控
/var/log/auth.log(SSH登录记录)、/var/log/php_errors.log(PHP错误日志),识别异常登录或代码注入尝试;Fail2ban(sudo apt install fail2ban)自动封禁多次失败的SSH/HTTP请求;使用Logwatch生成每日安全报告(sudo logwatch --service=ssh --service=apache2 --output mail)。