排查Linux服务器是否被入侵步骤

作为一个Linux运维工程师,能够清晰地鉴别异常机器是否已经被入侵了显得至关重要,以下是结合centos7.9操作系统进行排查Linux操作系统是否被入侵,其他Linux发行版的操作类似

1.入侵者可能会删除机器的日志信息

可以查看日志信息是否还存在或者是否被清空,相关命令

[root@master01 ~]# ls /var/log/*
/var/log/boot.log           /var/log/dmesg.old           /var/log/messages-20221113  /var/log/vmware-network.1.log
/var/log/btmp               /var/log/maillog             /var/log/secure-20221113    /var/log/vmware-vmsvc.3.log
/var/log/cron               /var/log/maillog-20221106    /var/log/spooler            /var/log/wtmp
/var/log/dmesg              /var/log/messages-20221106   /var/log/tallylog

[root@master01 ~]# du -sh /var/log/
183M    /var/log/
[root@master01 ~]# du -sh /var/log/*
2.6M    /var/log/anaconda
39M    /var/log/audit
0    /var/log/boot.log
20K    /var/log/boot.log-20200417
12K    /var/log/boot.log-20200816
24K    /var/log/boot.log-20220216
12K    /var/log/boot.log-20221001
8.0K    /var/log/btmp
2.入侵者可能创建一个新的存放用户名及密码文件

可以查看/etc/passwd及/etc/shadow文件,相关命令:

[root@master01 ~]# ll /etc/pass*
-rw-r--r--. 1 root root 1022 Jan 25  2022 /etc/passwd
-rw-r--r--. 1 root root  986 Apr 16  2020 /etc/passwd-

[root@master01 ~]# ll /etc/shado*
----------. 1 root root 653 Nov 15 10:33 /etc/shadow
----------. 1 root root 634 May  5  2020 /etc/shadow-

3.入侵者可能修改用户名及密码文件

可以查看/etc/passwd及/etc/shadow文件内容进行鉴别,看看是否有异常用户,相关命令:

[root@master01 ~]# more /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
[root@master01 ~]# more /etc/shadow
root:$6$67Tijq/P$AcFLf9.4334pEKLAc1jFWTYzzLp92.qAl2El5MSZEjfm8YsW.3m3I1C7Oi.SMntqIUQr4eF.Fcm.EVfbdDEWf0:19311:0:99999:7:::
bin:*:17834:0:99999:7:::
daemon:*:17834:0:99999:7:::
adm:*:17834:0:99999:7:::
lp:*:17834:0:99999:7:::

4.查看机器最近成功登陆的事件和最后一次不成功的登陆事

对应日志“/var/log/lastlog”,相关命令:

[root@master01 ~]# last
root     pts/0        10.3.180.178     Tue Nov 22 08:27   still logged in   
root     pts/0        10.0.252.47      Sat Nov 19 22:52 - 14:23  (15:31)    
root     pts/0        10.0.252.47      Sat Nov 19 04:49 - 22:52  (18:02)    
root     pts/0        10.3.180.178     Fri Nov 18 14:51 - 14:54  (00:02)    
root     pts/1        10.3.180.178     Fri Nov 18 14:51 - 14:51  (00:00)    
root     pts/1        10.3.180.178     Fri Nov 18 13:45 - 14:45  (00:59)

5.查看机器当前登录的全部用户

对应日志文件“/var/run/utmp”,相关命令

[root@master01 ~]# who
root     pts/0        2022-11-22 08:27 (10.3.180.178)

6.查看机器创建以来登陆过的用户

对应日志文件“/var/log/wtmp”,相关命令

[root@master01 ~]# last
root     pts/0        10.3.180.178     Tue Nov 22 08:27   still logged in   
root     pts/0        10.0.252.47      Sat Nov 19 22:52 - 14:23  (15:31)    
root     pts/0        10.0.252.47      Sat Nov 19 04:49 - 22:52  (18:02)    
root     pts/0        10.3.180.178     Fri Nov 18 14:51 - 14:54  (00:02)    
root     pts/1        10.3.180.178     Fri Nov 18 14:51 - 14:51  (00:00)    
root     pts/1        10.3.180.178     Fri Nov 18 13:45 - 14:45  (00:59)

7.查看机器所有用户的连接时间(小时)

对应日志文件“/var/log/wtmp”,相关命令

[root@master01 ~]# ac -dp | more
    root                                28.89
Apr 16    total       28.89
    root                               151.58
Apr 19    total      151.58
    root                                52.11
Apr 20    total       52.11
    root                                62.00
Apr 21    total       62.00
    root                                60.41

备注:如果操作系统提示没有ac命令,centos系统可以通过命令 yum install psacct安装

8.如果发现机器产生了异常流量

可以使用命令“tcpdump”抓取网络包查看流量情况或者使用工具”iperf”查看流量情况。

tcpdump命令可以重点学习一下,这个单独讲解,通过流量分析异常问题虽说比较难,但是可以定位到深层次的网络问题

9.可以查看/var/log/secure日志文件

尝试发现入侵者的信息,相关命令

[root@master01 ~]# cat /var/log/secure | grep -i "accepted"
Nov 22 08:27:02 master01 sshd[17081]: Accepted publickey for root from 10.3.180.178 port 62392 ssh2: RSA SHA256:KdRyYMK79OVOE5pIc5fTp9kW0YyA9eyydEPyevqYGVY

10.查询异常进程所对应的执行脚本文件

a.top命令查看异常进程对应的PID

top

b.在虚拟文件系统目录查找该进程的可执行文件

ll /proc/PID/ | grep -i exe  #PID要替换成真实的PID数字