在frp内网穿透后,防止暴力破解端口

  1. 了解shell基本语法

    1. 执行 命令获取结果

      1. cur_dateTime=`date +%Y-%m-%d,%H:%M:%S`

      2. cur_dateTime=$(date +%Y-%m-%d,%H:%M:%S$

    2. 循环和判断

      1. while和if

      2. 判断内容包含:$content =~ $connect

      3. 判断内容是否为空: -n $blackip

      4. 判断次数是否大于5:$trynum -gt 5

    3. 获取文件中的ip:ip=`echo $content |cut -d \[ -f 6|cut -d \: -f 1`

    4. json字符串获取结果

      1. 查询连接ip是否为中国:curl http://whois.pconline.com.cn/ipJson.jsp?ip=$ip\&json=true

      2. 获取其中的proCode:proCode=`echo ${result//\"/} | sed 's/,/\n/g' | grep "proCode" | sed 's/:/\n/g' | sed '1d' | sed '/^"proCode/,$d'`

      3. 外国ip直接拦截

  2. 分析拦截思路:读日志

    1. 从.pid中获取进程号,判断进程是否存在

      1. 存在,推出当前进程

      2. 不存在,将进程号写进.pid文件,while死循环每五秒获取日志最后一行,判断是否包含连接

        1. 不包含,等五秒获取

        2. 包含的话,切隔获取ip,判断ip是否在黑白名单中,判断连接次数是否大于5,判断是否为国外ip

  3. 满足条件:丢入iptables

    1. iptables -I INPUT -s $line -j DROP

  4. iptables如何删除一条规则

    1.  -- 查找所有规则

      iptables -L INPUT --line-numbers

    2. -- 删除一条规则

      iptables -D INPUT 11 (注意,这个11是行号,是iptables -L INPUT --line-numbers 所打印出来的行号)

  5. 更高级的:ipset

    1. 安装:yum install ipset

    2. 创建:ipset -N blacklist  hash:net

    3. 查看:ipset list blacklist

    4. 增加:ipset add blacklist 1.1.1.1

    5. 删除:ipset del blacklist 1.1.1.1

    6. 清空:ipset flush blacklist

    7. iptables设置:iptables -I INPUT -m set --match-set blacklist src -j DROP

上一篇:
下一篇: