diff options
-rwxr-xr-x[-rw-r--r--] | config/snort/snort.inc | 214 | ||||
-rw-r--r-- | config/snort/snort.xml | 2 | ||||
-rwxr-xr-x | pkg_config.7.xml | 4 |
3 files changed, 175 insertions, 45 deletions
diff --git a/config/snort/snort.inc b/config/snort/snort.inc index 5d6a2942..6de4c8f3 100644..100755 --- a/config/snort/snort.inc +++ b/config/snort/snort.inc @@ -138,6 +138,8 @@ function sync_package_snort() /* start a snort process for each interface -gtm */ /* Note the sleep delay. Seems to help getting mult interfaces to start -gtm */ + /* snort start options are; config file, log file, demon, interface, packet flow, alert type, quiet */ + /* TODO; get snort to start under nologin shell */ foreach($snortInterfaces as $snortIf) { $start .= ";sleep 8;snort -c /usr/local/etc/snort/snort.conf -l /var/log/snort -D -i {$snortIf} -A fast -q"; @@ -346,6 +348,7 @@ function generate_snort_conf() { conf_mount_ro(); /* build snort configuration file */ + /* TODO; feed back from pfsense users to reduce false positives */ $snort_conf_text = <<<EOD # snort configuration file @@ -354,9 +357,21 @@ function generate_snort_conf() { # see /usr/local/pkg/snort.inc # for more information +######################### + # +# Define Local Network # + # +######################### + var HOME_NET {$home_net} var EXTERNAL_NET !\$HOME_NET +################### + # +# Define Servers # + # +################### + var DNS_SERVERS \$HOME_NET var SMTP_SERVERS \$HOME_NET var HTTP_SERVERS \$HOME_NET @@ -372,6 +387,12 @@ var WWW_SERVERS \$HOME_NET var AIM_SERVERS \ [64.12.24.0/23,64.12.28.0/23,64.12.161.0/24,64.12.163.0/24,64.12.200.0/24,205.188.3.0/24,205.188.5.0/24,205.188.7.0/24,205.188.9.0/24,205.188.153.0/24,205.188.179.0/24,205.188.248.0/24] +######################## + # +# Define Server Ports # + # +######################## + portvar HTTP_PORTS 80 portvar SHELLCODE_PORTS !80 portvar ORACLE_PORTS 1521 @@ -396,9 +417,21 @@ portvar TELNET_PORTS 23 portvar MAIL_PORTS [25,143,465,691] portvar SSL_PORTS [25,443,465,636,993,995] -var RULE_PATH /usr/local/etc/snort/rules +##################### + # +# Define Rule Paths # + # +##################### + +var RULE_PATH ./rules +# var PREPROC_RULE_PATH ./preproc_rules + +################################ + # +# Configure the snort decoder # + # +################################ -# Configure the snort decoder config checksum_mode: all config disable_decode_alerts config disable_tcpopt_experimental_alerts @@ -408,32 +441,58 @@ config disable_tcpopt_alerts config disable_ipopt_alerts config disable_decode_drops -#Configure the detection engine -#Use lower memory models +################################### + # +# Configure the detection engine # +# Use lower memory models # + # +################################### + config detection: search-method {$snort_performance} config detection: max_queue_events 5 config event_queue: max_queue 8 log 3 order_events content_length #Configure dynamic loaded libraries -dynamicpreprocessor file /usr/local/lib/snort/dynamicpreprocessor/libsf_dcerpc_preproc.so -dynamicpreprocessor file /usr/local/lib/snort/dynamicpreprocessor/libsf_dns_preproc.so -dynamicpreprocessor file /usr/local/lib/snort/dynamicpreprocessor/libsf_ftptelnet_preproc.so -dynamicpreprocessor file /usr/local/lib/snort/dynamicpreprocessor/libsf_smtp_preproc.so -dynamicpreprocessor file /usr/local/lib/snort/dynamicpreprocessor/libsf_ssh_preproc.so - +dynamicpreprocessor directory /usr/local/lib/snort/dynamicpreprocessor/ dynamicengine /usr/local/lib/snort/dynamicengine/libsf_engine.so -#Flow and stream +################### + # +# Flow and stream # + # +################### preprocessor frag3_global: max_frags 8192 -preprocessor frag3_engine: policy last detect_anomalies +preprocessor frag3_engine: policy windows +preprocessor frag3_engine: policy linux +preprocessor frag3_engine: policy first +preprocessor frag3_engine: policy bsd detect_anomalies + preprocessor stream5_global: max_tcp 8192, track_tcp yes, \ track_udp yes, track_icmp yes +preprocessor stream5_tcp: bind_to any, policy windows +preprocessor stream5_tcp: bind_to any, policy linux +preprocessor stream5_tcp: bind_to any, policy vista +preprocessor stream5_tcp: bind_to any, policy macos preprocessor stream5_tcp: policy BSD, ports both all, use_static_footprint_sizes preprocessor stream5_udp preprocessor stream5_icmp -#HTTP Inspect +########################## + # +# NEW # +# Performance Statistics # + # +########################## + +preprocessor perfmonitor: time 300 file /var/log/snort/snort.stats pktcnt 10000 + +################# + # +# HTTP Inspect # + # +################# + preprocessor http_inspect: global iis_unicode_map unicode.map 1252 preprocessor http_inspect_server: server default \ @@ -454,12 +513,28 @@ preprocessor http_inspect_server: server default \ iis_delimiter yes \ multi_slash no -#Other preprocs +################## + # +# Other preprocs # + # +################## + preprocessor rpc_decode: 111 32770 32771 32772 32773 32774 32775 32776 32777 32778 32779 preprocessor bo +##################### + # +# ftp preprocessor # + # +##################### + preprocessor ftp_telnet: global \ inspection_type stateless + +preprocessor ftp_telnet_protocol: telnet \ + normalize \ + ayt_attack_thresh 200 + preprocessor ftp_telnet_protocol: \ ftp server default \ def_max_param_len 100 \ @@ -469,12 +544,12 @@ preprocessor ftp_telnet_protocol: \ ftp_cmds { LIST NLST SITE SYST STAT HELP NOOP } \ ftp_cmds { AUTH ADAT PROT PBSZ CONF ENC } \ ftp_cmds { FEAT OPTS CEL CMD MACB } \ - ftp_cmds { MDTM REST SIZE MLST MLSD EPSV } \ + ftp_cmds { MDTM REST SIZE MLST MLSD } \ ftp_cmds { XPWD XCWD XCUP XMKD XRMD TEST CLNT } \ alt_max_param_len 0 { CDUP QUIT REIN PASV STOU ABOR PWD SYST NOOP } \ alt_max_param_len 100 { MDTM CEL XCWD SITE USER PASS REST DELE RMD SYST TEST STAT MACB EPSV CLNT LPRT } \ alt_max_param_len 200 { XMKD NLST ALLO STOU APPE RETR STOR CMD RNFR HELP } \ - alt_max_param_len 256 { RNTO CWD } \ + alt_max_param_len 256 { RNTO CWD } \ alt_max_param_len 400 { PORT } \ alt_max_param_len 512 { SIZE } \ chk_str_fmt { USER PASS ACCT CWD SDUP SMNT PORT TYPE STRU MODE } \ @@ -490,8 +565,17 @@ preprocessor ftp_telnet_protocol: \ cmd_validity TYPE < { char AE [ char NTC ] | char I | char L [ number ] } > \ cmd_validity MDTM < [ date nnnnnnnnnnnnnn[.n[n[n]]] ] string > \ cmd_validity PORT < host_port > + preprocessor ftp_telnet_protocol: ftp client default \ - max_resp_len 100 + max_resp_len 256 \ + bounce yes \ + telnet_cmds yes + +##################### + # +# SMTP preprocessor # + # +##################### preprocessor SMTP: \ ports { 25 465 691 } \ @@ -512,39 +596,85 @@ PIPELINING CHUNKING DATA DSN RSET QUIT ONEX QUEU STARTTLS TICK TIME TURNME VERB alt_max_command_line_len 246 { XAUTH XCIR XEXCH50 XGEN XLICENSE XQUEU XSTA XTRN XUSR } \ xlink2state { enable } +################ + # +# sf Portscan # + # +################ + +preprocessor sfportscan: scan_type { all } \ + proto { all } \ + memcap { 10000000 } \ + sense_level { medium } \ + ignore_scanners { \$HOME_NET } + +############################ + # +# OLD # +# preprocessor dcerpc: \ # +# autodetect \ # +# max_frag_size 3000 \ # +# memcap 100000 # + # +############################ + +############### + # +# NEW # +# DCE/RPC 2 # + # +############### + +preprocessor dcerpc2 +preprocessor dcerpc2_server: default + +#################### + # +# DNS preprocessor # + # +#################### + +preprocessor dns: \ + ports { 53 } \ + enable_rdata_overflow + +############################## + # +# NEW # +# Ignore SSL and Encryption # + # +############################## + +preprocessor ssl: noinspect_encrypted, trustservers + +##################### + # +# Snort Output Logs # + # +##################### - - -#sf Portscan -preprocessor sfportscan: proto { all } \ - scan_type { all } \ - sense_level { low } \ - ignore_scanners { \$HOME_NET } - -preprocessor dcerpc: \ - autodetect \ - max_frag_size 3000 \ - memcap 100000 - -preprocessor dns: ports { 53 } enable_rdata_overflow - -#Output plugins -#output database: alert output alert_syslog: LOG_AUTH LOG_ALERT LOG_CONS LOG_NDELAY LOG_PERROR LOG_PID - -output alert_unified: filename alert +output alert_unified: filename snort.alert, limit 128 -#Required files -include /usr/local/etc/snort/classification.config -include /usr/local/etc/snort/reference.config +################# + # +# Misc Includes # + # +################# -# Include any thresholding or suppression commands. See threshold.conf in the -# include threshold.conf +include /usr/local/etc/snort/reference.config +include /usr/local/etc/snort/classification.config +include /usr/local/etc/snort/threshold.conf # Snort user pass through configuration {$snort_config_pass_thru} -#Rulesets, all optional +################### + # +# Rules Selection # + # +################### + {$selected_rules_sections} EOD; diff --git a/config/snort/snort.xml b/config/snort/snort.xml index 22b8e874..e9a8c87d 100644 --- a/config/snort/snort.xml +++ b/config/snort/snort.xml @@ -46,7 +46,7 @@ <requirements>Describe your package requirements here</requirements> <faq>Currently there are no FAQ items provided.</faq> <name>Snort</name> - <version>2.8.3.2</version> + <version>2.8.4</version> <title>Services: Snort</title> <include_file>/usr/local/pkg/snort.inc</include_file> <menu> diff --git a/pkg_config.7.xml b/pkg_config.7.xml index a4982959..86a00c9a 100755 --- a/pkg_config.7.xml +++ b/pkg_config.7.xml @@ -187,9 +187,9 @@ <descr>Snort is a libpcap-based packet sniffer/logger which can be used as a lightweight network intrusion detection system. It features rules based logging and can perform content searching/matching in addition to being used to detect a variety of other attacks and probes, such as buffer overflows, stealth port scans, CGI attacks, SMB probes, and much more.</descr> <category>Security</category> <depends_on_package_base_url>http://files.pfsense.org/packages/7/All/</depends_on_package_base_url> - <depends_on_package>snort-2.8.2.1.tbz</depends_on_package> + <depends_on_package>snort-2.8.4.tbz</depends_on_package> <config_file>http://www.pfsense.com/packages/config/snort/snort.xml</config_file> - <version>2.8.2.6_2</version> + <version>2.8.4</version> <required_version>1.2</required_version> <status>Stable</status> <configurationfile>snort.xml</configurationfile> |