1、解决DOS攻击生产案例:根据web日志或者网络连接数,监控当某个IP 并发连接数或者短时内PV达到100,即调用防火墙命令封掉对应的IP,监控频 率每隔5分钟。防火墙命令为:iptables -A INPUT -s IP -j REJECT
[root@sakura ~]# cat /data/dnsde.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]}' /apps/http/logs/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
done
[root@sakura ~]# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
REJECT all -- 10.0.0.1 anywhere reject-with icmp-port-unreachable
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
[root@sakura ~]# crontab -l
*/5 * * * * /dnsde.sh
2、描述密钥交换的过程
加密方式有:对称加密,非对称加密,单向哈希函数加密,各有优势,现在的加密基本不会只使用其中一种,使用综合加密加签名的方式保证数据的安全和来源的确认
1、公钥加密实现:发送方用接收方的公钥加密自己的密钥,接收方用自己的私钥解密得到发送方的密钥,逆过来亦然,从而实现密钥交换。
2、使用DH算法:前提发送方和接受方协商使用同一个大素数P和生成数g,各自产生的随机数X和Y。发送方将g的X次方mod P产生的数值发送给接收方,接受方将g的Y次方mod P产生的数值发送给发送方,发送方再对接收的结果做X次方运算,接受方对接收的结果做Y次方运算,最终密码形成,密钥交换完成。
3、https的通信过程
1.用户端输入https地址,访问服务器443端口
服务器需要有证书,证书可以自制或者向组织申请,区别为自制证书需要客户端手动验证,组织发放是通过微软受信任的公司颁发的,不需要手动确认。这个证书其实就是一对公钥和私钥
2.服务器收到请求后将证书发给客户端,证书内包括公钥,颁发时间,过期时间等。
3.客户端解析验证证书,这个有客户端的TLS完成,验证有效性,包括颁发机构,颁发日期,过期日期等,如出现异常或有警告提示框显示具体问题,如果没问题,客户端会生成一个随机值,使用证书中的公钥对随机值进行非对称加密。
4.将这个加密好的随机数发送给服务器
5.服务器使用私钥进行解密,获得随机值。
6.服务器可以用这个随机值做为密钥进行对称加密,然后进行通信
4、使用awk以冒号分隔获取/ettc/passwd文件第一列
[root@sakura ~]# 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
chen
chrony
apache
mysql
rpc
rpcuser