14【linux学习】 进程管理 | 服务管理 | 端口管理 | kali ufw教程 | 动态监控系统 | 监控网络状态nestat

基本介绍

  1. 在linux中,每一个执行的程序都称为一个进程,每一个进程都分配一个ID号(pid,进程号)
  2. 每个进程都可以以两种方式存在,前台后台,所谓前台进程就是用户目前的屏幕上可以操作的,后台则是实际在操作的,但由于屏幕上无法看到,通城以后台方式执行
  3. 一般的系统的服务都是以后台进程的方式存在,而且会常驻在系统中

比如,在windows中就是:
在这里插入图片描述

显示系统执行的过程

指令 ps 查看系统进程

pgrep // 表明了这个命令是专门用于进程查询的grep

常用参数

-a 显示所有进程信息
-u 以用户格式显示进程信息
-x 显示后台进程运行参数

ps -aux后的意思

在这里插入图片描述
在这里插入图片描述

ps -aux | grep xxx  // 筛选xxx的进程

显示系统执行的进程(父进程)

应用实例

要求: 以全格式显示当前所有的进程,查看进程的父进程,查看sshd的父进程信息

  • ps -ef以全格式显示当前所有的进程
  • -e显示所有进程。-全格式
  • ps -ef l grep >oo
  • 是BSD风格
  • UID:用户ID
  • PID:进程ID
  • PPID:公进程D
  • C: CPU用于计算执行优先级的图子。数值越大,表明进程是CPU密集型运算,执行优先级会降低,数值越小,表明进程是I/O密集型运算,执行优先级会提高
  • STIME: 进程启动的时间
  • TTY: 完整的终端名称
  • TIME: CPU时间
  • CMD:启动进程所用的命令和参数

父进程子进程

在这里插入图片描述
PPID为0说明是没有任何父进程的祖宗
PPID为2的,说明是pid为2的子进程

总结

ps -aux | grep xxx // 筛选xxx的以用户格式显示的进程
ps -ef | grep xxx // 筛选xxx的以全格式显示的进程

终止进程Kill和Killall

  • 介绍
    若是某个进程执行一半需要停止时,或是已消了很大的系统资源时,此时可以考虑停止该进程。使用kill命令来完成此项任务
  • 其本语法
    kili [选项]进程号 (功能描述: 通过进程号杀死进程)
    killall 进程名称 (功能播迷: 通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用)
  • 常用选项
    -9:表示强迫进程立即停止

最佳实践

注意,前提是有xshell可以连接kali,如果不能,需要花费时间折腾一下,教程:https://blog.csdn.net/qq_61901169/article/details/132201496

案列1: 踢掉某个非法登录用户

这里举例的非法登陆用户是用Xshell登陆的,所以用ps -aux | grep sshd就可以筛选出来,之后kill 进程号即可

xshell连接Kali后
在这里插入图片描述
在虚拟机中输入ps -aux | grep sshd
在这里插入图片描述在这里插入图片描述

杀死进程后
在这里插入图片描述
xshell也退出了

案例2: 终止远程登录服务sshd, 在适当时候再次重启sshd服务

在这里插入图片描述
输入 kill 1457 后

在这里插入图片描述
重启服务的指令:

/bin/systemctl start sshd.service
# /bin/systemctl start 服务名.service

案例3: 终止多个gedit

比如现在打开三个文件编辑器
在这里插入图片描述
退出的话,输入在这里插入图片描述后,文本就被全部干掉了

案例4: 强制杀掉一个终端

tty查看当下终端名
kill -9 进程号
杀死xshell的进程可以杀掉,但是杀掉虚拟机的终端不会立刻消失,画面会继续显示,但是终端用不了

pstree指令

基本语法

pstree [选项] 可以直观的来看进程信息

常用选项

-p 显示进程PID
-u 显示进程的所属用户

应用实例

示例一:请你树状的形式显示进程的PID

pstree -p

示例二:请你树状的形式进程的用户

pstree -u

服务管理

