#!/usr/local/bin/php -f $date2ts or !$last_ruleset_download) { log_error("There is a new set of Snort rules posted. Downloading..."); if(!$oinkid) { log_error("Oinkid is not defined. We cannot automatically update the ruleset."); echo "Oinkid is not defined. We cannot automatically update the ruleset."; exit; } echo "Downloading snort rule updates..."; /* setup some variables */ $premium_subscriber = ""; /* Snort version */ $snort_version = "2.8"; /* Are we using the premium subscriber subscription? */ if($config['installedpackages']['snortadvanced']['config'][0]['subscriber']) { // http://www.snort.org/pub-bin/downloads.cgi/Download/sub_rules/snortrules-snapshot-CURRENT_s.tar.gz.md5 $premium_subscriber = "_s"; $snort_download_prefix = "http://www.snort.org/pub-bin/oinkmaster.cgi"; } else { // http://www.snort.org/pub-bin/downloads.cgi/Download/vrt_os/snortrules-snapshot-CURRENT.tar.gz.md5 $premium_subscriber = ""; $snort_download_prefix = "http://www.snort.org/pub-bin/oinkmaster.cgi"; } /* Set snort rules download filename */ $snort_filename = "snortrules-snapshot-{$snort_version}{$premium_subscriber}.tar.gz"; $snort_filename_md5 = "snortrules-snapshot-{$snort_version}{$premium_subscriber}.tar.gz.md5"; /* multi user system, request new filename and create directory */ $tmpfname = tempnam("/tmp", "snortRules"); exec("/bin/rm -rf {$tmpfname};/bin/mkdir -p {$tmpfname}"); /* download snort rules */ exec("fetch -q -o {$tmpfname}/{$snort_filename} $dl"); verify_downloaded_file($tmpfname . "/{$snort_filename}"); /* download snort rules md5 file */ $static_output = gettext("Downloading current snort rules md5... "); exec("fetch -q -o {$tmpfname}/{$snort_filename_md5} $dl_md5"); verify_downloaded_file($tmpfname . "/{$snort_filename_md5}"); /* verify downloaded rules signature */ verify_snort_rules_md5($tmpfname); /* extract rules */ extract_snort_rules_md5($tmpfname); $config['installedpackages']['snort']['last_ruleset_download'] = date("Y-m-d"); write_config(); stop_service("snort"); sleep(2); start_service("snort"); /* cleanup temporary directory */ exec("/bin/rm -rf {$tmpfname};"); echo "Rules are now up to date.\n"; log_error("Snort rules updated. New version: {$last_update_date}."); } else { echo "Rules are up to date.\n"; log_error("Snort rules are up to date. Not updating."); } ?>