开始输入,可搜索发票、服务、域名、工单,以及 更多...
宝塔面板让服务器管理变得简单,但面板本身也是攻击者最喜欢的目标之一:默认端口、弱密码、过期版本都可能导致服务器被入侵。本文整理了一套实用的宝塔面板安全设置方法,包括修改面板端口与安全入口、设置授权 IP、加固 SSH、及时更新以及关闭不需要的端口,适用于运行宝塔面板 / aaPanel 的 Debian/Ubuntu 与 CentOS/Rocky/AlmaLinux 服务器。
先选一个未被占用的高位端口(例如 23456),并在系统防火墙中提前放行。在 SSH 中检查端口是否空闲:
ss -tlnp | grep 23456
Debian / Ubuntu 放行新端口:
ufw allow 23456/tcp
CentOS / Rocky / AlmaLinux 放行新端口:
firewall-cmd --permanent --add-port=23456/tcp && firewall-cmd --reload
然后在宝塔面板“面板设置”中修改“面板端口”并保存;也可以在 SSH 中输入 bt,在菜单中选择“修改面板端口”对应的编号(各版本编号可能不同,以菜单显示为准)。修改完成后用新端口访问面板,确认可以登录。
安全入口是面板地址后面的一段路径,只有输入完整入口的人才能看到登录页。请在“面板设置”中把安全入口改成足够长的随机字符串(建议 12 位以上,字母数字混合),同时修改面板用户名,并设置 16 位以上的强密码。有条件的话,开启面板自带的“动态口令认证”(Google Authenticator 二次验证)和面板 SSL(HTTPS 访问面板),防止密码在传输中被窃听。修改后可以随时查看当前入口信息:
bt default
如果你的办公网络或家庭宽带是固定 IP,强烈建议在“面板设置”中填写“授权 IP”,只允许这些 IP 访问面板,其他来源一律拒绝。这是防止面板被暴力破解最有效的方式之一。
bt,选择“取消 IP 访问限制”对应的菜单项解除限制,然后重新设置。先在本地电脑生成密钥并上传到服务器(Windows 10/11 的 PowerShell 也自带 ssh-keygen):
ssh-keygen -t ed25519
ssh-copy-id [email protected]
确认可以用密钥免密登录后,编辑 /etc/ssh/sshd_config,修改或添加以下配置(端口以 22022 为例,修改前先在防火墙放行该端口):
Port 22022
PermitRootLogin prohibit-password
PasswordAuthentication no
MaxAuthTries 3
检查配置语法并重启 SSH(Debian / Ubuntu 服务名为 ssh,CentOS / Rocky / AlmaLinux 为 sshd):
sshd -t && systemctl restart ssh
sshd -t && systemctl restart sshd
Rocky / AlmaLinux 开启了 SELinux 时,需要先允许新端口:semanage port -a -t ssh_port_t -p tcp 22022。Ubuntu 22.10 及以上若使用 socket 激活,修改端口后还需执行 systemctl daemon-reload && systemctl restart ssh.socket。
最后安装 Fail2ban,自动封禁反复尝试登录的 IP:
apt install -y fail2ban
dnf install -y epel-release && dnf install -y fail2ban
创建 /etc/fail2ban/jail.local,写入以下内容后执行 systemctl enable --now fail2ban:
[sshd]
enabled = true
port = 22022
maxretry = 5
bantime = 3600
宝塔面板“安全”菜单中也可以直接修改 SSH 端口并关闭密码登录,效果相同。
宝塔面板和系统组件的漏洞会定期被修复,请养成定期更新的习惯。面板首页出现更新提示时及时点击更新;系统层面执行:
apt update && apt upgrade -y
dnf update -y
同时只安装确实需要的插件与软件,不再使用的插件(如 phpMyAdmin、FTP)建议停用或卸载,减少攻击面。
查看服务器当前对外监听的端口,逐一确认是否必须:
ss -tlnp
通常只需对外开放 80、443、SSH 端口和面板端口。MySQL 的 3306、Redis 的 6379 等数据库端口不应对公网开放。修改面板与 SSH 端口后,记得删除旧端口的放行规则:
ufw delete allow 8888/tcp
ufw delete allow 22/tcp
firewall-cmd --permanent --remove-port=8888/tcp && firewall-cmd --reload
也可以在宝塔面板“安全”菜单中统一管理放行端口,删除不需要的规则。
多半是新端口没有在系统防火墙中放行。通过 SSH 或 VNC 控制台放行新端口,或在 bt 菜单中把端口改回原值。
说明密钥没有正确配置。请通过 VNC 控制台登录,把 PasswordAuthentication 临时改回 yes 并重启 SSH,重新上传公钥后再关闭。
如果平时很少使用面板,可以在不使用时用 /etc/init.d/bt stop 停止面板,需要时再启动,进一步降低风险(网站不受影响)。
如在安全设置过程中遇到问题或怀疑服务器已被入侵,请提交工单联系 IMIDC 7×24 技术支持,我们会协助排查。