linux学习分享(第七周)

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

~]# cat monitor_pv.sh
#!/bin/bash
[ -f /tmp/tmp.txt  ] && rm -f /tmp/tmp.txt || touch /tmp/tmp.txt
while true
  do
    awk ‘{a[$1]++}END{for (i in a) if(a[i]>100) print i,a[i]}‘ /var/log/httpd/access_log >> /tmp/tmp.txt
    while read line
      do
        ip=`echo $line |awk ‘{ print $1 }‘`
        if [ `iptables -nvL |grep "$ip"|wc -l` -gt 0 ];then
             continue
        fi
        iptables -A INPUT -s $ip -j REJECT
        echo "$ip is dropped" >> /tmp/droplist.txt
      done < /tmp/tmp.txt
   sleep 300
  done

2、描述密钥交换的过程

1、公钥加密实现:发送方用接收方的公钥加密自己的密钥,接收方用自己的私钥解密得到发送方的密钥,逆过来亦然,从而实现密钥交换。
2、使用DH算法:前提发送方和接受方协商使用同一个大素数P和生成数g,各自产生的随机数X和Y。发送方将g的X次方mod P产生的数值发送给接收方,接受方将g的Y次方mod P产生的数值发送给发送方,发送方再对接收的结果做X次方运算,接受方对接收的结果做Y次方运算,最终密码形成,密钥交换完成。

3、https的通信过程

1、客户端发起HTTPS请求
  用户在浏览器输入一个HTTPS网址,然后连接到服务器的443端口
2、生成服务器端证书
自签名或者向CA机构申请
3、发送服务器证书给客户端
4、客户端解析验证服务端证书
由客户端TLS完成,首先验证公钥是否有效。如果异常,则提示证书存在问题。如果没问题,则生成随机值,然后用证书中的公钥对该随机值进行非对称加密
5、客户端将加密信息发送服务器
6、服务端解密信息
服务端用私钥解密客户端发送过来的加密信息,获取随机值。
7、服务端加密信息并发送信息
服务器将数据利用随机值进行对称加密,再发送到客户端
8、客户端接收并解密信息
客户端使用生成的随机值解密服务端传送过来的数据,获取加密数据内容

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

 ~]# 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
saslauth
apache

linux学习分享(第七周)

上一篇:linux:ubuntu21.04安装maven(maven 3.8.2)


下一篇:linux系统编程——文件IO——分散聚集IO