最近在查看web日志统计的时候发现了一个怪现象,日志中发现有大量的404转向,并且发现有不少标记来源地址是http://site.ru,访问的文件目录都是些敏感路径。
在用goaccess量化显示之后,其中的“请求地址(REQUESTED URLs)”统计选项中可以看到大量无效的文件名/目录被访问。
如果我们直接访问http://site.ru的话,显示的是“503 Service Temporarily Unavailable”,也就是说是一个无效网站。
通过百度/bing查搜索site.ru没有任何结果,出去google了一下才发现国外网友也和我一样饱受site.ru这个问题困扰。
最近在查看web日志统计的时候发现了一个怪现象,日志中发现有大量的不同IP的404转向,并且发现有不少标记来源地址是http://site.ru,访问的文件目录都是些敏感路径。
在用goaccess量化显示之后,其中的“请求地址(REQUESTED URLs)”统计选项中可以看到大量无效的文件名/目录被访问。
如果我们直接访问http://site.ru的话,显示的是“503 Service Temporarily Unavailable”,也就是说是一个无效网站。
通过百度/bing查搜索site.ru没有任何结果,出去google了一下才发现国外网友也和我一样饱受site.ru这个问题困扰。
目前看来这铁定是个冒充http://site.ru来源的恶意扫描器,为了安全起见我们要解决这个问题的最好方法就是屏蔽掉它:
写入Nginx配置就非常简单了,配置代码如下:
http { ............. server { .............. #加在server段落下生效 location / { root /var/mysite/andyx.net/; index index.html index.htm; #若需要在阻止的同时不记录日志,则需要放在location段落下 if ($http_referer ~* "http://site.ru") { access_log off; return 444; } } .............. } }
Nginx配置文件通常在:/etc/nginx/nginx.conf
或者 /usr/local/nginx/conf/nginx.conf
目录下。
然后执行命令 nginx -s reload
或者 systemctl reload nginx
使配置生效。
而Apache则可以配合.htaccess文件进行屏蔽,配置代码如下:
《IfModule mod_rewrite.c> RewriteCond %{HTTP_REFERER} site\.ru [NC] RewriteRule ^(.*)$ – [L,R=403] 《/IfModule> # 使用前请将《符号替换为正常的小于号
将其写入网站根目录下的.htaccess文件,若文件不存在则自己创建一个即可。
PS:科普一下L,R,F标记的意思:
[F] —— Forbidden(禁止): 命令服务器返回 403 Forbidden错误给用户浏览器
[L] —— Last rule(最后一条规则): 告诉服务器在本条规则执行完后停止重写URL。立即停止重写操作,并不再应用其他重写规则。这个标记用于阻止当前已被重写的URL被后继规则再次重写。
[R] —— Redirect(重定向): 命令服务器发出重定向消息,以便用户浏览器发出rewritten/modified(重写/修改)URL的请求。通常,你还会希望停止重写操作而立即重定向,那么就还需要与”L’标记连用。
当然,你也可以参考Nginx规则设置黑名单,阻止恶意扫描器的访问,参见《如何使用Nginx给服务器简单设置黑名单屏蔽IP教程》。
若想学习更多Nginx规则玩法,请参见《详解Nginx的rewrite规则写法 与配置location段落总结》。
(END)
若需转载本文,请标注来源与链接:原创内容AndyX.Net版权所有 https://andyx.net/how_to_block_site_ru_scanner_by_nginx_apache/
部分资料参考自 wordpress.org