| |
1 #!/bin/sh |
| |
2 ## |
| |
3 ## snort-update.sh -- Snort Rule Updating Utility |
| |
4 ## Copyright (c) 2005-2007 Ralf S. Engelschall <rse@engelschall.com> |
| |
5 ## |
| |
6 |
| |
7 # command line parameters |
| |
8 url="$1" |
| |
9 if [ ".$url" = . ]; then |
| |
10 echo "USAGE: $0 <url>" 1>&2 |
| |
11 exit 1 |
| |
12 fi |
| |
13 |
| |
14 # configuration |
| |
15 rulesdir="@l_prefix@/var/snort/rules" |
| |
16 tmpdir="@l_prefix@/var/snort/tmp" |
| |
17 oinkmaster="@l_prefix@/sbin/oinkmaster" |
| |
18 logfile="@l_prefix@/var/snort/oinkmaster.log" |
| |
19 statsfile="@l_prefix@/var/snort/snort.stats" |
| |
20 |
| |
21 # parameter post-processing |
| |
22 url=`echo "$url" |\ |
| |
23 sed -e 's;^oinkcode:\(.*\)$;http://www.snort.org/pub-bin/oinkmaster.cgi/\1/snortrules-snapshot-@V_rules@.tar.gz;' \ |
| |
24 -e 's;^\(/.*\)$;file://\1;'` |
| |
25 |
| |
26 # ruleset updating |
| |
27 ( echo "++ SNORT-UPDATE START (`date`)" |
| |
28 echo "++ Update URL: \"$url\"" |
| |
29 $oinkmaster -q -o $rulesdir -u $url |
| |
30 if [ ! -f $rulesdir/local.rules ]; then |
| |
31 touch $rulesdir/local.rules |
| |
32 fi |
| |
33 @l_prefix@/lib/openpkg/shtool subst \ |
| |
34 -e 's;\(var HOME_NET\) any;\1 $(HOME_NET:-any);' \ |
| |
35 -e 's;\(var EXTERNAL_NET\) any;\1 $(EXTERNAL_NET:-any);' \ |
| |
36 -e 's; \([^ /]*\.map\); $(RULE_PATH)/\1;' \ |
| |
37 -e 's; \([^ /]*\.config\); $(RULE_PATH)/\1;' \ |
| |
38 -e "s;\\(var RULE_PATH\\).*;\\1 \$(RULE_PATH:-$rulesdir);" \ |
| |
39 -e "s;/var/snort/snort\.stats;$statsfile;" \ |
| |
40 $rulesdir/snort.conf |
| |
41 echo "++ SNORT-UPDATE END (`date`)" |
| |
42 ) >>$logfile 2>&1 |
| |
43 |