文本处理awk和加密安全
1、解决DOS攻击生产案例:根据web日志或者或者网络连接数,监控当某个IP 并发连接数或者短时内PV达到100,即调用防火墙命令封掉对应的IP,监控频 率每隔5分钟。防火墙命令为:iptables -A INPUT -s IP -j REJECT
[root@openvpn zhangym]# crontab -l
* */6 * * * /bin/bash /root/monitor_disk.sh
* */6 * * * /bin/bash /root/monitor_tcpdump.sh
*/5 * * * * /root/zhangym/web_ddos.sh
[root@openvpn zhangym]# cat web_ddos.sh
#!/bin/bash
/usr/sbin/ss -tn | awk -F`[ :]+` `/ESTABLISHED/{ip[$(NF-2)]++}END{for(i in ip)if(ip[i]>10) print i)` >/root/zhangym/ddosip.txt
while read IP;do
/usr/sbin/iptables -A INPUT -s $IP -j REJECT
echo "The $IP reject" >> /root/zhangym/ddosip.txt
done < /root/zhangym/ddosip.txt
2、描述密钥交换的过程
密钥交换:IKE (Internet Key Exchange)
公钥加密:用目标的公钥加密对称密钥
DH:生成对称会话密钥
密钥交换方法在1976年发表,是一种安全协议,让双方在完全没有对方任何预先信息的条件下通过不安全信道建立起一个密钥,这个密钥一般作为“对称加密”的密钥而被双方在后续数据传输中使用。
DH数学原理是base离散对数问题,做类似事情的还有非对称加密类算法,如RSA
其应用非常广泛,在SSH,VPN,HTTPS ...都有应用
A: g,p 协商生成公开的整数g, 大素数p
B: g,p
A:生成隐私数据:a (a<p),计算得出 g^a%p,发送给B
B:生成隐私数据:b,(b<p),计算得出 g^b%p,发送给A
A:计算得出 [(g^b%p)^a]%p = g^ab%p,生成为密钥
B:计算得出 [(g^a%p)^b]%p = g^ab%p,生成为密钥
3、https的通信过程
http属于超文本传输协议,属于应用层协议,https是在原有的协议接口上替换了SSL和TLS协议。
对称加密
服务器给客户端的消息是密文的,只有服务器和客户端才能读懂,就可以保证数据的保密性。
服务器把数据加密后需把加密的密钥告诉客户端,客户端才能利用对称密钥解开密文的内容。如果服务器将这个对称密钥以明文的方式给Client,会被中间人截获,无法保证通信的保密性。
3.1.客户端向服务器发起HTTPS请求,连接到服务器的443端口
3.2.服务器端有一个密钥对,即公钥和私钥,是用来进行非对称加密使用的,服务器端保存着私钥,不能将其泄露,公钥可以发送给任何人。
3.3.服务器将自己的公钥发送给客户端。
3.4.客户端收到服务器端的公钥之后,会对公钥进行检查,验证其合法性,如果发现发现公钥有问题,那么HTTPS传输就无法继续。严格的说,这里应该是验证服务器发送的数字证书的合法性,关于客户端如何验证数字证书的合法性,下文会进行说明。如果公钥合 格,那么客户端会生成一个随机值,这个随机值就是用于进行对称加密的密钥,我们将该密钥称之为client key,即客户端密钥,这样在概念上和服务器端的密钥容易进行区分。然后用服务器的公钥对客户端密钥进行非对称加密,这样客户端密钥就变成密文了,至此, HTTPS中的第一次HTTP请求结束。
3.5.客户端会发起HTTPS中的第二个HTTP请求,将加密之后的客户端密钥发送给服务器。
3.6.服务器接收到客户端发来的密文之后,会用自己的私钥对其进行非对称解密,解密之后的明文就是客户端密钥,然后用客户端密钥对数据进行对称加密,这样数据就变成了密文。
3.7.然后服务器将加密后的密文发送给客户端。
3.8.客户端收到服务器发送来的密文,用客户端密钥对其进行对称解密,得到服务器发送的数据。这样HTTPS中的第二个HTTP请求结束,整个HTTPS传输完成。
4、使用awk以冒号分隔获取/ettc/passwd文件第一列
awk -F: '{print $1}' /etc/passwd