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

有时候我们会给一些没有集成权限认证系统的页面加一层认证,以提高安全性,但是针对一些涉及到线上生产的一些界面,如果使用 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"}';

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

{ "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 这个用户登陆了本系统,以后若有什么问题,就能更容易锁定目标了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CN-FuWei

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值