文章摘要
近日学习了Nginx的安全规则配置,成功设置后能够有效过滤绝大多数恶意请求,测试过程中也得到了不错的效果。但测试中发现,后台路径中包含“admin”或正常请求触发规则时,会出现一些问题。建议使用CDN的同学关闭“回源跟随”功能,避免缓存并分发敏感规则文件,导致流量损失。此外,规则中包含对特定文件类型(如zip、rar等)的限制,以及跳转特定链接的功能,同时禁止某些用户agent的请求。这些设置能够有效保障服务器的安全性,建议对感兴趣的朋友进行实践操作。
最近学到了一个nginx的安全规则,配置好了以后可以防止绝大多数的恶意请求。自己配置测试了一下觉得不错,感兴趣的小伙伴们可以尝试一下。
当然了,梦想之路在测试的时候发现也会出现一些小问题,主要就是自己的后台路径中带有admin,或者是其他一些正常的请求触发了规则,这个时候大家只要把它注释掉或者删除就好了。或者修改下面的nginx规则只留下自己想用的就可以了。
还有一个值得注意的是,使用cdn的同学要关闭“回源跟随”,一定要关闭,一定要关闭,一定要关闭回源跟随,不然的话cdn是会缓存并分发第一个规则中的这个10g文件的,造成流量损失。当然,直接返回404也可以。
#触发下面的规则返回一个10g的文件 if ($request_uri ~* "(\.gz)|(\")|(\.tar)|(admin)|(\.zip)|(\.sql)|(\.asp)|(\.rar)|(function)|($_GET)|(eval)|(\?php)|(config)|(\')|(\.bak)") { return 301 http://lg-dene.fdcservers.net/10GBtest.zip; } #禁止下载以 XXX 后缀的文件 location ~ \.(zip|rar|sql|bak|gz|7z)$ { return 444; } #访问链接里含有 test 直接跳转到公安网 if ($request_uri ~* test=) { return 301 https://www.mps.gov.cn; } #禁止一些不必要的爬虫 if ($http_user_agent ~* (SemrushBot|python|MJ12bot|AhrefsBot|AhrefsBot|hubspot|opensiteexplorer|leiki|webmeup)) { return 444; }