Linux 日志分析入门:auth.log 里的入侵痕迹
文章目录写在前面入侵很少“无声无息”一、先建立地图认证日志住在哪里1.1 发行版差异入门必须先记住1.2 轮转与“日志为什么突然没了”1.3 auth.log 主要记录谁二、读懂一行日志字段与语义三、正常基线先知道“什么叫正常”3.1 正常画像通常包括3.2 快速画基线的命令四、入侵痕迹主线一SSH 暴力破解与撞库4.1 典型失败风暴4.2 统计爆破强度4.3 “断开”与 fail2ban 痕迹4.4 防守动作短平快五、入侵痕迹主线二成功登录之后发生了什么5.1 成功登录后的“会话三联画”5.2 高风险成功模式5.3 无效用户与枚举六、入侵痕迹主线三sudo / su——进门后的“提权笔录”6.1 典型 sudo 成功6.2 sudo 失败也有价值6.3 su 切换七、入侵痕迹主线四账号与认证配置被改7.1 用户新增与组变更相关日志7.2 SSH 配置被改的间接信号7.3 时间异常八、从“看行”到“做时间线”一套入门级分析流程步骤 1冻结与采集步骤 2先找成功后看失败步骤 3围绕成功会话扩线步骤 4画一页纸时间线步骤 5结论分级九、实用“检索配方”作弊条建议收藏十、攻击者如何“藏痕迹”防守者如何防删日志10.1 常见藏法10.2 防守对策结语auth.log 是主机安全的“口供笔录”写在前面入侵很少“无声无息”很多同学一提到溯源就先想流量镜像、EDR、内存取证。这些都很重要但在大量真实应急里第一份打开的文件往往是认证日志。在 Debian / Ubuntu 系上它通常叫/var/log/auth.log在 RHEL / CentOS / Rocky / Alma 系上对应角色更多由这里承担/var/log/secure名字不同本质接近谁在什么时候、从哪里、用什么方式尝试证明“我是合法用户”以及系统是否相信了他。攻击者要进系统终究绕不开“认证”或“提权”这两道关。关口会说话——而auth.log就是关口的口述笔录。本文面向入门到进阶的防守人员解决三个问题auth.log里都有什么正常长什么样入侵长什么样拿到一台可疑主机时如何在 3060 分钟内从日志里抽出时间线。一、先建立地图认证日志住在哪里1.1 发行版差异入门必须先记住发行版家族常见认证日志说明Debian / Ubuntu/var/log/auth.log传统 rsyslog 场景很常见RHEL 系/var/log/secure内容角色类似通用systemdjournalctl现代系统可同时查 journal很多云镜像同时存在文件日志 journald。入门建议两手都要会# 文件方式Ubuntu 示例sudoless/var/log/auth.logsudotail-n200/var/log/auth.log# journal 方式更现代sudojournalctl-ussh-usshd--since2026-07-01sudojournalctl-tsshd-tsudo--since1 day ago1.2 轮转与“日志为什么突然没了”日志会轮转例如/var/log/auth.log /var/log/auth.log.1 /var/log/auth.log.2.gz应急时最常见的新手失误是只看当前文件漏掉压缩历史。正确习惯sudozgrep-hFailed password/var/log/auth.log*sudozcat /var/log/auth.log.2.gz|grepAccepted如果连轮转文件都缺了一截要警惕磁盘满导致写失败有人主动清理日志被重定向/关闭时区或主机时间错乱造成“看起来像缺失”。1.3 auth.log 主要记录谁常见“发言者”包括sshd远程登录成败、无效用户、断开sudo/su提权与切换用户systemd-logind/login本地会话passwd/useradd/groupadd视配置账号变更CRON偶发与 PAM 相关、pkexec、gdm等。入门阶段先把sshd sudo 用户变更三条主线抓牢已经能覆盖大部分主机入侵痕迹。二、读懂一行日志字段与语义以 Ubuntu 上常见的 sshd 行为例不同版本文案略有差异Jul 27 10:21:33 web01 sshd[21501]: Failed password for root from 203.0.113.66 port 52844 ssh2拆解部分含义Jul 27 10:21:33本地时间戳注意时区web01主机名sshd[21501]进程与 PIDFailed password事件类型密码失败for root目标账号from 203.0.113.66来源 IPport 52844来源端口ssh2协议成功登录常见类似Jul 27 10:25:02 web01 sshd[21588]: Accepted publickey for deploy from 198.51.100.23 port 60122 ssh2: RSA SHA256:xxxxxxxx或Accepted password for alice from ...入门口诀Failed 是敲门Accepted 是进门session opened 是坐下sudo 是开始动刀。三、正常基线先知道“什么叫正常”不会看正常就无法判断异常。建议先给每台重要主机建立“认证基线画像”。3.1 正常画像通常包括登录来源 IP 集合很小办公出口、堡垒机、CI 出口账号集合很小运维个人账号、部署账号极少直接 root 密码登录时间符合变更窗口失败次数低且可解释偶发输错密码sudo 命令集合稳定发布脚本、systemctl restart 某服务等。3.2 快速画基线的命令# 近几天成功登录来源 IPsudogrepAccepted/var/log/auth.log*|awk{print $(NF-3)}|sort|uniq-c|sort-nr# 成功登录使用的用户sudogrepAccepted/var/log/auth.log*|awk{for(i1;iNF;i) if($ifor){print $(i1)}}|sort|uniq-c# 失败最多的来源 IPsudogrepFailed password/var/log/auth.log*|awk{print $(NF-3)}|sort|uniq-c|sort-nr|head把输出存成“上周正常样本”下次对比会非常快。四、入侵痕迹主线一SSH 暴力破解与撞库4.1 典型失败风暴Failed password for root from 203.0.113.8 port 41120 ssh2 Failed password for root from 203.0.113.8 port 41122 ssh2 Failed password for invalid user oracle from 203.0.113.8 port 41130 ssh2 Failed password for invalid user admin from 203.0.113.8 port 41140 ssh2关键信号短时间大量 Failed同一来源 IP出现invalid user对方在扫用户名字典目标含root、admin、test、oracle、ubuntu等热门名。入门判断只有 Failed没有 Accepted多半是噪音扫描或爆破未成功Failed 之后同 IP 出现 Accepted要按可能已攻破升级响应。4.2 统计爆破强度sudogrepFailed password/var/log/auth.log|awk{print $1,$2}|uniq-c|sort-nr|headsudogrepFailed password/var/log/auth.log|grep-oEfrom [0-9.]|sort|uniq-c|sort-nr|head4.3 “断开”与 fail2ban 痕迹你可能还会看到Disconnected from authenticating user root 203.0.113.8 port 41120 error: maximum authentication attempts exceeded或 fail2ban/防火墙封禁相关日志位置不一定在 auth.log。说明防护在生效但仍要回答封禁前有没有成功登录4.4 防守动作短平快SSH 禁止密码登录改密钥禁止 root 远程密码登录改非默认端口只能降噪不能当银弹fail2ban / 云安全组限流能上堡垒机就不要公网暴露 sshd。五、入侵痕迹主线二成功登录之后发生了什么真正让值班同学心跳加速的是Accepted。5.1 成功登录后的“会话三联画”常见后续Accepted publickey for deploy from 198.51.100.23 port 60122 ssh2 pam_unix(sshd:session): session opened for user deploy by (uid0) ... session closed for user deploy分析要点谁登录成功用户名怎么登录password / publickey从哪来IP何时开关会话会话期间有没有 sudo、新增密钥、新增用户。5.2 高风险成功模式模式为何高风险Accepted password for rootroot 密码爆了就全丢凌晨来自从未见过的国家/网段 IP基线外很少使用的账号突然成功可能被盗成功后立即大量 sudo可能在快速提权/落地公钥登录但指纹陌生可能被人塞了 authorized_keys提取公钥成功事件sudogrepAccepted publickey/var/log/auth.log*然后去对比sudocat/home/*/.ssh/authorized_keys /root/.ssh/authorized_keys2/dev/null日志负责“何时从哪来”密钥文件负责“现在门上挂了几把锁”。5.3 无效用户与枚举Invalid user git from 203.0.113.50 port 12234 Failed password for invalid user git from ...说明对方在做账号枚举。即便失败也应纳入威胁情报该 IP 对你网络有攻击意图。六、入侵痕迹主线三sudo / su——进门后的“提权笔录”《sudo 配置陷阱》一文讲过配置如何被滥用本文看日志如何暴露滥用。6.1 典型 sudo 成功Jul 27 11:02:10 web01 sudo: alice : TTYpts/0 ; PWD/home/alice ; USERroot ; COMMAND/usr/bin/vim /etc/passwd字段含义alice发起者USERroot目标身份COMMAND...干了什么PWD当时目录。高风险命令清单日志里出现要盯编辑器vim、vi、nano解释器python、perl、ruby、bash账号useradd、usermod、passwd、visudo权限chmod、chown、chattr远程持久化相关改sshd_config、写authorized_keys6.2 sudo 失败也有价值alice : user NOT in sudoers ; COMMAND/bin/bash说明有人在尝试提权但策略未放行。可能是误操作也可能是攻击者在摸索。6.3 su 切换su[...]: Successful su for root by bob su[...]: FAILED su for root by bobsu成功到 root同样是关键节点。与 sudo 不同su 更依赖目标用户密码日志形态略有差异但分析逻辑一致谁、何时、是否成功、之后做了什么。检索sudogrep-Esudo:|su\[/var/log/auth.log*七、入侵痕迹主线四账号与认证配置被改攻击者站稳后常做三件事留后门账号、留密钥、弱化认证。7.1 用户新增与组变更相关日志视系统和 PAM/工具配置可能看到useradd、adduser、usermod、groupadd等通过 sudo 被调用。即使 auth.log 不够细也要交叉getentpasswdlastlogsudogrep-Euseradd|adduser|usermod|visudo/var/log/auth.log*并把/etc/passwd、/etc/shadow变更时间、备份对比纳入调查。7.2 SSH 配置被改的间接信号auth.log 不一定直接写“sshd_config changed”但可能出现sshd 重启前后认证方式变化以前只有公钥突然出现 password 成功管理员 sudo 执行了vim /etc/ssh/sshd_config、systemctl restart sshd。应急时务必核对grep-E^(PermitRootLogin|PasswordAuthentication|PubkeyAuthentication)/etc/ssh/sshd_config /etc/ssh/sshd_config.d/*2/dev/null7.3 时间异常如果日志时间回跳、大段空白、未来时间戳考虑NTP 被改主机时间曾错误攻击者试图干扰时间线。时间线是溯源生命线发现时钟问题时要先记录“采集时的真实 UTC”。八、从“看行”到“做时间线”一套入门级分析流程假设告警是某公网 IP 可疑或主机 CPU 异常、对外反连。步骤 1冻结与采集mkdir-p/root/ir_$(date%F)/logssudocp-a/var/log/auth.log* /root/ir_$(date%F)/logs/2/dev/nullsudojournalctl--since7 days ago/root/ir_$(date%F)/logs/journal_7d.txt先复制再分析避免边看边丢。步骤 2先找成功后看失败新手常沉迷于上万条 Failed却漏掉一条 Accepted。顺序应反过来sudogrepAccepted/var/log/auth.log*sudogrepsession opened/var/log/auth.log*步骤 3围绕成功会话扩线对成功用户与 IPIP198.51.100.23USERdeploysudogrep$IP/var/log/auth.log*sudogrepsudo: *$USER/var/log/auth.log*再查~/.bash_history可能被清不能当唯一证据authorized_keys定时任务与 systemd出站连接与进程。步骤 4画一页纸时间线推荐格式10:21:33 203.0.113.66 对 root 开始密码爆破 10:40:02 203.0.113.66 Accepted password for root ← 失陷点 10:40:15 root sudo/命令添加用户 backdoor 10:41:02 backdoor Accepted publickey from 203.0.113.66 10:45:11 backdoor sudo vim /etc/cron.d/...有了这页纸汇报与后续取证才有骨架。步骤 5结论分级级别条件动作噪音仅失败爆破无成功封 IP、保持观察可疑基线外成功登录限制账号、强制下线、深挖失陷成功后有提权/后门/异常持久化按应急预案隔离、保全、恢复九、实用“检索配方”作弊条建议收藏# 1) 所有成功登录grepAccepted/var/log/auth.log*# 2) 密码成功高风险grepAccepted password/var/log/auth.log*# 3) 公钥成功grepAccepted publickey/var/log/auth.log*# 4) 失败密码grepFailed password/var/log/auth.log*# 5) 无效用户枚举grepInvalid user/var/log/auth.log*# 6) root 登录相关grep-Efor root|user root/var/log/auth.log*|grep-EAccepted|Failed# 7) sudo 命令grepCOMMAND/var/log/auth.log*# 8) 某 IP 全文grep203.0.113.66/var/log/auth.log*# 9) 某时间窗需结合 journalctl 更方便journalctl--since2026-07-27 10:00--until2026-07-27 12:00-tsshd-tsudo把这些做成别名或小脚本入门效率会高一个数量级。十、攻击者如何“藏痕迹”防守者如何防删日志入门也要知道对抗面。10.1 常见藏法删或清空auth.log用history -c清 shell 历史对 auth.log 无效但影响关联分析破坏 rsyslog/journald植入 rootkit 劫持写日志路径进阶。10.2 防守对策日志外送syslog/agent 实时送到 SIEM本机删除不影响中心文件完整性监控auth.log、sudoers、authorized_keys变更告警权限收紧普通用户不能写日志目录只追加存储/WORM合规要求高时多源交叉firewall、wtmp/btmp、last/lastb、审计d、EDR 事件。补充命令last-a|headlastb|head# 失败登录需权限whowwtmp/btmp与 auth.log 互补不要只认一个来源。安全运营不是单点工具而是预防 → 检测 → 响应 → 复盘的回路。结语auth.log 是主机安全的“口供笔录”入侵可以很复杂但大多数中小规模失陷仍然遵循老套路扫描或爆破 → 认证成功 → 提权 → 持久化 → 清理痕迹。auth.log/secure恰好横跨前半段最关键的节点。你若能稳定地从中读出谁在敲门谁进了门谁提了权谁改了钥匙你就已经跨过了 Linux 安全分析入门的第一道硬门槛。当日志会说话攻击者就很难再靠“默默输对一次密码”拿走整台系统。

