#!/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 */ $snort_filename = "snortrules-snapshot-CURRENT.tar.gz"; $snort_filename_md5 = "snortrules-snapshot-CURRENT.tar.gz.md5"; ini_set('user_agent','Mozilla/4.0 (compatible; MSIE 6.0)'); $dl = "http://www.snort.org/pub-bin/oinkmaster.cgi/{$oinkid}/{$snort_filename}"; $dl_md5 = "http://www.snort.org/pub-bin/oinkmaster.cgi/{$oinkid}/{$snort_filename_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."); } ?>