我正在使用Debian 8,我有ipset v6.23和iptables v1.4.21。我在rules.v4文件中放了一个带ipset的规则,然后用netfilter-persistent服务重启iptables。当我重新启动时,iptables列表为空。 但是,如果在文件中我没有使用ipset规则,重启后iptables列表是正确的。
任何人都可以帮助我吗?
pd:有问题的规则,
SELECT * FROM [TABLE 1] t1
LEFT JOIN [TABLE 2] t2
ON t1.[Cost Center] = t2.[Cost Center]
WHERE t1.Category = 'bleh'
当我在重启后执行netfilter-persistent状态时出现下一个错误:
iptables -A OUTPUT -p icmp --icmp-type echo-request -m set --match-set test dst -j DROP
答案 0 :(得分:0)
netfilter-persistent不保存ipset系统中的值。我不认为有正式的debian方法来保存
我建议您放弃使用netfilter-persistent并手动执行配置。
我在/ etc / network / interfaces
中进行设置compile ('com.firebaseui:firebase-ui:0.6.0') {
exclude group: 'com.android.support'
exclude group: 'com.google.firebase'
exclude group: 'com.google.android.gms'
}
/ var / lib / iptables / default是使用iptables-save命令转储我的iptables设置。
你需要" up ipset create test hash:ip"
如果您在网络上拥有它,您也需要为IPv6做同样的事情。
答案 1 :(得分:0)
netfilter-persistent
不保存和恢复 ipsets 并且不理解它们,因此在由 test
调用的 iptables-restore
命令期间缺少名为 netfilter-persistent
的 ipset 集。文件 rules.v4
中的 ipset 规则对于 iptables-restore 命令来说只是垃圾。
我不知道任何处理这种情况的 Debian 软件包。
您可以手动为 ipsets 安装 netfilter-persistent 插件。
下载:
在 Debian 上将文件 10-ipset
复制到 /usr/share/netfilter-persistent/plugins.d/
并使其可执行 (# chmod +x 10-ipset
)。
您的 ipset 规则将进入 /etc/ipset/rules
(对于 dungdm93 的插件)或 /etc/iptables/rules.ipset
(对于 freeyoung 的版本)。
您当然可以在没有插件的情况下自行保存和恢复 ipset 规则,但是……您知道:-)
保存 ipset 规则(包括 set create 命令)# ipset save >/etc/iptables/rules.ipset
。
编辑 /etc/network/interfaces
文件:
auto eth0
iface eth0 inet static
address …
netmask …
gateway …
…
pre-up ipset restore </etc/iptables/rules.ipset
这应该有效。但它不会在重启时保存您的 ipset 规则。