文本处理awk 内核管理、加密安全

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

#!/bin/bash
LINK=100
while true;do
ss -nt | awk -F"[[:space:]]+|:" '/^ESTAB/{print $(NF-2)}' | sort | tr "]" " "  | uniq -c | while read count ip;do 
# 使用read将标准输出的值赋予给count和ip变量。
    if [ $count -gt $LINK ];then 
    iptables -A INPUT -s $ip -j REJECT
    echo "$ip 被拒绝访问\ " >> /root/test.txt
        fi
    done 
done

执行crontab -e,设置每5分钟执行一次
*/5 * * * * /bin/bash /test/shellstudy/netstatip.sh

2.描述密钥交换的过程

**前提**
* 非对称加密
* 公私钥能相互解开,但是对于被嵌套的公私钥,相当于嵌套的锁,一定要将外层的锁解开之后才能解开内层的锁
* 有一个公证人,即证书中心,CA

**过程**
* 服务器产生公私钥
* 将公私钥发送给CA
* CA生成客户端浏览器公私钥
* CA使用客户端浏览器的私钥对共服务器的公钥进行加密,得到证书,返回给服务器
* CA将证书发给客户端
* 服务器发送公钥与证书给客户端
* 客户端利用公钥对证书解密,对比服务端公钥,确认来源无误
* 客户端生成随机密码,保存在本地,然后使用服务端公钥加密
* 将加密的密码返回给服务端
* 服务端使用私钥解密得到客户端密码
* 此时完成了密码交换工作
* 此后进行的所有数据交换都会事先使用这个密码进行对称加密,如DES,3DES。
* 总结:对密钥进行非对称加密,后使用密钥进行对称加密

3、https的通信过程

第一步:客户端向服务端发起请求
(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文件第一列

[root@localhost ~]#cat  /etc/passwd |awk -F":" '{print $1}'
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
operator
games
ftp
nobody
dbus
systemd-coredump
systemd-resolve
tss
polkitd
geoclue
rtkit
pipewire
pulse
libstoragemgmt
qemu
usbmuxd
unbound
上一篇:我一定要让所有人都知道awk这个实用操作


下一篇:Linux三剑客案例练习合集