黑帽联盟

标题: 使用iptables屏蔽某个国家ip段 [打印本页]

作者: yun    时间: 2017-2-3 23:04
标题: 使用iptables屏蔽某个国家ip段
有些网站要屏蔽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
复制代码





欢迎光临 黑帽联盟 (https://bbs.cnblackhat.com/) Powered by Discuz! X2.5