Seven weeks -Lucklyzpp

 

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

防火墙命令为:iptables -A INPUT -s IP -j REJECT



[18:22:08 root@lucklyzpp8 data]#cat /var/log/httpd/access_log | awk '{IP[$1]++}END{for(i in IP){print i,IP[i]}}'
192.168.33.128 2
192.168.33.2 3
[18:22:20 root@lucklyzpp8 data]#cat access_log.sh
cat /var/log/access_log | awk '{IP[$1]++}END{for(i in IP){print i,IP[i]}}' > /tmp/hosts.txt
while read ip number;do
if [ $number -gt 100 ] ;then
iptables -A INPUT -s $ip -j REJECT
echo "from $ip $number rejected" >> /tmp/reject.txt
fi
done < /tmp/hosts.txt
[18:26:32 root@lucklyzpp8 data]#bash -n access_log.sh
[18:26:38 root@lucklyzpp8 data]#


[18:35:35 root@lucklyzpp8 data]#crontab -l

*/5 * * * * /data/access_log.sh


 

2、描述密钥交换的过程

1 对称加密

加密和解密使用同一个秘钥

特性:

加密,解密使用同一个秘钥,效率高.

将原始数据分割成固定大小的块,逐个进行加密

缺陷:

  • 秘钥过多
  • 秘钥分发 数
  • 据来源无法确认

常见对称加密算法:

DES: Data Encryption Standard,56bits

3DES

AES: Advanced(128,192,256bits)

Blowfish, Twofish

IDEA,RC6, CAST5

Seven weeks lucklyzpp_数据

2 非对称加密

秘钥是成对出现

公钥: Public Key,公开给所有人,主要给别人加密使用

私钥: Secret Key,Private Key自己留存,必须保证其私密性,用于自己加密签名

特点: 用公钥和加密数据,只能使用与之配对的私钥解密;反之亦然

功能:

  • 数据加密:适合加密较小数据,比如:加密对称秘钥
  • 数字签名:主要在于让接收方确认发送方身份

缺点:

密钥长,算法复杂

加密解密效率低下

常见算法:

  • RSA: 由RSA公司发明,是一个支持变长密钥的公共密钥算法,需要加密的文件块的长度也是可变的,可实现加密和数字签名.
  • DSA(Digital Signature Algorithm): 数字签名算法,是一种标准的DSS(数字签名标准)
  • ECC(Eliptic Curves Cryptography): 椭圆曲线密码编码学,比RSA加密算法使用更小的秘钥,提供相当或更高等级的安全.

Seven weeks lucklyzpp_数字签名_02

公钥加密系统可提供以下功能:

  A、机密性(Confidentiality):保证非授权人员不能非法获取信息,通过数据加密来实现;

  B、确认(Authentication):保证对方属于所声称的实体,通过数字签名来实现;

  C、数据完整性(Data integrity):保证信息内容不被篡改,入侵者不可能用假消息代替合法消息,通过数字签名来实现;

  D、不可抵赖性(Nonrepudiation):发送者不可能事后否认他发送过消息,消息的接受者可以向中立的第三方证实所指的发送者确实发出了消息,通过数字签名来实现。

Diffie-Hellman密钥交换

IKE ( Internet密钥交换)

3 密钥交换

密钥交换: IKE( Internet Key Exchange)

公钥机密:用目标的公钥加密对称密钥

DH(Deffie-Hellman): 生成对话(会话)密钥

DH介绍

  •      它是一种安全协议,让双方在完全没有对方任何预先信息的条件下通过不安全信道建立起一个密钥,这个密钥一般作为"对称加密"的密钥而被双方在后续数据传输中使用.
  •      DH数学原理是base离散对数问题.做类似事情的还有非对称加密类算法,如:RSA
  •      其应用非常广泛,在SSH,VPN,Https…都有应用,堪称现代密码基石。

DH实现过程:



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,生成秘钥


DH特点

  1. 泄密风险:私密数据a,b在生成K后将被丢弃,因此不存在a,b过长时间存在导致增加泄密风险。
  2. 中间人攻击:由于DH在传输p,g时并无身份验证,所以有机会被实施中间人攻击,替换双方传输时的数

 

原始非对称加密传递

Seven weeks lucklyzpp_数据_03

 

专用密钥交换算法

 Seven weeks lucklyzpp_数据_04

 

 

3、https的通信过程

https简介

HTTPS其实是有两部分组成:HTTP + SSL / TLS,也就是在HTTP上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据。具体是如何进行加密,解密,验证的,且看下图

Seven weeks lucklyzpp_密钥交换_05

 

 

为什么不一直使用HTTPS?

  • 由于存在加密过程和额外的SSL通信,处理速度会变慢
  • AC认证需要花费增加额外的开销
  • 加密通信会消耗服务器和客户端更多的CPU和内存

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



[16:49:43 root@lucklyzpp8 httpd]#awk -F: '{print $1}' /etc/passwd | head -n2
root
bin