• 对于注定会优秀的人来说,他所需要的,只是时间----博主
  • 手懒得,必受贫穷,手勤的,必得富足----《圣经》
  • 帮助别人,成就自己。愿君在本站能真正有所收获!
  • 如果你在本站中发现任何问题,欢迎留言指正!
  • 宝剑锋从磨砺出,梅花香自苦寒来!
  • 本站开启了防爆破关小黑屋机制,如果您是正常登录但被关进小黑屋,请联系站长解除!

使用$remote_user字段记录访问NGINX的用户

Nginx eryajf 4周前 (11-16) 230°C 已收录 0个评论
本文预计阅读时间 5 分钟

有时候我们会给一些没有集成权限认证系统的页面加一层认证,以提高安全性,但是针对一些涉及到线上生产的一些界面,如果使用NGINX统一认证的账号,那么如果某个时刻被改坏了,想要确认是谁都很难。

NGINX在打印日志的时候,事实上是有 $remote_user这一参数的,只不过常规使用的时候,无法获取到值,需要在基于认证规则的时候,才能够生效,大多时候我们使用htpasswd来做的认证,这样会比较麻烦,所以优雅的方案应该是结合ldap认证的模块,来实现认证系统,然后在日志格式化中添加用户字段:

log_format json escape=json '{ "remote_addr": "$remote_addr",'
                           '"@timestamp":"$time_iso8601",'
                           '"request_uri": "$request_uri",'
                           '"remote_user": "$remote_user",'# 写入之后,就能记录访问的用户了
                           '"verb": "$request_method",'
                           '"httpversion": "$server_protocol",'
                           '"response": "$status", '
                           '"body_bytes_sent": "$body_bytes_sent", '
                           '"referrer": "$http_referer", '
                           '"user_agent": "$http_user_agent", '
                           '"server_name": "$host",'
                           '"request_time": "$request_time",'
                           '"upstream_response_time": "$upstream_response_time",'
                           '"realpath_root": "$realpath_root",'
                           '"cookie": "$http_cookie",'
                           '"request_body": "$request_body",'
                           '"nginx_version": "$nginx_version",'
                           '"scheme": "$scheme"}';

然后添加ldap的配置,这里不再赘述,参考这里:http://www.eryajf.net/3416.html#toc-6

最后模拟访问一下,看看日志中是否记录到了对应用户:

{ "remote_addr": "127.0.0.1","@timestamp":"2019-11-15T16:57:29+08:00","request_uri": "/","remote_user": "eryajf","verb": "GET","httpversion": "HTTP/1.1","response": "200", "body_bytes_sent": "3", "referrer": "", "user_agent": "ELinks/0.12pre6 (textmode; Linux; 89x44-2)", "server_name": "127.0.0.1","request_time": "0.002","upstream_response_time": "","realpath_root": "/usr/share/nginx/html","cookie": "","request_body": "","nginx_version": "1.14.0","scheme": "http"}

就能看到了在对应时间点中,eryajf这个用户登陆了本系统,以后若有什么问题,就能更容易锁定目标了。


weinxin
扫码订阅本站,第一时间获得更新
微信扫描二维码,订阅我们网站的动态,另外不定时发送WordPress小技巧,你可以随时退订,欢迎订阅哦~

二丫讲梵 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明使用$remote_user字段记录访问NGINX的用户
喜欢 (0)
[如果想支持本站,可支付宝赞助]
分享 (0)
eryajf
关于作者:
学无止境,我愿意无止境学。书山有路,我愿意举身投火,淬炼成金!

您必须 登录 才能发表评论!