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

测试脚本如下:

  1. /data/ddoscheck.sh
  2. #!/bin/bash
  3. #
  4. /usr/sbin/ss -tn | awk -F " +|:" '/ESTAB/{ip[$(NF-2)]++}END{for(i in ip)if(ip[i]>10) print i}' > /data/ip.txt
  5. while read IP;do
  6. /usr/sbin/iptables -A INPUT -s $IP -j REJECT
  7. echo "The $IP reject" >> /data/dos.txt
  8. done < /data/ip.txt
  9. [root@localhost ~]# cat /data/ip.txt
  10. 192.168.42.5
  11. [root@localhost ~]# cat /data/dos.txt
  12. The 192.168.42.5 reject
  13. [root@localhost ~]# iptables -n -L | more
  14. Chain INPUT (policy ACCEPT)
  15. target prot opt source destination
  16. REJECT all -- 192.168.42.5 0.0.0.0/0 reject-with icmp-port-unreachable
  17. Chain FORWARD (policy ACCEPT)
  18. target prot opt source destination
  19. Chain OUTPUT (policy ACCEPT)
  20. target prot opt source destination
  21. 监控频率每隔5分钟
  22. [root@localhost ~]# crontab -l
  23. */5 * * * * /data/ddoscheck.sh
  24. [root@localhost ~]#

2、描述密钥交换的过程

  1. 一、RSA密钥交换过程(没有前向安全性,攻击者可以把前面交互的内容保存着,一旦拿到私钥,就可以得到主密钥):
  2. 1、客户端准备一个Client Random随机数,并将此随机数和协议版本号以及支持的加密方式一起发给服务端。
  3. 2、服务端收到Client Random后,将服务端CA证书和服务端准备的Sever Random随机数一起发给客户端。
  4. 3、客户端校验服务端证书后并通过解密证书得到服务端的公钥,同时客户端再生成一个新的46位的隐私参数SecPara,并用服务端公钥对这个隐私参数进行加密后,发给服务端,此时客户端已存有Client Random,Server Random,SecPara
  5. 4、服务端对数据解密后,获得SecPara。此时服务端也存有了Client Random,Server Random,SecPara
  6. 5、客户端和服务端根据之前约定好的加密方法,利用这三个参数生成一个新的对称密钥,此密钥即为主密钥。
  7. 6、双方验证完主密钥的有效性后,后续的数据交互即用此密钥进行对称加密。
  8. 二、ECDHE密钥交换过程(利用DH原理,避免了预备主密钥的泄露,即使私钥泄露,攻击者也无法得到主密钥):
  9. 1、客户端准备一个Client Random随机数,并将此随机数和协议版本号以及支持的加密方式一起发给服务端。
  10. 2、服务端收到Client Random后,将服务端CA证书和服务端准备的Sever Random随机数、利用DH算法原理算出来的服务端DH参数一起发给客户端。
  11. 3、客户端校验服务端证书后并通过解密证书得到服务端的公钥,并根据DH算法原理得到客户端DH参数,将此参数利用服务端公钥加密后传给服务端,然后利用DH算法原理和服务端的DH参数得到预备主密钥
  12. 4、服务端得到客户端DH参数后,利用DH算法原理和客户端DH参数得到预备主密钥,按照DH原理,服务端算出的预备主密钥和客户端算出的预备主密钥是一致的,这样避免了预备主密钥的泄露。
  13. 5、再根据原先约定好的加密方式,利用Client Random,Server Random,预备主密钥三个参数生成一个新的密钥即为主密钥
  14. 6、双方验证完主密钥的有效性后,后续的数据交互即用此密钥进行对称加密。

3、https的通信过程


  1. 客户端发起HTTPS请求
  2. 用户在浏览器里输入一个https网址,然后连接到服务器的443端口;
  3. 服务端的配置
  4. 采用HTTPS协议的服务器必须要有一套数字证书,可以自己制作,也可以向组织申请。区别就是自己颁发的证书需要客户端验证通过,才可以继续访问,而使用受信任的公司申请的证书则不会弹出提示页面。这套证书其实就是一对公钥和私钥;
  5. 传送服务器的证书给客户端
  6. 证书里其实就是公钥,并且还包含了很多信息,如证书的颁发机构,过期时间等等;
  7. 客户端解析验证服务器证书
  8. 这部分工作是有客户端的TLS来完成的,首先会验证公钥是否有效,比如:颁发机构,过期时间等等,如果发现异常,则会弹出一个警告框,提示证书存在问题。如果证书没有问题,那么就生成一个随机值。然后用证书中公钥对该随机值进行非对称加密;
  9. 客户端将加密信息传送服务器
  10. 这部分传送的是用证书加密后的随机值,目的就是让服务端得到这个随机值,以后客户端和服务端的通信就可以通过这个随机值来进行加密解密了;
  11. 服务端解密信息
  12. 服务端将客户端发送过来的加密信息用服务器私钥解密后,得到了客户端传过来的随机值;
  13. 服务器加密信息并发送信息
  14. 服务器将数据利用随机值进行对称加密,再发送给客户端;
  15. 客户端接收并解密信息
  16. 客户端用之前生成的随机值解密服务段传过来的数据,于是获取了解密后的内容。

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

  1. cat /etc/passwd |awk -F":" '{print $1}'

