zoukankan      html  css  js  c++  java
  • iptables recent模块--用于ssh brute force--芝麻开门访问

    recent模块参考:
    1)Iptables 之recent模块小结 https://www.cnblogs.com/kevingrace/p/10008487.html 非常重要,重点参考
    2)Iptables模块recent应用 https://www.haiyun.me/archives/iptables-recent.html
    3)使用 iptables 限制黑客猜密码续—深入 recent 模块 https://www.cnblogs.com/hiloves/archive/2011/07/19/2109899.html

    实际应用:
    1)Methods to Stop SSH Brute Force Attacks https://www.rackaid.com/blog/how-to-block-ssh-brute-force-attacks/?cf_chl_captcha_tk=f445a6bbb2281e5c161a88299b64f6c2bafdb315-1605575387-0-AS8m1wnIG3fY17s9piHEXjlMzuApra1Ya9KT6Qe-CEobC6d_EmV7FATITQ_6DJ-AhgI7dDS4pl98IMsWd_Rkrcp7wsiL7QntCvmMWhUr1kGJLqap9fJC8OuKcUBpvDA3W1dSyUm4IekxICFas7XAG9QBdbyUElJNEPVOQCHpYxw9lBN6YBp_LQORyOJZARUeniRX3vctSTAfuILO0z8b_wqo4zWIK9kF5T6ZGKylD6jDTx9Bp-knfwcwGH768TKmnojVy2sDRtydarpuDZNp65RBdlI9iKy7eQylqotAtkY0M-LpqYGy4cNGzADVUdR9NYpArhX6egGgeMKM_fVdFgSBkM9sA0rG-eSNp3wLE0zK3YyXi5TQ9yQllashBLI6006kNDP_75Hh9slhVni1xP4SztdkehfGIvsLgsR0SSj5JeUDOfnnf869mdQYMJkiAbYHRIfyuXytiZuyiIKIZDT4L3Cpp-qA4oMBjlEJxFXNPhzy9TVFi6zS0kqBkIyBSDJVHllTdlmBudLWDlszWzp2cHqeIkFQ3mcFBdXxKdGUHOuhgLDlfhmDHsKYBpK6hvSqmO2fuWanWfw17_Ryzg9CngI1EwrqwSf5lJpOucrVM-YfqTH1IzkIw_kYXKaY-QphA3xVkgnto2c27mTKjfY
    注意以上参考文章中前提应该需要默认INPUT链为ACCEPT
    2)实际操作:(这里操作的实际意义就是当需要隐藏ssh服务时,可以在这里加上“开门芝麻” 同时也防止了外部scanner的扫描)
    iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
    iptables -A INPUT -p icmp --icmp-type 8 -m length --length 78 -j LOG --log-prefix 'SSH_OPEN_KEY'
    iptables -A INPUT -p icmp --icmp-type 8 -m length --length 78 -m recent --name openssh --set --rsource -j ACCEPT
    iptables -A INPUT -p tcp --dport 22 --syn -m recent --name openssh --rcheck --seconds 60 --rsource -j ACCEPT
    iptables -P INPUT DROP
    icmp协议request包78 ,一般IP包头20字节,icmp包头8个字节
    ping -s 50 ip #linux主机的ip
    ping -l 50 ip #windows主机的ip
    观察linux下的/proc/net/xt_recent下的openssh(以上--name openssh所定义) 如下:

    参考:
    IP头部结构 https://www.cnblogs.com/jacklikedogs/articles/3848263.html

    ICMP协议及报文格式 https://blog.csdn.net/u011784495/article/details/71743516

    常见包头格式 https://www.cnblogs.com/michael-shan/archive/2012/04/04/6652621.html

    分析一个实际的例子:
    1)
    -A INPUT -i lo -j ACCEPT
    -A INPUT -p icmp -m icmp --icmp-type 8 -m length --length 78 -m recent --set --name prox --mask 255.255.255.255 --rsource -j ACCEPT
    -A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m multiport --dports 40022,8006 -m recent --rcheck --seconds 60 --name prox --mask 255.255.255.255 --rsource -j ACCEPT
    -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
    -A INPUT -s 172.168.186.200/32 -p tcp -m tcp --dport 40022 -j ACCEPT
    -A INPUT -s 10.1.18.0/24 -p tcp -m tcp --dport 40022 -j ACCEPT
    -A INPUT -s 10.1.18.253/32 -p tcp -m tcp --dport 40022 -j ACCEPT
    -A INPUT -s 100.72.139.0/24 -p tcp -m tcp --dport 40022 -j ACCEPT
    -A INPUT -s 100.73.73.0/24 -p tcp -m tcp --dport 40022 -j ACCEPT
    -A INPUT -s 112.35.36.2/32 -p tcp -m tcp --dport 40022 -j ACCEPT
    -A INPUT -s 111.192.82.1/32 -p tcp -m tcp --dport 40022 -j ACCEPT
    -A INPUT -p tcp -m tcp --dport 40022 -j DROP
    -A INPUT -s 219.223.176.0/20 -p tcp -m tcp --dport 40022 -j DROP
    -A INPUT -s 219.223.168.0/21 -p tcp -m tcp --dport 40022 -j DROP
    -A INPUT -s 202.112.39.2/32 -p tcp -m tcp --dport 40022 -j DROP
    -A INPUT -s 183.172.0.0/15 -p tcp -m tcp --dport 40022 -j DROP
    -A INPUT -s 166.111.0.0/16 -p tcp -m tcp --dport 40022 -j DROP
    -A INPUT -s 118.229.0.0/19 -p tcp -m tcp --dport 40022 -j DROP
    -A INPUT -s 101.6.0.0/16 -p tcp -m tcp --dport 40022 -j DROP
    -A INPUT -s 101.5.0.0/16 -p tcp -m tcp --dport 40022 -j DROP
    -A INPUT -s 59.66.0.0/16 -p tcp -m tcp --dport 40022 -j DROP
    -A INPUT -s 219.223.176.0/20 -p tcp -m tcp --dport 18006 -j DROP
    -A INPUT -s 219.223.168.0/21 -p tcp -m tcp --dport 18006 -j DROP
    -A INPUT -s 202.112.39.2/32 -p tcp -m tcp --dport 18006 -j DROP
    -A INPUT -s 183.172.0.0/15 -p tcp -m tcp --dport 18006 -j DROP
    -A INPUT -s 166.111.0.0/16 -p tcp -m tcp --dport 18006 -j DROP
    -A INPUT -s 118.229.0.0/19 -p tcp -m tcp --dport 18006 -j DROP
    -A INPUT -s 101.6.0.0/16 -p tcp -m tcp --dport 18006 -j DROP
    -A INPUT -s 101.5.0.0/16 -p tcp -m tcp --dport 18006 -j DROP
    -A INPUT -s 59.66.0.0/16 -p tcp -m tcp --dport 18006 -j DROP
    -A INPUT -s 219.223.176.0/20 -p tcp -m tcp --dport 8006 -j DROP
    -A INPUT -s 219.223.168.0/21 -p tcp -m tcp --dport 8006 -j DROP
    -A INPUT -s 202.112.39.2/32 -p tcp -m tcp --dport 8006 -j DROP
    -A INPUT -s 183.172.0.0/15 -p tcp -m tcp --dport 8006 -j DROP
    -A INPUT -s 166.111.0.0/16 -p tcp -m tcp --dport 8006 -j DROP
    -A INPUT -s 118.229.0.0/19 -p tcp -m tcp --dport 8006 -j DROP
    -A INPUT -s 101.6.0.0/16 -p tcp -m tcp --dport 8006 -j DROP
    -A INPUT -s 101.5.0.0/16 -p tcp -m tcp --dport 8006 -j DROP
    -A INPUT -s 59.66.0.0/16 -p tcp -m tcp --dport 8006 -j DROP
    -A INPUT -s 219.223.176.0/20 -p tcp -m tcp --dport 3128 -j DROP
    -A INPUT -s 219.223.168.0/21 -p tcp -m tcp --dport 3128 -j DROP
    -A INPUT -s 202.112.39.2/32 -p tcp -m tcp --dport 3128 -j DROP
    -A INPUT -s 183.172.0.0/15 -p tcp -m tcp --dport 3128 -j DROP
    -A INPUT -s 166.111.0.0/16 -p tcp -m tcp --dport 3128 -j DROP
    -A INPUT -s 118.229.0.0/19 -p tcp -m tcp --dport 3128 -j DROP
    -A INPUT -s 101.6.0.0/16 -p tcp -m tcp --dport 3128 -j DROP
    -A INPUT -s 101.5.0.0/16 -p tcp -m tcp --dport 3128 -j DROP
    -A INPUT -s 59.66.0.0/16 -p tcp -m tcp --dport 3128 -j DROP
    -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
    -A INPUT -p tcp -m tcp --dport 8006 -j DROP
    -A INPUT -j DROP
    分析下为什么可以访问8006服务,而不能访问40022???
    2)改正如下: 关键是-A INPUT -p tcp -m tcp --dport 40022 -j DROP 需要放在-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 之后
    *filter
    :INPUT ACCEPT [0:0]
    :FORWARD ACCEPT [203:84593]
    :OUTPUT ACCEPT [139:34771]
    -A INPUT -i lo -j ACCEPT
    -A INPUT -p icmp -m icmp --icmp-type 8 -m length --length 78 -m recent --set --name prox --mask 255.255.255.255 --rsource -j ACCEPT
    -A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m multiport --dports 40022,8006 -m recent --rcheck --seconds 60 --name prox --mask 255.255.255.255 --rsource -j ACCEPT
    -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
    -A INPUT -s 172.168.186.200/32 -p tcp -m tcp --dport 40022 -j ACCEPT
    -A INPUT -s 10.1.18.0/24 -p tcp -m tcp --dport 40022 -j ACCEPT
    -A INPUT -s 10.1.18.253/32 -p tcp -m tcp --dport 40022 -j ACCEPT
    -A INPUT -s 100.72.139.0/24 -p tcp -m tcp --dport 40022 -j ACCEPT
    -A INPUT -s 100.73.73.0/24 -p tcp -m tcp --dport 40022 -j ACCEPT
    -A INPUT -s 112.35.36.2/32 -p tcp -m tcp --dport 40022 -j ACCEPT
    -A INPUT -s 111.192.82.1/32 -p tcp -m tcp --dport 40022 -j ACCEPT
    -A INPUT -s 219.223.176.0/20 -p tcp -m tcp --dport 40022 -j DROP
    -A INPUT -s 219.223.168.0/21 -p tcp -m tcp --dport 40022 -j DROP
    -A INPUT -s 202.112.39.2/32 -p tcp -m tcp --dport 40022 -j DROP
    -A INPUT -s 183.172.0.0/15 -p tcp -m tcp --dport 40022 -j DROP
    -A INPUT -s 166.111.0.0/16 -p tcp -m tcp --dport 40022 -j DROP
    -A INPUT -s 118.229.0.0/19 -p tcp -m tcp --dport 40022 -j DROP
    -A INPUT -s 101.6.0.0/16 -p tcp -m tcp --dport 40022 -j DROP
    -A INPUT -s 101.5.0.0/16 -p tcp -m tcp --dport 40022 -j DROP
    -A INPUT -s 59.66.0.0/16 -p tcp -m tcp --dport 40022 -j DROP
    -A INPUT -s 219.223.176.0/20 -p tcp -m tcp --dport 18006 -j DROP
    -A INPUT -s 219.223.168.0/21 -p tcp -m tcp --dport 18006 -j DROP
    -A INPUT -s 202.112.39.2/32 -p tcp -m tcp --dport 18006 -j DROP
    -A INPUT -s 183.172.0.0/15 -p tcp -m tcp --dport 18006 -j DROP
    -A INPUT -s 166.111.0.0/16 -p tcp -m tcp --dport 18006 -j DROP
    -A INPUT -s 118.229.0.0/19 -p tcp -m tcp --dport 18006 -j DROP
    -A INPUT -s 101.6.0.0/16 -p tcp -m tcp --dport 18006 -j DROP
    -A INPUT -s 101.5.0.0/16 -p tcp -m tcp --dport 18006 -j DROP
    -A INPUT -s 59.66.0.0/16 -p tcp -m tcp --dport 18006 -j DROP
    -A INPUT -s 219.223.176.0/20 -p tcp -m tcp --dport 8006 -j DROP
    -A INPUT -s 219.223.168.0/21 -p tcp -m tcp --dport 8006 -j DROP
    -A INPUT -s 202.112.39.2/32 -p tcp -m tcp --dport 8006 -j DROP
    -A INPUT -s 183.172.0.0/15 -p tcp -m tcp --dport 8006 -j DROP
    -A INPUT -s 166.111.0.0/16 -p tcp -m tcp --dport 8006 -j DROP
    -A INPUT -s 118.229.0.0/19 -p tcp -m tcp --dport 8006 -j DROP
    -A INPUT -s 101.6.0.0/16 -p tcp -m tcp --dport 8006 -j DROP
    -A INPUT -s 101.5.0.0/16 -p tcp -m tcp --dport 8006 -j DROP
    -A INPUT -s 59.66.0.0/16 -p tcp -m tcp --dport 8006 -j DROP
    -A INPUT -s 219.223.176.0/20 -p tcp -m tcp --dport 3128 -j DROP
    -A INPUT -s 219.223.168.0/21 -p tcp -m tcp --dport 3128 -j DROP
    -A INPUT -s 202.112.39.2/32 -p tcp -m tcp --dport 3128 -j DROP
    -A INPUT -s 183.172.0.0/15 -p tcp -m tcp --dport 3128 -j DROP
    -A INPUT -s 166.111.0.0/16 -p tcp -m tcp --dport 3128 -j DROP
    -A INPUT -s 118.229.0.0/19 -p tcp -m tcp --dport 3128 -j DROP
    -A INPUT -s 101.6.0.0/16 -p tcp -m tcp --dport 3128 -j DROP
    -A INPUT -s 101.5.0.0/16 -p tcp -m tcp --dport 3128 -j DROP
    -A INPUT -s 59.66.0.0/16 -p tcp -m tcp --dport 3128 -j DROP
    -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
    -A INPUT -p tcp -m tcp --dport 8006 -j DROP
    -A INPUT -p tcp -m tcp --dport 40022 -j DROP
    -A INPUT -j DROP
    实际上上述的 -A INPUT -p tcp -m tcp --dport 8006 -j DROP
    -A INPUT -p tcp -m tcp --dport 40022 -j DROP 2条规则是多余的

  • 相关阅读:
    CCNA 6.9
    CCNA 6.5
    Google search
    CCNA 4.14 TP Correction
    CCNA 6.3
    CCNA 6.6
    有关 英语学习的一些网站
    法语学习笔记
    垃圾邮件分类(Scala 版本)
    SQL 面试经典问题 行列互相转化
  • 原文地址:https://www.cnblogs.com/weihua2020/p/13995319.html
Copyright © 2011-2022 走看看