
类型:服务器管理面板
简介:基于Linux和Windows系统的网页控制面板,主要用于服务器管理、网站建设与运维
购买服务器后第一步不是安装宝塔面板,而是先写修改云厂商提供的root初始密码。很多人以为系统自动生成的随机密码够安全,但实际上这类临时密码可能在云平台控制台显示、邮件发送等环节存在泄露风险。接下来站长百科就来详细分享一期宝塔面板服务器SSH安全加固的操作方法。
第一步、修改root初始密码
拿到服务器后首要任务就是替换云厂商给的root初始密码。登录服务器后,在终端输入以下命令:
passwd
系统会提示你输入两次新密码,按要求操作即可:
Changing password for user root.
New password: (输入新密码)
Retype new password: (再输一次确认)
passwd: all authentication tokens updated successfully.(最后看到这个就成功了)
注意:
- 密码长度至少16位,且要包含大写字母、小写字母、数字和特殊字符;
- 不建议使用“123456”、“admin”、“Aa@123456”这类简单组合;
- 密码建议存在专业密码管理器里,不要记在笔记本或手机截图中,避免二次泄露;
- 不知道怎么编密码?用下面的命令能自动生成16位强密码:
< /dev/urandom tr -dc ‘A-Za-z0-9!@#$%^&*()_+=-‘ | head -c 16; echo
第二步、用SSH密钥登录
改完密码还不够,建议进一步启用SSH密钥登录,这是比密码更安全的方式。可以直接在宝塔面板里设置;如果暂时没装面板,也可以通过命令行操作。以下方式二选一即可:
方式一:通过宝塔面板设置
登录宝塔面板,在左侧菜单栏找到“安全”,点击进入“SSH管理”;
找到“SSH密码登录”选项,点击关闭;再开启“SSH密钥登录”功能;
开启后,点击“下载SSH密钥”,将密钥文件保存到自己的电脑。后续登录服务器时,用保存的SSH密钥即可,无需再输入密码。
方式二:通过命令行设置
先在自己的电脑生成SSH密钥,打开本地终端输入:
ssh-keygen -t ed25519 -C “你的邮箱”
生成密钥后,把公钥复制到服务器,输入:
ssh-copy-id root@你的服务器IP
复制完成后,登录服务器,编辑SSH配置文件:
vim /etc/ssh/sshd_config
在配置文件中找到以下两行,修改内容(如果行首有#注释,先删除#):
PermitRootLogin prohibit-password
PasswordAuthentication no
按Esc键,输入:wq保存并退出编辑;然后重启SSH服务,让配置生效:
systemctl restart sshd
重启完成进行测试,测试是否能使用密码登陆(预期不能)以及是否能正常使用密钥登陆。
第三步、安装fail2ban
就算用了密钥,也可能遇到黑客尝试暴力破解,这时就需要fail2ban工具,连续输错密码就会自动封禁IP。更多详情参考:《宝塔面板Fail2ban插件》。
同样两种设置方式,按需选择:
方式一:通过宝塔面板设置
登录宝塔面板,进入“软件商店”,在搜索框输入“Fail2ban”,找到后点击“安装”;
安装完成后,点击“设置”,首次使用需要手动点击“启动服务”;
服务启动后,点击“服务保护”,再点击“创建”,选择“SSH防爆破”;
配置参数:“最大重试次数”默认是30,建议改成5(输错5次就封禁,更安全);“SSH端口”默认是22,如果之前改过SSH端口,这里要填修改后的端口;
点击“保存”,fail2ban就会自动监控SSH登录。
方式二:通过命令行设置
根据自己的服务器系统,选择对应的命令安装fail2ban:
Debian/Ubuntu系统:
apt install fail2ban -y
CentOS系统(需要先启用EPEL源):
yum install fail2ban -y
安装完成后,创建fail2ban配置文件:
vim /etc/fail2ban/jail.d/sshd.local
在配置文件中粘贴以下内容,设置SSH防爆破规则:
[sshd]
enabled = true
maxretry = 5
bantime = 3600
保存退出后,重启fail2ban服务:
systemctl restart fail2ban
第四步、防火墙收口
服务器上的端口开得越多,风险越高。建议只开放必须用的端口,其他全部关闭。
常用必要端口:22(SSH,若改了端口就填新端口)、80(HTTP)、443(HTTPS)、宝塔面板端口(比如8888,具体看自己的面板设置);
设置方式:
若用宝塔面板,直接进入“安全”中的“防火墙”,勾选需要开放的端口,其他端口保持关闭;
也可以在云厂商控制台的“安全组”中设置,原理一样。只允许必要端口的访问,拒绝所有无关端口。
不用SSH或面板时,甚至可以暂时关闭22和面板端口,只保留80/443(业务端口),进一步减少被攻击的可能。
第五步:定期排查
安全不是一劳永逸的,要定期检查服务器状态,发现异常及时处理。
查看最近登录记录:在SSH或宝塔面板的终端中输入以下命令,查看最近20条登录记录,看看有没有陌生IP:
last -a | head -n 20
检查计划任务:
如果发现陌生IP登录或奇怪的计划任务,先给服务器做快照备份,再删除异常脚本,必要时联系云厂商或技术人员协助排查。
第六步:面板加固
SSH安全了,宝塔面板本身也要加固。建议开启“BasicAuth认证”,相当于在面板登录页前再加一道“暗门”,双重防护更安全。
操作步骤:
登录宝塔面板,在左侧菜单栏找到“设置”,点击进入“安全设置”;
找到“BasicAuth认证”选项,点击“开启”,仔细阅读开启后的说明;
设置BasicAuth的用户名和密码;
保存后,下次访问宝塔面板时,浏览器会先弹出BasicAuth的登录框。
















