Linux入侵检测——常用命令
查询网络
netstat
先来看看netstat的常用的选项
好,那么接下来我们要做的就是把他们拼起来,当我们想查询所有网络连接情况时,就可以使用
netstat -pantu
ss
同样的,先来查看有哪些选项,可以看到与netstat很相似
既然如此,那么如果要使用ss查看所有连接同样可以使用
ss -pantu
查询进程
ps
可以使用ps aux查看当前的进程情况
其中
a列出当前终端运行的所有进程u列出进程所属用户信息x列出后台进程
此外还可以使用其他选项进行更加细致的排查
-p <PID> #展示特定PID的进程
-u <username> #展示特定用户的进程
-C <command> #依据命令行查询进程
-f #全格式输出
top
与ps 相比top 则会实时动态展示进程情况
如图所示,上半部分表示当前时刻整体的资源利用情况,下班部分则是各个进程的资源占用情况以及命令行参数
同样的,top命令也有几个较为常用的选项
-o %CPU #按cpu占用率排序
-o %MEM #按内存占用排序
过滤/搜索
find
find 的功能还是蛮多的,我分点说叭
-
-mtime/-mmin按时间搜索 -
+n表示 n天/分钟 之前-n表示 n天/分钟 之内n表示具体的某天/某分钟
-
- 这个选项有一个参数
n,其中
- 这个选项有一个参数
-
-name/-iname按名字搜索 -
- 其中
-name区分大小写,-iname不区分大小写,同时二者均支持使用*或者?进行模糊搜索
- 其中
-
-type按文件类型搜索 -
- 其中
d表示目录,f表示文件,l表示软链接
- 其中
-
-perm按权限搜索 -
-user按所属用户搜索 -
-exec执行命令
除此之外,find允许使用逻辑运算符
-a与-o或-not非
grep
-
基础匹配控制
-
-i区分大小写搜索-v反向搜索,举个例子,grep -v "error" 1.txt就是列出1.txt中不含error的行-w精确搜索,举个例子,grep -w “is” 1.txt就是列出1.txt中包含is字段的行,并且不包括whoisthis这种包含is字符却不是is的字段-E正则搜索
-
输出结果控制
-
-n展示行号-c统计匹配到的行数-o只输出匹配到的部分 例如一条web日志,若使用grep -o -E "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" access.log则只会输出IP-l只显示文件名,例如在一个文件夹下 使用grep -l "access" *则只会告诉你有哪些文件包含了access而不会输出文件的具体内容
-
递归搜索
-r -
前序,后序
-
-A n显示后面n行内容-B n显示前面n行内容-C n显示前后各n行内容
lsof
为什么要给这玩意儿单开一栏呢?主要是他具备上面的大部分功能,又能查网络又能看进程的
在linux中,有着“一切皆文件”的理念,而lsof正是利用着这一点,以文件的角度看待网络连接和进程
常用命令:
lsof -p <pid> / lsof -c <process> #列出特定进程所打开的文件
lsof -i #显示网络连接
lsof -i :<PORT> #检测端口占用
lsof -u <username> #展示特定用户打开的文件
lsof <file> #展示特定文件的进程本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
微信
支付宝