温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何使用Linux服务器的巡检用户和基础命令,捕捉用户登录痕迹?

发布时间:2020-08-09 08:52:23 来源:ITPUB博客 阅读:179 作者:neverinit 栏目:建站服务器

本文使用一个 最普通的巡检用户,查看RedHat 7.4系统日志,检查 用户登录痕迹,说明如何判断是否存在 违规访问记录,如跳板访问等。

这里需要关心的日志列表如下

  • /var/log/lastlog  二进制文件,记录了最近的连接记录

  • /var/log/wtmp  二进制文件,记录每个用户的登录和注销信息

  • /var/log/secure  文本文件,记录用户的登录行为信息

  • /var/log/btmp  二进制文件,记录失败的登录尝试信息

  • /run/utmp  二进制文件,记录当前登录用户信息

01


使用cat命令查看

如果只有cat等基础命令,二进制文件输出的内容会以乱码形式出现

如何使用Linux服务器的巡检用户和基础命令,捕捉用户登录痕迹?

不过虽然乱码很多,但是也可以看到关键信息, 图中可以看出历史访问的IP信息,以及所用的访问用户。 如果发现可疑的IP地址,那就可以深入的行为分析了。

02


使用strings命令查看

用strings命令可以查看二进制文件信息,输出的内容比较接近文本内容。分别查看文件内容如下:

执行命令: strings lastlog

  • 关注的要点是检查是否存在可疑IP地址

[root@test log]# strings lastlog
^pts/2
182.207.162.59
[pts/1
^pts/0
182.207.162.59
^pts/0
^pts/7

执行命令: strings wtmp

  • 因为输出内容过多,截取部分展示,关注的要点是用户和IP地址是否可疑

    ts/0cams
    182.207.177.97
    pts/0
    pts/0
    ts/0root
    182.207.177.122
    pts/0
    pts/0
    ts/0cams
    182.119.114.218
    pts/0
    pts/0
    ts/0cams
    182.207.162.59

    执行命令: strings /run/utmp

    • 关注当前是否还有其他IP地址连上服务器

      [cams@test log]$ strings /run/utmp 
      reboot
      3.10.0-693.el7.x86_64
      runlevel
      3.10.0-693.el7.x86_64
      pts/0
      ts/0cams
      182.207.162.59
      pts/1
      ts/1
      pts/2
      ts/2root
      182.207.162.59

      03


      其他情况

      但是也可能存在部分系统日志无权限访问的情况

        [cams@test log]$ strings btmp
        strings: btmp: 权限不够
        [cams@test log]$ strings secure
        strings: secure: 权限不够

        对于 执行cat命令 提示权限不够的文件,如果有sudo cat权限就能看,如果没有sudo cat权限就不能看。一般情况下,生产环境巡检用户拥有sudo cat权限。

        对于btmp文件,可以结合secure文件判断是否存在 尝试登录行为,重点还是关注日志中的IP地址是否可疑,访问行为是否合规等!

        截取和展示/var/log/secure文本文件部分内容,可以清晰看到带时间戳的日志信息,失败的登录信息是Failed开头,成功的登录信息是Accepted开头,IP地址和用户等信息也清晰可见。

          Jun 18 19:13:09 test sshd[24648]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=182.207.162.59  user=root
          Jun 18 19:13:09 test sshd[24648]: pam_succeed_if(sshd:auth): requirement "uid >= 1000" not met by user "root"
          Jun 18 19:13:11 test sshd[24648]: Failed password for root from 182.207.162.59 port 28680 ssh3
          Jun 18 19:13:16 test sshd[24648]: error: Received disconnect from 182.207.162.59 port 28680:0:  [preauth]
          Jun 18 19:13:16 test sshd[24648]: Disconnected from 182.207.162.59 port 28680 [preauth]
          Jun 18 19:13:59 test sshd[24683]: Accepted password for root from 182.207.162.59 port 28814 ssh3
          Jun 18 19:13:59 test sshd[24683]: pam_unix(sshd:session): session opened for user root by (uid=0)

          如何使用Linux服务器的巡检用户和基础命令,捕捉用户登录痕迹?

          可能有的同学会问,为什么不用grep、awk、sed等命令匹配日志文件中的IP地址,或者执行shell脚本,然后输出结果呢?

          答:因为一般生产环境有命令白名单,限制了很多命令的使用,最基础的命令才能适用于绝大多数生产环境。另外,巡检用户只有读权限,创建和执行shell脚本等也不会被允许。

          向AI问一下细节

          免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

          AI