linux作业--第七周
1、解决DOS攻击生产案例:根据web日志或者或者网络连接数,监控当某个IP 并发连接数或者短时内PV达到100,即调用防火墙命令封掉对应的IP,监控频率每隔5分钟。防火墙命令为:iptables -A INPUT -s IP -j REJECT
测试脚本如下:
/data/ddoscheck.sh
#!/bin/bash
#
/usr/sbin/ss -tn | awk -F " +|:" '/ESTAB/{ip[$(NF-2)]++}END{for(i in ip)if(ip[i]>10) print i}' > /data/ip.txt
while read IP;do
/usr/sbin/iptables -A INPUT -s $IP -j REJECT
echo "The $IP reject" >> /data/dos.txt
done < /data/ip.txt
[root@localhost ~]# cat /data/ip.txt
192.168.42.5
[root@localhost ~]# cat /data/dos.txt
The 192.168.42.5 reject
[root@localhost ~]# iptables -n -L | more
Chain INPUT (policy ACCEPT)
target prot opt source destination
REJECT all -- 192.168.42.5 0.0.0.0/0 reject-with icmp-port-unreachable
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
监控频率每隔5分钟
[root@localhost ~]# crontab -l
*/5 * * * * /data/ddoscheck.sh
[root@localhost ~]#
2、描述密钥交换的过程
一、RSA密钥交换过程(没有前向安全性,攻击者可以把前面交互的内容保存着,一旦拿到私钥,就可以得到主密钥):
1、客户端准备一个Client Random随机数,并将此随机数和协议版本号以及支持的加密方式一起发给服务端。
2、服务端收到Client Random后,将服务端CA证书和服务端准备的Sever Random随机数一起发给客户端。
3、客户端校验服务端证书后并通过解密证书得到服务端的公钥,同时客户端再生成一个新的46位的隐私参数SecPara,并用服务端公钥对这个隐私参数进行加密后,发给服务端,此时客户端已存有Client Random,Server Random,SecPara。
4、服务端对数据解密后,获得SecPara。此时服务端也存有了Client Random,Server Random,SecPara。
5、客户端和服务端根据之前约定好的加密方法,利用这三个参数生成一个新的对称密钥,此密钥即为主密钥。
6、双方验证完主密钥的有效性后,后续的数据交互即用此密钥进行对称加密。
二、ECDHE密钥交换过程(利用DH原理,避免了预备主密钥的泄露,即使私钥泄露,攻击者也无法得到主密钥):
1、客户端准备一个Client Random随机数,并将此随机数和协议版本号以及支持的加密方式一起发给服务端。
2、服务端收到Client Random后,将服务端CA证书和服务端准备的Sever Random随机数、利用DH算法原理算出来的服务端DH参数一起发给客户端。
3、客户端校验服务端证书后并通过解密证书得到服务端的公钥,并根据DH算法原理得到客户端DH参数,将此参数利用服务端公钥加密后传给服务端,然后利用DH算法原理和服务端的DH参数得到预备主密钥
4、服务端得到客户端DH参数后,利用DH算法原理和客户端DH参数得到预备主密钥,按照DH原理,服务端算出的预备主密钥和客户端算出的预备主密钥是一致的,这样避免了预备主密钥的泄露。
5、再根据原先约定好的加密方式,利用Client Random,Server Random,预备主密钥三个参数生成一个新的密钥即为主密钥
6、双方验证完主密钥的有效性后,后续的数据交互即用此密钥进行对称加密。
3、https的通信过程
客户端发起HTTPS请求
用户在浏览器里输入一个https网址,然后连接到服务器的443端口;
服务端的配置
采用HTTPS协议的服务器必须要有一套数字证书,可以自己制作,也可以向组织申请。区别就是自己颁发的证书需要客户端验证通过,才可以继续访问,而使用受信任的公司申请的证书则不会弹出提示页面。这套证书其实就是一对公钥和私钥;
传送服务器的证书给客户端
证书里其实就是公钥,并且还包含了很多信息,如证书的颁发机构,过期时间等等;
客户端解析验证服务器证书
这部分工作是有客户端的TLS来完成的,首先会验证公钥是否有效,比如:颁发机构,过期时间等等,如果发现异常,则会弹出一个警告框,提示证书存在问题。如果证书没有问题,那么就生成一个随机值。然后用证书中公钥对该随机值进行非对称加密;
客户端将加密信息传送服务器
这部分传送的是用证书加密后的随机值,目的就是让服务端得到这个随机值,以后客户端和服务端的通信就可以通过这个随机值来进行加密解密了;
服务端解密信息
服务端将客户端发送过来的加密信息用服务器私钥解密后,得到了客户端传过来的随机值;
服务器加密信息并发送信息
服务器将数据利用随机值进行对称加密,再发送给客户端;
客户端接收并解密信息
客户端用之前生成的随机值解密服务段传过来的数据,于是获取了解密后的内容。
4、使用awk以冒号分隔获取/etc/passwd文件第一列
cat /etc/passwd |awk -F":" '{print $1}'
linux作业--第七周的更多相关文章
- 20135302魏静静——linux课程第七周实验及总结
linux课程第七周实验及总结 实验及学习总结 1. 编译链接的过程和ELF可执行文件格式(以hello为例) GNU编译系统编译源码: 首先,运行C预处理器(cpp),将.c文件翻译成.i文件——g ...
- Linux内核分析作业第七周
一. 预处理.编译.链接 gcc hello.c -o hello. gcc编译源代码生成最终可执行的二进制程序,GCC后台隐含执行了四个阶段步骤. 预处理 → 编译 → 汇编 → 链接 预处理:编译 ...
- linux作业--第五周
1.简述osi七层模型和TCP/IP五层模型 一.OSI参考模型 (1) OSI的来源 OSI(Open System Interconnect),即开放式系统互联. 一般都叫OSI参考模型,是ISO ...
- linux作业--第八周
1.创建私有CA并进行证书申请. 配置文件存放路径 /etc/pki/tls/openssl.cnf [ CA_default ] dir = /etc/pki/CA # Where everythi ...
- linux作业--第三周
1.统计出/etc/passwd文件中其默认shell为非/sbin/nologin的用户个数,并将用户都显示出来 [root@localhost ~]# cat /etc/passwd | grep ...
- Linux入门-第七周
1.编写脚本实现传入进程PID,查看对应进程/proc下CPU.内存指标. #!/bin/bash read -p "Input PID Value: " pid #读取PID进程 ...
- linux作业--第十一周
1. 导入hellodb.sql生成数据库 (1) 在students表中,查询年龄大于25岁,且为男性的同学的名字和年龄 (2) 以ClassID为分组依据,显示每组的平均年龄 (3) 显示第2题中 ...
- linux作业--第十周
1.在阿里云服务器搭建openv-p-n(有条件的同学再做) 2.通过编译.二进制安装MySQL5.7 编译安装MySQL5.7 安装相关包 yum -y install libaio numactl ...
- linux作业--第六周
1.编写脚本实现登陆远程主机.(使用expect和shell脚本两种形式). #expect方式 yum -y install expect vim remote_ssh.sh #!/usr/bin/ ...
随机推荐
- 线程池与Callable接口
定义: 一个容纳多个线程的容器,其中的线程可以反复使用,省去了频繁创建线程对象的操作,无需反复创建线程而消耗过多资源. 使用方法 public void lockDemo() throws Inter ...
- Idea 中使用Lombok找不到其自动生成的方法
问题描述 在我的Idea已经安装Lombok插件还有已经导入Lombok jar包依赖的情况下,仍然找不到其自动生成的方法. 问题分析 从各方大佬那里得知,Lombok通过Pluggable Anno ...
- UITabBarController的基本使用
- 优化UITableViewCell高度计算的那些事 by --胡 xu
这篇总结你可以读到: UITableView高度计算和估算的机制 不同iOS系统在高度计算上的差异 iOS8 self-sizing cell UITableView+FDTemplateLayout ...
- 拔掉网线后, 原本的 TCP 连接还存在吗?
大家好,我是小林. 今天,聊一个有趣的问题:拔掉网线几秒,再插回去,原本的 TCP 连接还存在吗? 可能有的同学会说,网线都被拔掉了,那说明物理层被断开了,那在上层的传输层理应也会断开,所以原本的 T ...
- Solution -「JOISC 2020」「UOJ #509」迷路的猫
\(\mathcal{Decription}\) Link. 这是一道通信题. 给定一个 \(n\) 个点 \(m\) 条边的连通无向图与两个限制 \(A,B\). 程序 Anthon ...
- Dump Lsass内存转储新旧方法
之前看到一篇关于Lsass内存dump的文章,学习记录一下. lsass.exe(Local Security Authority Subsystem Service)进程空间中,存有着机器的 ...
- 后台运行程序-服务器、python
0前言 最近遇到一个需求,我有一个很小的python程序,需要一直在服务器器上跑,但是我不想一直开着浏览器或者Xshell 7,所以记录一下怎么解决的. 用到的指令是nohup 具体代码就两行 sou ...
- SpringBoot+ShardingSphere彻底解决生产环境数据库字段加解密问题
前言 互联网行业公司,对于数据库的敏感字段是一定要进行加密的,方案有很多,最直接的比如写个加解密的工具类,然后在每个业务逻辑中手动处理,在稍微有点规模的项目中这种方式显然是不现实的,不仅工作量大而 ...
- Mybatis的介绍和基本使用
巨人的肩膀 Mybatis的介绍和基本使用(1) (qq.com) Mybatis SQL映射文件详解(2) (qq.com)