眼务(serviee) 本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其它程序的请求,比如(mwsql, sshd 防火墙等,我们又称为守护进程

service指令

  1. service 服务名 [start|stop| restart| reload | status]
  2. 在CentOS7.0后,很多服务不再使用service ,而是 systemctl (Kali也是)
  3. service指令管理的服务在 /etc/init.d 查看
ll  /etc/init.d // 查看指令管理的服务
service networking  status //查看服务networking状态,出现active (exited) 就是活跃
# kali的网络管理器是NetworkManager
# 关闭开启kali网络指令
systemctl  stop  NetworkManager // 关闭网络
systemctl  start  NetworkManager  // 关闭网络	

查看服务名

1. 方式1: 使用setup ->系统服务就可以看到全部 (kali没有)
  1. 方式2: /etc/init.d 看到 service 指令管理的服务Is -l /etc/init.d

服务的运行级别(runlevel):

Linux系统有7种运行级s(runlevel) : 常用的是级别3和5
运行级别0: 系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
运行级别1:单用户工作状态,root权限,用于亲统维护,禁止远程登陆
运行级别2:多用户状态(没有NFS),不支持网络
运行级别3: 完全的多用户状态(有NFS),无界面,登陆后进入控制台命令行模式
温行级别4: 系统未使用,保留
运行级别5: X11控制台,登陆后进入图形GUI模式
运行级别6: 系统正常关闭井重启,默认运行级别不能设为6,否则不能正常启动

开机的流程说明

在这里插入图片描述

CentOS7后运行级别说明

在/etc/initab
进行了简化,如下:

multi-user.target: analogous to runlevel 3
graphical.target: anslogcus to runlenel 5
 #查看当前默认运行级别:
systemctl get-default // 显示的是graphical.target则是运行级别5图形化
 # 要设置默认运行级别:
systemctl set-default multi-user.target // 更改默认运行级别为3,重启后生效

chkconfig指令(kali没有)

介绍

  1. 通过chkconfig 命令可以给服务的各个运行级别设置自启动/关闭
  2. chconfig 指令管理的服务在/eto/init.d 查看
  3. 注意:Centos7.0后,很多服务使用systemdtl管理

chkconfig命令属于readhat第linux系统的命令。 如果系统属Debian系如ubuntu是没有这个命令的。 如果系统属于readhat系(如centos)但还没有这个命令 可能是chkconfig包没有被安装。
kali 正常安装chkconfig: apt-get install chkconfig 会不成功

chkconfig基本语法

  • 查看服务 chikconfig --list [| grep xxx]
  • chkconfig 服务名 --list [| grep xxx]
  • chkconfig --level 5 服务名 on/off

chkconfig重新设置服务后自启动或关闭,需要重启机器

systemctl指令

  1. 基本语法: systemctl Istart| stop | restart | status] 服务名
  2. systemctl指令管理的服务在 /usr/lib/systemd/system 查看
# 设置开机启用防火墙
systemctl enable firewalld.service
# 设置开机禁用防火墙
systemctl disable firewalld.service
# 启动防火墙
systemctl start firewalld
# 关闭防火墙
systemctl stop firewalld
# 检查防火墙状态
systemctl status firewalld

systemctl设置服务的自启动状态

# [|grep 服务名] (查看服务开机启动状态, grep 可以进行过滴)
systemctl list-unit-files 
# 设置服务开机启动
systemctl enable 服务名
# 关闭服务开机启动
systemct disable 服务名
# 查询某个服务是否是自启动的
systemctl is-enabled 服务名 

应用案例 关闭防火墙和重启防火墙。=> firewalld.service

细节讨论

  1. 关闭或者启用防火墙后,立即生效。【telnet测试 某个端口即可】
  2. 这种方式只是临时生效,当重启系统后,还是回归以前对服务的设置
  3. 如果希望设置某个服务自启动或关闭永久生效,要使用 systemctl [enable | disable] 服务名

telnet测试

windows开启telnet 教程:https://blog.csdn.net/funkstill/article/details/85330187

# 查看端口
netstat -anp | more

# 通过telnet去监听端口的指令
telnet ip地址 端口
# 通过telnet测试防火墙有没有生效

firewail指令

打开或者关闭指定端口

在真正的生产环境,往往需要将防火墙打开,但问题来了,如果我们把防火墙打开,那么外部请求数据包就不能跟服务器监听端口通讯。这时,需要打开指定的端口。比如80、22、8080等,这个又怎么做呢?