相关新闻

如何高效使用uBlock Origin:5个实用技巧彻底告别浏览器广告

如何高效使用uBlock Origin:5个实用技巧彻底告别浏览器广告

如何高效使用uBlock Origin:5个实用技巧彻底告别浏览器广告 【免费下载链接】uBlock uBlock Origin - An efficient blocker for Chromium and Firefox. Fast and lean. 项目地址: https://gitcode.com/GitHub_Trending/ub/uBlock 你是否厌倦了网页上无处不在…

2026/10/16 4:06:21 阅读更多 →
如何快速上手DeepSeek-V2-Lite-Chat:单卡40G GPU部署全攻略

如何快速上手DeepSeek-V2-Lite-Chat:单卡40G GPU部署全攻略

如何快速上手DeepSeek-V2-Lite-Chat:单卡40G GPU部署全攻略 【免费下载链接】DeepSeek-V2-Lite-Chat 开源项目DeepSeek-V2-Lite-Chat,搭载先进的Multi-head Latent Attention和DeepSeekMoE架构,以更经济高效的方式训练和推理,轻松…

2026/10/16 4:07:02 阅读更多 →
Special K深度解析:从游戏性能优化到HDR色彩管理的完整实战指南

Special K深度解析:从游戏性能优化到HDR色彩管理的完整实战指南

