1. 普通站点开启SSL加密并强制使用HTTPS
多一层加密总没错
- SSL证书可以用Let's Encrypt生成,记得打开
强制HTTPS
2. 禁止使用IP访问站点
配合整站CDN可以避免暴露服务器IP,保护服务器安全
-
添加一个静态站点,域名解析可以不加
-
设置为默认站点
-
删除站点根目录下的
404.html
和index.html
,用不着。 -
打开 【站点设置->SSL】创建一个自签名SSL证书
因为这个网站以后无法被访问,没必要使用正常的证书,所以使用自签证书以便于接管443端口的流量
(不然使用https://IP
仍然能访问到你的网站,因为没有证书默认不能接管443端口的流量)
- 可以使用openssl生成,也可以在线生成
- 生成以后选择
其他证书
,把自签证书粘贴进去,强制HTTPS
没必要开
- 打开 【站点设置->配置文件】
- 在如图位置加上
return 444;
444代表服务器无响应,实际上浏览器也不会收到任何内容
- 效果
- 80端口HTTP协议:
- 443端口HTTPS协议:
这样就避免了他人用恶意的域名解析你的网站,IP访问和非绑定的域名都不会得到响应,隐匿程度++
3. 反代面板,使用SSL加密,禁用面板端口
虽然面板也可以使用自签证书,但是……(我就是爱折腾)
-
添加一个静态站点,并设置域名解析
-
打开【站点设置->SSL】添加证书
- SSL证书可以用Let's Encrypt生成,记得打开
强制HTTPS
- 打开【站点设置->反向代理】
- 添加一条反代规则,【目标URL】填
http://127.0.0.1:[面板端口]
记得修改成当前使用的端口,默认是8888
- 关闭面板自带的BasicAuth认证(提示信息会暴露服务器IP)
- 码掉的是服务器的IP,话说就不能自定义消息内容的吗
- 关闭自带的BasicAuth认证
- 创建用户名-密码文件
- 命令行下输入,最后一行的
chrxw_com
可以自己取名,记得把下面的chrxw_com
改成一样就行。yum -y install httpd-tools cd /www/server/nginx mkdir basicauth chmod 755 basicauth cd basicauth htpasswd -c chrxw_com [BasicAuth用的用户名,不是宝塔面板的用户名]
- 输入密码,生成密码文件
- 修改文件权限
chmod 644 chrxw_com
文件名可以自己修改,下面的路径也改成对应的就行
- 打开【站点设置->反向代理->配置文件】
- 添加以下内容到红框处
#提示消息可以自定义,但是使用中文和特殊符号貌似会乱码 auth_basic "need to login in first"; auth_basic_user_file /www/server/nginx/basicauth/chrxw_com; autoindex on;
- 绑定面板IP和域名
请先确保你能使用设定的域名访问宝塔面板
请先确保你能使用设定的域名访问宝塔面板
请先确保你能使用设定的域名访问宝塔面板
如果不行说明有步骤错了请从头来过
- 域名填刚刚创建的站点的域名,IP填
127.0.0.1
,即只允许本机访问
因为设置了反向代理,所以可以使用域名访问面板
如果使用IP:端口来访问宝塔面板会提示IP未被授权
- 关闭宝塔面板端口
- 查看开放的端口
firewall-cmd --list-all
- 删除面板端口
firewall-cmd --zone=public --remove-port=[面板端口]/tcp --permanent firewall-cmd --zone=public --remove-port=[面板端口]/udp --permanent
- 重载防火墙规则
firewall-cmd --reload
开放端口-1,安全性+1
本文链接:https://blog.chrxw.com/archives/2019/10/16/393.html
转载请保留本文链接,谢谢