使用系统环境变量进行 snort.conf HOME_NET 设置

使用系统环境变量进行 snort.conf HOME_NET 设置

我正在设置包含 snort 的大规模部署映像。由于我不知道每个映像将驻留在哪个网络地址范围,所以我考虑使用环境变量来保存网络范围,并在文件中使用此环境变量来snort.conf设置HOME_NET

但这就是一切崩溃的地方。这能做到吗?怎么做?本质上,我设想的是这样的:

$ export SYS_HOME_NET=192.168.1.0/16

# snort.conf
ipvar HOME_NET %SYS_HOME_NET%

显然,这是行不通的。有什么想法吗?

答案1

我会做些不同的事情。假设给出 IP 范围的命令是

echo ipvar HOME_NET "$(/sbin/ip route | awk '/eth0/ && ++i==2 { print $1 }')"

您可以编写一个小的包装脚本来启动snort

#!/usr/bin/env bash

echo ipvar HOME_NET "$(/sbin/ip route | awk '/eth0/ && ++i==2 { print $1 }')" > ~/HOME_NET.conf
snort

如果你将该文件另存为snort.sh,使其可执行(chmod a+x snort.sh)并运行它,它将~/HOME_NET.conf使用正确的 IP 范围更新文件启动snort,以便一切都能如您所期望的那样工作。

答案2

我刚想到的一个方法是创建一个.conf创建此变量的外部文件并将其包含在snort.conf如下文件中:

#snort.conf
#ipvar HOME_NET any
include ./HOME_NET.conf

然后,创建一个HOME_NET.conf如下所示的文件:

ipvar HOME_NET 192.168.1.0/16

并在启动或初始图像设置期间HOME_NET.conf使用脚本更改/替换内容。.sh

相关内容