Special K深度解析:从游戏性能优化到HDR色彩管理的完整实战指南 【免费下载链接】SpecialK Lovingly referred to as the Swiss Army Knife of PC gaming, Special K does a bit of everything. 项目地址: https://gitcode.com/gh_mirrors/sp/SpecialK Speci…

2026/10/16 4:22:26 阅读更多 →

最新新闻

AI时代技术人的自我定位:从深夜焦虑到清醒重构

AI时代技术人的自我定位:从深夜焦虑到清醒重构

深夜两点半,我对着屏幕上几行代码发呆。旁边一个对话框里显示着AI给我生成的解决方案,思路清晰、注释完整、几乎无懈可击。这不是我第一次在深夜被这种清晰的"完美"击中——不是感到轻松,而是感到一阵彻骨的焦虑。那晚我没有继续写…

2026/10/16 12:58:54 阅读更多 →
SpringMVC+MyBatis+EasyUI分页实战:PageHelper集成与四层联动避坑指南

SpringMVC+MyBatis+EasyUI分页实战:PageHelper集成与四层联动避坑指南

简介:这是一份面向Java Web开发初学者与SSM框架实践者的完整分页功能集成Demo,聚焦Spring、SpringMVC、MyBatis与EasyUI四大技术栈的协同落地,解决Web应用中海量数据高效展示与交互的核心问题。资源包共122个文件,涵盖12个Java源码…

