目錄
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]#