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