kali系统概述、nmap扫描应用、john破解密码、抓包概述、以太网帧结构、抓包应用、wireshark应用、nginx安全加固、Linux系统加固

news2025/1/21 5:47:08

目录

kali

nmap扫描

使用john破解密码

抓包

封装与解封装

网络层数据包结构

TCP头部结构​编辑

UDP头部结构

实施抓包

安全加固

nginx安全

防止缓冲区溢出

Linux加固


kali

  • 实际上它就是一个预安装了很多安全工具的Debian Linux
[root@myhost ~]# kali reset

kali reset OK.

该虚拟机系统用户名为:kali,密码为:kali
  • 基础配置
$ ip a s    # 查看网络IP地址,本例中查看到的是192.168.88.40

$ sudo systemctl start ssh      # 启ssh服务,弹出的窗口输入密码kali

$ sudo systemctl enable ssh     # 设置ssh服务开机自启

[root@myhost ~]# ssh kali@192.168.88.40

kali@192.168.88.40's password: kali

┌──(kali㉿kali)-[~]

└─$ 

nmap扫描

  • 一般来说扫描是攻击的前奏。
  • 扫描可以识别目标对象是什么系统,开放了哪些服务。
  • 获知具体的服务软件及其版本号,可以使得攻击的成功率大大提升。
  • 扫描可以检测潜在的风险,也可以寻找攻击目标、收集信息、找到漏洞
  • windows下,扫描可以使用xscan / superscan
  • Linux,扫描可以采用nmap
  • 吾爱破解:吾爱破解 - LCG - LSG|安卓破解|病毒分析|www.52pojie.cn
  • 中国黑客团队论坛:https://www.cnhackteam.org/
  • 俄罗斯论坛:https://rutracker.org/
┌──(kali㉿kali)-[~]

└─$ nmap

# -sT: TCP扫描。

# -U: 扫描目标的UDP端口。

# -sP:ping扫描

# -A:对目标系统全面分析


# 扫描整个网段,哪机器可以ping通

┌──(kali㉿kali)-[~]

└─$ nmap -sP 192.168.88.0/24


# 扫描192.168.88.100开放了哪些TCP端口

┌──(kali㉿kali)-[~]

└─$ sudo nmap -sT 192.168.88.100


# 扫描192.168.88.100开放了哪些UDP端口。非常耗时!

┌──(kali㉿kali)-[~]

└─$ sudo nmap -sU 192.168.88.100


# 全面扫描192.168.88.100系统信息

┌──(kali㉿kali)-[~]

└─$ sudo nmap -A 192.168.88.100
  • 使用脚本扫描
# 通过脚本扫描目标主机的ftp服务

# 在目标主机上安装vsftpd服务

[root@web1 ~]# yum install -y vsftpd

[root@web1 ~]# vim /etc/vsftpd/vsftpd.conf 

 12 anonymous_enable=YES

[root@web1 ~]# systemctl enable vsftpd --now


# 在kali主机上查看有哪些脚本

┌──(kali㉿kali)-[~]

└─$ ls /usr/share/nmap/scripts/


# 扫描ftp服务是否支持匿名访问。ftp控制连接端口号是21

┌──(kali㉿kali)-[~]

└─$ sudo nmap --script=ftp-anon.nse 192.168.88.100 -p 21

21/tcp open  ftp

| ftp-anon: Anonymous FTP login allowed   # 允许匿名访问


# 扫描ftp相关信息,如版本号、带宽限制等

┌──(kali㉿kali)-[~]

└─$ sudo nmap --script=ftp-syst.nse 192.168.88.100 -p 21


# 扫描ftp后门漏洞

┌──(kali㉿kali)-[~]

└─$ sudo nmap --script=ftp-vsftpd-backdoor 192.168.88.100 -p 21
  • 扫描口令
# 通过ssh协议,使用nmap自带的密码本扫描远程主机的用户名和密码

# 在目标主机上创建名为admin的用户,密码为123456

[root@web1 ~]# useradd admin

[root@web1 ~]# echo 123456 | passwd --stdin admin


# 在kali上扫描弱密码

┌──(kali㉿kali)-[~]

└─$ sudo nmap --script=ssh-brute.nse 192.168.88.100 -p 22


