[Linux]监控外部用户登录及外部主机连接情况

2023-05-16,,

1 外部用户/外部主机

/var/log

在CentOS系统上,用户登录历史存储在以下这些文件中:

/var/log/wtmp 用于存储系统连接历史记录被last工具用来记录最后登录的用户的列表
/var/run/utmp用于记录当前打开的会话被who和w工具用来记录当前有谁登录以及他们正在做什么,而uptime用来记录系统启动时间
/var/log/btmp记录失败的登录尝试被lastb工具用来记录最后失败的登录尝试的列表

CentOS下查看最后登录的用户信息

[root@hello ~]# tail /var/log/secure
Jan 29 16:17:44 hello sudo: pam_unix(sudo:session): session opened for user root by (uid=0)
Jan 29 16:17:44 hello sudo: pam_unix(sudo:session): session closed for user root
Jan 29 16:17:44 hello su: pam_unix(su-l:session): session closed for user root
Jan 29 16:18:44 hello su: pam_unix(su-l:session): session opened for user root by (uid=0)
Jan 29 16:18:44 hello sudo: root : TTY=unknown ; PWD=/root ; USER=root ; COMMAND=/sbin/service elasticsearch status
Jan 29 16:18:44 hello sudo: pam_unix(sudo:session): session opened for user root by (uid=0)
Jan 29 16:18:44 hello sudo: pam_unix(sudo:session): session closed for user root
Jan 29 16:18:44 hello su: pam_unix(su-l:session): session closed for user root
Jan 29 16:19:24 hello su: pam_unix(su-l:session): session opened for user ambari-qa by (uid=0)
Jan 29 16:19:33 hello su: pam_unix(su-l:session): session closed for user ambari-qa [root@sdc01 ~]# tail /var/log/messages
Jan 29 16:19:24 hellosu: (to ambari-qa) root on none
Jan 29 16:19:24 hello systemd: Created slice User Slice of ambari-qa.
Jan 29 16:19:24 hello systemd: Started Session c94084 of user ambari-qa.
Jan 29 16:19:33 hello systemd: Removed slice User Slice of ambari-qa.
Jan 29 16:19:45 hello su: (to root) root on none
Jan 29 16:19:45 hello systemd: Started Session c94085 of user root.
Jan 29 16:19:56 hello su: (to ambari-qa) root on none
Jan 29 16:19:56 hello systemd: Created slice User Slice of ambari-qa.
Jan 29 16:19:56 hello systemd: Started Session c94086 of user ambari-qa.
Jan 29 16:20:02 hello systemd: Removed slice User Slice of ambari-qa.

lastlog

查看root和admin在最近20天内是否有登录

[root@hello ~]# lastlog -t 20|egrep "root|admin"
root Fri Jan 29 16:21:46 +0800 2021

查看最近20天内登录的用户,除root和admin之外

[root@hello ~]# lastlog -t 20|egrep -v "root|admin"
Username Port From Latest
ambari-qa Fri Jan 29 16:22:24 +0800 2021
hdfs Fri Jan 29 14:47:55 +0800 2021
hive Fri Jan 29 14:48:05 +0800 2021

who

查询utmp文件并报告当前登录的每个用户

Who的缺省输出包括用户名、终端类型、登录日期及远程主机。

首先简单介绍一下Centos中记录登陆信息的日志文件有关当前登录用户的信息记录在文件utmp中;登录进入和退出纪录在文件wtmp中;最后一次登录文件可以用lastlog命令察看。

数据交换、关机和重起也记录在wtmp文件中。所有的纪录都包含时间戳。

每次有一个用户登录时,login程序在文件lastlog中察看用户的UID。如果找到了,则把用户上次登录、退出时间和主机名写到标准输出中,然后login程序在lastlog中纪录新的登录时间。

在新的lastlog纪录写入后,utmp文件打开并插入用户的utmp纪录。该纪录一直用到用户登录退出时删除。utmp文件被各种命令文件使用,包括who、w、users和finger。

