宝塔面板用户量非常大,所以容易被有心人盯上(这也是为啥关于宝塔安全的瓜比较多的原因)。我们安装宝塔之后首要的事情就是做好面板的安全设置。如果做好安全是设置呢,其实说白了就是。尽可能减少对外端口。创造内网环境。让nginx一个业务对外即可!
宝塔面板是基于服务器的WEB管理软件,面板权限几乎等同root权限,所以面板安全就是服务器安全, 守住面板入口是非常重要的一件事情。
而宝塔提供了非常多的安全设置来加强面板安全,下面就将一步步教你如何设置,打造出铜墙铁壁般零死角的宝塔面板!!
1、宝塔安装
如何安装就不说了,宝塔官方也有非常详细的教程,如果还不会可以看这篇:
如果你还没有宝塔,可以试试。(宝塔服务器面板,一键全能部署及管理,送你3188元礼包,点我领取https://www.bt.cn/?invite_code=MV9ub2NxdmI=)
2、修改面板默认8888端口
安装好面板第一步就是修改默认端口,隐藏面板。因为宝塔面板的默认端口是8888,很多时候看一个站点有没有使用宝塔面板只需要域名+8888访问就能知道!!
- 端口范围建议:8888 - 65535
- 有安全组的服务器请提前在安全组放行新端口(特别是华为云,金山云,腾讯云,aliyun,ulcoud这些)
3、设置面板安全入口
修改了端口不要以为有多安全,我们只要那么随便扫扫依旧是能扫到面板的端口的。这时候就需要给面板设置一个安全入口了,在不知道入口的情况下直接输入端口访问面板将被禁止访问是非常简单有效的一个安全措施,强烈建议设置开启此功能!!
其实宝塔很贴心的给我们设置了一个随机安全入口,具体修改如图:根据自己的需要修改,如果不会改就默认的也行。
设置好面板地址,不带安全入口将被拒绝访问。只有面板地址需带安全入口方可访问面板,拒绝访问如图:
3、面板别名
给面板设置一个别名,防止被搜索搜索引擎搜索到,用于隐藏面板!!
4、修改SSH默认的22端口
SSH默认的22端口以及宝塔默认的8888端口,而这两个端口可是暴力扫描高发区,所以我们都要修改,上面我们已经修改了8888端口,这一步,我们修改22端口。进入宝塔面板的"安全"选项,输入要修改的端口,点击更改即可!
注意:端口修改范围,1024 — 65535
我们看到SSH端口后面还有SSH安全管理,这里可以添加更为安全的设置,不过,修改一个默认端口方便快捷还简单,如果你还需要更安全,可以设置密钥登录。可以参考这篇文章:
Oracle Cloud云主机:Xshell配置ssh免密码登录-密钥公钥(Public key)
5、开启BasicAuth验证
其实经过是上面的几步设置,我们的面板已经基本安全了,但是依然挡不住被扫,所以我们开启BasicAuth验证,这样能够有效防止面板被扫,这样能够有效减少被机器识别为宝塔的情况发生!!
首先我们还是回到面板设置,点击配置 BasicAuth认证,开启服务状态,输入自己配置的用户名和密码,点击保存设置,刷新输入刚才设置的用户名密码验证生效~,关于在这个,大鸟写过教程,可以参考。
宝塔面板开启BasicAuth认证 以及阻断CSRF 攻击的功能
注意;设置好后请保管好自己的用户名密码。
6、“防呆”宝塔端口至域名+指定域名访问
一般的扫描大都是IP地址扫描,扫描范围以IDC的IP为主,所以我们可以禁止IP访问,将面板的访问入口改为域名访问,首先我们先新建一个站点,这个地方很简单就不多说了!!
注意,这一步极为重要,因为设置好后可以极大保护你的面板不被发现,大鸟之前写过极为详细的教程。可以参考:
宝塔面板绑定域名套上cloudflare – 实现cdn访问拯救你的IP
设置好后,就可以只用域名来访问了,额,教程演示的是用cf,国内的cdn没有用过,不过基本原理都差不多,可以参考着设置。
7、面板绑定IP访问
站长推荐使用域名挂上cdn来访问面板,这样访问面板就和打开一个网站一样简单,但是使用IP访问,也简单说下。
给面板绑定一个IP访问,访问面板时仅允许绑定的IP访问 是最有效的面板安全防护设置。但最有效的同时也是风险相对较大的,如果IP没有绑定好就意味着无法登陆面板,建议有固定稳定的IP,才考虑给面板绑定IP访问,具体绑定如图:
如果不是用绑定的IP访问即出现以下提示!
若想清理限制只能进入ssh取消限制!输入bt,13
8、其他的解决方法
以上的方法做好之后,你的面板应该是很安全的了,但是其他的解决方法应该也有很多。比如:
- 不用面板(非常高效的解决办法,但是会给日常维护带来困难)
- 使用跳板机,修改宝塔面板指定IP至跳板机(安全,但是需要网络配置较好的跳板机,成本较高)
- 用完就关闭面板(安全,但是麻烦)
本教程提供的方法都是简单易做的,但是为了安全,还要花费其他的成本,这就有点本末倒置了。
注意:如果你上述步骤的设置好之后,遇到无法打开面板的情况,请ssh连接至服务器使用bt命令能解锁大部分功能!
9、最后
文章开头也提到,尽可能减少对外端口。创造内网环境。让nginx一个业务对外即可!就有可能让安全最大化。比如说我只留了3个端口80 443 SSH端口!那么这样肯定是非常安全的。
但是我们用了面板之后,只要尽量把面板地址隐藏起来即可,这推荐用域名绑定,然后套上cdn来访问网址。当然网址访问,也不一定非要是解析的域名,可以直接在本地电脑的host里面设置一个映射关系即可。
可以通过修改hosts(C:\Windows\System32\drivers\etc\hosts)的访问指定域名ip,效果等同
这样也可以访问,不过不好接入cdn,而且还要机上端口访问,颇有不便,这个方法各位童鞋也可以试试。
如果有更好的安全设置的方法,不妨留言分享~~~~~~~~
参考:https://www.bt.cn/bbs/thread-48577-1-1.html