ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Linux运维初学7

2021-10-25 13:05:47  阅读:188  来源: 互联网

标签:浏览器 运维 证书 CA 初学 Linux 加密 服务端 客户端


1、解决DOS攻击生产案例:根据web日志或者或者网络连接数,监控当某个IP 并发连接数或者短时内PV达到100,即调用防火墙命令封掉对应的IP,监控频 率每隔5分钟。防火墙命令为:iptables -A INPUT -s IP -j REJECT

(1)安装启动httpd,在浏览器访问正常

(2)对192.168.1.128进行洪水攻击:hping3 -c 100000000000 -d 1200000 -S -w   64 -p 80 --flood  192.168.1.128

 在192.168.1.128上:tcpdump

 (3)用 ss -ano 在192.168.1.128上可以看到有大量来自192.168.1.137的SYN-RECV连接

(4)用ss -ano |tr -s ' '|tr ' ' ':' |cut -d: -f13|grep -Eo "([0-9]+.){3}[0-9]+"|uniq -c|sort -nr
筛选出相关IP并统计访问量

(5) 安装iptables-services 编写调用防火墙的脚本

参考:Linux Shell脚本联动iptables实现DOS防护_上海_运维_Q先生的博客-CSDN博客 

运行脚本后BOS攻击的192.168.1.137被防火墙拒绝访问

 

(6)crontab添加


 

 

                  

2、描述密钥交换的过程 

第1步

网站方面首先要花一笔银子,在某个 CA 那里购买一个数字证书。该证书通常会对应几个文件:其中一个文件包含公钥,还有一个文件包含私钥。所谓的“公钥”,顾名思义就是可以公开的 key;而所谓的“私钥”就是私密的 key。
第2步

当浏览器访问该网站,Web 服务器首先把包含公钥的证书发送给浏览器。
第3步

浏览器验证网站发过来的证书。如果发现其中有问题,浏览器会提示“CA 证书安全警告”。由于有了这一步,就大大降低了。因为正经的 CA 证书,都是来自某个权威的 CA。如果某个 CA 足够权威,那么主流的操作系统(或浏览器)会内置该 CA 的“根证书”。(比如 Windows 中就内置了几十个权威 CA 的根证书)因此,浏览器就可以利用系统内置的根证书,来判断网站发过来的 CA 证书是不是某个 CA 颁发的。
第4步

如果网站发过来的 CA 证书没有问题,那么浏览器就从该 CA 证书中提取出“公钥”。然后浏览器随机生成一个“对称加密的密钥”(以下称为 k)。用 CA 证书的公钥加密 k,得到密文 k'浏览器把 k' 发送给网站。
第5步 网站收到浏览器发过来的 k',用服务器上的私钥进行解密,得到 k。

3、https的通信过程

http协议属于明文传输协议,交互过程以及数据传输都没有进行加密,通信双方也没有进行任何认证,通信过程非常容易遭遇劫持、监听、篡改,严重情况下,会造成恶意的流量劫持等问题,甚至造成个人隐私泄露的安全问题。

https如何保证安全?

要解决http带来的问题,就要引入加密以及身份验证机制。如果Server给Client的消息是密文的,只有服务器和客户端才能读懂,就可以保证数据的保密性。同时,在交换数据之前,验证一下对方的合法身份,就可以保证通信双方的安全。

第一步:客户端向服务端发起请求


(1)客户端生成随机数R1 发送给服务端;

(2)告诉服务端自己支持哪些加密算法;

第二步:服务器向客户端发送数字证书


(1)服务端生成随机数R2;

(2)从客户端支持的加密算法中选择一种双方都支持的加密算法(此算法用于后面的会话密钥生成);

(3)服务端生成把证书、随机数R2、会话密钥生成算法,一同发给客户端;

第三步:客户端验证数字证书。


(1)验证证书的可靠性,先用CA的公钥解密被加密过后的证书,能解密则说明证书没有问题,然后通过证书里提供的摘要算法进行对数据进行摘要,然后通过自己生成的摘要与服务端发送的摘要比对。

(2)验证证书合法性,包括证书是否吊销、是否到期、域名是否匹配,通过后则进行后面的流程

(3)获得证书的公钥、会话密钥生成算法、随机数R2

(4)生成一个随机数R3。

(5)根据会话秘钥算法使用R1、R2、R3生成会话秘钥。

(6)用服务端证书的公钥加密随机数R3并发送给服务端。

第四步:服务器得到会话密钥


(1)服务器用私钥解密客户端发过来的随机数R3

(2)根据会话秘钥算法使用R1、R2、R3生成会话秘钥

第五步:客户端与服务端进行加密会话


(1)客户端发送加密数据给服务端

发送加密数据:客户端加密数据后发送给服务端。

(2)服务端响应客户端

解密接收数据:服务端用会话密钥解密客户端发送的数据;

加密响应数据:用会话密钥把响应的数据加密发送给客户端。

(3)客户端解密服务端响应的数据

解密数据:客户端用会话密钥解密响应数据;

4、使用awk以冒号分隔获取/ettc/passwd文件第一列

 

 

      

标签:浏览器,运维,证书,CA,初学,Linux,加密,服务端,客户端
来源: https://blog.csdn.net/Fafafa12345678/article/details/120944612

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有