Centos7 ipset命令使用

ipset介绍

  iptables是在linux内核里配置防火墙规则的用户空间工具,它实际上是netfilter框架的一部分。可能因为iptables是netfilter框架里最常见的部分,所以这个框架通常被称为iptables,iptables是linux从2.4版本引入的防火墙解决方案。ipset是iptables的扩展,它允许你创建匹配整个地址sets(地址集合) 的规则。而不像普通的iptables链是线性的存储和过滤,ip集合存储在带索引的数据结构中,这种结构即使集合比较大也可以进行高效的查找。除了一些常用的情况,比如阻止一些危险主机访问本机,从而减少系统资源占用或网络拥塞,ipset也具备一些新防火墙设计方法,并简化了配置。官网:http://ipset.netfilter.org/

1.ipset安装(centos7.x默认已经安装ipset,无需再进行安装)

yum install ipset

2.创建一个ipset

ipset create xxx hash:ip (hash:ip指的是单个ip,xxx是ipset名称)

ipset默认可以存储65536个元素,使用maxelem指定数量

ipset create blacklist hash:net maxelem 1000000    #黑名单
ipset create whitelist hash:net maxelem 1000000    #白名单

查看当前服务器已创建的ipset

ipset list

3.加入一个名单ip

ipset add blacklist 10.20.30.xx

4.去除名单ip

ipset del blacklist 10.20.30.xx

5.创建防火墙规则

iptables -I INPUT -m set --match-set blacklist src -p tcp -j DROP
iptables -I INPUT -m set --match-set whitelist src -p tcp -j DROP
service iptables save

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

ipset的一个优势是集合可以动态的修改,即使ipset的iptables规则目前已经启动,新加的入ipset的ip也生效。

上一篇:Linux 命令笔记


下一篇:四表五链概念(IPTABLES)