第七周 2021-10-23

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

[root@hosta ~]# cat haha.sh

     1 #!/bin/bash
      2
      3
      4
      5 ss -nt | awk -F":|[[:space:]]+" '/^ESTAB/{print $(NF-2)}' | sort | uniq -c | while read count ip
      6 do
      7         if [ $count -gt 100 ];then
      8                 iptables -A INPUT -s $ip -j REJECT
      9         fi
     10 done

[root@hosta ~]# crontab -l
SHELL=/usr/bin/bash
PATH=/usr/bin:/bin:/usr/sbin

*/5 * * * * /root/haha.sh


2、描述密钥交换的过程

(1)DH密钥交换工作过程简述:

  • 双方(Alice,Bob)进行密钥交换的过程简述:
  1. Alice 和 Bob 一开始需要协商公开的整数g,以及大素数p;
  2. Alice 和 Bob 再随机生成属于自己的隐私数据,(Alice : a ,Bob:b);
  3. Alice 通过模幂运算,得数据:A = ga mod p,并将其发送给 Bob;
  4. Bob 通过模幂运算,得数据:B = gb mod p ,并将其发送给 Alice;
  5. Alice 利用收到的数据 B再次进行模幂运算得数据:s = Ba mod p;
  6. 同理,Bob 经计算得到与Alice形同的数据: s = Ab mod p;
  7. s 就为Alice 和 Bob 后续通信所使用的不公开的共享密钥。
  • 通过使用颜色举例来简述:
  1. 首先Alice 和 Bob 共同协商一个初始颜色,此例为(黄色);
  2. 其次Alice 和 Bob 在各自选择一个自己喜欢的颜色,作为其私有(Alice :红色,Bob:蓝绿色);
  3. Alice将共同颜色(黄色)与其私有颜色(红色)混合,得颜色(橘黄色);Bob将自己的颜色(蓝绿色)与(黄色)混合得(浅蓝色);
  4. Alice将其混合色(橘黄色)告诉Bob ,同理,Bob也将其浅蓝色告诉Alice;
  5. Alice在将Bob的混合色与自己的私有色进行混合,得颜色(黄棕色),同理,Bob也将自己的私有颜色和Alice的混合色进行混合,也得颜色(黄棕色);
  6. 故而可以将Alice和Bob 的最后相同的颜色作为其后续通信的共享密钥色。
    请添加图片描述
  • 计算过程简单举例
# 假设Alice 和Bob 协商的 g = 5 p = 23 ;
# Alice的私有值 a = 11, Bob 的私有值 b = 13;
[root@hosta ~]# A=$(( 5^11%23 ))
[root@hosta ~]# echo $A
14
[root@hosta ~]# B=$(( 5^13%23 ))
[root@hosta ~]# echo $B
8
[root@hosta ~]# s_a=$(( B^11%23 )) 
[root@hosta ~]# echo $s_a
3
[root@hosta ~]# s_b=$(( A^13%23 ))
[root@hosta ~]# echo $s_b
3
[root@hosta ~]# 
# s_b = s_a ;
  • 总结:
  1. g,p,ga mod p ,gb mod p ,是公开可见的;
  2. a,b,(ga mod p)b mod p = (gb mod p)a mod p 的值是不可公开的;

(2)利用公钥加密进行对称密钥交换

  • 双方(Alice , Bob)使用非对称加密方式来实现对称密钥交换:
  1. Alice 在本地生成公钥/私钥对;
  2. Alice将公钥对传送给Bob;
  3. Bob 生成一个随机值,并使用Alice的公钥对该随机值进行加密,然后把非对称加密后的随机值传送给Alice;
  4. Alice收到该加密数据后,使用其对应的私钥对该加密数据进行解密,从而得到该随机值;
  5. Alice和Bob 后续就可以通过该随机值进行对称加密通信了。

3、https的通信过程

  1. 首先,用户在浏览器地址栏键入URL,向远程服务端发起HTTPS请求;
  2. 浏览器发起与对应URL的服务端的443端口的3次握手过程,建立TCP连接,并将请求数据传送至服务端;
  3. 服务端接收到请求数据后,将自己申请到的或自己颁发的证书传送给客户端;
  4. 客户端解析并验证服务端的证书是否合法有效,如发现异常,则会弹出警告,提示证书存在问题。如未发生异常,就会生成一个随机值,然后用证书中的公钥对该随机值进行非对称加密;
  5. 客户端将非对称加密后的随机值传送至服务端,服务端接收到该加密信息后,用对应的私钥进行解密,从而获得这个随机值(该随机值,用作客户、服务端后续通信时加密解密的对称密钥);
  6. 服务端相应客户端的请求,通过自身预定义的业务逻辑,提取相关数据,并将数据通过随机值进行对称加密,再发送给客户端;
  7. 客户端接收到对称加密了的请求的相应数据后,使用随机值对其进行解密,然后交给应用层显示该数据内容。

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

#方法一:
[root@hosta ~]# awk -F: '{print $1}' /etc/passwd
root
bin
daemon
adm
lp
sync
shutdown
halt
...
[root@hosta ~]#
#方法二:
[root@hosta ~]# awk -v FS=":" '{print $1}' /etc/passwd
root
bin
daemon
adm
...

参考链接:
Diffie–Hellman key exchange

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值