ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 如何使用Linux服务器的巡检用户和基础命令,捕捉用户登录痕迹?

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

原创 Linux操作系统 作者:neverinit 时间:2020-06-19 20:48:42 0 删除 编辑

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


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

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

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

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

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

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


01


使用cat命令查看


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


不过虽然乱码很多,但是也可以看到关键信息, 图中可以看出历史访问的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 ssh2
          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 ssh2
          Jun 18 19:13:59 test sshd[24683]: pam_unix(sshd:session): session opened for user root by (uid=0)



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


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



          来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31394774/viewspace-2699571/,如需转载,请注明出处,否则将追究法律责任。

          请登录后发表评论 登录
          全部评论
          技术爱好者,自学Oracle并拿下OCM,参与某金融系统的需求、开发、测试、上线、运维全流程,在此学习技术,分享知识。微信公众号“IT技术佳肴”,有干货,有扯皮……

          注册时间:2016-09-15

          • 博文量
            68
          • 访问量
            215867