我iptables
在 CentOS 6.x 机器上添加了一个 ipset,当机器重新启动时,此规则丢失。
我发现这个答案显示了如何让 Ubuntu 系统iptables
在重新启动后重新加载规则,但该目录在 CentOS 上不存在。
如何让这个 CentOS 机器在重启后加载防火墙规则?
注意:是的,我正在使用规则保存规则iptables save
并且正在保存文件。
这是里面的内容/etc/sysconfig/iptables
:
# Generated by iptables-save v1.4.7 on Mon Apr 8 09:52:59 2013
*filter
:INPUT ACCEPT [2713:308071]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [1649:1766437]
-A INPUT -p tcp -m multiport --dports 25,587,465,110,143,993,995 -m state --state INVALID,NEW,RELATED,ESTABLISHED -m set
--match-set blocking src -j DROP
COMMIT
# Completed on Mon Apr 8 09:52:59 2013
Run Code Online (Sandbox Code Playgroud)
命令显示-A INPUT
,但当我创建它时,我使用了 …
是否可以ipset(8)
在同一规则中设置一个 IPv4 和一个 IPv6 IP ( )?
我有几个规则分别依赖于一组 IPv4 地址和另一组 IPv6 地址,但在其他方面是相同的。
我应该补充一点,有一个功能ipset(8)
听起来很有希望,但结果却无法解决手头的问题:
list:set
The list:set type uses a simple list in which you can store set names.
[...]
Please note: by the ipset command you can add, delete and test the
setnames in a list:set type of set, and not the presence of a set's
member (such as an IP address).
Run Code Online (Sandbox Code Playgroud) 我正在尝试建立一个已成功登录系统的客户端的白名单,使用ipset
. 我有什么选择可以让条目老化,以便我以后可以根据它的年龄丢弃它?
有没有比下面概述的想法更好的方法?
我没有找到ipset
直接提供的任何东西,所以我试图确定这样的设施是否存在于ipset
/的范围内iptables
。
现在我想出的唯一想法是使用一个 cronjob,每 X 分钟或几小时交换一次列表。因此,举个例子,如果我在 20:00 和 20:59 之间的某个时间,我会有一个活动列表whitelist
,加上下一个小时的列表(比如 21:00 whistelist_21
)。现在连接的任何客户端都将被添加到活动whitelist
和下一小时(或给定时间段)的白名单中。然后在每个完整小时(或给定时间段)进行一次 cronjob - 例如在上述情况下的 21:00 - 将现有的替换为现有whitelist
的whitelist_21
并处理(现已重命名)whitelist
。例如:
ipset swap whitelist whitelist_21
ipset destroy whitelist_21
Run Code Online (Sandbox Code Playgroud) 在iptables-extensions(8)
该set
模块中描述并讨论了可以对 IP 的存在或不存在做出反应,或者更一般地说是对 IP 集的匹配。
但是,似乎没有一种方法可以使用iptables
规则即时将项目附加到 IP 集。
这个想法是,如果我使用该recent
模块,我可以暂时将某些不断尝试的 IP 列入黑名单并将它们添加到 IP 集中(这可能更快)。这意味着在这种情况下需要遍历的规则更少,并且据说与 IP 集匹配也更快。
connlimit
让我限制每个客户端/服务的连接数。我如何将这样的规则与最新版本的 Linux 内核和 netfilter 中可用的 IP 集结合起来?
我在 Ubuntu 服务器防火墙上使用 iptables 和 ipset。我想知道是否有一个命令可以将包含 ip 列表的文件导入到 ipset。现在,为了填充 ipset,我正在使用以下命令添加每个 ip:
ipset add manual-blacklist x.x.x.x
Run Code Online (Sandbox Code Playgroud)
如果我可以使用单个命令添加多个 ip,例如导入文件等,那将非常有帮助。
在命令下
for ip in `cat /home/paul/ips.txt`; do ipset add manual-blacklist $ip;done
Run Code Online (Sandbox Code Playgroud)
我得到这个回应
resolving to IPv4 address failed to parse 46.225.38.155
Run Code Online (Sandbox Code Playgroud)
对于 ips.txt 中的每个 ip
我不知道如何应用它。