2026/10/16 12:58:54 阅读更多 →
free-claude-code轻代理模式:本地接入Claude代码能力的实操指南

free-claude-code轻代理模式:本地接入Claude代码能力的实操指南

1. 这个项目到底在解决什么问题 第一次看到“free-claude-code”这个标题,很多人会以为又是一个套壳聊天工具。但我实际拆解下来,它真正想解决的是一个很具体的痛点: 让开发者在不依赖官方订阅、不折腾复杂配置的前提下,把 Claud…

2026/10/16 12:58:54 阅读更多 →
Flex:ai开源组件:模型容器化部署的实战经验

Flex:ai开源组件:模型容器化部署的实战经验

做了两年多模型部署,我越来越觉得容器化这件事被严重低估了。模型训练有框架帮你兜底,但一到上线环节,Dockerfile怎么写、镜像怎么瘦身、GPU怎么调度、流量怎么切,全得自己一点点抠。这也是我发起 ModelEngine 并开源 Flex:ai 组件…

2026/10/16 12:58:54 阅读更多 →
Git上传代码到GitHub完整指南:main分支、SSH认证与初始化流程

Git上传代码到GitHub完整指南:main分支、SSH认证与初始化流程

1. 项目概述:从本地代码到远程仓库的完整闭环你手头刚写完一个功能完整的本地项目,目录结构清晰、代码跑得通、README也写好了——但下一步卡住了:怎么把它变成别人能搜到、能克隆、能协作的 GitHub 项目?这不是点几下鼠标就能搞定…

