宝塔面板确实好用,半小时能装好一整套环境。但它的问题是:默认配置优先考虑「让你能装上」,而不是「让你安全」。
互联网上有大量专门扫描宝塔面板端口的机器人。默认端口、弱密码、开放的状态接口——这几个组合在一起,你的服务器等于在门口挂了个牌子。
下面这 9 项,是新装面板后必须立刻改的,按重要性排序。全部做完大约 30 分钟。
1. 改掉默认端口(最重要)
面板默认是 8888 端口(新版本可能随机)。扫描器每天都在全网扫 8888、888、2083 这些常见端口。
改法:面板 → 设置 → 面板端口,改成一个不常见的五位数端口,比如 38279 这种(别照抄,自己换一个)。
改完记得在云厂商的安全组里放行新端口——这一步忘了会导致你自己也进不去,很多人就卡在这。
顺序建议:先在安全组放行新端口 → 再改面板端口 → 用新端口登录确认能进 → 最后在安全组删掉旧端口规则。反过来做会把自己锁在外面。
2. 改掉默认用户名和密码
面板初始用户名经常是 admin 或者随机串,密码是安装时给的。随机串的用户名别改弱了,弱的必须改成强的。
面板 → 设置 → 修改面板用户 / 修改面板密码。
密码要求:16 位以上,字母大小写 + 数字 + 符号。用密码管理器生成,别自己编。
3. 开启面板 SSL + 绑定域名(可选但推荐)
默认用 http://IP:端口 访问,登录密码是明文传输的。在同一个 WiFi 下或者网络链路中被截获是可能的。
面板 → 设置 → 面板 SSL,可以申请 Let’s Encrypt 证书或者用自签证书。
更安全的做法:绑定一个只有你自己知道的三级域名(比如 bt-inner-8f3k.yourdomain.com),配合 SSL。这样连端口扫描都难找到入口。
4. 关闭面板的状态/接口外网访问
宝塔有一些用于监控的开放接口,历史上出过未授权访问漏洞。
检查:面板 → 设置 → 看看有没有「API 接口」「开放状态」之类的开关,不需要就关掉。
另外确认服务器防火墙只放行必要端口:80、443、改后的面板端口、SSH 端口。其他的(3306 数据库端口、6379 Redis 端口)绝对不要对公网开放。
5. 给 SSH 换端口 + 改用密钥登录
这是独立于宝塔的服务器层面设置,但同样重要。
改 SSH 端口
编辑 /etc/ssh/sshd_config:
Port 改成非 22 的端口 PermitRootLogin prohibit-password # 禁止 root 用密码登录 PasswordAuthentication no # 关闭密码登录(配好密钥之后)
顺序:先生成密钥、确认密钥能登录,再关密码登录。顺序反了你会把自己锁在服务器外面,只能靠云厂商的 VNC 救。
改完 systemctl restart sshd,然后立刻新开一个窗口测试能连上,别关掉当前连接。
6. 开启 SSH 失败锁定 / 装防暴力破解
宝塔软件商店里有 fail2ban 或者「Fail2ban 防爆破」插件,装上。它会自动封掉连续登录失败的 IP。
配置要点:
- SSH 失败 5 次封 1 小时
- 面板登录失败也纳入监控
7. 数据库禁止公网访问 + 改默认端口
MySQL 默认 3306。不要对公网开放 3306。
宝塔 → 安全 → 系统防火墙,确认 3306 没有放行规则。
如果确实需要远程连数据库(比如本地客户端管理),两种方式:
- SSH 隧道(推荐):通过 SSH 端口转发,不用开放数据库端口
- 放行 3306 但只针对你的 IP(你的公网 IP 会变的话不适用)
另外建议把 MySQL 端口也改掉,多一层没坏处。
8. 设置定期备份到异地
宝塔的备份功能默认可能没开,或者只备份到本机。本机备份在服务器整体故障时等于没有。
配置:面板 → 计划任务,添加:
- 备份网站:每周一次,保留最近 4 份
- 备份数据库:每天一次,保留最近 7 份
- 备份到对象存储:宝塔支持阿里云 OSS、腾讯云 COS、七牛、又拍。存储费用很低(几十 GB 通常几块钱一个月)
如果不想配对象存储,至少做到:备份文件定期手动下载到本地或另一台机器。
9. 关闭不必要的服务和端口
看看你的服务器上跑着什么:
netstat -tulnp
常见的不必要服务:
- Redis 监听 0.0.0.0:6379 —— 高危!Redis 未授权访问是挖矿木马的主要入口。改成只监听 127.0.0.1 并设密码
- Memcached 对公网开放 —— 同样危险,还可能被用于 DDoS 反射放大
- FTP 服务 —— 用 SFTP(走 SSH)就够了,不需要单独开 FTP
- 各种自己装了但忘了的服务
Redis 加固:
# 配置文件里 bind 127.0.0.1 requirepass 一个强密码
额外:几个容易被忽略的点
删掉默认站点和探针文件
宝塔装完可能有默认的 default 站点、phpinfo 探针、.user.ini 之类的文件。探针会暴露你的 PHP 版本和服务器详细信息,删掉。
WordPress 站点上删掉 readme.html
网站根目录的 readme.html 会直接暴露你的 WordPress 版本号。攻击者扫到版本就能针对性找漏洞。删掉它。
phpMyAdmin 别用默认路径
宝塔的数据库管理入口路径如果很显眼,改个名或者限制 IP 访问。
开启操作日志
面板 → 设置 → 开启操作日志。真出事的时候,能查到是谁在什么时候做了什么。
一份检查清单
装完面板后照着这个过一遍:
| 项 | 状态 |
|---|---|
| 面板端口已改为非默认值 | □ |
| 面板用户名/密码已改为强密码 | □ |
| 面板已开 SSL 或绑定隐蔽域名 | □ |
| SSH 端口已改 / 已用密钥登录 | □ |
| 已装 fail2ban | □ |
| 3306 / 6379 未对公网开放 | □ |
| Redis 已设密码且只监听本地 | □ |
| 已配置异地备份 | □ |
| 已删除探针 / readme.html | □ |
| 安全组只放行必要端口 | □ |
最后
这 9 项里,第 1、2、5 项是最重要的——改端口、改密码、SSH 密钥登录。这三项做完,就能挡掉 90% 的自动化攻击。
剩下的那些是纵深防御,做完更安心。
别觉得「我这个小站没人会盯上」。攻击是全自动扫描的,不针对你个人——它只是恰好扫到了你。你唯一要做的,就是别让自己成为那台最好打的目标。