Linux 服务器遭入侵?如何通过登录日志快速锁定入侵源?

Linux 服务器遭入侵?如何通过登录日志快速锁定入侵源?

排查服务器被黑客入侵的步骤与应急处理

一旦服务器被黑客入侵,第一时间要做的就是排查登录历史、定位入侵来源、封堵安全隐患。本文将系统性地介绍如何通过 Linux 提供的日志工具,分析异常登录、追踪可疑 IP,并进行应急处置,适合一线运维人员、开发者参考。

1. 查看最近的登录记录(last 命令)

使用 last 命令可以快速查看系统的登录历史,了解有哪些用户何时、从哪里登录了系统。

last -n 20 # 查看最近 20 条登录记录

last -f /var/log/wtmp # 指定登录日志文件(默认也是 wtmp)

重点观察:

用户名(如:root、admin、陌生账号等)

登录时间(是否是凌晨、非工作时间等异常时段)

登录来源 IP

登录方式(如 SSH pts/X)

示例输出:

root pts/0 192.168.1.100 Thu Apr 11 10:15 still logged in

hacker pts/1 45.76.123.89 Thu Apr 11 09:55 - 10:05 (00:10)

如发现陌生账号或外部 IP 登录记录,极有可能是入侵痕迹。

2. 查看失败登录尝试(lastb 命令)

lastb 可以查看所有失败的登录尝试,通常暴力破解的痕迹会体现在这里。

lastb | head -n 20 # 查看最近 20 次失败登录尝试

若某个 IP 连续多次尝试失败,可能在尝试暴力破解:

banned ssh:notty 103.20.45.89 Thu Apr 11 09:50 - 09:51 (00:01)

3. 检查 SSH 登录日志(/var/log/secure 或 /var/log/auth.log)

3.1 查找成功登录记录

grep "Accepted" /var/log/secure # CentOS/ RHEL

grep "Accepted" /var/log/auth.log # Ubuntu/Debian

示例输出:

Apr 11 10:15:00 server sshd[1234]: Accepted password for root from 45.76.123.89 port 45678 ssh2

3.2 查找失败登录记录

grep "Failed password" /var/log/secure

grep "Failed password" /var/log/auth.log

3.3 查找 root 用户远程登录

grep "session opened" /var/log/secure | grep "root"

4. 查看当前在线用户(who / w)

who

w

示例输出中如发现陌生用户名(如 hacker、test123),说明系统已被控制。

5. 检查 SSH 配置是否被篡改

入侵者可能会修改 SSH 配置,放宽登录条件。

cat /etc/ssh/sshd_config | grep PermitRootLogin

建议设置为:

PermitRootLogin no

6. 查看用户执行命令历史(.bash_history)

cat ~/.bash_history | tail -n 50

重点查找:

wget 或 curl 下载恶意脚本

chmod 777、./xxx 执行权限提升命令

添加用户、植入后门的脚本

7. 追踪可疑 IP 来源(whois / ping)

例:

whois 45.76.123.89

ping -c 4 45.76.123.89

还可以使用 AbuseIPDB 检查是否为恶意 IP:

curl -s https://api.abuseipdb.com/api/v2/check?ipAddress=45.76.123.89

8. 应急处理建议

8.1 封禁可疑 IP

iptables -A INPUT -s 45.76.123.89 -j DROP

firewall-cmd --add-rich-rule='rule family="ipv4" source address="45.76.123.89" reject' --permanent

fail2ban-client set sshd banip 45.76.123.89

8.2 修改 SSH 配置

vim /etc/ssh/sshd_config

推荐配置

Port 2222 PermitRootLogin no systemctl restart sshd

8.3 强制踢出可疑用户

pkill -u hacker

8.4 锁定高危账户

usermod -L hacker

8.5 更改所有密码

passwd root

8.6 更新系统与安全补丁

yum update -y # CentOS apt update && apt upgrade -y # Ubuntu/Debian

9. 总结与建议

当发现服务器被入侵,第一步不是重装系统,而是排查入侵路径和清除隐患。

通过 last、lastb、grep、w、bash_history 等常用命令,我们可以快速定位登录来源,分析入侵行为。

当然,如果系统已被完全控制,建议直接备份数据后重装系统,并使用稳定服务器平台重新部署,同时强化如下措施:

禁止 root 远程登录

使用非默认 SSH 端口

启用 fail2ban、防火墙策略

使用密钥登录替代密码登录

定期审计登录日志和账户活动

相关推荐

口袋兽人所有玩法功能解锁等级及奖励一览
365bet在线官网

口袋兽人所有玩法功能解锁等级及奖励一览

📅 09-17 👁️ 1243
英特尔® 至强® 处理器 E5-1650
365bet在线官网

英特尔® 至强® 处理器 E5-1650

📅 11-03 👁️ 8284
麦当劳选送中国小球童亮相俄罗斯FIFA世界杯 10岁中国足球小女将见证总决赛
儿童中国画:猫头鹰的画法
天天365彩票软件官方下载3D

儿童中国画:猫头鹰的画法

📅 08-29 👁️ 3042
漆黑之翼
365bet在线官网

漆黑之翼

📅 07-09 👁️ 6832
淇洹的解释及意思
365娱乐场投注

淇洹的解释及意思

📅 10-19 👁️ 1326