本文最后更新于10 天前,其中的信息可能已经过时,如有错误请发送邮件到1165589539@qq.com
服务器一旦搬上公网,最先找上门的往往不是用户,而是各种扫描器。宝塔面板因为上手简单、默认配置对新手友好,也更容易成为被爆破、被提权的目标。这篇教程从「面板入口」一路讲到「系统、SSH、网站、数据库」,给出 10 项可以立刻落地的加固配置,帮你用最小的成本把风险挡在门外。
一、先改面板入口:端口、安全入口、绑定域名
宝塔面板的默认端口是 8888(部分环境安装时会随机生成),而访问路径也很容易被猜。建议三步走:
- 修改面板端口:在「面板设置」中,把面板端口改成不常用的高端口,例如 23456。
- 设置安全入口:开启后,面板访问会带上一段随机路径,直接访问 IP 会返回 404,能挡掉大量扫描。
- 绑定访问域名(可选但推荐):只允许通过你自己的域名访问面板,进一步缩小暴露面。
改完记得在防火墙放行新端口、关闭旧端口,并重启面板服务。
二、开启面板 SSL 与登录保护
- 面板 SSL:开启后通过 HTTPS 访问面板,避免登录密码在明文信道中传输。
- 定期查看日志:面板会记录操作日志与登录日志,出现问题可以回溯到具体操作。
- 开启告警通知:在「面板设置 → 通知设置」中配置邮件/微信/短信提醒,异常登录能第一时间收到通知。
三、账号与密码
- 面板密码、SSH 密码、数据库密码不要复用,一个泄露不要牵连全部。
- 使用 12 位以上、包含大小写字母、数字与符号的强密码,或者直接使用随机密码并妥善保存。
- 定期轮换密码,尤其是怀疑泄露之后。
四、SSH 加固(重点)
SSH 是入侵者最爱的入口,也是加固收益最高的一环。建议修改 /etc/ssh/sshd_config:
Port 22222 # 修改默认端口
PermitRootLogin prohibit-password # 禁止 root 使用密码登录
PasswordAuthentication no # 关闭密码登录,改用密钥
PubkeyAuthentication yes # 启用公钥认证
配合密钥登录:本地生成密钥对,把公钥写入服务器的 ~/.ssh/authorized_keys,并把该文件权限设为 600、.ssh 目录设为 700。再安装 fail2ban 自动封禁暴力破解的 IP:
# Debian / Ubuntu
apt install fail2ban
# CentOS / RHEL
yum install fail2ban
安装后可在 /etc/fail2ban/jail.local 中确认 [sshd] 防护已启用(enabled = true),再重启 fail2ban 服务生效。
⚠️ 提醒:修改 SSH 配置后,务必先新开一个会话测试能否登录,确认无误再断开当前连接,否则可能把自己锁在服务器外面。
五、端口与防火墙
- 云厂商安全组:只放行 80、443 和必要的 SSH 端口,其余一律关闭。
- 系统防火墙:在宝塔「安全」页面同样只放行必要端口。
- 定期清理:卸载不用的软件后,及时关掉它占用的监听端口。
六、网站层防护
- PHP 禁用危险函数:在 PHP 配置中禁用
exec、system、shell_exec、passthru、popen、proc_open等(按网站程序的实际需要酌情删减)。注意eval属于语言结构,无法通过disable_functions关闭。 - 防跨站攻击:为每个站点开启 open_basedir,限制 PHP 只能访问站点自身目录。
- 安装 Nginx 防火墙:宝塔应用商店中的免费防火墙可以拦截常见 Web 攻击与 CC 攻击。
- CMS 及时更新:WordPress 及其插件、主题保持最新版本,删除不再使用的插件与主题。
七、数据库加固
- MySQL 不要对公网开放 3306 端口,只允许本地或指定 IP 连接。
- 为每个站点使用独立的数据库账号,遵循最小权限原则。
- 数据库密码同样使用强随机密码,并定期更换。
八、备份与更新:最后一道防线
- 用宝塔的「计划任务」定时备份网站文件和数据库。
- 把备份同步到异地,例如对象存储或另一台服务器,避免单点故障。
- 定期更新面板、系统与各类软件,及时修补已知漏洞。
九、日志与监控
- 开启面板的「日志」与「监控」功能,关注 CPU、内存、带宽的异常波动。
- 定期查看 Nginx 访问日志,识别异常扫描与攻击痕迹。
总结:一份可直接执行的加固清单
- 修改面板端口 + 开启安全入口 + 绑定域名
- 开启面板 SSL 与登录保护
- 使用强密码并定期轮换
- SSH 改端口、关闭密码登录、使用密钥 + fail2ban
- 云安全组只放行必要端口
- 系统防火墙:精简放行端口
- PHP 禁用危险函数 + 开启 open_basedir
- 安装 Nginx 防火墙 / WAF
- 数据库不对公网开放
- 定时备份 + 异地容灾 + 及时更新
安全没有一劳永逸,只有持续加固。把这 10 项做完,你的服务器就已经挡掉了绝大多数自动化扫描和低水平攻击。祝你折腾顺利~
📌 说明:宝塔面板不同版本之间的菜单名称与位置可能略有差异(例如面板端口、安全入口等设置的入口会随版本调整),请以你当前面板版本的实际菜单为准;SSH、防火墙等系统层配置与面板版本无关,不受此影响。
