首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Docker持久化iptables :使用if-preup.d多次还原规则

Docker持久化iptables :使用if-preup.d多次还原规则
EN

Server Fault用户
提问于 2018-11-07 12:17:26
回答 1查看 5.9K关注 0票数 3

附加上下文(可能被跳过)

我正在尝试在我的系统上设置psad,这需要向iptables iptables -A INPUT -j LOG添加一个规则。当然,这个规则在重新启动时会被刷新,所以我研究了使它持久的方法(其中有很多)。

虽然iptables-persistent包似乎是最方便的解决方案,但我不能使用它,因为它与在系统上运行的对接守护进程发生冲突,因为iptables-persistent只是运行iptables-restore < /etc/iptables/rules.v4而没有-n标志,这可能会破坏对接-守护进程对iptables的任何更改。

实际问题

因此,我不想完全禁用docker守护进程中的自动iptable规则,因为它只会造成巨大的维护麻烦,所以我只是添加了一个脚本。

代码语言:javascript
复制
#!/bin/bash
iptables-restore -n < /etc/network/iptables.rules

使用/etc/network/if-pre-up.dchmod +x保存配置,而不使用iptables-save > /etc/network/iptables.rules的对接规则。

然后文件iptables.rules

代码语言:javascript
复制
-P INPUT ACCEPT
-P FORWARD DROP
-P OUTPUT ACCEPT
-A INPUT -j LOG

但是当我重新启动系统时,我会三次看到规则-A INPUT -j LOG。我目前的猜测是,这可能是因为/etc/network/firewall多次被执行(因为有多个接口??)。

我如何解决这个问题?请注意,rc.local是不推荐的,而不是用于此目的的,因为在重新启动iptables服务时不会运行它。

EN

回答 1

Server Fault用户

回答已采纳

发布于 2018-11-15 17:25:28

最后,我刚刚创建了一个systemd服务,它只运行一次脚本并从if-pre-up.d中删除它。

票数 2
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/938977

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档