就业第七周作业
1、解决DOS攻击生产案例:根据web日志或者或者网络连接数,监控当某个IP 并发连接数或者短时内PV达到100,即调用防火墙命令封掉对应的IP,监控频 率每隔5分钟。防火墙命令为:iptables -A INPUT -s IP -j REJECT
[root@Rocky8-mini test]# cat deny_hosts.sh
#!/bin/bash
Link=100
Dir=~/nginx.access.log
awk '{print$1}' $Dir | sort | uniq -c | while read Link_Nums IPAddr;do
if [ $Link_Nums -ge $Link ]; then
iptables -A INPUT -s $IPAddr -j REJECT
echo "$Link_Nums $IPAddr" >> /tmp/reject.txt
fi
done
[root@Rocky8-mini test]# !cat
cat /tmp/reject.txt
100 113.140.48.156
2161 117.157.173.214
100 1.177.191.161
100 118.121.41.14
100 120.195.144.116
100 122.139.5.237
5498 122.51.38.20
953 211.159.177.120
100 218.201.62.71
100 222.218.17.189
219 58.87.87.99
2、描述密钥交换的过程
假设 A B 双方进行密钥交换
(1)首先A、B双方协商生成两个公开的整数 g 和 p(大素数)
(2)A 和 B 生成隐私数据 a 和 b,两个隐私数据都小于 p。A 通过 g^a%p 此公式的运算结果,发送给B;B 通过 g^b%p 此公式的运算结果,发送给A
(3)A [(g^b %p)^a]%p 和 B [(g^a %p)^b]%p 通过计算得到结果;从而得到相同的密钥
+-------------- A B -------------+
[root@centos7 ~]# g=32
[root@centos7 ~]# p=11
+-------------- A ---------------+
[root@centos7 ~]# a=5 A 的隐私数据
[root@centos7 ~]# echo 32^5%11 | bc # 计算公式 g^a%p
10
+--------------- B ---------------+
[root@centos7 ~]# b=8 B 的隐私数据
[root@centos7 ~]# echo 32^8%11 | bc # 计算公式 g^b%p
1
+-------------- A ----------------+
[root@centos7 ~]# echo 1^5%11 | bc # A 通过 B 上次传来的结果进行运算 [(g^b%p)^a]%p
1
+--------------- B ---------------+
[root@centos7 ~]# echo 10^8%11 | bc # B 通过 A 上次传来的结果进行运算 [(g^a%p)^b]%p
1
3、https的通信过程
(1)Client向Server发送HTTPS的连接请求
(2)Server端收到连接请求后,会向Client端回应Respond报文,报文中包含了服务器的证书(Server端的公钥信息,证书的相关信息)
(3)Client收到该证书后,会对该证书进行验证,如果有问题则提示证书存在问题的警告框。如果没有问题,那么就生成一个随机值,并用证书中的公钥对其进行加密,然后发送给Server端
(4)Server端收到这个加密后的随机值,用自己的私钥进行解密,之后Client端和Server端的通信依靠该随机值进行加密和解密。该对随机值类似于对称加密的密钥,此过程也就是安全的传送对称密钥。
(5)Client端和Server端数据的传输,用该随机值进行加密和解密,完成数据的交互。
4、使用awk以冒号分隔获取/etc/passwd文件第一列
[root@centos7 ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
www:x:1002:1002::/home/www:/bin/bash
[root@centos7 ~]# awk -F: '{print$1}' /etc/passwd
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
operator
games
ftp
nobody
systemd-network
dbus
polkitd
sshd
postfix
www
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」