RHCE-Web服务器在linux上的部署,了解hash算法以及常见的加密方式

news2024/11/22 16:28:43

目录

1.WEB服务器(Web Server)

浏览器

工作原理

常见状态码:

www服务器的基本配置

2.web服务配置样例

3.了解hash算法以及常见的加密方式

hash算法:

常用HASH函数

处理冲突方法

常用hash算法的介绍:

ssh协议的密钥加密方式(对称加密,非对称加密):


1.WEB服务器(Web Server)

简介:

 Web服务器一般指网站服务器,是指驻留于因特网上某种类型计算机的程序,可以处理浏览器等Web客户端的请求并返回相应响应,也可以放置网站文件,让全世界浏览;可以放置数据文件,让全世界下载。最主流的三个Web服务器是Apache、 Nginx 、IIS。

浏览器

 客户端收到服务器的数据之后需要软件解析服务器所提供的数据,最后将效果呈现在用户的屏幕上。那么著名的浏览器就有内建在Windows操作系统内的IE浏览器了,还有Firefox浏览器和Google的chrome浏览器。

工作原理

HTTP协议基于TCP协议上,是一个应用层协议,用于用户代理和Web服务器进行通信。Web服务器通常采用一问一答的方式进行工作:

  1. 在用户代理上用户发起资源请求,请求内容包括但不限于:指定资源的唯一标识URI,指明动作类型(GET/POST/DELETE/PUT...)
  2. 用户代理解析用户输入URI并从中获取目标域名,交由DNS服务器解析。如果URI中指定某IP地址,这无需这步。
  3. 如果与服务器的会话还没建立,此时先建立TCP连接,并完成HTTP协商(确定双方均可接受的处理方式,包括协议版本,是否加密,内容格式等等)。
  4. 用户代理把请求内容封装成HTTP数据包向服务器发送。
  5. 服务器接收到资源请求并以之前协商好的方式解包并处理。
  6. 服务器请求的资源封装成HTTP数据包并返回给用户代理。

常见状态码:

  • :由三位数字组成,第一个数字定义了响应的类别,且有五种可能取值。
    • 1xx:指示信息 —— 表示请求已接收,继续处理
    • 2xx:成功 —— 表示请求已被成功接收、理解、接受
    • 3xx:重定向 —— 要完成请求必须进行更进一步的操作
    • 4xx:客户端错误 —— 请求有语法错误或请求无法实现
    • 5xx:服务器端错误 —— 服务器未能实现合法的请求
    • 常见状态代码、状态描述的说明如下:
      • 200 OK:客户端请求成功
      • 400 Bad Request:客户端请求有语法错误,不能被服务器所理解
      • 401 Unauthorized:请求未经授权,这个状态代码必须和 WWW-Authenticate 报头域一起使用
      • 403 Forbidden:服务器收到请求,但是拒绝提供服务
      • 404 Not Found:请求资源不存在,举个例子:输入了错误的URL
      • 500 Internal Server Error:服务器发生不可预期的错误
      • 503 Server Unavailable:服务器当前不能处理客户端的请求,一段时间后可能恢复正常

www服务器的基本配置

环境:

服务器端:

