使用checkbot检测
checkbot是一个Chrome插件,可以检测安全,下载地址:https://www.checkbot.io/,如果有安全问题,会有如下提示:
修复clickjack protection, XSS Protection的安全问题:
解决方法:安装HTTP Headers插件,然后按照图中配置
X-Frame-Options:SAMEORING
X-XSS-Protection: 选择 mode=block
X-Content-Type-Options: nosniff
Strict-Trasport-Security: 选择includeSubDomains,Prload,Max-Age选择1年。
配置成功以后,可以继续使用Checkbot测试一下,或者使用浏览器的开发模式自己检查一下Header。
宝塔面板的配置
关闭无用的端口
比如FTP不用的话,就关闭掉。检查其余端口,不需要的不要放行。
步骤:宝塔后台——>安全——>放行端口这个地方,删除FTP的端口。
开启防火墙
搜索“免费防火墙”,可以看到一个Nginx免费防火墙,然后安装。
Nginx免费防火墙:
Nginx免费防火墙配置:
初级防御:开启CC防御和常见扫描器防御,一般不会影响到网站的功能。
高级防御:开启GET-URL过滤,开启GET-参数过滤,开启POST过滤,开启User-Agent过滤,开启常见扫描器。禁止海外访问一定要注意,如果面向国外的电商站,一定不要勾选这个,否则国外客户就访问不了了。
注意:这一步措施执行后,一定要测试一下自己的站,如果遇到Elementor不能使用,爬虫不能爬取等,就先不要开启了。
PHP组件安装bt_safe插件防止跨站攻击
PHP文件配置
关闭php-display errors
步骤:在宝塔面板中,找到PHP,然后打开管理面板,点击”配置文件“,搜索”display_erros”,这个地方改为Off,display_erros=Off。
改完以后,在服务这个位置“重启一下PHP服务器”。
如何检测PHP配置信息是否正确?
可以使用php-info这个界面去看配置是否成功
在管理界面的左下角,有一个phpinfo,然后点击“查看phpinfo()”,就会出来一个信息界面,在这个界面中去搜索自己的配置,就能看到对应的结果。
WordPress后台配置
安装“Wordfence防火墙”插件
很出名的一个WordPress防火墙插件,可以屏蔽一些登录尝试等。免费版就可以预防,配置好邮件通知,会经常通知你。
安装WPS Hide Login插件
这个插件可以更改WordPress后台登录地址。登录WordPress后台,点击设置,选择WPS Hide Login,然后在登录地址这个地方,填写自己期望的地址,点击保存,下次登录的时候就会使用这个新地址才能登录后台。这样可以防止一些针对WordPress登录的暴力破解。
CloudFlare的安全配置
开启CloudFlare的UnderAttack模式.
遇到攻击的时候开启,这样访问网站的时候就会遇到一个质询页面。俗称5秒盾。
步骤:进入https://dash.cloudflare.com/,选择域名,点击概述,就在右侧有一个“Under Attack模式”,点击开启即可,攻击结束以后,可以关闭这个模式。关闭的时候会让你选择安全等级,默认是“中”。
CloudFlare设置防火墙规则,过滤访问wp-login.php和xmlrpc.php。
打开Cloudflare,点击防火墙,点击防火墙规则。
创建防火墙规则。
字段选择URL路径,运算符选择“包含”,值填写“wp-login.php”。后面选择OR。
然后字段继续选择URL路径,运算符选择包含,值填写xmlrpc.php。
操作选择:JS质询或者质询(Captcha)
如图:
CloudFlare设置HSTS
CloudFlare说:HTTP 严格传输安全 (HSTS),对您的网站强制执行 Web 安全策略。
注意:一定要把网址启用SSL以后再配置这个,否则会导致网站不可用。
配置步骤:CloudFlare首页—>SSL/TLS—>边缘证书—>HTTP 严格传输安全 (HSTS),然后点击更改HSTS设置。
- 启用 HSTS (Strict-Transport-Security):勾选上。
- 最长期限标头 (max-age)选择推荐的6个月。
- 将 HSTS 策略应用于子域 (includeSubDomains):如果没有二级域名的话,可以勾选。或者二级域名都已经启用SSL,也可以勾选。如果有的域名没有启用SSL,勾选了这个会导致二级域名无法访问。
- 预加载:勾选上。
- 无嗅探标头:勾选上。
宝塔默认网站的设置
1. 防止其余域名解析到你的IP上
防止别人的域名解析到你的IP上,比如你的IP是8.8.8.8,那么别人在域名中配置A记录为8.8.8.8,就会镜像到你的网站上。如果使用的是宝塔的话,那么宝塔会有一个默认设置,如下图所示:
直接在浏览器中输入http://8.8.8.8(请将8.8.8.8替换为自己的IP),应该会有如下反应:
2. 防止网站的SSL证书暴露域名
使用https访问可以获取IP对应的域名
我们输入https,双斜杠加上IP的时候,就会看到如上结果,这个时候就会显示“它的安全证书来自xxxxx.com”,这个时候就暴露了这个证书是来自这个域名的了。
例如,输入:https://8.8.8.8,会看到如下结果:
如何解决https证书暴露域名的问题?
步骤:设置一个假的网站,将其设置为默认网站,上传一个假的证书
生成一个假网站证书:
点击:https://myssl.com/create_test_cert.html
点击刚才创建的假网站,选择SSL,填入我们做好的证书:
私钥填入秘钥这个位置,证书链填入证书这个位置。
这个时候我们再用https://8.8.8.8访问自己的网站:
这个时候我们看到,已经不显示域名信息了。点击继续访问,访问到了一个默认网页。
如何不让防止默认网站显示index.html?
是否可以直接返回一个错误码?
进入刚才的默认网站,点击”配置文件“,在配置中,servername后面加一行 return 500;
再访问网站如下显示:
安全工具
检测自己网站的IP是否泄露:
https://search.censys.io/ (这个网站可能每天会扫IP,如果被记录了,修复一下漏洞,过几天就没有了)
附录:
还有几个知识点没有研究明白,比如:
Cloudflare需要自己写规则。搜索页要加验证码,最好用Google搜索,这个解决好,CC攻击等于白费力气。——论坛里请教,大佬告知的,有时间了再学习学习。
Leave a Reply