kali比较特殊,不可以直接利用iptables服务,因为没这个服务没法关闭。 所以你需要借助第三方软件(除非你想费半天力气自己一步一步写文件写命令)。 ufw命令可以帮助你管理防火墙,下面会写

# 协议通过netstat -apn 来查看
firewall-cmd --permanent --add-port=端口号/协议 // 打开端口
firewall-cmd --permanent --remove-port=端口号/协议 // 关闭端口
firewall-cmd --reload  // 每次打开和关闭后都需要运行一下这个指令,这个指令是重新载入的意思
firewail-cmd query-port=端口/协议 // 查询端口是否开放


ufw教程 | kali本身有防火墙,但是在服务里是不显示的,需要安装ufw指令来管理防火墙

以下是kali系统的方法,CentOS则直接通过上面的指令就可以完成

# 安装ufw
apt-get install ufw
# 查看防火墙状态
ufw status
systemctl status ufw
# 开启和关闭防火墙
systemctl start ufw
systemctl stop ufw
# 开机自启和不自启防火墙
ufw enable
ufw disable
# 防火墙不允许所有服务(一)和运行所有服务(二)
default deny
ufw default allow

# 查看端口
netstat -anp | more

# 关闭端口号
ufw deny 端口号
# 开放端口号
ufw allow 端口号

ufw应用案例

首先开启防火墙

# 用了systemctl start ufw发现没效果,最后用了ufw enable,然后成功了
ufw enable
# 查看状态
ufw status

在这里插入图片描述

# 查看端口
netstat -anp | more
# 查看ip 
ifconfig

在这里插入图片描述
在这里插入图片描述

# 然后window打开cmd,用telnet测试是否可以监听端口,如果没有则打开,文章上有教程链接
telnet 192.168.50.194 22
# 然后发现连接不上

在这里插入图片描述

# 然后我们打开端口22
ufw allow 22
# 然后我们再测试能不能连上
telnet 192.168.50.194 22

在这里插入图片描述
在这里插入图片描述

因为22端口在kali是ssh,所以好像进到了什么程序里,不过不用在意这些细节,我们只需要知道成功了即可

# 然后我们成功了,我们退出,然后再关闭端口再连一下
ufw deny 22
telnet 192.168.50.194  22
# 然后关闭端口又连不上了

在这里插入图片描述
在这里插入图片描述

ok,案例结束

# 新手建议关闭防火墙,指令:
ufw disable
ufw status

动态监控系统

介绍

top与ps命令很相似。它们都用来显示正在执行的进程。Top与ps最大的不同之处,在于top在执行一段时间可以更新正在运行的的进程

甚本语法

top [选项]

选项说明

运行top命令后
在这里插入图片描述
在这里插入图片描述
zombie是死掉的进程但是内存没有释放

交互操作说明

应用实例

案例1: 监视特定用户

top: 输入此命令,按回车键,查看执 行的进程。
u: 然后输入“u”回车,再输入用户名,即可

xshell6登陆普通用户kali后,再通过root top命令来动态监控kali用户

在这里插入图片描述

在这里插入图片描述

案例2: 终止指定的进程,加入我们结束kali用户的登陆

top:输入此命令,按回车键,查看执行的进程。
k: 然后输入 “k”回车,再输入要结束的进程ID号
输入进程号,可能要输入一个信号,输入9强制删除

案例3: 指定系统状态更新的时间(每隔10秒自动更新),默认是3秒

命令:top -d 10

监控网络状态

查看系统网络情况nestat

甚本语法

netstat [选顶]

选项说明

-an 按一定顺序排列输出
-P 显示哪个进程在调用

应用案例

请查看服务名为sshd的服务的信息

命令中 State 下的 ESTABLISHED意思是连接已建立,LISTEN是监听的意思。TINE_WAIT,超时等待,用户退出登陆后,网络不会立刻 销毁,协议会担心网络临时有问题,会有一个超时等待,一般会有一分钟左右,过一会就没了

netstat -anp | grep sshd
grep是过滤sshd
在这里插入图片描述

检测主机连接命令ping

种网络检测检测工具,它主要是用检测远程主机是否正常,或是两部主机闻的网线或网卡故障,如:ping 对方ip地址

netstat是一个很常用的指令,如果一个指令你没有启动,但是显示监听,就有可能是木马在监听

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值