kernel SECMARK(SELinux iptables) 配置

:SECMARK使用:iptables -t mangle -A OUTPUT -p tcp --dport 80 -j SECMARK --selctx root:object_r:unlabeled_t

SECMARK 使用支持 GNU / Linux IP 网络子系统的标准内核 NetFilter 框架。 NetFilter 服务自动检查所有传入和传出的数据包,并可以对接口、IP 地址(节点)和端口进行控制,并具有连接跟踪的附加优势。 SECMARK 安全扩展允许将安全上下文添加到数据包 (SECMARK) 或会话 (CONNSECMARK)。
NetFilter 框架使用 iptables(8) 中定义的标签检查和标记数据包,然后使用安全框架(例如 SELinux)来执行策略规则。因此 SECMARK 服务不是 SELinux 特定的,因为使用 LSM 基础设施的其他安全模块也可以实现相同的服务(例如 SMACK)。
虽然 iptables / NetFilter 的实现超出了本笔记本的范围,但有可用的教程 [1]。 SECMARK 处理图显示了基本结构,其工作流程如下:
一个称为“安全表”的表用于定义识别和“标记”数据包的参数,然后在数据包通过网络子系统时对其进行跟踪。这些“标记”称为 SECMARK 和 CONNSECMARK。
如果 SECMARK 与应用标签的安全表中的条目相匹配,则对数据包放置一个 SECMARK,然后该标签可用于对数据包实施策略。
CONNSECMARK 使用适当的标签“标记”会话[2] 中的所有数据包,然后可以使用该标签来执行策略。
基于OpenWRT平台linux4.4配置SECMARK.使用SECMARK主要是使用SECMARK 和 CONNSECMARK,因此我们需要配置这两个模块及相关的依赖即可,因为SECMARK是属于内核相关的配置,因此修改内核模块。内核配置文件中添加如下两条配置,在编译过程中报错再添加相应的依赖选项。

CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=y
CONFIG_NETFILTER_XT_TARGET_SECMARK=y

也可以通过make kernel_menuconfig命令选配:

 在编译过程中报错如下图所示可以选配或添加相关的配置项CONFIG_NFT_COMPAT=y

 这个多次往复编译中报错再添加相应的依赖选项,直到无错误成功编译。

最后我添加了一下几个配置项:

CONFIG_NF_TABLES=y
CONFIG_NF_CONNTRACK=y
CONFIG_NETFILTER_XTABLES=y
CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=y
CONFIG_NETFILTER_XT_TARGET_SECMARK=y
CONFIG_NETWORK_SECMARK=y
CONFIG_SECURITY_SELINUX_ENABLE_SECMARK_DEFAULT=y
CONFIG_NETFILTER_XTABLES=y
CONFIG_NFT_QUEUE=y
CONFIG_NFT_COMPAT=y
CONFIG_NF_TABLES_ARP=y
CONFIG_NF_TABLES_BRIDGE=y
CONFIG_NF_LOG_BRIDGE=y

编译成功后使用命令出现错误unknown option "--selctx",:解决方法:将iptables编译产生的libxt_SECMARK.so与libxt_CONNSECMARK.so拷贝到/usr/lib/iptables中运行就不会有错误产生。

 

 至此完成  SECMARK配置。:--selctx后面的安全上下文应该是已定义过的安全上下文。

参考:
datahacker - SECMARK Without SELinux

SECMARK and SELinux – Simplicity is a form of art...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值