# 通过ssh协议,使用nmap以及自己的密码本扫描远程主机的密码

# 1. 创建用户名文件

┌──(kali㉿kali)-[~]

└─$ sudo echo root > /tmp/users.txt

                                                        

┌──(kali㉿kali)-[~]

└─$ cat /tmp/users.txt 

root


# 2. 生成1990-01-01到2020-12-31之间的所月日期

┌──(kali㉿kali)-[~]

└─$ vim mydate.py

from datetime import datetime, timedelta


d1 = datetime(1989, 12, 31)

d2 = datetime(2021, 1, 1)

dt = timedelta(days=1)


with open('/tmp/mima.txt', 'w') as f:

    while d1 < d2:

        d1 += dt

        f.write("%s\n" % d1.strftime('%Y%m%d'))


┌──(kali㉿kali)-[~]

└─$ python3 mydate.py


# 3. 修改web1的密码

[root@web1 ~]# echo 19910101 | passwd --stdin root


# 4. 使用自己的密码本破解密码

┌──(kali㉿kali)-[~]

└─$ sudo nmap --script=ssh-brute.nse --script-args userdb=/tmp/users.txt,passdb=/tmp/mima.txt 192.168.88.100 -p 22


# 5. 目标主机将会记录所有的登陆事件

[root@web1 ~]# vim /var/log/secure

# 查看最近的登陆失败事件

[root@web1 ~]# lastb

# 查看最近的登陆成功事件

[root@web1 ~]# last
  • 扫描windows口令
[root@myhost ~]# cat /tmp/winuser.txt    # windows用户名

administrator

admin

# 通过samba服务扫描密码

[root@myhost ~]# nmap --script=smb-brute.nse --script-args userdb=/tmp/winuser.txt,passdb=/tmp/mima 172.40.0.151

使用john破解密码

  • 在线破解哈希值的网站:md5在线解密破解,md5解密加密

  • 哈希是算法,英文hash的音译,包括md5、sha等

    • 哈希算法是一种单向加密的算法,也就是将原始数据生成一串“乱码”
    • 只能通过原始数据,生成这串“乱码”,但是不能通过“乱码”回推出原始数据
    • 相同的原始数据,生成的乱码是相同的。
  • kali系统提供了一个名为john的工具,可用于密码破解

[root@web1 ~]# echo 123456 | passwd --stdin root

[root@web1 ~]# useradd tom

[root@web1 ~]# echo abc123 | passwd --stdin tom

[root@web1 ~]# useradd jerry

[root@web1 ~]# echo 123123 | passwd --stdin jerry

[root@web1 ~]# scp /etc/shadow kali@192.168.88.40:/home/kali/


# 字典暴力破解,密码本是/usr/share/john/password.lst

┌──(kali㉿kali)-[~]

└─$ sudo john shadow  


# 直接显示破解的密码,不显示其他额外信息

┌──(kali㉿kali)-[~]

└─$ sudo john --show shadow                

root:123456:18912:0:99999:7:::

tom:abc123:18912:0:99999:7:::

jerry:123123:18912:0:99999:7:::



# 字典暴力破解,指定密码本文件

┌──(kali㉿kali)-[~]

└─$ sudo john --wordlist=/tmp/mima.txt shadow

抓包

封装与解封装

  • MAC地址:分为目标和源MAC地址,6字节
  • Type:类型,说明数据帧中包含的数据类型
  • Data:高层数据
  • FCS:帧校验序列

网络层数据包结构

  • 版本:协议版本,如IPv4
  • 生存时间:8位,初始一个值n,每经过一个路由器减1,直到为0丢弃,目的为防止分组在网络上无限传播下去
  • 协议号:数据部分应交付的协议号,如TCP是6,UDP是17

TCP头部结构

  • 源端口:数据段的源端口,一般为大于1024的随机值
  • 目标端口:数据段的目标端口
  • 序号:在一个TCP连接中传输的数据段都按顺序编号

UDP头部结构

  • 源端口:数据段的源端口,一般为大于1024的随机值
  • 目标端口:数据段的目标端口

实施抓包

  • 传输的各种数据,在网络中都是一个个的数据包
┌──(kali㉿kali)-[~]

└─$ sudo tcpdump

# -i:指定抓取哪块网卡进入的数据包

# -A:转换为ASCII码,使得可读

# -w:抓包写入文件

# -r:从文件中读取抓包信息

# 抓包时可以过滤要抓哪些包

# 使用host过滤主机,使用net过滤网段,使用port过滤端口... ...


# 1. 抓包:抓取eth0上进出的、与192.168.88.100有关的、涉及TCP21端口的数据包。以下命令执行后,打开新终端。

┌──(kali㉿kali)-[~]

└─$ sudo tcpdump -i eth0 -A host 192.168.88.100 and tcp port 21


# 2. 在新终端登陆ftp

┌──(kali㉿kali)-[~]

└─$ ftp 192.168.88.100

Connected to 192.168.88.100.

220 (vsFTPd 3.0.2)

Name (192.168.88.11:kali): tom   # 用户名

331 Please specify the password.

Password:abc123   # 此处是tom的密码

230 Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp> exit    # 退出

221 Goodbye.


# 3.在tcpdump终端可以看到明文的用户名和密码



# 保存抓包文件

# 1. 将抓到的包存入文件ftp.cap

┌──(kali㉿kali)-[~]

└─$ sudo tcpdump -i eth0 -A -w ftp.cap host 192.168.88.100 and tcp port 21

# 2. 在另一个终端访问ftp

# 在新终端登陆ftp

┌──(kali㉿kali)-[~]

└─$ ftp 192.168.88.100

Connected to 192.168.88.100.

220 (vsFTPd 3.0.2)

Name (192.168.88.11:kali): tom   # 用户名

331 Please specify the password.

Password:abc123   # 此处是tom的密码

230 Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp> exit    # 退出

221 Goodbye.


# 3. 在抓包终端ctrl+c停止

# 4. 读取抓到的包,并过滤

┌──(kali㉿kali)-[~]

└─$ tcpdump -A -r ftp.cap | egrep 'USER|PASS' 
  • 图形工具:wireshark
[root@myhost ~]# yum install wireshark ftp

选择抓哪块网卡进出的数据,然后点左上角的开始

 抓到包后,点击左上角同样位置停止,查看数据

安全加固

nginx安全

  • 安装启服务
[root@web1 ~]# yum install -y nginx

[root@web1 ~]# systemctl enable nginx --now
  • 命令行访问不存在的路径:
[root@web1 ~]# curl -I http://192.168.88.100/

HTTP/1.1 200 OK

Server: nginx/1.14.1       # 版本号

Date: Mon, 02 Jan 2023 02:54:45 GMT

Content-Type: text/html

Content-Length: 3429

Last-Modified: Thu, 10 Jun 2021 09:09:03 GMT

Connection: keep-alive

ETag: "60c1d6af-d65"

Accept-Ranges: bytes
  • 隐藏版本信息
[root@web1 ~]# vim /etc/nginx/nginx.conf

