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