了解shell基本语法
执行 命令获取结果
cur_dateTime=`date +%Y-%m-%d,%H:%M:%S`
cur_dateTime=$(date +%Y-%m-%d,%H:%M:%S$
循环和判断
while和if
判断内容包含:$content =~ $connect
判断内容是否为空: -n $blackip
判断次数是否大于5:$trynum -gt 5
获取文件中的ip:ip=`echo $content |cut -d \[ -f 6|cut -d \: -f 1`
json字符串获取结果
查询连接ip是否为中国:curl http://whois.pconline.com.cn/ipJson.jsp?ip=$ip\&json=true
获取其中的proCode:proCode=`echo ${result//\"/} | sed 's/,/\n/g' | grep "proCode" | sed 's/:/\n/g' | sed '1d' | sed '/^"proCode/,$d'`
外国ip直接拦截
分析拦截思路:读日志
从.pid中获取进程号,判断进程是否存在
存在,推出当前进程
不存在,将进程号写进.pid文件,while死循环每五秒获取日志最后一行,判断是否包含连接
不包含,等五秒获取
包含的话,切隔获取ip,判断ip是否在黑白名单中,判断连接次数是否大于5,判断是否为国外ip
满足条件:丢入iptables
iptables -I INPUT -s $line -j DROP
iptables如何删除一条规则
-- 查找所有规则
iptables -L INPUT --line-numbers
-- 删除一条规则
iptables -D INPUT 11 (注意,这个11是行号,是iptables -L INPUT --line-numbers 所打印出来的行号)
更高级的:ipset
安装:yum install ipset
创建:ipset -N blacklist hash:net
查看:ipset list blacklist
增加:ipset add blacklist 1.1.1.1
删除:ipset del blacklist 1.1.1.1
清空:ipset flush blacklist
iptables设置:iptables -I INPUT -m set --match-set blacklist src -j DROP
在frp内网穿透后,防止暴力破解端口
标签:
随笔