黑帽联盟

 找回密码
 会员注册
查看: 1410|回复: 0
打印 上一主题 下一主题

[脚本语言] 使用iptables屏蔽某个国家ip段

[复制链接]
yun 黑帽联盟官方人员 

920

主题

37

听众

1364

积分

超级版主

Rank: 8Rank: 8

  • TA的每日心情
    奋斗
    2019-10-18 11:20
  • 签到天数: 678 天

    [LV.9]以坛为家II

    有些网站要屏蔽ip不让他们访问,做法很多,这里只介绍用iptables来屏蔽,web屏蔽部分请大家自己去搜,这里就不多说了.

      系统:centos 5.5
      需要的软件:iptables

    1.先下载ip地址文件
    我们先到IPdeny下载以国家代码编制好的ip地址列表,比如下载cn.zone:
    wget http://www.ipdeny.com/ipblocks/data/countries/cn.zone

    2.使用脚本来进行屏蔽
    现在有了国家的所有IP地址,要想屏蔽这些 IP 就很容易了,直接写个脚本逐行读取cn.zone文件并加入到iptables中:
    1. #!/bin/bash
    2. # Block traffic from a specific country
    3. # written by www.cnblackhat.com

    4. COUNTRY = "cn"
    5. IPTABLES = /sbin/iptables
    6. EGREP = /bin/egrep

    7. if [ "$(id -u)" != "0" ]; then
    8.    echo "you must be root" 1>&2
    9.    exit 1
    10. fi

    11. resetrules() {
    12. $IPTABLES -F
    13. $IPTABLES -t nat -F
    14. $IPTABLES -t mangle -F
    15. $IPTABLES -X
    16. }

    17. resetrules

    18. for c in $COUNTRY
    19. do
    20.         country_file = $c.zone

    21.         IPS = $($EGREP -v "^#|^$" $country_file)
    22.         for ip in $IPS
    23.         do
    24.            echo "blocking $ip"
    25.            $IPTABLES -A INPUT -s $ip -j DROP
    26.         done
    27. done

    28. exit 0
    复制代码
    帖子永久地址: 

    黑帽联盟 - 论坛版权1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
    2、本站所有主题由该帖子作者发表,该帖子作者与黑帽联盟享有帖子相关版权
    3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和黑帽联盟的同意
    4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
    5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
    6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
    7、黑帽联盟管理员和版主有权不事先通知发贴者而删除本文

    您需要登录后才可以回帖 登录 | 会员注册

    发布主题 !fastreply! 收藏帖子 返回列表 搜索
    回顶部