第七周作业
1、解决DOS攻击生产案例:根据web日志或者或者网络连接数,监控当某个IP 并发连接数或者短时内PV达到100,即调用防火墙命令封掉对应的IP,监控频 率每隔5分钟。防火墙命令为:iptables -A INPUT -s IP -j REJECT
#!/bin/bash
NUM=100
while true; do
ss -nt |grep -e ^[^State] | awk -F"[ :]+" '{print $4}' | sort | uniq -c | while read COUNT IP; do
if [[ $COUNT -gt $NUM ]]; then
iptables -A INPUT -s $IP -j REJECT
fi
done
done
2、描述密钥交换的过程
- 客户端先连上服务端
- 服务端生成一个随机数 s 作为自己的私钥,然后根据算法参数计算出公钥 S(算法参数通常是固定的)
- 服务端使用某种签名算法把“算法参数(模数p,基数g)和服务端公钥S”作为一个整体进行签名
- 服务端把“算法参数(模数p,基数g)、服务端公钥S、签名”发送给客户端
- 客户端生成一个随机数 c 作为自己的私钥,然后根据算法参数计算出公钥 C
- 客户端把 C 发送给服务端
- 客户端和服务端(根据上述 DH 算法)各自计算出 k 作为会话密钥
3、https的通信过程
HTTPS通信主要包括几个节点,发起请求、验证身份、协商秘钥、加密会话,具体流程如下(此例子只有客户端对服务端的单向验证):
1、客户端向服务端发起建立HTTPS请求。
2、服务器向客户端发送数字证书。
3、客户端验证数字证书,证书验证通过后客户端生成会话密钥(双向验证则此处客户端也会向服务器发送证书)。
4、服务器生成会话密钥(双向验证此处服务端也会对客户端的证书验证)。
5、客户端与服务端开始进行加密会话。
4、使用awk以冒号分隔获取/ettc/passwd文件第一列
awk -F: '{print $1}' /etc/passwd
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通