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

服务端:环境准备

[root@centos8-0 ~]# dnf -y install httpd
[root@centos8-0 ~]# systemctl enable --now httpd
[root@centos8-0 ~]# cat >> /var/www/html/index.html <<EOF
> <html>
> <h1>
> Is Works.
> </h1>
> </html>
> EOF


客户端:环境准备

[root@centos6-0 ~]# rz -E
rz waiting to receive.
[root@centos6-0 ~]# ls flood_connect.c
flood_connect.c[root@centos6-0 ~]# rpm -q gcc
gcc-4.4.7-23.el6.x86_64
[root@centos6-0 ~]# gcc flood_connect.c -o flood

客户端发起DOS攻击

[root@centos6-0 ~]# ./flood 10.0.101.80
Starting flood connect attack on 10.0.101.80 port 80


此时在服务端查看主机连接数,显示有大量来自于10.0.101.60主机的连接

[root@centos8-0 ~]# ss -ant
State      Recv-Q Send-Q        Local Address:Port         Peer Address:Port Process
LISTEN     0      128                 0.0.0.0:22                0.0.0.0:*
ESTAB      0      0               10.0.101.80:22             10.0.101.1:49515
ESTAB      0      36              10.0.101.80:22             10.0.101.1:49510
LISTEN     129    128                       *:80                      *:*
LISTEN     0      128                    [::]:22                   [::]:*
ESTAB      0      0      [::ffff:10.0.101.80]:80   [::ffff:10.0.101.60]:50382
ESTAB      0      0      [::ffff:10.0.101.80]:80   [::ffff:10.0.101.60]:49440
SYN-RECV   0      0      [::ffff:10.0.101.80]:80   [::ffff:10.0.101.60]:49802
ESTAB      0      0      [::ffff:10.0.101.80]:80   [::ffff:10.0.101.60]:49982
ESTAB      0      0      [::ffff:10.0.101.80]:80   [::ffff:10.0.101.60]:49674
SYN-RECV   0      0      [::ffff:10.0.101.80]:80   [::ffff:10.0.101.60]:49924
ESTAB      0      0      [::ffff:10.0.101.80]:80   [::ffff:10.0.101.60]:49396
ESTAB      0      0      [::ffff:10.0.101.80]:80   [::ffff:10.0.101.60]:49506
ESTAB      0      0      [::ffff:10.0.101.80]:80   [::ffff:10.0.101.60]:50176
ESTAB      0      0      [::ffff:10.0.101.80]:80   [::ffff:10.0.101.60]:50366
SYN-RECV   0      0      [::ffff:10.0.101.80]:80   [::ffff:10.0.101.60]:49816
SYN-RECV   0      0      [::ffff:10.0.101.80]:80   [::ffff:10.0.101.60]:49860
ESTAB      0      0      [::ffff:10.0.101.80]:80   [::ffff:10.0.101.60]:50256
ESTAB      0      0      [::ffff:10.0.101.80]:80   [::ffff:10.0.101.60]:50416
... ...
[root@centos8-0 ~]# ss -ant | wc -l
679

编写脚本

[root@centos8-0 ~]# vim flood_connect_check.sh
#!/bin/bash
#
#********************************************************************
#Author:            liu
#Date:              2021-10-23
#FileName:           flood_connect_check.sh
#URL:               none
#Description:        The flood_connect_check script
#Copyright (C):     2021 All rights reserved
#********************************************************************ss -ant | awk '{print $5}' | grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}' | sort | uniq -c | while read COUNT IP;doif [ $COUNT -ge 100 ];theniptables -A INPUT -s $IP -j REJECTfi
done

脚本给执行权限

[root@centos8-0 ~]# chmod +x flood_connect_check.sh

编写任务计划

[root@centos8-0 ~]# crontab -e
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
*/5 * * * * /root/flood_connect_check.sh

隔五分钟后查看iptables状态

[root@centos8-0 ~]# iptables -vnL
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)pkts bytes target     prot opt in     out     source               destination         1940  119K REJECT     all  --  *      *       10.0.101.60          0.0.0.0/0            reject-with icmp-port-unreachableChain FORWARD (policy ACCEPT 0 packets, 0 bytes)pkts bytes target     prot opt in     out     source               destination         Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)pkts bytes target     prot opt in     out     source               destination

2、描述密钥交换的过程

对称加密
特性:
加密、解密使用同一个密钥,效率高
将原始数据分割成固定大小的块,逐个进加密
缺点:
密钥过多
密钥分发
数据来源无法确认
常用的加密算法:
DES:数据加密标准,56bit
3DES:加密3次DES
AES:高级的加密标准,128,192,256bit
Blowfish,Twofish
IDEA,RC6,CAST5
密钥传输过程:

  1. Alice通过密钥对数据进行加密,加密成密文之后传输给互联网另一方Bob;

  2. Bob收到加密的数据之后也使用相同的密钥对数据进行解密,得到原始数据;

非对称加密

非对称加密:密钥是成对出现的

​ 公钥(public key):公开给所有人,主要给别人加密使用

​ 私钥(private key):自个保存,必须保证私密性,用于自己加密签名

特点:

​ 用公钥加密数据,只能使用与之配对的私钥解密,反之亦然

功能:

​ 数据加密:适合加密较小的数据,如:加密对称密钥

​ 数字签名:主要用在让接收方确认发送方身份

缺点:

​ 密钥长,算法复杂

​ 加密解密效率低下

常见算法:

​ RSA:运行变长密钥的公共密钥算法,可实现加密和数字签名

​ DSA:数字签名算法,是一种标准数字签名标准

​ ECC:椭圆曲线密码编码学,比RSA加密算法使用更小的密钥,提供相当的或更高等级的安全

加密传输过程:(数据安全)

  1. Alias使用Bob的公钥对数据加密,生成密文发送给Bob;(接收方的公钥加密)

  2. Bob收到Alias发来的使用Bob的公钥加密的密文数据后,使用自己私钥对数据进行解密,得到原始数据;(接收方使用自己的私钥解密)

数字签名传输过程:(数据来源确认)

  1. Alias使用自己的私钥加密得到加密的数据;
  2. Bob使用Alias的公钥对加密的数据解密,确认来源是Alias发来的;

哈希Hash

哈希算法:也称为散列算法,将任意数据缩小成固定大小的“指纹”,称为digest,即摘要

特性:

​ 任意长度输入,固定长度输出

​ 若修改数据,指纹也会改变,且有雪崩效应,数据的微小改变,生成的指纹值变化非常大

​ 无法从指纹中重新生成数据,即不可逆,具有单向性

功能:

​ 数据完整性检查

常见的算法:

​ md5:128bit

​ sha1:160bit

​ sha224

​ sha256

​ sha384

​ sha512

常用工具:

​ md5sum | sha1sum [–check] file

​ openssl,gpg

​ rpm -V

传输过程:

综合加密和签名

方法一:

  1. 发送者使用Hash算法计算得出摘要,然后使用使用私钥作签名,得出结果附加数据,再使用接收者的公钥加密传输给接收者;
  2. 接收者首先拿自己的私钥解开,得到签名和数据,使用发送者的公钥解开数字签名,得到里面的摘要信息,然后使用相同的哈希算法对数据进行计算得出摘要信息和解开数字签名得到的摘要信息作比对,比对一致,说明数据未篡改,不一致,说明数据在传输过程中被篡改。

方法二:

  1. 发送者使用Hash算法计算得出hash摘要,然后使用使用私钥作数字签名,得出结果附加至数据后面,使用对称密钥加密数据和数字签名,用接收者的公钥加密对称密钥附加到数据后面传输给接收者;
  2. 接收者首先拿自己的私钥解开得到对称密钥,解开对称密钥,得到数字签名和数据,使用发送者的公钥解开数字签名得到hash摘要,然后使用相同的hash算法对数据计算得到hash摘要和解开的hash摘要比对,比对一致,说明数据未篡改,不一致,说明数据在传输过程中被篡改。

DH密钥交换

​ 由惠特菲尔德·迪菲(Bailey Whitfield Diffie)和马丁·赫尔曼(MartinEdward Hellman)在1976年发表

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

实现过程:

  1. 发送者和接收者协商成两个数字,g(公开的整数),p(大素数,(质数被1和自身整除))
  2. 发送者和接收者各生成隐私数据a,b(不公开),生成的隐私数据a,b必须小于p,
  3. 计算得出g^a%p,得出结果发送给接收者
  4. 接收者g^b%p,得出的结果发送给发送者
  5. 发送者收到g^b%p的结果后,通过计算[(g^b%p)^a]%p = g^ab%p,生成为密钥;
  6. 接收者收到g^a%p的结果后,通过计算[(g^a%p)^b]%p = g^ab%p,生成为密钥;

范例:

g=23
p=5A:a=6
g^a%p=23^6%5=4[(g^b%p)^a]%p=2^6%5=4B:b=15
g^b%p=23^15%p=2[(g^a%p)^b]%p=4^15%5=4

3、https的通信过程


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

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

[root@centos8-0 ~]# awk -F ":" '{print $1}' /etc/passwd
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
operator
games
ftp
nobody
dbus
systemd-coredump
systemd-resolve
tss
polkitd
unbound
sssd
sshd
liuxiaofu
tcpdump
postfix
chrony[root@centos8-0 ~]# awk -v FS=":" '{print $1}' /etc/passwd
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
operator
games
ftp
nobody
dbus
systemd-coredump
systemd-resolve
tss
polkitd
unbound
sssd
sshd
liuxiaofu
tcpdump
postfix
chrony

