网站运维

宝塔面板装完必须改的 9 个设置:默认配置有多危险

宝塔面板确实好用,半小时能装好一整套环境。但它的问题是:默认配置优先考虑「让你能装上」,而不是「让你安全」。

互联网上有大量专门扫描宝塔面板端口的机器人。默认端口、弱密码、开放的状态接口——这几个组合在一起,你的服务器等于在门口挂了个牌子。

下面这 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% 的自动化攻击。

剩下的那些是纵深防御,做完更安心。

别觉得「我这个小站没人会盯上」。攻击是全自动扫描的,不针对你个人——它只是恰好扫到了你。你唯一要做的,就是别让自己成为那台最好打的目标。