- A+
所属分类:Linux
说明: ipset是 iptables的扩展,它允许你创建匹配整个 IP地址集合的规则。可以快速的让我们屏蔽某个 IP段。这里分享个屏蔽指定国家访问的方法,有时候还可以有效的帮网站阻挡下攻击。
方法
首先需要得到国家 IP段,下载地址:http://www.ipdeny.com/ipblocks/。这里以我们国家为例。
1、安装ipset
1 2 3 4 5 |
[crayon-65c57567dc08e640529587 inline="true" class="hljs shell"]<span class="hljs-meta">#</span><span class="bash">Debian/Ubuntu系统</span> apt-get -y install ipset <span class="hljs-meta"> #</span><span class="bash">CentOS系统</span> yum -y install ipset |
[/crayon]
2、创建规则
1 2 3 4 5 6 |
[crayon-65c57567dc092984945522 inline="true" class="hljs bash"]<span class="hljs-comment">#创建一个名为cnip的规则</span> ipset -N cnip <span class="hljs-built_in">hash</span>:net <span class="hljs-comment">#下载国家IP段</span> wget -P . http://www.ipdeny.com/ipblocks/data/countries/cn.zone <span class="hljs-comment">#将IP段添加到cnip规则中</span> <span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> $(cat /root/cn.zone ); <span class="hljs-keyword">do</span> ipset -A cnip <span class="hljs-variable">$i</span>; <span class="hljs-keyword">done</span> |
[/crayon]
3、开始屏蔽
1 |
[crayon-65c57567dc096981540047 inline="true" class="hljs sql"]iptables -I INPUT -p tcp -m <span class="hljs-keyword">set</span> <span class="hljs-comment">--match-set cnip src -j DROP</span> |
[/crayon]
4、解除屏蔽
1 2 |
[crayon-65c57567dc09a747295594 inline="true" class="hljs cs"]<span class="hljs-meta">#-D为删除规则</span> iptables -D INPUT -p tcp -m <span class="hljs-keyword">set</span> --match-<span class="hljs-keyword">set</span> cnip src -j DROP |
[/crayon]
方法参考:Blocking attack Ips/ddos Ips from China