Linux 服务器被入侵了怎么办?登录历史分析排查全攻略

系统 Linux 服务器
在这篇文章里,我们将一起探索如何有效地检查和分析Linux系统的登录历史,希望能为您的日常管理工作提供一些有用的技巧和支持。

了解Linux系统中的登录历史对于每一位系统管理员来说都是非常重要的。这不仅帮助我们确认用户是否在预期的时间内成功登录,还能让我们注意到任何不寻常的行为,从而及时发现并解决可能存在的安全问题。

在这篇文章里,我们将一起探索如何有效地检查和分析Linux系统的登录历史,希望能为您的日常管理工作提供一些有用的技巧和支持。

一、查看系统登录历史的工具

Linux系统提供了几种命令和工具来查看登录历史。这些工具的使用可以帮助管理员快速识别是否存在不正常的登录行为。

1. last 命令

last 命令用于显示系统上所有用户的登录历史,包括登录时间、持续时间、IP 地址等信息。它读取 /var/log/wtmp 文件,该文件存储了系统的所有登录和注销事件。

使用方法:

last
  • 1.

该命令将列出系统所有的登录记录,按时间倒序排列。你会看到类似如下的信息:

root     pts/1        112.97.47.32     Mon Aug 19 17:14 - 17:38  (00:23)
root     pts/0        112.97.47.32     Mon Aug 19 16:23 - 17:38  (01:15)
  • 1.
  • 2.

2. lastb 命令

lastb 命令用于查看系统上的登录失败记录。它读取 /var/log/btmp 文件,该文件记录了所有失败的登录尝试。

使用方法:

lastb
  • 1.

这会显示登录失败的尝试记录。通常,这些记录会包含用户名、IP地址、时间以及失败的原因。如果有大量失败的登录尝试,可能需要进一步调查,确保系统的安全。

dbuser   ssh:notty    174.138.12.250   Fri Mar 14 11:59 - 11:59  (00:00)
dbs      ssh:notty    174.138.12.250   Fri Mar 14 11:59 - 11:59  (00:00)
dbn      ssh:notty    174.138.12.250   Fri Mar 14 11:59 - 11:59  (00:00)
  • 1.
  • 2.
  • 3.

3. who 命令

who 命令可以显示当前系统登录的所有用户信息。它会列出每个用户的用户名、登录时间、终端等信息。

使用方法:

who
  • 1.

输出示例:

root     pts/0        2025-03-24 09:57 (183.9.128.198)
root     pts/1        2025-03-24 11:06 (183.9.128.198)
  • 1.
  • 2.

这显示了当前已登录的用户。虽然 who 命令不显示历史记录,但它非常适合实时监控登录的用户。

4. w 命令

w 命令提供有关当前登录用户的详细信息,包括他们当前正在做什么、登录时间、登录时长等。它比 who 提供了更多的实时信息。

使用方法:

w
  • 1.

输出示例:

11:28:23 up 102 days, 14:43,  2 users,  load average: 0.21, 0.13, 0.04
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    183.9.128.198    09:57    1:09m  0.02s  0.02s -bash
root     pts/1    183.9.128.198    11:06    4.00s  0.02s  0.00s w
  • 1.
  • 2.
  • 3.
  • 4.

二、日志文件深度分析

1. 核心日志文件定位

  • /var/log/auth.log (Debian/Ubuntu)
  • /var/log/secure(RHEL/CentOS)
  • /var/log/wtmp:成功登录二进制日志(由last解析)
  • /var/log/btmp:失败登录二进制日志(由lastb解析)
  • /var/run/utmp:当前登录记录(由who解析)

2. 原始日志解析技巧

# 使用utmpdump解析二进制日志
utmpdump /var/log/wtmp | grep -v "LOGIN"  # 排除系统启动记录
utmpdump /var/log/btmp | awk '/ssh/ {print $3}' | sort | uniq -c  # 统计SSH暴力破解IP

# 文本日志过滤示例
grep "Failed password" /var/log/auth.log  # SSH登录失败记录
grep "Accepted password" /var/log/auth.log | awk '{print $11}' | sort | uniq  # 成功登录IP统计
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

3. 高级检测与自动化

(1) 可疑登录特征识别

# 检测非常用IP登录
last | awk '{print $3}' | grep -E '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' | sort | uniq | diff - common_ips.txt

# 检测非工作时间登录(示例:22:00-06:00)
last | awk '$7 >= "22:00" || $7 < "06:00" {print}'
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

预存的合法IP文件common_ips.txt。

(2) 自动化监控脚本

#!/bin/bash
# 实时监控SSH登录(成功/失败)
tail -f /var/log/auth.log | awk '/sshd/{
  if(/Accepted/){ 
    print "\033[32m[SUCCESS] "$0"\033[0m" 
  } else if(/Failed/){ 
    print "\033[31m[FAILURE] "$0"\033[0m"
  }
}'
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.

三、加强登录安全的措施

除了定期查看登录历史外,管理员还应采取一些措施来提高系统的登录安全性:

1. 配置失败登录锁定

为了防止暴力破解攻击,可以配置系统在多次登录失败后暂时锁定账户。在 /etc/pam.d/common-auth 中,可以添加如下配置:

auth required pam_tally2.so onerr=fail deny=5 unlock_time=600
  • 1.

这将使得在连续 5 次失败登录后,账户会被锁定 10 分钟。

2. 使用SSH密钥认证

对于远程登录,使用 SSH 密钥认证比使用密码更加安全。管理员可以禁用密码登录,只允许使用 SSH 密钥来访问系统。

# 修改SSH默认端口
Port 2222

# 禁用root登录
PermitRootLogin no

# 强制密钥认证
PasswordAuthentication no
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.

3. 定期审计和更新密码策略

强密码和定期更新密码是保证系统安全的基本措施。管理员可以使用 chage 命令强制用户定期更改密码,并设置密码复杂度要求。

四、结语

检测和分析 Linux 系统的登录历史是确保系统安全的基本步骤之一。通过使用 last、lastb、who 和 w 等命令,管理员可以轻松查看用户的登录记录,并及时发现潜在的安全威胁。此外,结合一些安全措施,如多因素认证和 SSH 密钥认证,可以进一步提高系统的安全性,减少未经授权访问的风险。

责任编辑:赵宁宁 来源: 攻城狮成长日记
相关推荐

2018-01-30 09:25:04

2022-09-05 09:02:01

服务器CPU服务

2010-08-25 14:36:02

DHCP服务器

2009-11-20 15:02:06

2009-10-12 15:06:59

2011-08-09 09:37:49

2010-08-04 18:03:27

NFS服务器

2018-11-12 11:09:24

2009-11-10 12:08:15

2013-08-05 15:48:10

2010-05-18 11:12:21

2010-09-14 10:08:41

Squid安装

2009-10-28 10:21:51

2022-02-21 12:42:41

服务器Linux命令

2022-04-18 10:07:30

服务器安全设置

2010-07-22 09:50:26

交换机telnet登录

2022-10-21 11:30:42

用户生命周期分析

2020-11-23 15:21:12

Linux环境变量

2017-12-06 19:00:53

2009-11-03 08:56:02

linux死机操作系统
点赞
收藏

51CTO技术栈公众号