suricata 配置4(Multi Tenancy与Dropp
续接上文suricata 配置3(Global-Thresholds)
https://www.jianshu.com/p/11e829257abc
3. Multi Tenancy
(3.1) 介绍
Multi tenancy支持具有不同规则变量的不同规则集。然后可以将这些tenancy分配给vlan或接口(设备)
(3.2)YAML
在主要(“主”)YAML中suricata.yam,应该添加一个名为“multi-detect”的新部分.
设置:
enabled: :yes/no - >是多租户支持启用
default: yes/no- >正常检测配置是否为默认“退回”租户?
selector:direct(用于unix socket pcap处理,见下文),vlan或device
loaders:'加载器'线程数,用于启动时并行租户加载
tenants:租户名单
id:tenants ID
yaml:将yaml文件与租户特定设置分开
mappings:
vlan id或device
tenant id:与vlan id / device关联的租户

tenant-1.yaml, tenant-2.yaml, tenant-3.yaml 每个都包含部分配置:

(3.2.1)vlanid
将tenants 分配给vlan id.
vlan映射示例:

映射也可以通过unix插槽进行修改,如下所示。
注意:只有在启用“vlan.use-for-tracking”时才能使用。
(3.2.2)device
将租户分配给设备。可以将单个租户分配给设备。多个设备可以拥有相同的租户。
设备映射示例:

映射是静态的,无法通过unix套接字进行修改
注意:IPS目前不支持。
注意:支持取决于使用'livedev'API的捕获方法。目前这些是:pcap,AF_PACKET,PF_RING和Netmap。
(3.3) Per tenant settings
以下设置是每个租户:
default-rule-path
rule-files
classification-file
reference-config-file
threshold-file
address-vars
port-vars
(3.4)Unix 套接字
(3.4.1) Registration(注册)
register-tenant <id> <yaml>
示例:

unregister-tenant <id>
如:
unregister-tenant 2
unregister-tenant 1
(3.4.2) Unix套接字运行模式(pcap处理)
Unix Socket“pcap-file”命令可用于选择租户以检查pcap:

这会针对租户1运行traffic1.pcap,并且它会针对租户2登录到/ logs1 /,traffic2.pcap并登录到/ logs2 /等等。
(3.4.3)Live traffic mode(实时流量模式)
对于实时流量,目前仅支持基于vlan的多租户。
主yaml需要将选择器设置为“vlan”。
(3.4.4)Registration(注册)
租户可以映射到vlan id。
register-tenant-handler <tenant id> vlan <vlan id>
如:
register-tenant-handler 1 vlan 1000
unregister-tenant-handler <tenant id> vlan <vlan id>
如:
unregister-tenant-handler 4 vlan 1111
unregister-tenant-handler 1 vlan 1000
租户和租户处理程序的注册可以在正在运行的引擎上完成。
4.启动后删除权限(Dropping Privileges After Startup)
目前,在启动后删除Suricata的权限需要libcap-ng。对于libcap,请参阅功能请求号#276的状态 - Libcap支持删除权限。
大多数发行版都libcap-ng在其存储库中。
要下载当前版本的libcap-ng,另请参阅http://people.redhat.com/sgrubb/libcap-ng/ChangeLog
yun install libcap-ng
下载,配置,编译和安装Suricata以满足您的特定设置。请参阅安装。根据您的环境,您可能需要在配置步骤中添加-with-libpcap_ng-libraries和-with-libpcap_ng-includes选项。例如:
--with-libcap_ng-libraries=/usr/local/lib --with-libcap_ng-includes=/usr/local/include
现在,当您运行Suricata时,请在启动后使用-user和-group选项告诉它您希望它运行的用户和/或组。例如(这假定'suri'用户和组):
suricata -D -ieth0 --user=suri --group=suri
您还需要确保设置了用户/组权限,以便suricata仍然可以写入通常位于 /var/log/suricata中的日志文件。
mkdir -p /var/log/suricata
chown -R root:suri /var/log/suricata
chmod -R 775 /var/log/suricata