centos7 如何在 iptables 载入规则前先创建 ipset 列表?

2015-04-13 12:05:22 +08:00
 digimoon
iptables的规则写在/etc/sysconfig/iptables,重启系统后发现规则不能载入
翻了一下log发现是因为规则里面有用到ipset,但是ipset的列表重启后不能在iptables之前先建好导致载入失败
有什么比较好的解决方法吗?除了启动外希望systemctl restart iptables也能自动载入
4990 次点击
所在节点    问与答
6 条回复
icloudnet
2015-04-13 13:24:50 +08:00
这是6.5下操作,估摸7也差不多:
$ iptables-restore < /etc/iptables.firewall.rules
$ service iptables save
$ servce iptables restart
iptables -L

https://icloud.net/blog/120/the-most-important-iptables-rules-for-your-linux-server/
digimoon
2015-04-13 13:51:03 +08:00
@icloudnet 不是这个问题。
例如:
iptables -t nat -A TEST -m set --match-set whitelist dst -j RETURN
如果你不先用ipset创建whitelist的话这条命令就会报错,而启动系统的时候iptables会比ipset先导入这条规则
ryd994
2015-04-13 14:14:59 +08:00
可以试试Fedora的ipset-service包,反正是试验田里的东西,向来直接拿也没事,不行的话你还是可以解包参考配置怎么写
另外可以设为不自动启动,然后在rc.local里做好ipset后启动
rentaro
2015-04-13 14:21:19 +08:00
systemd 支持处理依赖关系,在 service 的配置文件中写明依赖
digimoon
2015-04-13 15:43:28 +08:00
@rentaro
能有详细教程么?
看了其他systemd的配置文件,知道用requires before after等来处理依赖和顺序,问题是没有ipset这么一个target或service,应该怎么添加一个让iptables来依赖?
ryd994
2015-04-14 08:01:49 +08:00
@digimoon 两个选择
prestart挂脚本
写一个service
文档看man就行:man systemd.service

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/183382

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX