10.4. 多租户¶
10.4.1. 介绍¶
多租户支持允许使用不同规则变量的不同规则集。然后可以将这些租户分配给VLAN或接口(设备)。
10.4.2. YAML¶
在主(“master”)yaml中,应添加一个名为“multi detect”的新部分suricata.yaml。
设置:
启用:是/否->是否启用多租户支持
默认:是/否->常规检测配置是否为默认的“回退”租户?
选择器:直接(对于Unix套接字PCAP处理,请参阅下面)、VLAN或设备
加载器:启动时并行租户加载的“加载器”线程数
租户:租户列表
ID:租户ID
yaml:使用租户特定的设置分离yaml文件
映射:
VLAN ID或设备
租户ID:要与VLAN ID/设备关联的租户
multi-detect:
enabled: yes
#selector: direct # direct or vlan
selector: vlan
loaders: 3
tenants:
- id: 1
yaml: tenant-1.yaml
- id: 2
yaml: tenant-2.yaml
- id: 3
yaml: tenant-3.yaml
mappings:
- vlan-id: 1000
tenant-id: 1
- vlan-id: 2000
tenant-id: 2
- vlan-id: 1112
tenant-id: 3
租户-1.yaml、租户-2.yaml、租户-3.yaml均包含部分配置:
# Set the default rule path here to search for the files.
# if not set, it will look at the current working dir
default-rule-path: /etc/suricata/rules
rule-files:
- rules1
# You can specify a threshold config file by setting "threshold-file"
# to the path of the threshold config file:
# threshold-file: /etc/suricata/threshold.config
classification-file: /etc/suricata/classification.config
reference-config-file: /etc/suricata/reference.config
# Holds variables that would be used by the engine.
vars:
# Holds the address group vars that would be passed in a Signature.
# These would be retrieved during the Signature address parsing stage.
address-groups:
HOME_NET: "[192.168.0.0/16,10.0.0.0/8,172.16.0.0/12]"
EXTERNAL_NET: "!$HOME_NET"
...
port-groups:
HTTP_PORTS: "80"
SHELLCODE_PORTS: "!80"
...
10.4.2.1. 弗拉尼德¶
将租户分配到VLAN ID。
VLAN映射示例:
mappings:
- vlan-id: 1000
tenant-id: 1
- vlan-id: 2000
tenant-id: 2
- vlan-id: 1112
tenant-id: 3
映射也可以在Unix套接字上修改,请参见下面的内容。
注意:只能在启用“vlan.use for tracking”时使用。
10.4.2.2. 装置¶
为设备分配租户。一个租户可以分配给一个设备。多个设备可以具有相同的租户。
设备映射示例:
mappings:
- device: ens5f0
tenant-id: 1
- device: ens5f1
tenant-id: 3
映射是静态的,不能在Unix套接字上修改。
注意:目前IP不支持。
注意:支持取决于使用“livedev”API的捕获方法。目前有:PCAP、AF U包、PF U环和Netmap。
10.4.3. 每个租户设置¶
每个租户都有以下设置:
默认规则路径
规则文件
分类文件
引用配置文件
阈值文件
地址变量
端口变量
10.4.4. Unix套接字¶
10.4.4.1. 登记处¶
注册租户
实例:
register-tenant 1 tenant-1.yaml
register-tenant 2 tenant-2.yaml
register-tenant 3 tenant-3.yaml
register-tenant 5 tenant-5.yaml
register-tenant 7 tenant-7.yaml
注销租户<id>
unregister-tenant 2
unregister-tenant 1
10.4.4.2. Unix套接字运行模式(PCAP处理)¶
unix socket“pcap file”命令可用于选择租户以检查pcap:
pcap-file traffic1.pcap /logs1/ 1
pcap-file traffic2.pcap /logs2/ 2
pcap-file traffic3.pcap /logs3/ 3
pcap-file traffic4.pcap /logs5/ 5
pcap-file traffic5.pcap /logs7/ 7
它针对租户1运行traffic1.pcap,并登录到/logs1/,针对租户2运行traffic2.pcap,然后登录到/logs2/等等。
10.4.4.3. 实时交通模式¶
对于当前的实时通信,仅支持基于VLAN的多租户。
主yaml需要将选择器设置为“vlan”。
10.4.4.4. 登记处¶
租户可以映射到VLAN ID。
注册租户处理程序<tenant id>vlan<vlan id>
register-tenant-handler 1 vlan 1000
注销租户处理程序<tenant id>vlan<vlan id>
unregister-tenant-handler 4 vlan 1111
unregister-tenant-handler 1 vlan 1000
租户和租户处理程序的注册可以在正在运行的引擎上完成。
10.4.5. EVE JSON输出¶
当配置了多租户支持并且检测引擎处于活动状态时,根据流报告的所有Eve类型也将报告相应的 tenant_id
用于与租户配置匹配的事件。