shell如何记录用户的IP与命令详解(shell 记录日志)

admin3年前云主机95

记录输入的命令

history命令可以查看用户输入过的命令,一个典型history命令输出如下:

980 2017-05-29 20:17:37 cd -981 2017-05-29 20:17:41 cat index.html982 2017-05-29 20:20:11 vim index.html983 2017-05-29 20:39:18 cd -984 2017-05-29 20:39:25 cd /var/log/nginx/985 2017-05-29 20:39:27 vim access.log986 2017-05-29 20:50:10 netstat -ntlp987 2017-05-31 11:04:39 tmux a -t0988 2017-05-31 11:15:42 exit989 2017-05-31 12:32:38 tmux a -t0

记录IP

为了记录用户的IP,需要首先获取用户的登录IP。由于在用户登入期间,会话不会断开,所以只需获取一次即可。

获取IP命令: who am i | awk '{print $NF}' | sed -e 's/[()]//g'

接着按照 username@ip datetime command 的格式记录用户的命令,这需要设置HISTTIMEFORMAT的值。获取IP和设置命令格式结合起来:

IP=`who am i | awk '{print $NF}' | sed -e 's/[()]//g'`export HISTTIMEFORMAT=$USER@$IP %F %T

为了让上述命令对所有用户生效,可将其写到/etc/profile文件中。设置完毕后(可能需要重新登录,或者用source命令重新加载/etc/profile),history命令输出如下类似结果:

412 root@8.8.8.8 2017-06-02 22:03:27 netstat -nt414 root@8.8.8.8 2017-06-02 22:03:38 netstat -ntpl415 root@8.8.8.8 2017-06-03 14:17:09 history416 root@8.8.8.8 2017-06-03 14:17:30 tmux ls417 root@8.8.8.8 2017-06-03 14:17:34 tmux418 root@8.8.8.8 2017-06-03 14:17:49 tmux a -t0

history命令的内容保存在用户的~/.bash_history文件中,用户可随时更改或者清除。为了统一管理用户的命令记录,我们希望用户执行命令后,执行的命令能输出到某个文件内。达到这个目的需要 PROMPT_COMMAND 环境变量的协助。

设置PROMPT_COMMAND将用户的上一条命令log到syslog里面去:

export PROMPT_COMMAND="history 1 | logger -t cmd_log -p user.notice"

logger命令将信息输出到/var/log/messages中。任意输入一个命令,然后打开/var/log/messages,会看到已经记录在案。/var/log/messages文件只有root有权限访问,从而达到了记录用户IP和命令的目的。

如果你熟悉syslog,可以将命令记录输出到单独的文件中。这需要在logger命令的-p选项中指定工具名称和等级,例如local2.notice,然后编辑/etc/rsyslog.conf,将local2的信息输出到单独文件: local2.* /var/log/command.log,最后重启rsyslog服务。

通过如上设定,即可在用户无感知的情况下log用户的IP、时间和操作命令。

对用户来说,如何绕过?可以有两种方式:

  1. 将命令写到脚本,执行脚本;
  2. unset PROMPT_COMMAND变量。

参考

/uploads/tupian/0823/lewwvmpqk4o />

http://moper.me/ssh-audit-chats.html

http://zhu8337797.blog.163/blog/static/170617549201222912830483/

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对站长源码网的支持。《shell如何记录用户的IP与命令详解(shell 记录日志)》来自互联网同行内容,若有侵权,请联系我们删除!

免责声明:本文内容来自用户上传并发布,站点仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。请核实广告和内容真实性,谨慎使用。

相关文章

本溪网站建设公司

本溪网站建设公司:让您的网站焕发新生 随着互联网的不断发展,越来越多的人开始重视网站建设。无论是从商业角度还是个人博客,都能通过网站获得更广泛的影响力,提高自身的知名度和价值。而本溪网站建设公司就是...

日本服务器租用攻略:为何选择日本服务器?

一、优势1、优良的网络性能:日本是亚洲地区网络基础设施最为发达的国家之一,经济和科技发展水平高。因此,选择日本服务器可以享受到高速、稳定的网络连接,特别是对于区域性业务和对延迟和丢包率要求高的游戏和视...

一站式企业服务平台,帮您快速提升效率与利润

一、平台的功能和特点一站式企业服务平台是一种综合性平台,旨在为企业提供全方位的服务。该平台可以实现如下功能:1. 企业信息管理:可以对企业信息进行全面的管理,包括员工信息、客户信息、产品信息、订单信息...

【无忧注册,畅享域名】——域名注册公司的全程保障

现如今,越来越多的人开始关注域名注册公司的全程保障。在这篇文章中,我们将为您介绍一家叫做“无忧注册,畅享域名”的域名注册公司,它提供全方位的保障,让您在注册域名的过程中无后顾之忧。一、域名查询在注册域...

vps韩国服务器租用有哪些优势(探寻VPS韩国服务器租用的种种优势)

一、地理位置优越VPS韩国服务器租用的一个重要优势是其地理位置的优越性。韩国位于亚洲东部,与日本、中国等国家相邻,是亚太地区跨国企业和国际公司经营的重要经济中心。在这样的地理位置上租用VPS服务器,可...

如何根据企业规模选择适合的游戏服务器?

随着在线游戏市场的不断增长,游戏服务器的选择变得越来越重要。游戏服务器是在线游戏的重要组成部分,对游戏的稳定性和用户体验有很大影响。本文将从企业规模的角度,介绍如何选择适合的游戏服务器。主要分为以下四...