排查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数字