我有一个用例需要 iptables 能够将规则限制为组 ID (--gid-owner)。Ufw 的规则语法不支持此功能。
根据我的实验和在线阅读(例如手动将 UFW 规则添加到 user.rules ubuntu 16.04 后,UFW 规则消失) 似乎 ufw 会拒绝任何手动添加的 iptables 规则。也就是说,我可以编辑/etc/ufw/user.rules
和添加-A ufw-user-output ... --gid-owner ...
,但由于它没有以 magic ufw-correct 注释作为前缀(因为不存在这样的语法),因此它会被忽略和删除。
我是否必须选择 ufw 之一或者iptables 或者有没有办法可以两全其美?
答案1
请看这里: Ubuntu:如何添加 UFW 无法创建的 iptables 规则
我使用 UFW 配置文件将 netbios-ns 辅助程序添加到 iptables 中,原始表/etc/ufw/
。(摘自Arch Linux Samba- 源 iptables 命令
iptables -t raw -A OUTPUT -p udp -m udp --dport 137 -j CT --helper netbios-ns
)。
这样就可以使用 Thunar 作为示例来浏览 MS Windows 网络。
/etc/ufw/after.rules
我在文件的开头,也就是初始注释块之后添加了翻译后的语法,如下所示:
#
# rules.input-after
#
# Rules that should be run after the ufw command line added rules. Custom
# rules should be added to one of these chains:
# ufw-after-input
# ufw-after-output
# ufw-after-forward
#
# netbios helper function allow browsing windows network
*raw
-A OUTPUT -p udp -m udp --dport 137 -j CT --helper netbios-ns
COMMIT
# Don't delete these required lines, otherwise there will be errors
[...]
注意:此语法是 iptables-save 使用的语法。
然后重新启动 UFW。
请注意,我必须在文件的开头插入after.rules
,否则如果我在文件末尾附加,则一旦ufw
重新启动,它就会将相同的条目添加 3 次到原始表中的 OUTPUT 链中。
它让我避免使用/etc/ufw/user.rules
。也许这是一个你可以考虑的选择。
我希望这能有所帮助。