linux作业--第七周的更多相关文章

  1. 20135302魏静静——linux课程第七周实验及总结

    linux课程第七周实验及总结 实验及学习总结 1. 编译链接的过程和ELF可执行文件格式(以hello为例) GNU编译系统编译源码: 首先,运行C预处理器(cpp),将.c文件翻译成.i文件——g ...

  2. Linux内核分析作业第七周

    一. 预处理.编译.链接 gcc hello.c -o hello. gcc编译源代码生成最终可执行的二进制程序,GCC后台隐含执行了四个阶段步骤. 预处理 → 编译 → 汇编 → 链接 预处理:编译 ...

  3. linux作业--第五周

    1.简述osi七层模型和TCP/IP五层模型 一.OSI参考模型 (1) OSI的来源 OSI(Open System Interconnect),即开放式系统互联. 一般都叫OSI参考模型,是ISO ...

  4. linux作业--第八周

    1.创建私有CA并进行证书申请. 配置文件存放路径 /etc/pki/tls/openssl.cnf [ CA_default ] dir = /etc/pki/CA # Where everythi ...

  5. linux作业--第三周

    1.统计出/etc/passwd文件中其默认shell为非/sbin/nologin的用户个数,并将用户都显示出来 [root@localhost ~]# cat /etc/passwd | grep ...

  6. Linux入门-第七周

    1.编写脚本实现传入进程PID,查看对应进程/proc下CPU.内存指标. #!/bin/bash read -p "Input PID Value: " pid #读取PID进程 ...

  7. linux作业--第十一周

    1. 导入hellodb.sql生成数据库 (1) 在students表中,查询年龄大于25岁,且为男性的同学的名字和年龄 (2) 以ClassID为分组依据,显示每组的平均年龄 (3) 显示第2题中 ...

  8. linux作业--第十周

    1.在阿里云服务器搭建openv-p-n(有条件的同学再做) 2.通过编译.二进制安装MySQL5.7 编译安装MySQL5.7 安装相关包 yum -y install libaio numactl ...

  9. linux作业--第六周

    1.编写脚本实现登陆远程主机.(使用expect和shell脚本两种形式). #expect方式 yum -y install expect vim remote_ssh.sh #!/usr/bin/ ...

随机推荐

  1. ABC222 部分简要题解

    G 这个问题不好直接做,考虑转化为一个好求的问题. 原问题等价于求最小的 \(x\) 使得(或判断无解): \[\begin{aligned} \frac{2}{9}(10 ^ x - 1) & ...

  2. Win10 提示凭证不工作问题

    感谢大佬:https://cloud.tencent.com/developer/article/1337081 在公司局域网远程自己计算机的时候,突然无法远程了,提示"您的凭据不工作 之前 ...

  3. Android 使用签名的好处【转】

    感谢大佬:https://zhidao.baidu.com/question/360127490062917572.html 平时我们的程序可以在模拟器上安装并运行,是因为在应用程序开发期间,由于是以 ...

  4. 【Android珍藏】推荐10个炫酷的开源库【转】

    感谢大佬:https://www.jianshu.com/p/d608f0228fd4 前言 技术群里面经常有人问到一些炫酷的UI效果实现方法,有时候我都是给一个相同或者相似效果的Github链接,有 ...

  5. JVM学习八-(复习)年轻代、老年代、永久代

    Java 中的堆是 JVM 所管理的最大的一块内存空间,主要用于存放各种类的实例对象,如下图所示: 在 Java 中,堆被划分成两个不同的区域:新生代 ( Young ).老年代 ( Old).新生代 ...

  6. UIView与核心动画对比?

    1.UIView和核心动画区别?        核心动画只能添加到CALayer        核心动画一切都是假象,并不会改变真实的值.             2.什么时候使用UIView的动画? ...

  7. Android中ActionBar和ToolBar添加返回箭头

    感谢大佬:https://blog.csdn.net/baidu_32682229/article/details/77927745 ActionBar添加返回箭头 //onCreate方法中 Act ...

  8. 简单实现UITableView索引功能(中英文首字母索引) (二) By HL

    简单实现UITableView索引功能(中英文首字母索引)(一) ByH罗 相关类: NSString+PinYing(获取中英文首字母)   参考上面链接 #import "ViewCon ...

  9. onclick="func()"和 onclick = "return func()"区别

    onclick="func()" 表示只会执行 func , 但是不会传回 func 中之回传值onclick = "return func()" 则是 执行 ...

  10. 解决"Uncaught (in promise) Error: Navigation cancelled from "/" to "/login" with a new navigation"报错处理

    Uncaught (in promise) Error: Navigation cancelled from "/" to "/login" with a ne ...