需要安装httpd服务(httpd提供Apache主程序 http://httpd.apache.org/docs/2.4/)

yum install httpd -y

主要的配置文件 /etc/httpd/conf/httpd.conf。

额外的参数文件/etc/httpd/conf.d/*.conf。

存放网页的地址:

默认的首页所在目录/var/www/html/,当输入网址时所显示的数据,就是放在这个目录当中的首页文件(默认为index.html)。

默认给一些可执行的CGI(网页程序)程序放置的目录/var/www/cgi-bin/,当输入网址/cgi-bin/时所显示的数据所在。

默认的Apache日志文件都放在/var/log/httpd/,

2.web服务配置样例

(基于同一IP的不同端口访问不同的网站(可以通过域名去访问) ip+port1 -> 对应一个域名 ip+port2 -> 对应一个域名 使用域名1我应该访问到 ip+port1对应的内容 使用域名2我应该访问到 ip+port2对应的内容 )

思路:

在/www 下创建port 目录,在port目录里创建9090,9091两个子目录,在每个目录下面写入网页内容。

由于需要使用IP+Port的方式访问,所以在额外的配置文件里配置监听端口号,以及网页访问目录的配置。

域名

配置命令:

1.安装httpd(服务器端)

2.在/www/下创建port目录,在/www/port/下创建9090、9091目录,在9090,9091目录下写入网页文件

mkdir /www/port/{9090,9091} -p

 在9090,9091目录下写入网页内容

#这里我使用的是相对路径,相对于/www/port/ ,大家在配置过程中注意哦

echo "This is page for port 9090" > ./9090/index.html

echo "This is page for port 9091" > ./9091/index.html

3.额外配置文件

vim /etc/httpd/conf.d/myhosts.conf

Listen 192.168.124.150:9090                    ---设置监听的端口号
Listen 192.168.124.150:9091

<VirtualHost 192.168.124.150:9090 >      ---web网页访问的路径
   DocumentRoot "/www/port/9090"
  # ServerName www.230106.com
</VirtualHost>
<VirtualHost 192.168.124.150:9091 >
 DocumentRoot "/www/port/9091"
# ServerName www.230107.com
</VirtualHost>
 

配置完成后重启httpd服务

systemctl restart httpd

打开网页输入192.168.124.150:9090;192.168.124.150:9091测试

 

域名解析配置:

 客户端:

windows

目录:C:\Windows\System32\drivers\etc\hosts

linux

目录: /etc/hosts

以windows为例

通过powershell,进入到C:\Windows\System32\drivers\etc

notepad ./hosts   ---以记事本的方式打开这个文件

 

 文件末尾添加  

格式:

 IP           域名

xxx         xxxxx

打开浏览器测试:

域名加端口号的形式

 

 

 

当然我的192.168.124.151没有配置额外的端口号(默认访问的是80端口) 

3.了解hash算法以及常见的加密方式

hash算法:

Hash算法是一个广义的算法,也可以认为是一种思想,使用Hash算法可以提高存储空间的利用率,可以提高数据的查询效率,也可以做数字签名来保障数据传递的安全性。所以Hash算法被广泛地应用在互联网应用中。

散列算法(Hash Algorithm),又称哈希算法,杂凑算法,是一种从任意文件中创造小的数字「指纹」的方法。与指纹一样,散列算法就是一种以较短的信息来保证文件唯一性的标志,这种标志与文件的每一个字节都相关,而且难以找到逆向规律。

当然,作为一种指纹,散列算法最重要的用途在于给证书、文档、密码等高安全系数的内容添加加密保护。这一方面的用途主要是得益于散列算法的不可逆性,这种不可逆性体现在,你不仅不可能根据一段通过散列算法得到的指纹来获得原有的文件,也不可能简单地创造一个文件并让它的指纹与一段目标指纹相一致。

常用HASH函数

散列函数能使对一个数据序列的访问过程更加迅速有效,通过散列函数,数据元素将被更快地定位。常用Hash函数有:

1.直接寻址法。取关键字或关键字的某个线性函数值为散列地址。即H(key)=key或H(key) = a·key + b,其中a和b为常数(这种散列函数叫做自身函数)

2.数字分析法。分析一组数据,比如一组员工的出生年月日,这时我们发现出生年月日的前几位数字大体相同,这样的话,出现冲突的几率就会很大,但是我们发现年月日的后几位表示月份和具体日期的数字差别很大,如果用后面的数字来构成散列地址,则冲突的几率会明显降低。因此数字分析法就是找出数字的规律,尽可能利用这些数据来构造冲突几率较低的散列地址。

3.平方取中法。取关键字平方后的中间几位作为散列地址。

4.折叠法。将关键字分割成位数相同的几部分,最后一部分位数可以不同,然后取这几部分的叠加和(去除进位)作为散列地址。

5.随机数法。选择一随机函数,取关键字作为随机函数的种子生成随机值作为散列地址,通常用于关键字长度不同的场合。

6.除留余数法。取关键字被某个不大于散列表表长m的数p除后所得的余数为散列地址。即 H(key) = key MOD p,p<=m。不仅可以对关键字直接取模,也可在折叠、平方取中等运算之后取模。对p的选择很重要,一般取素数或m,若p选的不好,容易产生碰撞。

处理冲突方法

1.开放寻址法;Hi=(H(key) + di) MOD m,i=1,2,…,k(k<=m-1),其中H(key)为散列函数,m为散列表长,di为增量序列,可有下列三种取法:

1). di=1,2,3,…,m-1,称线性探测再散列;

2). di=1^2,-1^2,2^2,-2^2,3^2,…,±k^2,(k<=m/2)称二次探测再散列;

3). di=伪随机数序列,称伪随机探测再散列。

2. 再散列法:Hi=RHi(key),i=1,2,…,k RHi均是不同的散列函数,即在同义词产生地址冲突时计算另一个散列函数地址,直到冲突不再发生,这种方法不易产生“聚集”,但增加了计算时间。

3. 链地址法(拉链法)

4. 建立一个公共溢出区

常用hash算法的介绍:

(1)MD4

MD4(RFC 1320)是 MIT 的Ronald L. Rivest在 1990 年设计的,MD 是 Message Digest(消息摘要) 的缩写。它适用在32位字长的处理器上用高速软件实现——它是基于 32位操作数的位操作来实现的。

(2)MD5

MD5(RFC 1321)是 Rivest 于1991年对MD4的改进版本。它对输入仍以512位分组,其输出是4个32位字的级联,与 MD4 相同。MD5比MD4来得复杂,并且速度较之要慢一点,但更安全,在抗分析和抗差分方面表现更好。

(3)SHA-1及其他

SHA1是由NIST NSA设计为同DSA一起使用的,它对长度小于264的输入,产生长度为160bit的散列值,因此抗穷举(brute-force)性更好。SHA-1 设计时基于和MD4相同原理,并且模仿了该算法。 

ssh协议的密钥加密方式(对称加密,非对称加密):

简介:

安全外壳协议(Secure Shell,简称SSH)是一种在不安全网络上用于安全远程登录和其他安全网络服务的协议。

SSH由IETF的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行SSH。

功能:

传统的网络服务程序,如:ftp、pop和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据。而且,这些服务程序的安全验证方式也是有其弱点的, 就是很容易受到“中间人”(man-in-the-middle)这种方式的攻击。所谓“中间人”的攻击方式, 就是“中间人”冒充真正的服务器接收你传给服务器的数据,然后再冒充你把数据传给真正的服务器。服务器和你之间的数据传送被“中间人”一转手做了手脚之后,就会出现很严重的问题。通过使用SSH,你可以把所有传输的数据进行加密,这样"中间人"这种攻击方式就不可能实现了,而且也能够防止DNS欺骗和IP欺骗。使用SSH,还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替Telnet,又可以为FTP、PoP、甚至为PPP提供一个安全的"通道"

加密方式:

第一种级别(基于口令的安全验证)

只要你知道自己帐号和口令,就可以登录到远程主机。所有传输的数据都会被加密,但是不能保证你正在连接的服务器就是你想连接的服务器。可能会有别的服务器在冒充真正的服务器,也就是受到“中间人”这种方式的攻击。

第二种级别(基于密匙的安全验证)

需要依靠密匙,也就是你必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密匙进行安全验证。服务器收到请求之后,先在该服务器上你的主目录下寻找你的公用密匙,然后把它和你发送过来的公用密匙进行比较。如果两个密匙一致,服务器就用公用密匙加密“质询”(challenge)并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私人密匙解密再把它发送给服务器。

用这种方式,你必须知道自己密匙的口令。但是,与第一种级别相比,第二种级别不需要在网络上传送口令。

第二种级别不仅加密所有传送的数据,而且“中间人”这种攻击方式也是不可能的(因为他没有你的私人密匙)。但是整个登录的过程可能需要10秒

SSH 主要由三部分组成

传输层协议 [SSH-TRANS]

提供了服务器认证,保密性及完整性。此外它有时还提供压缩功能。 SSH-TRANS 通常运行在TCP/IP连接上,也可能用于其它可靠数据流上。 SSH-TRANS 提供了强力的加密技术、密码主机认证及完整性保护。该协议中的认证基于主机,并且该协议不执行用户认证。更高层的用户认证协议可以设计为在此协议之上。

用户认证协议 [SSH-USERAUTH]

用于向服务器提供客户端用户鉴别功能。它运行在传输层协议 SSH-TRANS 上面。当SSH-USERAUTH 开始后,它从低层协议那里接收会话标识符(从第一次密钥交换中的交换哈希H )。会话标识符唯一标识此会话并且适用于标记以证明私钥的所有权。 SSH-USERAUTH 也需要知道低层协议是否提供保密性保护。

连接协议 [SSH-CONNECT]

将多个加密隧道分成逻辑通道。它运行在用户认证协议上。它提供了交互式登录话路、远程命令执行、转发 TCP/IP 连接和转发 X11 连接。

详解安全外壳协议_百度百科 (baidu.com)

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

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

相关文章

Composition步骤

纲要&#xff1a; SWC属于AUTOSAR的Component文件夹下&#xff0c;而Composition属于Composition文件夹下。 AUTOSAR Project Structure Sample目录 1. Create Software Composition 2. Add SWC into Composition 3. Create AssemblyConnector between SWCs 1. Create Sof…

优化SpringBoot程序启动速度

Spring Boot 程序优化 一、延迟初始化Bean 一般在 SpringBoot 中都拥有很多的耗时任务&#xff0c;比如数据库建立连接、初始线程池的创建等等&#xff0c;我们可以延迟这些操作的初始化&#xff0c;来达到优化启动速度的目的。Spring Boot 2.2 版本后引入 spring.main.lazy-i…

【大数据hadoop】基于centos7搭建haoop与hive

一、前言 hadoop是大数据生态中的基础服务&#xff0c;也是其他大数据框架的基础运行环境&#xff0c;尤其是hdfs&#xff0c;是其他大数据框架的基础存储载体&#xff0c;因此系统学习和掌握hadoop对学习大数据很有必要&#xff1b; 而Hive则是Hadop生态系统中必不可少的一个数…

分布式任务介绍

分布式任务解决方案 Elastic-Job介绍 官网&#xff1a;http://elasticjob.io/index_zh.html 由当当网基于Quartz Zookeeper的二次开放产品 基于Zookeeper分布式锁&#xff0c;保证只有一个服务去执行定时任务。 基于Zookeeper实现了注册中心&#xff0c;自动帮助我们去调度指…

pgCluu 的安装、使用与实践

文章目录前言一、什么是 pgCluu二、pgCluu的安装流程静态模式动态模式三、pgCluu的用法pgCluu 用法pgCluu_collectd 用法&#xff1a;四、pgCluu的实操分享实操示例一&#xff1a;实操示例二&#xff1a;前言 PostgreSQL 的监控方法很多&#xff0c;数量越来越多的 PG 的监控再…

MFC输出普朗克常数

在量子力学中可以计算德布罗意波长&#xff0c;其公式如下&#xff1b; 德布罗意波长 h / (质量 * 速度&#xff09;&#xff1b; 其中h是普朗克常数&#xff1b; 先看一下普朗克常数&#xff1b;6.62 乘以10的负34次方&#xff1b; 输出一下此常数看一下&#xff1b; #de…

SpringCloud之Spring Cloud Config 分布式配置

Spring Cloud Config 分布式配置1. 分布式系统面临的配置文件问题2. Spring Cloud Config 分布式配置中心的概念3. Spring Cloud Config 分布式配置中心的作用4. Spring Cloud Config 分布式配置中心和 GitHub 整合5. 小案例Dalston.RELEASE Spring Cloud Config 为分布式系统…

Web3中文|Web3注定会成为元宇宙的一部分

“Web3”和“元宇宙”或许是2022年最热门的流行语了。在营销行话中、在广告中、在新闻报道中&#xff0c;Web3和元宇宙这两个概念总是被捆绑在一起。 但不得不说&#xff0c;二者经常被混为一谈是有原因的。因为它们都是定义模糊的新技术&#xff0c;都被认为是互联网的未来&a…

20230112在Ubuntu下看笔记本电脑电池的电量

20230112在Ubuntu下看笔记本电脑电池的电量 2023/1/12 17:24 ubuntu20.04 Xshell 7 (Build 0108) Copyright (c) 2020 NetSarang Computer, Inc. All rights reserved. Type help to learn how to use Xshell prompt. [C:\~]$ Connecting to 192.168.186.228:22... Connecti…

知物由学 | 多级建模方法提升汉语语音识别效果,获ISCSLP大赛认可

导读&#xff1a;语音是人类信息沟通的重要途径&#xff0c;同时也是人机交互的重要桥梁&#xff0c;自动语音识别可以表述为通过计算机将人类语音信号转录为书面形式的文字输出的过程。本文分享了网易易盾提出的多级建模单元的端到端汉语语音识别方法及具体的落地实践。 1.语…

什么是虹科weeve边缘计算软件平台?

一、前言 随着越来越多的企业希望进入物联网领域&#xff0c;他们在构建和部署物联网项目时面临着前所未有的挑战。根据思科的一项调查表明&#xff0c;超过60&#xff05;的受访者承认他们严重低估了管理自己的物联网计划的复杂性。更令人震惊的是&#xff0c;同一调查还发现…

MongoDB副本集搭建和读写分离配置

MongoDB副本集&#xff08;Replication Set&#xff09;由一组mongod实例(进程)组成&#xff0c;包含一个Primary节点和多个Secondary节点.客户端数据写入Primary节点。Secondary节点从Primary节点同步数据。以保持副本集内所有成员存储相同的数据集。Primary节点故障时会自动选…

C++ 居然超过了 Python?

很难想象&#xff0c;从 1983 年被正式命名开始算起&#xff0c;已经走过整整四十年光阴的 C&#xff0c;居然力挫 C、Python&#xff0c;摘得了 TIOBE 2022 年度编程语言的桂冠。据 TIOBE 官网显示&#xff0c;在过去一年里&#xff0c;C 因为涨幅最大&#xff0c;为 4.62%&am…

论文投稿指南——中文核心期刊推荐(海洋学)

【前言】 &#x1f680; 想发论文怎么办&#xff1f;手把手教你论文如何投稿&#xff01;那么&#xff0c;首先要搞懂投稿目标——论文期刊 &#x1f384; 在期刊论文的分布中&#xff0c;存在一种普遍现象&#xff1a;即对于某一特定的学科或专业来说&#xff0c;少数期刊所含…

javaWeb大体了解

Web&#xff1a;全球广域网&#xff0c;也称为万维网(www)&#xff0c;能够通过浏览器访问的网站 JavaWeb&#xff1a; 是用 Java技术来解决相关web互联网领域的技术栈。 JavaWeb 技术栈 B/S 架构&#xff1a; Browser/Server&#xff0c;浏览器/服务器 架构模式&#xff0…

读书笔记-《ON JAVA 中文版》-摘要10[第十一章 内部类]

文章目录1. 创建内部类2. 链接外部类3. 使用 .this 和 .new4. 内部类与向上转型5. 内部类方法和作用域6. 匿名内部类7. 嵌套类7.1 嵌套类7.2 接口内部的类7.3 从多层嵌套类中访问外部类的成员8. 为什么需要内部类8.1 为什么需要内部类8.2 闭包与回调8.3 内部类与控制框架9. 继承…

智慧农业远程监控系统解决方案

我国是一个农业大国&#xff0c;农作物种植在全国范围内都非常广泛&#xff0c;农作物病虫害防治工作的好坏、及时与否对于农作物的产量、质量影响至关重要。因种植面积广&#xff0c;分布不均&#xff0c;农业工作人员不能够做到在灾害发生时及时出现在现场&#xff0c;所以农…

【Linux】理解缓冲区

文章目录一.引入二.认识缓冲区1.为什么2.刷新策略3.在哪里三、理解缓冲区一.引入 我们发现 printf 和 fwrite &#xff08;库函数&#xff09;都输出了2次&#xff0c;而 write 只输出了一次&#xff08;系统调用&#xff09;。为什么呢&#xff1f;肯定和fork有关&#xff01;…

C++职工管理系统,eof()函数,选择排序

目录 1.创建管理类 1.1头文件实现&#xff0c;在workerManager.h中设计管理类 1.2源文件实现&#xff0c;在workerManager.cpp中将构造和析构函数的空实现补全 2.菜单功能 2.1在管理类workerManager.h中添加菜单成员函数 2.2在管理类workerManager.cpp中写实现 3.退出功能 …

Pycharm基础安装教程:搭建python环境+安装pycharm

嗨害大家好鸭&#xff01;我是小熊猫~ 之前有的小伙伴总说小熊猫发的内容不够基础… 这次小熊猫就来给大家做一个简单的安装介绍吧~ 这里给大家准备了社区版pycharm2021.2 &#xff08;最新版部分库不稳定&#xff0c;不建议下载&#xff09; 第一次安装的小伙伴实在不会下载…