Linux 平台上的代理执行
在 Linux 平台上,支持同时执行 IPv4 和 IPv6 策略。代理使用 iptables 或 ip6tables 和 ipset 来执行网络策略。在主机上启用代理后,默认情况下,它会控制和编程 iptables。如果启用了 IPv6 网络堆栈,则代理会使用 ip6tables 来控制 IPv6 防火墙。
Linux iptables 或 ip6tables
Linux 内核具有 iptables 和 ip6tables,用于设置、维护和检查 IPv4 和 IPv6 数据包过滤规则表。iptables 和 ip6tables 包含许多预定义的表。每个表都包含预定义的链,也可以包含用户定义的链。这些链包含规则集,而每个规则指定了数据包的匹配条件。预定义表包括 raw、mhole、filter 和 NAT。预定义链包括 INPUT、OUTPUT、FORWARD、PREROUTING 和 POSTROUTING。
Cisco Secure Workload 代理对包含允许或丢弃数据包的规则的过滤表进行编程。过滤器表由预定义链 INPUT、OUTPUT 和 FORWARD 组成。除此以外,代理还会添加自定义 TA 链,以便对来自控制器的策略进行分类和管理。这些 TA 链包含从策略派生的 Cisco Secure Workload 规则以及代理生成的规则。当代理收到与平台无关的规则时,它会将其解析并转换为 iptable、ip6table 或 ipset 规则,并将这些规则插入 TA 在过滤表中定义的链中。在对防火墙进行编程后,代理会监控防火墙是否有任何规则或策略偏差,如有,则会重新对防火墙进行编程。它会跟踪防火墙中编程的策略,并定期向控制器报告其统计信息。
以下是一个描述这种行为的示例:
独立于平台的网络策略消息中的典型策略包括:
source set id: “test-set-1”
destination set id: “test-set-2”
source ports: 20-30
destination ports: 40-50
ip protocol: TCP
action: ALLOW
. . .
set_id: “test-set-1”
ip_addr: 1.2.0.0
prefix_length: 16
address_family: IPv4
set_id: “test-set-2”
ip_addr: 3.4.0.0
prefix_length: 16
address_family: IPv4
代理会处理该策略和其他信息,并将其转换为特定平台的 ipset 和 iptables 规则:
ipset rule:
Name: ta_f7b05c30ffa338fc063081060bf3
Type: hash:net
Header: family inet hashsize 1024 maxelem 65536
Size in memory: 16784
References: 1
Members:
1.2.0.0/16
Name: ta_1b97bc50b3374829e11a3e020859
Type: hash:net
Header: family inet hashsize 1024 maxelem 65536
Size in memory: 16784
References: 1
Members:
3.4.0.0/16
iptables rule:
TA_INPUT -p tcp -m set --match-set ta_f7b05c30ffa338fc063081060bf3 src -m set --match-
˓→set ta_1b97bc50b3374829e11a3e020859 dst -m multiport --sports 20:30 -m multiport --
˓→dports 40:50 -j ACCEPT
警告
ipset 内核模块
当在代理配置文件中启用执行并禁用保留规则时,在 Linux 主机上运行的代理会确保 ipset 内核模块有足够大的 max_sets 配置。如需更改,代理会使用新的 max_sets 值来重新加载 ipset 内核模块。如果启用了保留规则,代理会检查当前 ipset 模块 max_sets 值,但不会进行任何更改。当前配置的 max_sets 值可在 cat /sys/module/ip_set/parameters/max_sets 中找到。
主机防火墙备份
首次在代理配置文件中启用执行时,Linux 主机上运行的代理会在控制主机防火墙之前将 ipset 和 ip[6]tables 的当前内容存储在 /opt/cisco/tetration/backup 中。
执行配置的连续禁用或启用转换不会生成备份。在卸载代理后不会删除该目录。

反馈