目录
1. 登录日志
1.1 /var/log/wtmp
1.2 /var/log/btmp.*
1.3 /var/log/lastlog
1.4 /var/log/faillog
1.5 /var/log/secure
1.6 /var/log/auth.log
2. 系统日志
2.1 /var/log/cron.*
2.2 /var/log/syslog
2.3 /var/log/audit/audit.*log
3. 历史命令
3.1 ~/.bash_history
3.2 history
3.3 /var/log/audit/audit.*log
1. 登录日志
登录日志通常记录了用户的登录和注销活动,包括登录时间、来源IP地址、使用的用户名等信息。通过分析登录日志,你可以追踪入侵者的活动轨迹,确定入侵的时间和方式,比如:ssh 爆破。
1.1 /var/log/wtmp
登录成功后会记录的信息:用户、终端名、ip、时间、登录/注销状态。data 类型文件,使用 last 命令查看
1.2 /var/log/btmp.*
记录失败的登录尝试信息:用户、终端名、ip、时间。data 类型文件,使用 lastb 命令查看。
1.3 /var/log/lastlog
记录最近一次账户登录成功的信息:用户名、终端名、ip、登录时间。data类型文件,使用 lastlog 命令查看
1.4 /var/log/faillog
相同的还有 /var/log/tallylog ,用于记录登录失败次数的文件,它通常用于限制用户登录失败次数的功能,使用 faillog 命令查看。当用户登录失败时,系统会记录失败的次数和时间戳到这个文件中。一旦失败次数达到一定限制,系统可能会暂时禁止该用户登录。
这个文件通常出现在一些早期的Linux系统中,在较新的系统中,这种登录失败次数限制的功能通常由 PAM 模块和 /var/log/secure 或 /var/log/auth.log 文件来实现和记录。
1.5 /var/log/secure
一个常见于Red Hat 系统(如CentOS、Fedora)的安全日志文件,用于记录系统的安全相关事件,包括用户认证、授权和安全相关的事件,如 SSH,telnet,ftp 登录的成功和失败尝试。
# 查看 sshd 的登录日志
sudo grep sshd /var/log/secure
1.6 /var/log/auth.log
Ubuntu 系统下的,用于记录系统的安全相关事件,包括用户认证、授权和安全相关的事件,如SSH登录的成功和失败尝试。
# 查看 sshd 的登录日志
sudo grep sshd /var/log/auth.log
2. 系统日志
2.1 /var/log/cron.*
centos 下 crontab 计划任务执行记录
2.2 /var/log/syslog
linux 系统中的一个日志文件,用于记录系统的各种事件和消息。这些事件包括系统启动、关机、用户登录、网络连接、硬件故障、计划任务等。
# 查看 cron 执行的命令
sudo grep CRON /var/log/syslog
2.3 /var/log/audit/audit.*log
当 Linux 系统启用了审计功能,审计服务 audit 的日志文件会记录各种系统调用和进程操作。
审计日志可以包含以下类型的信息:
-
登录和登出事件: 记录用户的登录和登出活动,包括成功和失败的尝试。
-
文件和目录访问: 记录对文件和目录的访问,包括读取、写入和执行等操作。
-
进程启动和停止: 记录新进程的启动和终止,包括由哪个用户启动的。
-
系统调用: 记录系统调用的使用情况,允许审计每个进程的行为。
-
SELinux 异常: 如果系统启用了 SELinux (Security-Enhanced Linux),那么相关的 SELinux 异常也会记录在审计日志中。
-
特权提升尝试: 记录尝试提升进程权限的操作,如尝试使用 sudo 或 su 命令。
-
网络活动: 记录网络相关的事件,如连接建立和断开、防火墙规则追踪等。
-
时间同步: 记录系统时间同步的事件,有助于确保系统时钟的准确性。
查看 ssh 登录失败的日志
sudo grep sshd /var/log/audit/audit.log|grep failed
3. 历史命令
3.1 ~/.bash_history
用户 home 目录下的隐藏文件,记录了该用户在终端中执行过的命令,可以永久保存用户的命令历史。这个文件会在用户退出登录时被更新,以记录最新的命令历史。
3.2 history
这是一个内置的 Bash 命令,用于显示用户在当前会话中执行过的命令历史。它会从用户的.bash_history文件中读取命令历史,并以编号的形式列出最近执行的命令。这个命令只会显示当前会话中的命令历史,不会保存到文件中。
HISTTIMEFORMAT 环境变量:设置HISTTIMEFORMAT环境变量可以让history命令显示命令的执行时间
export HISTTIMEFORMAT="%F %T "history
3.3 /var/log/audit/audit.*log
当 linux 系统开启了 audit 审计服务,可以在 /etc/audit/rules.d/audit.rules 中添加一条规则,把执行的所有命令都记录到 /var/log/audit/audit.*log。通过 auditctl 管理 audit 规则,ausearch 查询记录。
把 /usr/bin 目录下的所有文件执行的命令记录到 audit 日志:
sudo echo "-w /usr/bin -p x -k command_executed" >> /etc/audit/rules.d/audit.rules
也可以使用 auditctl 命令临时添加 ,选项:
- -w path :指定要监控的路径
- -p :指定触发审计的文件/目录的访问权限 rwxa
指定的触发条件,r 读取权限,w 写入权限,x 执行权限,a 属性(attr) - -k:在审核规则上设置过滤名称,方便后面使用 ausearch 查找
- -R:读取来自指定文件的规则
- -l:显示 audit 规则
[root@localhost/var/log]#echo "-w /usr/bin -p x -k command_executed" >> /etc/audit/rules.d/audit.rules
[root@localhost/var/log]#auditctl -l
No rules
[root@localhost/var/log]#auditctl -R /etc/audit/rules.d/audit.rules
No rules
enabled 1
failure 1
pid 726
rate_limit 0
backlog_limit 8192
lost 0
backlog 4
enabled 1
failure 1
pid 726
rate_limit 0
backlog_limit 8192
lost 0
backlog 4
[root@localhost/var/log]#auditctl -l
-w /usr/bin/nc -p x -k command_executed
[root@localhost~]#nc -lvvp 1234
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Listening on :::1234
Ncat: Listening on 0.0.0.0:1234^C
[root@localhost/var/log]#ausearch -k command_executed
...
----
time->Wed Nov 22 12:35:08 2023
type=PROCTITLE msg=audit(1700627708.490:3641): proctitle=2F7573722F62696E2F6E63002D6C7676700031323334
type=PATH msg=audit(1700627708.490:3641): item=1 name="/lib64/ld-linux-x86-64.so.2" inode=169 dev=fd:00 mode=0100755 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:ld_so_t:s0 nametype=NORMAL cap_fp=0 cap_fi=0 cap_fe=0 cap_fver=0 cap_frootid=0
type=PATH msg=audit(1700627708.490:3641): item=0 name="/usr/bin/nc" inode=50708290 dev=fd:00 mode=0100755 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:bin_t:s0 nametype=NORMAL cap_fp=0 cap_fi=0 cap_fe=0 cap_fver=0 cap_frootid=0
type=CWD msg=audit(1700627708.490:3641): cwd="/root"
type=EXECVE msg=audit(1700627708.490:3641): argc=3 a0="/usr/bin/nc" a1="-lvvp" a2="1234"
type=SYSCALL msg=audit(1700627708.490:3641): arch=c000003e syscall=59 success=yes exit=0 a0=1048870 a1=105b1d0 a2=105ac80 a3=7ffdb8b117e0 items=2 ppid=23207 pid=23615 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts1 ses=153 comm="nc" exe="/usr/bin/ncat" subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key="command_executed"
----...
[root@localhost/var/log]#