🧱 宝塔 + Nginx + PHP 安全加固清单
🧾 一、系统层面加固
✅ 1. 系统更新
bash
复制
编辑
# Ubuntu / Debian
apt update && apt upgrade -y
# CentOS / RHEL
yum update -y
✅ 2. 修改SSH端口和配置
修改 /etc/ssh/sshd_config:
nginx
复制
编辑
Port 22222 # 替换默认22端口
PermitRootLogin no # 禁止root远程登录
PasswordAuthentication no # 强制使用密钥
重启 SSH 服务:
bash
复制
编辑
systemctl restart sshd
✅ 3. 启用防火墙(iptables 或 firewalld)
bash
复制
编辑
# iptables 示例(常见端口)
iptables -F
iptables -A INPUT -p tcp –dport 80 -j ACCEPT
iptables -A INPUT -p tcp –dport 443 -j ACCEPT
iptables -A INPUT -p tcp –dport 22222 -j ACCEPT
iptables -A INPUT -m conntrack –ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -P INPUT DROP
iptables-save > /etc/iptables.rules
✅ 4. 安装 Fail2Ban 防爆破
bash
复制
编辑
apt install fail2ban -y # 或 yum install fail2ban -y
systemctl enable fail2ban –now
📦 二、宝塔面板配置加固
✅ 1. 修改宝塔登录端口和路径
在面板 → 设置 → 安全中:
修改默认面板端口(8888 → 自定义);
开启 访问限制(如只允许指定 IP 登录);
启用双重验证(绑定手机 / 邮箱)。
✅ 2. 安装官方安全插件
安装并启用 免费防火墙(或专业防火墙);
开启:
拦截SQL注入;
文件上传检测;
拦截高危UA/参数;
自动封禁IP。
🌐 三、Nginx 安全配置
✅ 1. 隐藏服务器版本信息
编辑 /www/server/nginx/conf/nginx.conf:
nginx
复制
编辑
server_tokens off;
✅ 2. 拒绝危险文件访问
nginx
复制
编辑
location ~* \.(bak|inc|sql|mdb|php~|env)$ {
deny all;
}
✅ 3. 限制执行目录
仅允许 PHP 在 /www/wwwroot/yourdomain.com 下执行:
nginx
复制
编辑
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
# 限制执行路径
if ($document_root !~ “^/www/wwwroot/yourdomain.com”) {
return 403;
}
}
✅ 4. 开启 HTTPS 强制跳转
使用 Let’s Encrypt 证书,并在 HTTP 配置中加:
nginx
复制
编辑
return 301 https://$host$request_uri;
🐘 四、PHP 安全配置
✅ 1. 修改 php.ini 配置(所有版本)
路径:/www/server/php/*/etc/php.ini
ini
复制
编辑
expose_php = Off
allow_url_include = Off
display_errors = Off
disable_functions = exec,passthru,shell_exec,system,proc_open,popen,eval,assert,base64_decode,dl
open_basedir = /www/wwwroot:/tmp/ ; 限制可访问路径
✅ 2. 配置 session 存储到专用目录
bash
复制
编辑
mkdir /var/lib/php/session
chown -R www:www /var/lib/php/session
chmod 700 /var/lib/php/session
🛡 五、Web 应用安全建议
✅ 1. 删除或重命名 .env、.git、.svn 等开发文件
bash
复制
编辑
find /www/wwwroot -type f -name “.env” -exec rm -f {} \;
✅ 2. 使用 WAF(如宝塔防火墙/Cloudflare)防御 CC 和扫描攻击。
✅ 3. 强化上传接口:
校验扩展名;
检查 MIME 类型;
阻止双写(如 .php.jpg);
禁止上传目录执行权限(chmod 555)。
🕵️ 六、实时监控与告警
✅ 1. 日志监控脚本
使用之前提供的脚本分析 btwaf.log 并封 IP。
✅ 2. 接入告警服务(选配):
飞书/钉钉 webhook;
邮件告警(使用 mailx 或 sendmail);
Graylog + Filebeat + ELK。
🔁 七、定期巡检与备份
每周检查系统日志 /var/log/secure, /var/log/messages;
开启网站/数据库定期备份;
定期用工具扫描木马(如宝塔自带的木马查杀);
扫描开放端口:
bash
复制
编辑
netstat -tulnp
nmap -sS -Pn localhost
📋 总结(建议先执行顺序)
✔ 更新系统和关闭 SSH root;
✔ 加固 PHP 配置,禁用危险函数;
✔ 启用防火墙 + 宝塔免费防护;
✔ 配置 Nginx 拒绝 .bak/.env 等文件;
✔ 防火墙日志监控并封禁恶意 IP;
✔ 使用 HTTPS + 开启上传白名单;
✔ 定期备份与手动巡检。