在iptables-extensions(8)
描述了该set
模块,并讨论了可以对 IP 的存在或不存在或更一般地对 IP 集的匹配做出反应。
然而,似乎没有办法使用规则将项目动态附加到 IP 集iptables
。
这个想法是,如果我使用该recent
模块,我可以暂时将某些不断尝试的 IP 列入黑名单,并将它们添加到 IP 集中(这可能更快)。这意味着此类情况需要遍历的规则更少,并且据说与 IP 集的匹配速度也会更快。
答案1
事实证明是可能,使用SET
中描述的目标iptables-extensions(8)
。
SET
This module adds and/or deletes entries from IP sets which can be defined by ipset(8).
--add-set setname flag[,flag...]
add the address(es)/port(s) of the packet to the set
--del-set setname flag[,flag...]
delete the address(es)/port(s) of the packet from the set
where flag(s) are src and/or dst specifications and there can be no more
than six of them.
--timeout value
when adding an entry, the timeout value to use instead of the default one
from the set definition
--exist
when adding an entry if it already exists, reset the timeout value to
the specified one or to the default from the set definition
Use of -j SET requires that ipset kernel support is provided, which, for standard
kernels, is the case since Linux 2.6.39.
我没有找到它,因为我在找到模块描述后没有进一步搜索set
。
答案2
不,iptables/netfilter 无法操作 ipset 列表。
iptables 的匹配扩展set
是 ipset 列表的只读视图。这些列表只能通过命令进行操作ipset
。
完成您想要完成的任务的最佳方法是将 iptableslog
扩展与失败2禁止。
Iptables 将被配置为记录每次有人违反您的策略的时间,然后一旦他们违反了 X 次,fail2ban 就会将该主机添加到黑名单中。