2026/10/16 12:58:54 阅读更多 →
跨领域迁移学习:打破认知牢笼,把经验炼成可迁移的思维模式

跨领域迁移学习:打破认知牢笼,把经验炼成可迁移的思维模式

本篇文章想聊一个很实际的话题:跨领域迁移学习。它不是讲机器的迁移学习,也不是讲考试刷题那种知识搬家,而是讲人类大脑如何把某个领域的内功心法,移植到另一个原本不相干的领域去。这个概念近几年在个人成长、产品设计、组织管理…

2026/10/16 12:57:54 阅读更多 →

日新闻

个人 AI Agent 平台接入 TaoToken:统一 Key 与 API 通道的配置大纲

个人 AI Agent 平台接入 TaoToken:统一 Key 与 API 通道的配置大纲

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 0:00:05 阅读更多 →
信号与系统频域分析作业解题指南

信号与系统频域分析作业解题指南

1. 作业背景与核心要求解析信号与系统作为电子信息类专业的核心基础课,其作业设计往往直接关联课程的核心知识框架。2026年春季第六次作业的布置,通常对应着课程进展到频域分析的关键阶段。根据常规教学进度推测,本次作业可能涉及以下核心内容…

2026/10/16 0:00:05 阅读更多 →
Django MVT实战:从零构建图书借阅系统,彻底搞懂Model-View-Template分层

Django MVT实战:从零构建图书借阅系统,彻底搞懂Model-View-Template分层

1. 从一个"四不像"的练手项目说起如果你已经看完了Django的官方教程前几章,跟着敲完了投票应用,大概会有一种"我好像会了,又好像什么都不会"的割裂感。教程里每个知识点都是拆开的——这一章讲模型,下一章讲视…

2026/10/16 0:00:05 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/15 16:18:54 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/15 19:41:51 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/15 13:48:15 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 3:49:43 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 9:49:14 阅读更多 →