Snortを含む大量展開イメージを設定しています。各イメージが存在するネットワークアドレス範囲がわからないため、環境変数を使用してネットワーク範囲を保持し、snort.conf
ファイルでこの環境変数を使用してHOME_NET
を設定することを考えました。
しかし、それはすべてがバラバラになるところです。これはできますか?どうやって?基本的に、私は次のようなものを想定しています:
$ export SYS_HOME_NET=192.168.1.0/16
# snort.conf
ipvar HOME_NET %SYS_HOME_NET%
明らかに、これは機能しません。何か案は?
私はそれを少し違ったやり方でします。 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
)にして実行すると、正しいIP範囲で~/HOME_NET.conf
ファイルが更新されますbefore launching snort
ので、すべてが期待どおりに動作するはずです。
私が考えた方法の1つは、この変数を作成する外部.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
スクリプトで変更/置換します。