... ...

 17 http {

 18     server_tokens off;

... ...

[root@web1 ~]# systemctl restart nginx.service 
  • 再次访问不存在的路径,版本号消失
[root@web1 ~]# curl -I http://192.168.88.100/

HTTP/1.1 200 OK

Server: nginx     # 没有版本号了

Date: Mon, 02 Jan 2023 02:56:26 GMT

Content-Type: text/html

Content-Length: 3429

Last-Modified: Thu, 10 Jun 2021 09:09:03 GMT

Connection: keep-alive

ETag: "60c1d6af-d65"

Accept-Ranges: bytes
  • 防止DOS、DDOS攻击
  • DDOS:分布式拒绝服务
# 压力测试,每批次发送100个请求给web服务器,一共发200个

[root@myhost ~]# yum install -y httpd-tools

[root@myhost ~]# ab -c 100 -n 200 http://192.168.88.100/ 

... ...

Benchmarking 192.168.88.100 (be patient)

Completed 100 requests

Completed 200 requests

Finished 200 requests    # 发送200个请求完成

... ... 

Complete requests:      200   # 完成了200个请求

Failed requests:        0     # 0个失败

... ...
  • 配置nginx连接共享内存为10M,每秒钟只接收一个请求,最多有5个请求排队,多余的拒绝
[root@web1 ~]# vim /etc/nginx/nginx.conf

 17 http {

 18     limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;   # 添加

... ...

 40     server {

 41         listen       80 default_server;

 42         listen       [::]:80 default_server;

 43         server_name  _;

 44         root         /usr/share/nginx/html;

 45         limit_req zone=one burst=5;  # 添加

[root@web1 ~]# systemctl restart nginx.service 


# 再次测试

[root@myhost ~]# ab -c 100 -n 200 http://192.168.88.100/ 

... ...

Benchmarking 192.168.88.100 (be patient)

Completed 100 requests

Completed 200 requests

Finished 200 requests

... ...

Complete requests:      200

Failed requests:        194   # 失败了194个

... ...

防止缓冲区溢出

  • 缓冲区溢出定义:程序企图在预分配的缓冲区之外写数据。
  • 漏洞危害:用于更改程序执行流,控制函数返回值,执行任意代码。
# 配置nginx缓冲区大小,防止缓冲区溢出

[root@web1 ~]# vim /etc/nginx/nginx.conf

... ...

 17 http {

 18     client_body_buffer_size     1k;

 19     client_header_buffer_size   1k;

 20     client_max_body_size        1k;

 21     large_client_header_buffers 2 1k;

... ...

[root@web1 ~]# systemctl restart nginx.service 

Linux加固

  • 设置tom账号,有效期为2022-1-1
# 查看tom的账号信息

[root@web1 ~]# chage -l tom

最近一次密码修改时间                  :10月 12, 2021

密码过期时间                  :从不

密码失效时间                  :从不

帐户过期时间                      :从不

两次改变密码之间相距的最小天数     :0

两次改变密码之间相距的最大天数     :99999

在密码过期之前警告的天数    :7


[root@web1 ~]# chage -E 2022-1-1 tom

[root@web1 ~]# chage -l tom

最近一次密码修改时间                  :10月 12, 2021

密码过期时间                  :从不

密码失效时间                  :从不

帐户过期时间                      :1月 01, 2022

两次改变密码之间相距的最小天数     :0

两次改变密码之间相距的最大天数     :99999

在密码过期之前警告的天数    :7


# 设置账号永不过期,注意-E后面是数字-1,不是字母l

[root@web1 ~]# chage -E -1 tom

[root@web1 ~]# chage -l tom

最近一次密码修改时间                  :10月 12, 2021

密码过期时间                  :从不

密码失效时间                  :从不

帐户过期时间                      :从不

两次改变密码之间相距的最小天数     :0

两次改变密码之间相距的最大天数     :99999

在密码过期之前警告的天数    :7


# 设置新建用户的密码策略

[root@web1 ~]# vim /etc/login.defs 

 39 PASS_MAX_DAYS   99999    # 密码永不过期,设置最长有效期

 40 PASS_MIN_DAYS   0        # 密码最短使用时间,0表示随时可改密码

 41 PASS_MIN_LEN    5        # 密码最短长度

 42 PASS_WARN_AGE   7        # 密码过期前7天发警告

 47 UID_MIN                  1000   # 新建用户最小的UID

 48 UID_MAX                 60000   # 新建用户最大的UID
  • 用户安全设置
# 锁定tom账号

[root@web1 ~]# passwd -l tom

锁定用户 tom 的密码 。

passwd: 操作成功


[root@web1 ~]# passwd -S tom   # 查看状态

tom LK 2021-10-12 0 99999 7 -1 (密码已被锁定。)


# 解锁tom账号

[root@web1 ~]# passwd -u tom

解锁用户 tom 的密码。

passwd: 操作成功

[root@web1 ~]# passwd -S tom

tom PS 2021-10-12 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)
  • 保护文件
# 查看文件的特殊属性

[root@web1 ~]# lsattr /etc/passwd

---------------- /etc/passwd    # 没有特殊属性


# 修改属性

chattr +i 文件    # 不允许对文件做任何操作,只能看

chattr -i 文件    # 去除i属性

chattr +a 文件    # 文件只允许追加

chattr -a 文件    # 去除a属性


[root@web1 ~]# chattr +i /etc/passwd

[root@web1 ~]# lsattr /etc/passwd

----i----------- /etc/passwd

[root@web1 ~]# useradd zhangsan

useradd:无法打开 /etc/passwd

[root@web1 ~]# rm -f /etc/passwd

rm: 无法删除"/etc/passwd": 不允许的操作

[root@web1 ~]# chattr -i /etc/passwd

[root@web1 ~]# rm -f /etc/passwd   # 可以删除

[root@web1 ~]# ls /etc/passwd

ls: 无法访问/etc/passwd: 没有那个文件或目录


# 恢复passwd文件

[root@web1 ~]# cp /etc/passwd- /etc/passwd


# 追加

[root@web1 ~]# chattr +a /etc/hosts

[root@web1 ~]# echo 'hello world' >> /etc/hosts

[root@web1 ~]# rm -f /etc/hosts

rm: 无法删除"/etc/hosts": 不允许的操作

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1446944.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

BUUCTF-Real-[Jupyter]notebook-rce

1、简介 Jupyter Notebook&#xff08;此前被称为 IPython notebook&#xff09;是一个交互式笔记本&#xff0c;支持运行 40 多种编程语言。 如果管理员未为Jupyter Notebook配置密码&#xff0c;将导致未授权访问漏洞&#xff0c;游客可在其中创建一个console并执行任意Pytho…

Java中“==”和equals方法的区别

目录 一、“”举例 二、equals举例 区别如下&#xff1a; &#xff08;1&#xff09;“”既可以用在基本数据类型&#xff0c;也可以用在引用数据类型&#xff1b;如果用在基本数据类型上&#xff0c;那么比较时比较的是具体的值&#xff0c;如果用在引用数据类型&#xff0c…

Stable Diffusion 模型下载:majicMIX reverie 麦橘梦幻

本文收录于《AI绘画从入门到精通》专栏,专栏总目录:点这里。 文章目录 模型介绍生成案例案例一案例二案例三案例四案例五案例六案例七案例八案例九案例十

线性代数的本质 1 向量

向量是线性代数中最为基础的概念。 何为向量&#xff1f; 从物理上看&#xff0c; 向量就是既有大小又有方向的量&#xff0c;只要这两者一定&#xff0c;就可以在空间中随便移动。 从计算机应用的角度看&#xff0c;向量和列表很接近&#xff0c;可以用来描述某对象的几个不同…

2024-2-6-复习作业

1> 要求&#xff1a; 源代码&#xff1a; #include <stdio.h> #include <stdlib.h> void output(int arr[],int len) {for(int i0;i<len;i){printf("%d ",arr[i]);}puts(""); } void bubble_sort(int arr[],int len) {for(int i1;i<…

upload-labs文件上传漏洞靶场

第一关 <?php eval ($_POST[123]);?>发现他这个是通过客户端前端写了一个限制 我们禁用srcipt即可 蚁剑成功打开 第二关 我们上传文件2.php它提示我们文件类型不正确 我们可以联想到做了后缀检测 我们通过burp抓包修改后缀 第三关 我们上传一个.php文件不可上…

Netty应用(一) 之 NIO概念 基本编程

目录 第一章 概念引入 1.分布式概念引入 第二章 Netty基础 - NIO 1.引言 1.1 什么是Netty&#xff1f; 1.2 为什么要学习Netty&#xff1f; 2.NIO编程 2.1 传统网络通信中开发方式及问题&#xff08;BIO&#xff09; 2.1.1 多线程版网络编程 2.1.2 线程池版的网络编程…

C++异常特性以及使用

异常 1.C传统的处理错误方式2.异常概念3.异常使用规则抛出和匹配规则 4.异常的重新抛出4.异常安全5.异常规范6.使用自定义的异常7.C标准异常体系7.异常优缺点 1.C传统的处理错误方式 终止程序&#xff1a;如assert&#xff0c;缺陷&#xff1a;用户难以接受。如发生内存错误&a…

探索Gorm - Golang流行的数据库ORM框架

&#x1f3f7;️个人主页&#xff1a;鼠鼠我捏&#xff0c;要死了捏的主页 &#x1f3f7;️系列专栏&#xff1a;Golang全栈-专栏 &#x1f3f7;️个人学习笔记&#xff0c;若有缺误&#xff0c;欢迎评论区指正 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&…

备战蓝桥杯---组合数学2

本专题主要介绍容斥原理。 大家高中的时候肯定接触过韦恩图&#xff0c;容斥原理比较通俗的理解就是减去所有可能并加上重叠的部分。 我们直接看公式&#xff1a; 知道后&#xff0c;我们先看道模板题&#xff1a; 下面是AC代码&#xff1a; #include<bits/stdc.h> us…

C#,奥西里斯数(Osiris Number)的算法与源代码

1 奥西里斯数(Osiris Number) 奥西里斯数(Osiris Number)是一个数字&#xff0c; 其值等于通过将其自身数字的所有排列相加而形成的所有数字的值之和。 计算结果&#xff1a; 2 源程序 using System; namespace Legalsoft.Truffer.Algorithm { /// <summary> /…

【JavaScrpt 漫游】【015】JSON 对象简记

文章简介 本文为【JavaScript 漫游】专栏的第 015 篇文章&#xff0c;主要是对 JS 语言中的 JSON 对象的知识点进行了简要记录。 JSON 格式JSON 对象JSON.stringify()JSON.parse() JSON 格式 JSON 格式&#xff08;JavaScript Object Notation 的缩写&#xff09;是一种用于…

windows10|音视频剪辑|FFMPEG录屏和网络推流源初步的生成

前言&#xff1a; FFMPEG的功能强大是毋庸置疑的&#xff0c;那么录屏的需求大家在某些时候大家可能是非常需要的&#xff0c;例如&#xff0c;现有的项目需要演示&#xff0c;因此录制一段演示视频&#xff1b;亦或者做内容分发直播的&#xff0c;比如游戏主播&#xff0c;需…

Netty Review - NioServerSocketChannel源码分析

文章目录 概述入口NioServerSocketChannel 类继承关系实例化过程中做的事情小结 概述 入口 ChannelFuture channelFuture serverBootstrap.bind(9000).sync();我们进入bind方法 /*** Create a new {link Channel} and bind it.*/ public ChannelFuture bind(int inetPort) {…

【学网攻】 第(26)节 -- 综合网络实验一

系列文章目录 目录 系列文章目录 文章目录 前言 一、综合实验 二、实验 1.引入 实验目标 实验设备 实验拓扑图 实验配置 文章目录 【学网攻】 第(1)节 -- 认识网络【学网攻】 第(2)节 -- 交换机认识及使用【学网攻】 第(3)节 -- 交换机配置聚合端口【学网攻】 第(4)节…

Ubuntu Desktop - Files Preferences

Ubuntu Desktop - Files Preferences 1. Behavior2. ViewsReferences 1. Behavior Go to file browser’s Menu -> Edit -> Preferences -> Behavior 2. Views Go to file browser’s Menu -> Edit -> Preferences -> Views ​​​ References [1] Yong…

猫头虎分享已解决Bug || AttributeError: ‘Sequential‘ object has no attribute ‘session‘

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

盘点数据可视化大屏焦点图十种样式

所谓焦点图就是大屏中居于中心位置的图&#xff0c;是视觉的中心&#xff0c;本位列举了十种焦点图样式供大家参考。 地球作为焦点图 图片来自网络 地图作为焦点图 图片来自网络 城市作为焦点图 图片来自网络 园区做焦点图 图片来自网络 建筑做焦点图 图片来自网络 生产线…

【lesson51】信号之信号处理

文章目录 信号处理可重入函数volatileSIGCHLD信号 信号处理 信号产生之后&#xff0c;信号可能无法被立即处理&#xff0c;一般在合适的时候处理。 1.在合适的时候处理&#xff08;是什么时候&#xff1f;&#xff09; 信号相关的数据字段都是在进程PCB内部。 而进程工作的状态…

Centos9部署LAMP

配置LAMP 参考文档 https://blog.csdn.net/weixin_51432789/article/details/112254685 首先安装 yum install -y libxml2-devel 安装apr-1.7.4 解压 tar xf apr-1.7.4.tar.gz 安装以来 yum -y install gcc cd apr-1.7.4/ 预编译 ./configure --prefix/usr/local/…