测试环境:rhel6.5 x64 虚拟机
说明:一下这些从安全思维角度出发,# 例如别人更改了你的文件植入木马等
因此及时发现特别重要; # 或者假如你的服务器是超级计算机,作为
安全人员要时刻关注系统CPU,内存以及磁盘读写速度这些资源,万
一有的hacker因为某个漏洞或后门控制了你的计算机当作肉鸡、跳板等
目录:带@的是重中之重
一. 重要命令
1.df (查看目录或者文件的磁盘大小)
2.du (对文件或者目录,磁盘做出统计;单位可以为b/k/m)
3.free(监控内存资源)
4.“ps”(显示当前系统进程的信息,状态)
5.top(动态地刷新当前系统情况)
6.lsof(ls open file 显示进程打开的文件)
7.iostat(输出CPU和磁盘I/O的统计信息)
8.vmstat(监控CPU,内存,虚拟交换内存,I/O读写…)
9.pkill(控制同名程序的所有进程)
10.pidstat(监控被linux 内核管理的独立任务或进程)
@11.sar(System Activity Reporter:系统活动情况报告)
@12.smart(Self-Monitoring Analysis and Reporting Technology
自动检测分析及报告技术)
二. AIDE(Advanced Intrusion Detection Environment) 高级入侵检测环境
df 系统资源(查看目录或者文件的磁盘空间大小)
参数如下:
df 默认以kb 计算; 又三块设备 /dev/sda3, /dev/sda1,/dev/sr0
used 已经使用的,Available 可以利用的,use% 使用所占百分比
mounted on 表示挂载点
-H 以1000进制计算:
可以看到 以1000进制计算 显示出来的大小超出了真实的1T
-t 还可以指定分区
这里因为内存不足1G 显示为0
4.ps 显示当前进程信息,状态 ps没有动态追踪性
PID 是进程号; TTY是终端类型; TIME 是使用CPU的时间; CMD表示该进程是由什么命令或者文件执行的
参数:
a 当前终端的进程
x 所有不在当前终端的进程
u 显示出进程 UID
w 列加宽
e 显示所有进程
f 列出完整列表
l 显示父子进程号
因为 ps aux 太多了 做个过滤,只显示前5行
USER 表示该进程是root所有; %CPU,%MEM 占用CPU,内存百分比;
VSZ 表示虚拟内存大小,换句话说,程序目前没有使用,但是可能会分配的内存大小;RSS表示实际开销的内存(默认单位都为KB)
TTY 进程在那个终端上运行; STAT表示进程的状态;START 开始时间;
F 为4 表示进程所有者是 super user; PPID 是该进程的父进程号;PRI表示进程的优先级,操作系统决定,不能认为更改; NI(NICE)这个优先级可以人为更改,默认为0 范围是 -20-19,值越小优先级越高;
sort 排序,默认是从小到大; -r(reverse) 反向排序,-k4 表示以第四列MEM 内存消耗大小排序
print$4,$8,$11 显示第4,8,11列
5.top 动态性的刷新系统情况(内置了很多命令)
第一行:
时间;2个用户; load average 1min/5min/15min 平均负载
第二行;
TASKS 会话
running,sleeping,stopped,zombie(僵尸进程)
插播一段话:引用源:https://blog.csdn.net/qq_37653144/article/details/82988688
进程间的地址空间都是独立的,包括父子进程因此进程之间不可互相访问; 进程之间的通信必须通过内核,(无论是管道,消息队列,共享内存还是socket)
子进程的返回值先交给内核,父进程再向内核请求其返回值;
当父进程结束时,在它下面的子进程将变成孤儿进程,然后系统init将接管这些进程, 成为他们的新父亲;如果父进程没有调用/未成功调用wait或者waitpid来回收已经exit 或者kill(exit是一种signal)的子进程,那么子进程的PCB就无法释放;PCB进程控制块,只有有这个进程才可以并发;这时没有释放PCB的进程称之为僵尸进程。
第三行:
CPU(s): us用户; ni(用户可以修改的优先级Nice); wa(等待); sy(OS内核对CPU的
使用); id(空闲资源); hi(硬件中断) si(软件中断)
uptime命令相当于 top的首行;
top内置命令:
q 退出
h 查看帮助信息
space 立刻刷新
b高亮显示
s 设置刷新时间
k 杀死一个进程(本质是发送信号)
r 定义一个进程优先级
renice 进程必须先存在
6.lsof
vim zf.txt & # &表示这个程序在后台执行,不显示在前台
jobs 查看后台进程
fg 1 将后台进程调到前台来
bg 1 将前台进程重发到后台去
nice --18 vim cc.txt 第一个- 是参数 -18 是负18,代表优先级
可以看到 执行了 nice --18 vim zf.txt 后从后台到前台,并且 zf.txt 有stopped—running, 并且它的NI 变为-18
7. iostat 输出磁盘,CPU相关信息
iostat -c 仅显示cpu
iostat -d 仅显示磁盘
8.vmstat 监控CPU,内存,虚拟交换内存,I/O读写等
proces 进程 r表示正在running的进程数;b表示处在不可屏蔽中断的进程数
memory: free,buff,cache, swpd 表示已经使用swap的空间大小
swap si 表示从swap 读出的内存,也就是主缺页,这个值是一个比率,即每秒读了多少kb; so表示置换到swap的内存,每秒写了多少kb
io bi表示:从磁盘读数据的速率; bo 向磁盘写的速率;
system in 表示每秒中断的次数;
cs 表示每秒转换上下文的次数
cpu: us 用户态进程使用CPU的百分比
sy 内核态进程使用百分比
id 处于空闲的cpu百分比
wa 处于等待I/O的CPU时间百分比
st 表示来自一个虚拟机偷取的CPU百分比
9.pkill 控制同名程序的所有进程:
在后台开启三个vim 进程
jobs 查看后台进程
‘然后使用pkill 杀死进程
pgrep 查看同名进程
10. pidstat 监控被Linux内核管理的独立任务(进程)
pidstat -d -p 磁盘
pidstat -r -p 内存
KB_rb/s 读取写盘的速率; KB-wr/s 写磁盘速率;
pidstat 查看你所有的进程
然后pidstat -d -p 指定一个PID进程 ,查看它的详细信息对系统资源进行检测;
KB_kb/s 每秒此进程从磁盘读取的千字节数
KB_wr/s 此进程已经或者将要写入的磁盘的千字节数
KB——ccwr/s 由任务取消的写入磁盘的千字节数
minflt/s 每秒次缺页错误的次数
majflt/s 每秒主缺页错误的次数
VSZ 表示该进程使用的虚拟进程
RSS 表示进程使用的实际进程
%MEM 表示当前任务使用的有效内存的百分比
10.sar(system Activity Repoter 系统情况报告)
功能: linux 性能分析工具
sar -A -o file -t 1
-A 表示所有采样报告;
-o 以2进制记录到文件中;
-t 1 表示每秒刷新
-u 表示采样并输出CPU信息
-v 输出
-f 查看 -o保存的二进制文件
11. smart( self-Monitoring Analysis and Reporting Technology)
自动检测分析及报告技术
这个需要从网络上安装
二. AIDE
(1) 安装AIDE : yum install aide -y
这个软件包有一个依赖包,当然也可以采用rpm 安装
没有没过yum源的可以去看我的上一篇yum源的配置;
https://mp.csdn.net/mdeditor/95973304#
使用rpm 安装
先挂载镜像 mount /dev/sr0 /mnt
编辑yum配置文件 vim /etc/yum.repos.d/rhel-source.repo
(2) 配置文件路径在 /etc/aide.conf
aide -D 对配置文件检测
p: 权限
g:用户组
i:节点(文件索引节点)
n: 连接数量
u:用户
s:大小
m: 最后一次修改时间
a: 最后一个访问的时间
(3) 初始化数据库
aide -c /etc/aide.conf -i 这个过程需要4-5min
然后切到应用程序的目录:
cd /var/bin/aide
将aide.db.new.gz 修改为 aide.db.gz
cp aide.db.new.gz aide.db.gz
验证:
修改一下 /etc/passwd
aide --check 或者 aideo -C
查看系统进程发现进程号为 5112 为 aide -c /etc/aide.conf -i
pidstat -d 发现与磁盘交换速率
pidstat -r 内存速率
’
这个过程也需花费点时间: 和刚才一样抓一下:
可以看到:(如果有人恶意修改你的文件)
SIZE 大小 增加了
mtime 更新时间
Inode 文件节点增加
(文件节点就是: 比如说你有个硬盘分区大小为1T空间,但文件节点数为10000,即使大小仅仅使用了500G,但有9999个文件或者目录了,再有个文件这块分区就不能用了)
MD5 摘要算法(验证完整性)可以发现文件更改了之后,md5值都会不同;
SHA1/256 RMD 同理。
建议: 平时我们从网上下载的文件官方都会有一个MD5或者其他摘要值,用来验证完整性 防止你的文件是被人网页挂马,植入了木马等恶意程序。
下载后的文件和官方的做个对比,增加安全性。