Linux 应急响应-溯源-系统日志排查知识点汇总
1. 查看当前已经登录到系统的用户 (w
命令)
bash
w
2. 查看所有用户最近一次登录 (lastlog
命令)
bash
lastlog
lastlog | grep -v "Never logged in"
3. 查看历史登录用户以及登录失败的用户 (last
和 lastb
命令)
bash
last
lastb
4. SSH 登录日志分析 (/var/log/secure
)
bash
grep Failed /var/log/secure*
5. 查看系统历史命令 (.bash_history
)
bash
history
find / -name .bash_history
6. 计划任务日志 (/var/log/cron
)
bash
cat /var/log/cron* | awk -F':' '{print $NF}' | grep CMD | sort | uniq -c | sort -rn
7. 检查系统用户 (/etc/passwd
, /etc/shadow
, /etc/group
)
bash
head -n 1 /etc/passwd
8. 中间件日志 (/var/log/httpd/access_log
)
bash
cat /www/wwwlogs/access_log | less
9. 通过时间检查站点被黑客修改过的文件
bash
find /www/wwwroot/ecshop.xueshenit.com/ -name "*.php" -mtime -1
10. 检查服务器已经建立的网络连接 (netstat
命令)
bash
netstat -anutp
11. 通过 GScan 工具自动排查后门
使用 GScan 工具
bash
unzip GScan-master.zip
cd GScan-master
python GScan.py --help
python GScan.py --pro
12. systemd-journald 服务分析系统日志
systemd-journald 持久化配置
bash
mkdir /etc/systemd/journald.conf.d
vim /etc/systemd/journald.conf.d/99-prophet.conf
# 编辑配置文件,设置 Storage=persistent 等参数
systemctl restart systemd-journald
journalctl 查询日志
bash
journalctl
journalctl -r
journalctl -u sshd
journalctl -f
13. 实战清理系统日志后使用 systemd-journald 分析日志
清理日志并使用 journalctl
bash
echo > /var/log/secure
echo > /var/log/messages
# ... 对其他日志文件执行相同操作
journalctl --until "2021-11-05 17:47:00" -o short-precise
附加操作
自定义历史命令输出格式
编辑 /etc/profile
或 /etc/bashrc
文件,添加如下内容:
bash
export PROMPT_COMMAND='RETRN_VAL=$?;logger -p local6.debug "$(whoami) [$$]: $(history 1 | sed "s/^[ ]*[0-9]\\+[ ]*//" ) [$RETRN_VAL]"'
readonly PROMPT_COMMAND
查找特定时间范围内被修改过的文件
bash
find /www/wwwroot/ecshop.xueshenit.com/ -name "*.php" -newermt '2021-08-01 9:00' ! -newermt '2021-09-15 21:00' | xargs ls -l
这些命令和操作步骤提供了对Linux系统进行应急响应和日志分析的基本方法。实际操作时,可能需要根据具体情况调整命令参数。