跳到主要内容

CentOS 用户监控

介绍

在CentOS系统中,用户监控是系统管理的重要组成部分。通过监控用户活动,管理员可以确保系统的安全性,防止未经授权的访问,并合理分配系统资源。本文将介绍如何在CentOS系统中监控用户活动,包括查看当前登录用户、跟踪用户命令历史、以及使用工具进行实时监控。

查看当前登录用户

要查看当前登录到系统的用户,可以使用 whow 命令。

使用 who 命令

who 命令显示当前登录的用户信息,包括用户名、终端、登录时间和IP地址。

bash
who

输出示例:

root     pts/0        2023-10-01 10:00 (192.168.1.100)
user1 pts/1 2023-10-01 10:05 (192.168.1.101)

使用 w 命令

w 命令不仅显示当前登录的用户,还显示他们正在执行的命令和系统负载。

bash
w

输出示例:

 10:10:01 up  1:00,  2 users,  load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.1.100 10:00 0.00s 0.10s 0.00s w
user1 pts/1 192.168.1.101 10:05 5.00s 0.05s 0.00s bash

跟踪用户命令历史

每个用户执行的命令历史记录存储在 ~/.bash_history 文件中。管理员可以通过查看该文件来了解用户执行过的命令。

查看特定用户的命令历史

bash
sudo cat /home/user1/.bash_history

输出示例:

ls
cd /var/log
tail -f syslog
备注

注意:~/.bash_history 文件只记录用户退出会话时保存的命令。如果用户会话未正常退出,部分命令可能不会保存。

使用 last 命令查看登录历史

last 命令显示系统的登录历史记录,包括登录时间、注销时间和登录IP地址。

bash
last

输出示例:

root     pts/0        192.168.1.100    Sun Oct  1 10:00   still logged in
user1 pts/1 192.168.1.101 Sun Oct 1 10:05 - 10:10 (00:05)

实时监控用户活动

使用 watch 命令

watch 命令可以定期执行指定的命令,并实时显示输出。例如,可以每2秒刷新一次 w 命令的输出。

bash
watch -n 2 w

输出示例:

Every 2.0s: w

10:15:01 up 1:05, 2 users, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.1.100 10:00 0.00s 0.10s 0.00s w
user1 pts/1 192.168.1.101 10:05 5.00s 0.05s 0.00s bash

使用 auditd 进行高级监控

auditd 是Linux的审计工具,可以记录系统上的各种事件,包括用户登录、文件访问等。

安装 auditd

bash
sudo yum install audit

启动并启用 auditd

bash
sudo systemctl start auditd
sudo systemctl enable auditd

配置审计规则

例如,监控 /etc/passwd 文件的访问:

bash
sudo auditctl -w /etc/passwd -p rwxa -k passwd_access

查看审计日志

bash
sudo ausearch -k passwd_access

输出示例:

time->Sun Oct  1 10:20:01 2023
type=SYSCALL msg=audit(1696155601.123:456): arch=c000003e syscall=2 success=yes exit=3 a0=7ffd8b8b8b8b a1=0 a2=1 a3=7ffd8b8b8b8b items=1 ppid=1234 pid=5678 auid=1000 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=1 comm="cat" exe="/usr/bin/cat" key="passwd_access"

实际案例

案例1:监控可疑用户活动

假设管理员发现系统中有可疑的登录活动,可以使用 last 命令查看登录历史,并使用 auditd 监控该用户的活动。

bash
last | grep suspicious_user
sudo ausearch -k suspicious_user_activity

案例2:实时监控系统负载和用户活动

管理员可以使用 watch 命令实时监控系统负载和用户活动,确保系统资源合理分配。

bash
watch -n 2 "w; uptime"

总结

通过本文,您已经学习了如何在CentOS系统中监控用户活动。从查看当前登录用户、跟踪命令历史,到使用 auditd 进行高级监控,这些工具和技术可以帮助您确保系统的安全性和资源的合理分配。

附加资源

练习

  1. 使用 whow 命令查看当前登录用户,并比较两者的输出差异。
  2. 配置 auditd 监控 /etc/shadow 文件的访问,并查看审计日志。
  3. 使用 watch 命令实时监控系统负载和用户活动,观察系统资源的使用情况。

通过完成这些练习,您将更深入地理解CentOS用户监控的实际应用。