插件窝 干货文章 Linux——11个步骤教你完美排查服务器是否被入侵

Linux——11个步骤教你完美排查服务器是否被入侵

检查 系统 bash 查看 855    来源:    2025-04-13

Linux服务器入侵排查指南:11个关键步骤

当怀疑Linux服务器可能被入侵时,系统管理员需要快速而全面地检查系统状态。以下是11个关键步骤的详细排查流程:

1. 检查当前登录用户和会话

# 查看当前登录用户
who -a

# 显示详细的登录信息
last -a

# 检查异常SSH会话
netstat -tnpa | grep 'ESTABLISHED.*sshd'

2. 检查系统进程

# 查看所有运行进程的完整命令行
ps auxf

# 按CPU使用率排序
top -c

# 检查异常进程名或路径
ps aux | grep -E '(\.tmp|/var/tmp|/dev/shm)'

3. 检查网络连接

# 查看所有网络连接
netstat -anp

# 使用ss命令(更现代)
ss -tulnp

# 检查异常外连IP
lsof -i | grep ESTABLISHED

4. 检查异常文件修改

# 查找最近修改的文件(24小时内)
find / -type f -mtime -1 -print

# 检查系统关键目录
ls -la /etc /bin /sbin /usr/bin /usr/sbin | grep '^...x..x..x'

# 检查隐藏文件
find / -name ".*" -type f -print

5. 检查计划任务

# 查看所有用户的crontab
ls /var/spool/cron/crontabs/
cat /var/spool/cron/crontabs/*

# 检查系统级计划任务
ls -la /etc/cron*

6. 检查用户和权限变更

# 检查/etc/passwd和/etc/shadow
ls -l /etc/passwd /etc/shadow

# 查看新增用户
awk -F: '$3 >= 1000 {print $1}' /etc/passwd

# 检查sudo权限变更
cat /etc/sudoers | grep -v '^#\|^$'

7. 检查SSH配置和密钥

# 检查SSH授权密钥
cat ~/.ssh/authorized_keys

# 检查SSH配置文件
cat /etc/ssh/sshd_config | grep -v '^#\|^$'

# 查找异常SSH密钥
find / -name "id_*" -o -name "*.pub" -type f

8. 检查系统日志

# 查看认证日志
cat /var/log/auth.log | grep -i 'fail\|accept'

# 检查系统日志
journalctl -xe

# 检查最近重启记录
last reboot

9. 检查rootkit和恶意软件

# 使用rkhunter检查rootkit
rkhunter --check

# 使用chkrootkit检查
chkrootkit

# 检查LD_PRELOAD劫持
echo $LD_PRELOAD

10. 检查内核模块

# 查看已加载内核模块
lsmod

# 检查异常模块
cat /proc/modules | awk '{print $1}'

11. 完整性检查

# 检查系统二进制文件完整性(需预先有基准)
rpm -Va  # 对于RPM系统
debsums -a # 对于Debian系统

# 检查SUID/SGID文件
find / -perm -4000 -o -perm -2000 -type f -exec ls -la {} \;

应急响应建议

  1. 立即隔离系统:将受影响服务器从网络中断开
  2. 取证保存:在采取任何修复措施前,备份关键日志和证据
  3. 密码重置:重置所有相关账户密码
  4. 全面审计:检查所有关联系统
  5. 系统重建:严重情况下考虑从干净介质重建系统

记住,预防胜于治疗。定期更新系统、实施最小权限原则、启用入侵检测系统(如AIDE或OSSEC)可以大大降低入侵风险。