web-dev-qa-db-fra.com

Utiliser la variable d'environnement système pour le paramètre snort.conf HOME_NET

Je configure une image de déploiement de masse qui inclut Snort. Comme je ne connais pas la plage d'adresses réseau sur laquelle chaque image résidera, j'ai pensé à utiliser une variable d'environnement pour contenir la plage de réseaux et utiliser cette variable d'environnement dans le fichier snort.conf pour définir HOME_NET.

Mais c'est là que tout s'effondre. Cela peut-il être fait? Comment? J'envisage essentiellement quelque chose comme:

$ export SYS_HOME_NET=192.168.1.0/16

# snort.conf
ipvar HOME_NET %SYS_HOME_NET%

De toute évidence, cela ne fonctionne pas. Des idées?

5
sadmicrowave

Je le ferais légèrement différemment. En supposant que la commande qui vous donne la plage IP est

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

Vous pourriez écrire un petit script qui lance snort:

#!/usr/bin/env bash

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

Si vous enregistrez ce fichier sous le nom snort.sh, le rendez exécutable (chmod a+x snort.sh) et l'exécutez, il mettra à jour le fichier ~/HOME_NET.conf avec la plage d'adresses IP correcte avant lancement snort donc tout devrait fonctionner comme prévu.

3
terdon

Une méthode à laquelle je viens de penser est de créer un fichier .conf externe qui crée cette variable et de l’inclure dans le snort.conf comme ceci:

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

Ensuite, créez un fichier HOME_NET.conf qui ressemble à ceci:

ipvar HOME_NET 192.168.1.0/16

et changez/remplacez le contenu de HOME_NET.conf par un script .sh lors du démarrage ou de la configuration initiale de l'image.

1
sadmicrowave