先定位日志文件,再过滤登录成功与失败记录,最后结合来源IP和时间线还原登录行为。登录日志是服务器安全的第一道哨兵,任何暴力破解、账号异常、未授权访问都会在日志里留下痕迹。
登录日志存在哪里:常见路径与读取方法
不同操作系统存放登录日志的位置不同,绝大多数Linux服务器遵循Linux标准基规范,Windows Server则有独立的事件查看器。
Linux系统登录日志文件位置
Linux的登录日志集中在/var/log目录下,与登录行为直接相关的文件主要有三个:
/var/log/secure:RedHat系(CentOS、AlmaLinux、Rocky Linux)的认证与安全日志,记录SSH登录、sudo提权、用户切换等关键动作/var/log/auth.log:Debian系(Ubuntu、Debian)的认证日志,作用和secure完全对应/var/log/wtmp:二进制文件,记录所有成功登录的历史,不能用cat直接读,要用last命令查看/var/log/btmp:二进制文件,记录所有失败登录的尝试,用lastb命令读取/var/log/lastlog:记录所有用户的最近登录时间,用lastlog命令查看
直接查看日志内容时,tail和grep的组合最常用,比如想实时监控登录动静,执行:
tail -f /var/log/secure
想排查某个IP段的所有登录尝试:
grep "192.168.1." /var/log/secure | less
Windows服务器登录日志怎么调取
Windows Server的登录日志不在文件系统里,而是集中存放在事件查看器中,操作路径是:打开事件查看器 → Windows日志 → 安全,关键是筛选事件ID:
- 4624:登录成功,这个是重点排查对象
- 4625:登录失败,爆破攻击的直接证据
- 4634 / 4647:注销和会话断开
- 4720:创建了新用户,如果没人操作却出现这个ID,基本可以确认被入侵
Windows下过滤日志建议在右侧操作栏使用“筛选当前日志”,输入对应事件ID即可快速定位,查询登录来源IP时,双击对应事件,在“常规”选项卡中能看到工作站名称和源网络地址,源网络地址就是攻击者的IP。
服务器登录日志的关键字段到底在看什么
一条登录日志记录包含的信息比想象中要多,以一条典型的Linux secure日志为例:
Mar 15 03:22:17 web-01 sshd[28451]: Accepted password for root from 203.0.113.5 port 55623 ssh2
拆开来看,核心要素是五个:
- 时间戳:记录登录发生的具体时刻,用于时间线还原
- 主机名:哪台服务器被登录了,多服务器环境下尤其关键
- 进程名:sshd表示SSH登录,login表示本地终端登录,sudo表示提权操作
- 动作结果:Accepted是成功,Failed是失败,invalid user是尝试登录不存在的账号
- 来源IP和端口:这个最关键,直接决定这条日志是正常访问还是攻击行为
换句话说,服务器登录日志怎么看,本质上是在回答三个问题:谁登录了、从哪登录的、做了什么,带着这三个问题去看日志,就不会被密密麻麻的记录淹没。
登录日志异常排查:从日志里发现攻击行为
攻击者入侵服务器前,通常会先进行大量的密码爆破,这个阶段会在日志里留下极其明显的特征。
异常登录行为有哪些典型特征
- 失败的密码尝试大量出现:短时间内连续出现几十上百条Failed password记录,来源IP通常集中在同一个或少数几个IP
- 尝试不存在的用户名:日志中出现invalid user admin、invalid user test等记录,说明攻击者在探测系统里有哪些可用账号
- 登录时间反常:服务器是业务系统,凌晨三四点的成功登录很可能有问题
- 来源IP地理位置不符:服务器只面向国内用户,却出现了海外IP的登录记录,需要立刻核查
- 登录后紧跟异常命令:这条在日志本身看不到,但结合bash历史记录或audit审计日志可以还原
Linux排查暴力破解,一条命令就能列出所有登录失败的IP:
grep "Failed password" /var/log/secure | awk '{print $(NF-3)}' | sort | uniq -c | sort -nr
输出结果的第一列是尝试次数,第二列是IP,尝试次数上百的IP可以直接判定为扫描或爆破行为。
已确认被入侵后做什么
发现异常登录后,第一步是立即切断风险,按照这个顺序操作:
- 临时封禁来源IP:
iptables -A INPUT -s 攻击IP -j DROP,或用firewalld的firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=攻击IP reject' - 检查系统用户列表:
cat /etc/passwd里看有没有陌生账号,重点检查UID为0的非root用户 - 修改所有账户密码,包括root、数据库、应用账号
- 检查SSH配置
/etc/ssh/sshd_config,确认没有异常配置项 - 排查计划任务
crontab -l和/etc/cron.d/下的可疑任务
在Linux系统层面封禁恶意IP,比在云控制台操作更快更直接,同时建议检查云服务商的安全组策略,把管理端口(如22、3389)的访问来源限制为办公网IP段。
Linux查看登录日志的命令有哪些:常用工具汇总
命令行是查看Linux登录日志的最高效方式,业内专家指出,熟练使用以下命令组合,日志排查效率能提升大半。
按场景匹配的日志命令清单
last:查看所有成功登录记录,包括登录时间、持续时间、来源IPlastb:查看所有失败登录记录,需要root权限lastlog:查看每个用户的最近一次登录信息journalctl -u sshd:查看sshd服务的完整日志,Systemd系统推荐ausearch -m USER_LOGIN -ts recent:查看最近所有用户登录审计事件,适用于配置了auditd的系统grep -E "Accepted|Failed" /var/log/secure:一次性列出所有成功和失败记录
多数情况下,一次合理的排查流程是先用last快速确认有没有非预期的成功登录,再用lastb和grep统计爆破规模,最后用journalctl或ausearch深入追踪单次会话的具体行为。
日志分析工具:应对大规模日志场景
日志文件大了之后,直接用grep会越来越慢,统计数据显示,生产环境核心服务器的secure日志单日就可能产生数万条记录,这时需要更专业的分析手段:
- GoAccess:开源工具,支持实时解析多种日志格式,Web界面可视化展示
- LNAV:终端日志浏览器,能自动识别日志格式并高亮关键字段
- ELK / Loki套件:企业级方案,适合多台服务器的日志集中分析,其中Loki对云原生环境更友好
对于只有几台服务器的小团队,LNAV足够用;管理的机器数量较多时,搭建一套Loki+Grafana来做登录日志的可视化监控,是性价比比较高的过渡方案,工具的核心价值在于帮助人快速找到异常,取代不了对日志内容本身的理解。
日常巡检:把登录日志纳入常规运维流程
登录日志不能等到出了事才看,常态化的巡检才能在攻击早期发现端倪,业内专家指出,多数入侵事件如果每天检查登录日志,可以在数小时内发现并止损。
一套轻量级的登录日志巡检方案
每天定时巡检,检查效果较好的做法是写一个简单脚本,通过crontab在每天上午九点执行,输出前一天的登录摘要:
- 统计昨天所有成功登录的次数,超过阀值则告警
- 统计失败登录次数排名前十的IP,自动对比已知白名单
- 检查新增用户和sudo权限变更记录
#!/bin/bash
# 登录日志巡检脚本示例
echo "===== 昨日成功登录 ====="
last -a | grep "$(date -d yesterday '+%b %e')"
echo "===== 登录失败TOP10 ====="
grep "Failed password" /var/log/secure | awk '{print $(NF-3)}' | sort | uniq -c | sort -nr | head -10
echo "===== 新增用户 ====="
awk -F: '$3>=1000 && $3<=60000 {print $1": uid="$3}' /etc/passwd | tail -20
除了这一层主动性检查,搭配服务端防护策略才能形成闭环,强烈建议在SSH配置中做三件事:禁用root密码登录,改为密钥认证;修改SSH默认端口;安装fail2ban实现自动封禁,这三件事做完,绝大部分自动化爆破攻击会被拒之门外,登录日志的噪音也会显著减少。
使用云平台安全产品的登录日志告警功能,比如酷番云主机安全、简米云云安全中心的异常登录告警,同样建议开启并配置通知到运维群,这类产品在系统有新账号创建、root登录、异地登录的时候会主动推送消息,相当于有了第一道自动防线。
服务器登录日志怎么看的问答环节
Q:为什么我的服务器日志里全是Failed password记录,而且来源IP来自世界各地?
A:这是典型的互联网扫描与暴力破解行为,服务器暴露在公网上后每天都会收到大量此类探测,属正常现象,只要没有成功登录记录,单纯失败尝试的威胁有限,建议排查是否有非预期IP成功登录过,同时检查SSH密码强度,并考虑部署密钥认证替代密码登录。
Q:lastb显示大量登录失败记录,服务器是被入侵了吗?
A:不一定,lastb记录的是“认证失败”的事件,包括密码输错、SSH探测、自动化扫描工具尝试等,任何公网IP都会收到全球各地的扫描流量,root账号又是扫描器的首要目标,真正的危险信号是last中出现了非预期的Accepted记录,或者日志中存在连续且成功的登录行为,这两种情况才需要立即介入排查。
Q:服务器的登录日志文件被清空了,还能追查登录记录吗?
A:日志被清空本身就是一个严重的安全事件信号,意味着攻击者可能已经取得root权限并做了反取证操作,多数情况下,日志清空后本机已无法追溯历史记录,需要依靠其他残留数据来还原,重点是检查系统审计日志(auditd)是否仍然完好、进程历史是否被清理、以及云平台侧,使用云服务器的用户,建议登录云控制台查看接入层、管理端的安全审计记录,例如通过VNC登录记录、控制台操作日志,这部分通常由云平台独立保存,如果云平台侧也无记录,需要结合文件时间戳、可疑进程、异常计划任务来间接判断入侵时间点。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/771753.html


