Linux下使用ipset封大量IP

如果网站遭受大量ip攻击,显然使用iptables一个一个屏蔽不现实了,只好借助ipset进行批量封禁IP。

1、介绍:

    ipset是iptables的扩展,它允许你创建 匹配整个地址集合的规则。而不像普通的iptables链只能单IP匹配, ip集合存储在带索引的数据结构中,这种结构即时集合比较大也可以进行高效的查找,除了一些常用的情况,比如阻止一些危险主机访问本机,从而减少系统资源占用或网络拥塞,IPsets也具备一些新防火墙设计方法,并简化了配置

2、安装:

 yum install ipset

3、创建一个ipset

 ipset默认可以存储65536个元素,使用maxelem指定数量
 ipset create blacklist hash:net hashsize 4096 maxelem 1000000 #黑名单 
 ipset create whitelist hash:net hashsize 4096 maxelem 1000000 #白名单
 ipset  create  blacklist  hash:ip  hashsize  4096  maxelem  1000000 #黑名单 
 ipset  create  whitelist  hash:ip  hashsize  4096  maxelem  1000000 #白名单

    PS:hash:net指定了可以往集合里添加IP段或IP地址,hash:ip指定了可以往集合里添加IP地址。

4、在ipSet添加、删除IP

 ipset add blacklist 10.10.10.xx //添加IP
 ipset del blacklist 10.10.10.xx  //删除IP

5、创建防火墙规则,在iptables添加一条记录:

-A INPUT -m set --match-set blacklist src -j DROP

6、将ipset规则保存到文件中

ipset save blacklist -f blacklist.txt
ipset save whitelist -f whitelist.txt

7、删除ipset

ipset destroy blacklist
ipset destroy whitelist

8、导入ipset规则

ipset restore -f blacklist.txt
ipset restore -f whitelist.txt

 

posted @ 2020-09-18 16:38  Macoffee  阅读(456)  评论(0编辑  收藏  举报