网站安全+被黑客知道IP,如何禁止通过IP直接访问网站,只允许访问域名(Nginx服务)
欢迎来到阿八个人博客网站。本 阿八个人博客 网站提供最新的站长新闻,各种互联网资讯。 喜欢本站的朋友可以收藏本站,或者加QQ:我们大家一起来交流技术! URL链接:https://www.abboke.com/grfx/253039.html
问题起源
近日,在网站后台发现有部分非法请求,企图通过网站IP+常用网站路径的方式非法获取网站后台实施攻击,以PHP的各种框架最为严重(例如wordpress的后台IP/wp-login.php),虽然本人网站并不是PHP写的,但是也不胜其扰。
问题研究
既然知道了问题,我们不妨来想想解决方案,我发现其大部分非法请求IP都是国外的(显然为躲避监管使用了代理),最简单粗暴的办法就是对于国外IP一律禁止访问,但是咱们博客也得面向全球不是,因噎废食的事情咱不能干,所以此方案显然不是最优。
第二个方案是在程序中根据请求路径控制IP访问,对于非法访问的IP全部关进小黑屋,但是手动去辨别这些非法请求太过于麻烦,所以再考虑升级一下,咱们针对请求路径进行正则匹配,一旦包含非法路径,IP就关进小黑屋,但是这个正则无法去包含全部路径特征,我们必须不断去增加,修改,完善,也很麻烦。
我们再考虑一下,这些访问请求都有明显特征,它们都是通过IP直接访问网站,而不是通过域名(它不知道我们域名),而我们在生产环境中访问网站一般只会通过域名来访问,所以IP直接访问我们可以考虑禁止,我的网站基于Nginx,要实现这个功能,只需要更改相关配置即可,比较简单。
对比这些方案,显然最后一个更为合适。
问题解决
打开nginx配置
vim nginx.conf
在http中新增修改server,http转向https,https中加判断,如果指向IP,返回444(No Response 没有响应)
server {listen 80;server_name localhost;rewrite ^(.*) https://$host$1 permanent;}server {listen 443 ssl;server_name www.server.comif ($host = 'IP') {return 444;}}
测试配置文件:
../sbin/nginx -t
成功后重载配置文件
../sbin/nginx -s reload
测试
访问IP就直接返回了 444,已经不可以访问啦!
原创作者: 何鑫
创作时间: 2020/10/08 15:41:11
来自:阿八个人博客转发
原创作者: 何鑫
创作时间: 2020/10/08 15:41:11
来自:阿八个人博客转发