使用iptables屏蔽某个国家ip段

post by rocdk890 / 2012-9-5 9:23 Wednesday linux技术
  有些网站要屏蔽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中:
#!/bin/bash
# Block traffic from a specific country
# written by blog.slogra.com

COUNTRY = "cn"
IPTABLES = /sbin/iptables
EGREP = /bin/egrep

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

resetrules() {
$IPTABLES -F
$IPTABLES -t nat -F
$IPTABLES -t mangle -F
$IPTABLES -X
}

resetrules

for c in $COUNTRY
do
        country_file = $c.zone

        IPS = $($EGREP -v "^#|^$" $country_file)
        for ip in $IPS
        do
           echo "blocking $ip"
           $IPTABLES -A INPUT -s $ip -j DROP
        done
done

exit 0

夜空- 本站版权
1、本站所有主题由该文章作者发表,该文章作者与夜空享有文章相关版权
2、其他单位或个人使用、转载或引用本文时必须同时征得该文章作者和夜空的同意
3、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
4、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
5、原文链接:blog.slogra.com/post-250.html

标签: centos iptables shell ip 屏蔽 ip段

  1. 2013-09-21 19:38
    @网球拍品牌:可以啊,但最好是跟本站pr值差不多的哦
  1. 2013-09-21 08:53
    博客知识很不错哈,请问可以交换链接吗?
  1. 2013-04-13 23:04
    @阿福:你可以只允许国内的ip,然后禁止其他的.
  1. gravatar 阿福
    2013-04-13 22:33
    如果想屏蔽除了国内IP以外的所有IP呢?怎么做- -难道一个ip库一个IP库的加过去?

评论: