当怀疑Linux云服务器遭受入侵时,需要系统性地进行排查。以下是详细的排查步骤和方法:
# 检查当前登录用户
who -a
# 查看所有用户(包括系统用户)
cat /etc/passwd
# 检查异常用户(UID为0的非root用户)
awk -F: '($3 == 0) {print}' /etc/passwd
# 查看最近登录记录
last -ai
lastb # 查看失败的登录尝试
# 检查空密码账户
awk -F: '($2 == "") {print}' /etc/shadow
# 查看所有进程
ps auxf
# 查看网络连接
netstat -anptu
ss -anptu
lsof -i
# 检查异常进程(CPU/内存占用高)
top
htop
# 检查隐藏进程
ps -ef | awk '{print $2}' | sort -n | uniq -c | sort -n
# 检查最近修改的文件
find / -type f -mtime -7 -print
# 检查SUID/SGID文件
find / -perm -4000 -o -perm -2000 -type f -exec ls -la {} \;
# 检查可写目录
find / -perm -2 -type d 2>/dev/null
# 检查rootkit
rkhunter --check
chkrootkit
# 检查系统文件完整性(如果之前有基线)
debsums -c # Debian/Ubuntu
rpm -Va # CentOS/RHEL
# 检查cron任务
ls -la /etc/cron*
cat /etc/crontab
ls -la /var/spool/cron
# 检查系统启动项
ls -la /etc/init.d/
ls -la /etc/rc*.d/
# 检查用户启动项
ls -la ~/.config/autostart/
# 系统日志
cat /var/log/messages
cat /var/log/syslog
cat /var/log/auth.log
# SSH日志
cat /var/log/secure
cat /var/log/auth.log | grep sshd
# 检查日志篡改
ls -la /var/log/
# 检查防火墙规则
iptables -L -n
ufw status # Ubuntu
# 检查异常监听端口
netstat -tulnp
ss -tulnp
# 检查DNS配置
cat /etc/resolv.conf
# 检查SSH authorized_keys
cat ~/.ssh/authorized_keys
# 检查/etc/hosts文件
cat /etc/hosts
# 检查LD_PRELOAD等环境变量
cat /etc/environment
cat ~/.bashrc | grep LD_
# 使用专业工具扫描
clamscan -r --bell -i /
# 检查云元数据API访问
curl http://169.254.169.254/latest/meta-data/
# 检查IAM角色配置(AWS)
curl http://169.254.169.254/latest/meta-data/iam/security-credentials/
# 检查云安全组/ACL规则
记住,在取证过程中要保持记录所有操作,这些记录可能对后续的法律程序或安全审计有帮助。