Использовать системную переменную окружения для настройки snort.conf HOME_NET

Я настраиваю образ массового развертывания, который включает в себя фырканье. Поскольку я не знаю диапазон сетевых адресов, на котором будет находиться каждое изображение, я подумал об использовании переменной среды для хранения диапазона сети и использования этой переменной среды в snort.conf файл для установки HOME_NET,

Но вот где все рушится. Можно ли это сделать? Как? По сути, я представляю что-то вроде:

$ export SYS_HOME_NET=192.168.1.0/16

# snort.conf
ipvar HOME_NET %SYS_HOME_NET%

Очевидно, это не работает. Есть идеи?

2 ответа

Решение

Я бы сделал это немного по-другому. Предполагая, что команда, которая дает вам диапазон 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 так что все должно работать так, как вы ожидаете.

Один метод, о котором я только что подумал, это сделать внешний .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 скрипт во время загрузки или первоначальной настройки образа.

Другие вопросы по тегам