蓝队学Nginx

极客

蓝队学Nginx:从防守视角吃透这款“神器”,真没你想的那么难!

大家好呀,我是你们那个总爱唠叨、但真心想带你们少踩坑的蓝队小伙伴,今天咱们不聊那些花里胡哨的攻击手法,也不扯什么0day、1day的惊悚故事——咱们来点踏踏实实的,聊聊蓝队学Nginx这件事儿。

蓝队学Nginx

说实话,我刚入行蓝队的时候,一听到“Nginx”这词儿就头大,什么反向代理、负载均衡、动静分离……一堆名词砸过来,感觉比抓入侵还难,但后来被现实狠狠教育了几次,我才发现:不懂Nginx的蓝队,就像不会看日志的保安,守着大门却不知道贼从哪儿进来的。 哎,这话糙理不糙啊!

蓝队学Nginx,到底学啥?别一上来就啃源码!

我知道很多兄弟一听说要学,立马去翻Nginx官方文档,结果看了三页就困得不行,别问我怎么知道的,我当年也是这么过来的,哈哈!

其实蓝队学Nginx,核心就三件事:

  1. 看懂它的配置文件(nginx.conf 那一堆花括号,别怕,拆开看就那几样)
  2. 知道它怎么记日志(access.log 和 error.log 就是你破案的监控录像)
  3. 明白它常见的安全坑(比如目录穿越、解析漏洞、配置不当导致的SSRF……)

你不需要会写Nginx模块,也不需要懂C语言源码,咱们是防守方,不是开发方,能看懂、能改、能查,就够用了,真的,别给自己太大压力。

我踩过的那些坑,你们千万别再踩了

记得有一次,客户服务器被上传了webshell,我上去查了半天,愣是没找到入口,后来一位老前辈悠悠地说:“你看看Nginx的access.log里,有没有那种奇怪的%2e%2e%2f?” 我一查,好家伙,全是编码过的目录穿越请求!那时候我才意识到——Nginx的日志,比WAF的告警还实在。

所以啊,蓝队学Nginx第一个要养成的习惯就是:每天花10分钟扫一眼access.log,不用全看,就看状态码4xx、5xx的,还有那些URL里带特殊字符的,你会发现,原来每天都有这么多“小可爱”在试探你的边界,哎,既生气又有点想笑。

Nginx配置里那些“温柔陷阱”,蓝队必须门儿清

有些配置,开发图省事,运维图方便,结果就成了蓝队的噩梦。

  • autoindex on; —— 目录列表直接暴露,跟把家门钥匙插门上有什么区别?
  • proxy_pass 后面跟了用户可控的变量,SSRF漏洞分分钟就来。
  • location 匹配规则写错,导致静态文件被当成PHP解析……哎呀,说起来都是泪。

所以蓝队学Nginx,一定要学会“挑刺”,拿到一个Nginx配置,先问三个问题:谁能访问?访问什么?访问后日志记了啥? 这三个问题答不上来,那这个配置就不合格,别怕得罪人,安全这事儿,宁可事前挨骂,也别事后背锅。

实战小技巧:用Nginx本身做一层防护

你知道吗?Nginx不只是被保护的对象,它本身就能当简易WAF用。

# 封掉常见的扫描器UA
if ($http_user_agent ~* (sqlmap|nikto|nmap)) {
    return 403;
}
# 限制单IP并发
limit_conn perip 10;

这些配置写上去,虽然不能挡住高级攻击,但至少能让那些脚本小子的扫描器吃闭门羹,每次看到日志里一堆403,心里还有点小爽呢,哈哈!

当然啦,蓝队学Nginx不是为了炫技,而是为了在关键时刻能快速定位、快速响应,比如突然流量暴增,你能一眼看出是CC攻击还是正常促销;比如某个接口疯狂报500,你能从error.log里看到是后端超时还是Nginx本身崩了。

给正在学Nginx的蓝队兄弟们几句掏心窝的话

别急,别慌,别觉得自己不是运维出身就学不会。蓝队学Nginx,拼的不是记忆力,而是耐心和好奇心,你今天搞懂了一个location匹配优先级,明天弄明白了proxy_set_header的作用,日积月累,你就是团队里那个“Nginx通”。

还有啊,多动手,自己搭个虚拟机,装个Nginx,故意写错配置,看看报错长啥样,看一百遍文档,不如自己亲手搞崩一次,真的,信我。

别忘了把这篇蓝队学Nginx:从防守视角吃透这款“神器”,真没你想的那么难! 收藏一下,也欢迎分享给你那个还在被Nginx折磨的蓝队兄弟,咱们一起进步,让那些想从Nginx钻进来的坏人,统统碰壁!

好了,今天就唠到这儿,下次咱们聊聊“蓝队如何用Nginx日志做入侵溯源”,记得来看哦!拜拜~

文章版权声明:除非注明,否则均为极客网安-咸鱼原创文章,转载或复制请以超链接形式并注明出处。

目录[+]