下一步,login程序打开文件wtmp附加用户的utmp纪录。当用户登录退出时,具有更新时间戳的同一utmp纪录附加到文件中。wtmp文件被程序last和ac使用。

wtmp和utmp文件都是二进制文件,用户需要使用who、w、users、last和ac来使用这两个文件包含的信息。

如果指明了wtmp文件名,则who命令查询以前所有的登陆纪录。使用命令who /var/log/wtmp查看所有登陆记录

[root@hello ~]# who /var/log/wtmp
root pts/0 2021-01-05 14:40 (10.xx.yy.zz)
root pts/2 2021-01-05 15:16 (10.xx.yy.zz)
root pts/3 2021-01-05 16:25 (10.xx.yy.zz)
root pts/4 2021-01-05 16:30 (10.xx.yy.zz)
root pts/5 2021-01-05 17:27 (10.xx.yy.zz)
root pts/6 2021-01-05 17:27 (10.xx.yy.zz)
root pts/0 2021-01-05 20:09 (10.xx.yy.zz)

last

命令详解
  功能说明:列出目前与过去登入系统的用户相关信息。
  语  法:last [-adRx][-f <记录文件>][-n <显示列数>][帐号名称...][终端机编号...]
  补充说明:单独执行last指令,它会读取位于/var/log目录下,名称为wtmp的文件,并把该给文件的内容记录的登入系统的用户名单全部显示出来。
  参  数:
  -a  把从何处登入系统的主机名称或IP地址,显示在最后一行。
  -d  将IP地址转换成主机名称。
  -f <记录文件>  指定记录文件。
  -n <显示列数>或-<显示列数>  设置列出名单的显示列数。
  -R  不显示登入系统的主机名称或IP地址。
  -x  显示系统关机,重新开机,以及执行等级的改变等信息。

查看自从文件第1次创建以来登录过的用户

last:last命令往回搜索wtmp来显示自从文件第一次创建以来登录过的用户

[root@sdc01 ~]# last
root pts/2 10.xx.yy.vv Fri Jan 29 15:25 still logged in
root pts/0 10.xx.yy.vv Fri Jan 29 14:44 still logged in
root pts/4 10.xx.yy.vv Fri Jan 29 11:27 - 11:30 (00:02)
root pts/3 10.xx.yy.vv Fri Jan 29 11:13 still logged in
root pts/2 10.xx.yy.vv Fri Jan 29 11:03 - 11:58 (00:55)
root pts/0 10.xx.yy.vv Fri Jan 29 09:25 - 11:41 (02:16)
root pts/2 10.xx.yy.vv Thu Jan 28 17:17 - 20:06 (02:49)
root pts/0 10.xx.yy.vv Thu Jan 28 16:51 - 20:06 (03:15)
root pts/0 10.xx.yy.vv Wed Jan 27 19:54 - 19:56 (00:02)

lsof

查看系统中最近的端口连接记录

可用于检查是否被别人攻击,扫描公网地址

# lsof -Pnl +M -i4 | grep "154"
[root@hello ~]# lsof -Pnl +M -i4 | grep "154"
sshd 30963 0 3u IPv4 65160732 0t0 TCP 10.xx.yy.jj:22->10.xx.yy.ii:53374 (ESTABLISHED)
java 104937 1007 518u IPv4 361154709 0t0 TCP 10.xx.yy.jj:8020->10.xx.yy.ii:33020 (ESTABLISHED)
java 104937 1007 544u IPv4 361154787 0t0 TCP 10.xx.yy.jj:50070->10.xx.yy.kk:42802 (ESTABLISHED)

X 参考文献

CentOS下查看最后登录的用户信息以及LOG记录 - 博客园

[Linux]监控外部用户登录及外部主机连接情况的相关教程结束。

《[Linux]监控外部用户登录及外部主机连接情况.doc》

下载本文的Word格式文档,以方便收藏与打印。