iptables结合ipset定时封禁大量IP

Z先森 2018-10-09 PM 2011℃ 0条
  • Linux使用iptables封IP,是常用的应对网络攻击的方法,但要封禁成千上万个IP,如果添加成千上万条规则,对机器性能影响较大,使用ipset能解决这个问题。
  • ipset基于linux内核,效率极高,对性能影响忽略不计

YUM安装ipset

yum install ipset -y

创建ipset库,以hash方式储存IP,超时3600秒释放

ipset create black_table hash:ip timeout 3600

设置iptables规则,拉黑来自ipset库的ip

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

将需要拉黑的IP添加进ipset black_table库

ipset add black_table 192.168.1.232

查看ipset black_table库内拉黑的IP

ipset list black_table

说明

如果创建集合是指定的存储内容包含 ip, 例如 hash:ip 或 hash:ip,port ,在添加条目时,可以填 IP 段,但是仍然是以单独一个个 IP 的方式来存。

ipset参数如下:

命令
这些选项明确地指定了执行的活动。只有一个命令可以在命令行中规定除非其他的命令在下面。对于所有的长版本命令和选项名称,必须使用足够大的空间以确保ipset可以把他们和其他的选项区分开。
-N, --创建 集合名称 类型 类型具体选项
创建一个用集合名称命名并且指定类型的集合。类型具体选项必须是系统规定的。
-X, --删除 [集合名称]
删除指定的集合,如果没有指定或者指定all就删除全部集合。在删除集合之前,所有基于集合的绑定和默认绑定都会被移除。
如果集合已经被使用,则什么都不做。
-F, --清空 [集合名称]
删除指定集合中的所有规则, 如果没有指定或者指定了all就清空所有的集合。绑定不会受到清空操作的影响。
-E, --重命名 旧集合名 新集合名
重命名集合,新集合名的标识必须是目前不存在。
-W, --交换 源集合名 目的集合名
交换两个集合的内容,或者说交换两个集合的名称。这两个集合必须是存在的而且是具有相同的类型才能交换。
-L, --列出 [集合名名称]
列出指定集合的规则和绑定,如果没有指定或者指定为all就列出所有的集合。-n选项,数字选项可以用来限定名称查找和生产数字输出,当-s ,分类选项已经使用,规则将分类排列(如果给出的集合类型支持这个选项)。
-S, --保存 [集合名称]
保存指定名称的集合,如果没有指定或者指定为all,则保持所有集合:指定恢复可以读取的标准输出格式。
-R, --复原
复原已保存的会话.已被保存的会话可以是标准输入提供的。
当产生一个会话文件的时候请注意支持的命令(创建集合,添加元素,绑定)必须遵循严格的规范:首先创建集合添加所有属于它的集合等等,最后你可以列出所有的绑定命令.此外,这是一个复原选项,所以复原的集合必须是不存在的。
-A, --添加 集合名称 IP
往集合中添加一个ip。
-D, --删除 集合名称IP
从集合中删除一个ip
-T, --测试 集合名称 IP
测试一个ip是不是在集合中,要是ip在集合中返回0,如果ip不在集合中则返回非0.
-T, --测试 集合名称 IP 绑定的目的集合
测试ip是否附属指定集合的绑定点。如果成功返回0,否则返回非0.关键字default可以用来测试集合的默认绑定。
-B, --绑定 集合名称 IP 绑定的目的集合
绑定集合里的ip和目的集合
-U, --解除绑定 集合名称 IP
删除集合中指定ip的绑定。
-H, --帮助 [设置类型]
找出指定设置类型的帮助信息。
在-B –U和-T命令,你可以使用默认的:default,去绑定,解除绑定或者测试默认绑定去代替ip.在-U命令中你可以使用默认的:all去删除绑定集合的所有元素。
其他选项
接下来的选项可以被指定
-b, --binding setname
这个选择为-B绑定选项指定值。这是一个强制性的命令. 你在-T中可以用来测试绑定。
-s, --分类
分类标准输出.当监听集合,规则列表分类的时候。
-n, --数字
数字输出。当监听集合,绑定,ip地址和端口好需要输出的时候使用数字格式. 默认的系统试着去显示这些信息用主机名,网络名和服务,这会引起dns查找。
-q, --安静
禁止在标准输出和标准错误上有认可输出但是ipset还是会返回可能的错误。
标签: iptables, ipset

如无特殊说明,本博所有文章均为博主原创。

评论啦~