如何让 SECMARK 在 Ubuntu 18.04 或 centOS 7.7 上工作
How to get SECMARK work on Ubuntu 18.04 or centOS 7.7
我有一个关于 SECMARK 的问题,iptables.
中的包标签功能
我尝试基于 Paul Moore's guide(一个非常古老的 14 年前的博客)进行配置,但在 ubuntu 18.04 和 centOS 7.7 上都出现错误:
命令:iptables -t mangle -A INPUT -p tcp --src 192.168.0.16 --dport 22 -j SECMARK --selctx system_u:object_r:foo_ssh_packet_t:s0
Ubuntu: No chain/target/match by that name
centOS: invalid argument. Run 'dmesg' for more information
(P.S。我在 centOS 上 运行 dmesg 但一无所获)
我还尝试通过将“-t mangle”更改为“-t security”来配置“安全”table,我得到了相同的输出。
iptables -t security -A INPUT -p tcp --src 192.168.0.16 --dport 22 -j SECMARK --selctx system_u:object_r:foo_ssh_packet_t:s0
因为没有人知道答案,我自己也想出了办法,所以我想我最好留下一些东西来帮助别人。
原因No chain/target/match by that name
SECMARK和SELinux是高度耦合的,必须先定义SELinux上下文,然后才能在iptables/nftables规则中使用。
定义 SELinux 的方法是创建一个用户定义的 SELinux 规则集,也就是 .te
文件,然后编译并安装到您的机器上。之后,您的 iptables/nftables 可以正常执行上述命令。
OS类型与SECMARK的关系
Ubuntu 是当今最流行的 Linux 发行版之一,但注意到 Ubuntu 不要预安装 SELinux,并且 AppArmor 直到 2019 年 1 月才支持 SECMARK,因此如果您想在 Ubuntu 上使用 SECMARK,卸载 apparmor 并安装 SELinux 可能是值得的.
如果您想在系统之间使用 SECMARK,请注意您需要在两个系统上安装策略。
参考
SECMARK Support code(did not merge till today)
From the mailing list: [apparmor] Apparmor netfiter support?
我有一个关于 SECMARK 的问题,iptables.
中的包标签功能我尝试基于 Paul Moore's guide(一个非常古老的 14 年前的博客)进行配置,但在 ubuntu 18.04 和 centOS 7.7 上都出现错误:
命令:iptables -t mangle -A INPUT -p tcp --src 192.168.0.16 --dport 22 -j SECMARK --selctx system_u:object_r:foo_ssh_packet_t:s0
Ubuntu: No chain/target/match by that name
centOS: invalid argument. Run 'dmesg' for more information
(P.S。我在 centOS 上 运行 dmesg 但一无所获)
我还尝试通过将“-t mangle”更改为“-t security”来配置“安全”table,我得到了相同的输出。
iptables -t security -A INPUT -p tcp --src 192.168.0.16 --dport 22 -j SECMARK --selctx system_u:object_r:foo_ssh_packet_t:s0
因为没有人知道答案,我自己也想出了办法,所以我想我最好留下一些东西来帮助别人。
原因No chain/target/match by that name
SECMARK和SELinux是高度耦合的,必须先定义SELinux上下文,然后才能在iptables/nftables规则中使用。
定义 SELinux 的方法是创建一个用户定义的 SELinux 规则集,也就是 .te
文件,然后编译并安装到您的机器上。之后,您的 iptables/nftables 可以正常执行上述命令。
OS类型与SECMARK的关系
Ubuntu 是当今最流行的 Linux 发行版之一,但注意到 Ubuntu 不要预安装 SELinux,并且 AppArmor 直到 2019 年 1 月才支持 SECMARK,因此如果您想在 Ubuntu 上使用 SECMARK,卸载 apparmor 并安装 SELinux 可能是值得的.
如果您想在系统之间使用 SECMARK,请注意您需要在两个系统上安装策略。
参考
SECMARK Support code(did not merge till today)
From the mailing list: [apparmor] Apparmor netfiter support?