1、解决DOS攻击:根据web日志或者或者网络连接数,监控当某个IP 并发连接数或者短时内PV达到100,即调用防火墙命令封掉对应的IP,监控频 率每隔5分钟。
[10:54:50 root@centos8 ~]#awk '{ip[$1]++}END{for(i in ip){if(ip[i]>=10)
{system("iptables -A INPUT -s "i" -j REJECT")}}}' nginx.access.log-20200428
[13:06:37 root@centos8 ~]#crontab -l
*/5 * * * * /usr/bin/awk'{ip[$1]++}END{for(i in ip){if(ip[i]>=10){system("iptables -A INPUT -s "i" -j REJECT")}}}' nginx.access.log-20200428
2、描述密钥交换的过程
QQ图片20210420122352.png
1、首先客户端会生成一对密钥(ssh-keygen)
2、并将客户端的公钥ssh-copy-id拷贝到服务器端
3、当客户端重新向服务器端发送一个连接请求(包括ip、用户名)
4、服务器端得到客户端的请求后,会到authorized_keys中查找,如果有响应的IP和用户,就会随机生成一个字符串
5、服务端将使用客户端发送过来的公钥和生成的随机字符串进行加密,然后发送给客户端
6、客户端接受到服务端发送的消息之后,客户端会使用自己的私钥对其进行解密,得到随机字符串并发送给服务器端
7、服务器端得到客户端发送的解密生成的字符串与本机所随机生成的字符串进行比较,如果本机和发送的字符串一致,则可以实现免密登陆。
3、https的通信过程
QQ图片20210420124402.png
1、客户端发起https请求
用户在浏览器里输入一个https的网址,然后连接到服务器的443端口
2、服务端的配置
采用https协议的服务器必须要有一套数字证书,可以自己生成也可向权威机构申请(区别:自己颁发的证书需要客户端验证通过,才可以自己访问,受信任的公司申请的证书不会弹出提示框,证书其实就是一对公钥和私钥)
3、服务器的证书传到客户端
证书其实就是公钥,并且包含很多的信息,如颁发证书的机构和过期时间等等
4、客户端解析认证服务端发来的证书
这部分工作是有客户端的TLS来完成的,首先会验证公钥是否有效,比如:颁发机构,过期时间等等,如果发现异常,则会弹出一个警告框,提示证书存在问题。如果证书没有问题,那么就生成一个随机值。然后用证书中公钥对该随机值进行非对称加密
5、客户端将加密的信息传送给服务器
这部分随机值是使用证书加密后的随机值,目的是为了让服务器端获取这个随机值,以后通信服务器和客户端就可使用这个随机值来进行加密和解密了
6、服务端解密的信息
服务端将客户端发送的加密信息使用证书的私钥进行解密获取到客户端的随机值
7、服务器加密信息并发送信息
服务器将数据利用随机值进行对称加密,再发送给客户端
8、客户端接受消息并进行解密
客户端用之前生成的随机值解密服务器传过来的数据,从而获取到服务器发送的数据。