Week 7 Homework相关推荐

  1. nlp homework 03

    NLP Homework 03 --冯煜博 题目描述 (盒子和球模型)假设有3个盒子,每个盒子里装有红白两种颜色的球,盒子里的红白球有下表列出,初始状态分布. 解答 1. 给出HMM模型 \(\mu= ...

  2. HDU 5298 Solid Geometry Homework 暴力

    Solid Geometry Homework 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5298 Description Yellowstar ...

  3. HUST 1555 A Math Homework

    1555 - A Math Homework 时间限制:1秒 内存限制:128兆 338 次提交 131 次通过 题目描述 QKL is a poor and busy guy, and he was ...

  4. ACM Doing Homework again

    Ignatius刚刚从第30届ACM / ICPC回到学校.现在他有很多作业要做.每个老师给他一个截止作业的截止日期.如果Ignatius在截止日期之后进行了家庭作业,老师将减少他的最终考试成绩.现在 ...

  5. Codeforces Round #250 (Div. 2) A - The Child and Homework

    传送门Codeforces Round #250 (Div. 2) A - The Child and Homework 第一次做完之后交上去,过了例子.顺手就锁定了...然后一个小时之后就被HACK ...

  6. HDU 1789 Doing Homework again(馋)

    意甲冠军  参加大ACM竞争是非常回落乔布斯  每一个工作都有截止日期   未完成必要的期限结束的期限内扣除相应的积分   求点扣除的最低数量 把全部作业按扣分大小从大到小排序  然后就贪阿  能完毕 ...

  7. UVA12412 A Typical Homework (a.k.a Shi Xiong Bang Bang Mang)

    这个问题,使得人们仿佛又回到了字符界面的时代. 问题链接:UVA12412 A Typical Homework (a.k.a Shi Xiong Bang Bang Mang). 题意简述:学生成绩 ...

  8. Doing Homework HDU - 1074

    Doing Homework HDU - 1074 题意: 有n个任务,每个任务有一个截止时间,超过截止时间一天,要扣一个分. 求如何安排任务,使得扣的分数最少. (1<=n<=15) 题 ...

  9. 动态规划训练16 [Doing Homework HDU - 1074 ]

    Doing Homework HDU - 1074 这是一道状态压缩DP(从N <= 15就可以看出来). 我们定义二进制状态S代表的是目前已经安排好的任务 dp[S].val代表的是目前已经安 ...

  10. USTC 2011 homework list [现代软件工程 作业]

    这是现代软件工程课的作业列表 (每周更新), 作业分为: 个人项目 Individual Project: 一个人独立完成 结对项目 Pair Project: 一对同学用结对编程的方法完成 团队项目 ...

最新文章

  1. 类型数据合并去重 mysql_MySQL基础知识 数据类型和数据表管理
  2. 创建指向以下位置中的matlab脚本的符号链接_【分享吧】浅析软链接与硬链接
  3. 美轮美奂宇宙星空制作神器Spacescape
  4. 求不选修c语言课程的学生学号,数据库综合练习二.docx
  5. c语言溢出该怎么算,解决整数运算溢出方法——C语言
  6. c# 接收网络汉字乱码_50种网络故障及解决方法
  7. TQ210——按键(中断查询法)
  8. Java 数组转化成集合
  9. 初中计算机硬件家族教案,初一信息技术教案-探究计算机的硬件组成.docx
  10. PAT (Basic Level) Practise:1013. 数素数
  11. 私有云对企业来说有什么好处
  12. 调整Linux磁盘分区大小
  13. 如何快速将所有东西从旧的Intel Mac迁移到新的M1 MacBook
  14. Per-cpu 变量
  15. 模板方法模式----设计模式系列
  16. C#如何运行外部程序(打开可执行程序):ShellExcute和Process
  17. 面试问道 docker你用过啥命令
  18. 600度近视眼恢复方法_600度的近视眼,恢复视力要注意
  19. python中的wait和notify
  20. 【活动回顾】大咖分享:流量过后,在线教育的留存和发展

热门文章

  1. java 取结果集的最后三项,
  2. Can‘t connect to any repository: 的解决办法, 在Push代码,提交代码到代码仓库的时候,提示不能连接到该代码仓库
  3. java 地牢猎手,地牢猎手5新手必看速成攻略
  4. 安卓效率微商_微商猎手app下载-微商猎手下载 2.6 安卓版 - 河东软件园
  5. 你的知识需要管理PKM
  6. TiPLM---产品全生命周期管理系统
  7. 腾讯bugly升级注意事项
  8. 主流移动开发平台架构分析
  9. c语言ab43错误的是,ab测试大并发错误
  10. cx_Oracle报错“DPI-1047: Cannot locate a 64-bit Oracle Client library”