<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.Section1
        {page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=EN-US link=blue vlink=purple>

<div class=Section1>

<p class=MsoNormal>broadcom BCM5708C<o:p></o:p></p>

<p class=MsoNormal>Winsrv2k3 wsp2<o:p></o:p></p>

<p class=MsoNormal>Winpcap 401<o:p></o:p></p>

<p class=MsoNormal>Snort exec= -cc:\snort\etc\snort.conf –ld:\logs\snort –Kascii
–i2<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>im using a terminal service request alert to verify snort
functionality on my servers, however ive got a couple using the broadcom BCM5708C
netextreme 2 adapters that dont seem to report on a term server request,
however icmp request report just dandy. <br>
<br>
any ideas? i truly would like to iron this out, ive been pulling my hair our
for 3 weeks now.<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>Conf:<o:p></o:p></p>

<p class=MsoNormal>#--------------------------------------------------<o:p></o:p></p>

<p class=MsoNormal>#   http://www.snort.org    
Snort current Ruleset<o:p></o:p></p>

<p class=MsoNormal>#     Contact:
snort-sigs@lists.sourceforge.net<o:p></o:p></p>

<p class=MsoNormal>#--------------------------------------------------<o:p></o:p></p>

<p class=MsoNormal># $Id: snort.conf,v 1.183 2007/04/30 17:48:03 ssturges Exp $<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal>###################################################<o:p></o:p></p>

<p class=MsoNormal># This file contains a sample snort configuration. <o:p></o:p></p>

<p class=MsoNormal># You can take the following steps to create your own custom
configuration:<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal>#  1) Set the variables for your network<o:p></o:p></p>

<p class=MsoNormal>#  2) Configure dynamic loaded libraries<o:p></o:p></p>

<p class=MsoNormal>#  3) Configure preprocessors<o:p></o:p></p>

<p class=MsoNormal>#  4) Configure output plugins<o:p></o:p></p>

<p class=MsoNormal>#  5) Add any runtime config directives<o:p></o:p></p>

<p class=MsoNormal>#  6) Customize your rule set<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal>###################################################<o:p></o:p></p>

<p class=MsoNormal># Step #1: Set the network variables:<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># You must change the following variables to reflect your
local network. The<o:p></o:p></p>

<p class=MsoNormal># variable is currently setup for an RFC 1918 address space.<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># You can specify it explicitly as: <o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># var HOME_NET 10.1.1.0/24<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># or use global variable $<interfacename>_ADDRESS
which will be always<o:p></o:p></p>

<p class=MsoNormal># initialized to IP address and netmask of the network
interface which you run<o:p></o:p></p>

<p class=MsoNormal># snort at.  Under Windows, this must be specified as<o:p></o:p></p>

<p class=MsoNormal># $(<interfacename>_ADDRESS), such as:<o:p></o:p></p>

<p class=MsoNormal># $(\Device\Packet_{12345678-90AB-CDEF-1234567890AB}_ADDRESS)<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># var HOME_NET $eth0_ADDRESS<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># You can specify lists of IP addresses for HOME_NET<o:p></o:p></p>

<p class=MsoNormal># by separating the IPs with commas like this:<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># var HOME_NET [10.1.1.0/24,192.168.1.0/24]<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># MAKE SURE YOU DON'T PLACE ANY SPACES IN YOUR LIST!<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># or you can specify the variable to be any IP address<o:p></o:p></p>

<p class=MsoNormal># like this:<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>var HOME_NET 192.168.0.1/32<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal># Set up the external network addresses as well.  A
good start may be "any"<o:p></o:p></p>

<p class=MsoNormal>var EXTERNAL_NET !$HOME_NET<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal># Configure your server lists.  This allows snort to
only look for attacks to<o:p></o:p></p>

<p class=MsoNormal># systems that have a service up.  Why look for HTTP
attacks if you are not<o:p></o:p></p>

<p class=MsoNormal># running a web server?  This allows quick filtering
based on IP addresses<o:p></o:p></p>

<p class=MsoNormal># These configurations MUST follow the same configuration
scheme as defined<o:p></o:p></p>

<p class=MsoNormal># above for $HOME_NET.  <o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal># List of DNS servers on your network <o:p></o:p></p>

<p class=MsoNormal>var DNS_SERVERS $HOME_NET <o:p></o:p></p>

<p class=MsoNormal>#$HOME_NET<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal># List of SMTP servers on your network<o:p></o:p></p>

<p class=MsoNormal>var SMTP_SERVERS $HOME_NET<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal># List of web servers on your network<o:p></o:p></p>

<p class=MsoNormal>var HTTP_SERVERS $HOME_NET<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal># List of sql servers on your network <o:p></o:p></p>

<p class=MsoNormal>var SQL_SERVERS $HOME_NET<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal># List of telnet servers on your network<o:p></o:p></p>

<p class=MsoNormal>var TELNET_SERVERS $HOME_NET<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal># List of snmp servers on your network<o:p></o:p></p>

<p class=MsoNormal>var SNMP_SERVERS $HOME_NET<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal># Configure your service ports.  This allows snort to
look for attacks destined<o:p></o:p></p>

<p class=MsoNormal># to a specific application only on the ports that
application runs on.  For<o:p></o:p></p>

<p class=MsoNormal># example, if you run a web server on port 8081, set your
HTTP_PORTS variable<o:p></o:p></p>

<p class=MsoNormal># like this:<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># var HTTP_PORTS 8081<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># Port lists must either be continuous [eg 80:8080], or a
single port [eg 80].<o:p></o:p></p>

<p class=MsoNormal># We will adding support for a real list of ports in the
future.<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal># Ports you run web servers on<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># Please note:  [80,8080] does not work.<o:p></o:p></p>

<p class=MsoNormal># If you wish to define multiple HTTP ports, use the
following convention<o:p></o:p></p>

<p class=MsoNormal># when customizing your rule set (as part of Step #6
below).  This should<o:p></o:p></p>

<p class=MsoNormal># not be done here, as the rules files may depend on the
classifications<o:p></o:p></p>

<p class=MsoNormal># and/or references, which are included below.<o:p></o:p></p>

<p class=MsoNormal># <o:p></o:p></p>

<p class=MsoNormal>## var HTTP_PORTS 80 <o:p></o:p></p>

<p class=MsoNormal>## include somefile.rules <o:p></o:p></p>

<p class=MsoNormal>## var HTTP_PORTS 8080<o:p></o:p></p>

<p class=MsoNormal>## include somefile.rules <o:p></o:p></p>

<p class=MsoNormal>var HTTP_PORTS 80<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal># Ports you want to look for SHELLCODE on.<o:p></o:p></p>

<p class=MsoNormal>var SHELLCODE_PORTS !80<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal># Ports you do oracle attacks on<o:p></o:p></p>

<p class=MsoNormal>var ORACLE_PORTS 1521<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal># other variables<o:p></o:p></p>

<p class=MsoNormal># <o:p></o:p></p>

<p class=MsoNormal># AIM servers.  AOL has a habit of adding new AIM
servers, so instead of<o:p></o:p></p>

<p class=MsoNormal># modifying the signatures when they do, we add them to this
list of servers.<o:p></o:p></p>

<p class=MsoNormal>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]<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal># Path to your rules files (this can be a relative path)<o:p></o:p></p>

<p class=MsoNormal># Note for Windows users:  You are advised to make this
an absolute path,<o:p></o:p></p>

<p class=MsoNormal># such as:  c:\snort\rules<o:p></o:p></p>

<p class=MsoNormal>var RULE_PATH c:\snort\rules<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal># Configure the snort decoder<o:p></o:p></p>

<p class=MsoNormal># ============================<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># Snort's decoder will alert on lots of things such as
header<o:p></o:p></p>

<p class=MsoNormal># truncation or options of unusual length or infrequently
used tcp options<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># Stop generic decode events:<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># config disable_decode_alerts<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># Stop Alerts on experimental TCP options<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># config disable_tcpopt_experimental_alerts<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># Stop Alerts on obsolete TCP options<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># config disable_tcpopt_obsolete_alerts<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># Stop Alerts on T/TCP alerts<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># In snort 2.0.1 and above, this only alerts when a TCP
option is detected<o:p></o:p></p>

<p class=MsoNormal># that shows T/TCP being actively used on the network. 
If this is normal<o:p></o:p></p>

<p class=MsoNormal># behavior for your network, disable the next option.<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># config disable_tcpopt_ttcp_alerts<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># Stop Alerts on all other TCPOption type events:<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># config disable_tcpopt_alerts<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># Stop Alerts on invalid ip options<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># config disable_ipopt_alerts<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># Alert if value in length field (IP, TCP, UDP) is greater
than the<o:p></o:p></p>

<p class=MsoNormal># actual length of the captured portion of the packet that
the length<o:p></o:p></p>

<p class=MsoNormal># is supposed to represent:<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># config enable_decode_oversized_alerts<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># Same as above, but drop packet if in Inline mode -<o:p></o:p></p>

<p class=MsoNormal># enable_decode_oversized_alerts must be enabled for this to
work:<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># config enable_decode_oversized_drops<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal># Configure the detection engine<o:p></o:p></p>

<p class=MsoNormal># ===============================<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># Use a different pattern matcher in case you have a machine
with very limited<o:p></o:p></p>

<p class=MsoNormal># resources:<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal> config detection: search-method lowmem<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal># Configure Inline Resets<o:p></o:p></p>

<p class=MsoNormal># ========================<o:p></o:p></p>

<p class=MsoNormal># <o:p></o:p></p>

<p class=MsoNormal># If running an iptables firewall with snort in InlineMode()
we can now<o:p></o:p></p>

<p class=MsoNormal># perform resets via a physical device. We grab the indev
from iptables<o:p></o:p></p>

<p class=MsoNormal># and use this for the interface on which to send resets. This
config<o:p></o:p></p>

<p class=MsoNormal># option takes an argument for the src mac address you want
to use in the<o:p></o:p></p>

<p class=MsoNormal># reset packet.  This way the bridge can remain
stealthy. If the src mac<o:p></o:p></p>

<p class=MsoNormal># option is not set we use the mac address of the indev
device. If we<o:p></o:p></p>

<p class=MsoNormal># don't set this option we will default to sending resets
via raw socket,<o:p></o:p></p>

<p class=MsoNormal># which needs an ipaddress to be assigned to the int.<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># config layer2resets: 00:06:76:DD:5F:E3<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>###################################################<o:p></o:p></p>

<p class=MsoNormal># Step #2: Configure dynamic loaded libraries<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># If snort was configured to use dynamically loaded
libraries,<o:p></o:p></p>

<p class=MsoNormal># those libraries can be loaded here.<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># Each of the following configuration options can be done
via<o:p></o:p></p>

<p class=MsoNormal># the command line as well.<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># Load all dynamic preprocessors from the install path<o:p></o:p></p>

<p class=MsoNormal># (same as command line option
--dynamic-preprocessor-lib-dir)<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal>dynamicpreprocessor directory
C:\Snort\lib\snort_dynamicpreprocessor<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># Load a specific dynamic preprocessor library from the
install path<o:p></o:p></p>

<p class=MsoNormal># (same as command line option --dynamic-preprocessor-lib)<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># dynamicpreprocessor file
C:\Snort\lib\snort_dynamicpreprocessor/libdynamicexample.so<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># Load a dynamic engine from the install path<o:p></o:p></p>

<p class=MsoNormal># (same as command line option --dynamic-engine-lib)<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal>dynamicengine C:\Snort\lib\snort_dynamicengine\sf_engine.dll<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># Load all dynamic rules libraries from the install path<o:p></o:p></p>

<p class=MsoNormal># (same as command line option --dynamic-detection-lib-dir)<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># dynamicdetection directory
/usr/local/lib/snort_dynamicrule/<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># Load a specific dynamic rule library from the install path<o:p></o:p></p>

<p class=MsoNormal># (same as command line option --dynamic-detection-lib)<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># dynamicdetection file
/usr/local/lib/snort_dynamicrule/libdynamicexamplerule.so<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>###################################################<o:p></o:p></p>

<p class=MsoNormal># Step #3: Configure preprocessors<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># General configuration for preprocessors is of <o:p></o:p></p>

<p class=MsoNormal># the form<o:p></o:p></p>

<p class=MsoNormal># preprocessor <name_of_processor>:
<configuration_options><o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal># Configure Flow tracking module<o:p></o:p></p>

<p class=MsoNormal># -------------------------------<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># The Flow tracking module is meant to start unifying the
state keeping<o:p></o:p></p>

<p class=MsoNormal># mechanisms of snort into a single place. Right now, only a
portscan detector<o:p></o:p></p>

<p class=MsoNormal># is implemented but in the long term,  many of the
stateful subsystems of<o:p></o:p></p>

<p class=MsoNormal># snort will be migrated over to becoming flow plugins. This
must be enabled<o:p></o:p></p>

<p class=MsoNormal># for flow-portscan to work correctly.<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># See README.flow for additional information<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal>preprocessor flow: stats_interval 0 hash 2<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal># frag3: Target-based IP defragmentation <o:p></o:p></p>

<p class=MsoNormal># --------------------------------------<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># Frag3 is a brand new IP defragmentation preprocessor that
is capable of<o:p></o:p></p>

<p class=MsoNormal># performing "target-based" processing of IP
fragments.  Check out the<o:p></o:p></p>

<p class=MsoNormal># README.frag3 file in the doc directory for more background
and configuration<o:p></o:p></p>

<p class=MsoNormal># information.<o:p></o:p></p>

<p class=MsoNormal># <o:p></o:p></p>

<p class=MsoNormal># Frag3 configuration is a two step process, a global
initialization phase <o:p></o:p></p>

<p class=MsoNormal># followed by the definition of a set of defragmentation
engines.  <o:p></o:p></p>

<p class=MsoNormal># <o:p></o:p></p>

<p class=MsoNormal># Global configuration defines the number of fragmented
packets that Snort can<o:p></o:p></p>

<p class=MsoNormal># track at the same time and gives you options regarding the
memory cap for the<o:p></o:p></p>

<p class=MsoNormal># subsystem or, optionally, allows you to preallocate all
the memory for the <o:p></o:p></p>

<p class=MsoNormal># entire frag3 system.<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># frag3_global options:<o:p></o:p></p>

<p class=MsoNormal>#   max_frags: Maximum number of frag trackers
that may be active at once.  <o:p></o:p></p>

<p class=MsoNormal>#             
Default value is 8192.<o:p></o:p></p>

<p class=MsoNormal>#   memcap: Maximum amount of memory that frag3
may access at any given time.<o:p></o:p></p>

<p class=MsoNormal>#          
Default value is 4MB.<o:p></o:p></p>

<p class=MsoNormal>#   prealloc_frags: Maximum number of individual
fragments that may be processed<o:p></o:p></p>

<p class=MsoNormal>#                  
at once.  This is instead of the memcap system, uses static <o:p></o:p></p>

<p class=MsoNormal>#                  
allocation to increase performance.  No default value.  Each<o:p></o:p></p>

<p class=MsoNormal>#                  
preallocated fragment eats ~1550 bytes.<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># Target-based behavior is attached to an engine as a
"policy" for handling <o:p></o:p></p>

<p class=MsoNormal># overlaps and retransmissions as enumerated in the Paxson
paper.  There are<o:p></o:p></p>

<p class=MsoNormal># currently five policy types available: "BSD",
"BSD-right", "First", "Linux" <o:p></o:p></p>

<p class=MsoNormal># and "Last".  Engines can be bound to
standard Snort CIDR blocks or<o:p></o:p></p>

<p class=MsoNormal># IP lists.<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># frag3_engine options:<o:p></o:p></p>

<p class=MsoNormal>#   timeout: Amount of time a fragmented packet
may be active before expiring.<o:p></o:p></p>

<p class=MsoNormal>#           
Default value is 60 seconds.<o:p></o:p></p>

<p class=MsoNormal>#   ttl_limit: Limit of delta allowable for TTLs
of packets in the fragments. <o:p></o:p></p>

<p class=MsoNormal>#             
Based on the initial received fragment TTL.<o:p></o:p></p>

<p class=MsoNormal>#   min_ttl: Minimum acceptable TTL for a
fragment, frags with TTLs below this<o:p></o:p></p>

<p class=MsoNormal>#           
value will be discarded.  Default value is 0.<o:p></o:p></p>

<p class=MsoNormal>#   detect_anomalies: Activates frag3's anomaly
detection mechanisms.<o:p></o:p></p>

<p class=MsoNormal>#   policy: Target-based policy to assign to this
engine.  Default is BSD.<o:p></o:p></p>

<p class=MsoNormal>#   bind_to: IP address set to bind this engine
to.  Default is all hosts.<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># Frag3 configuration example:<o:p></o:p></p>

<p class=MsoNormal>#preprocessor frag3_global: max_frags 65536 prealloc_frags
262144<o:p></o:p></p>

<p class=MsoNormal>#preprocessor frag3_engine: policy linux \<o:p></o:p></p>

<p class=MsoNormal>#                          
bind_to [10.1.1.12/32,10.1.1.13/32] \<o:p></o:p></p>

<p class=MsoNormal>#                          
detect_anomalies<o:p></o:p></p>

<p class=MsoNormal>#preprocessor frag3_engine: policy first \<o:p></o:p></p>

<p class=MsoNormal>#                          
bind_to 10.2.1.0/24 \<o:p></o:p></p>

<p class=MsoNormal>#                          
detect_anomalies<o:p></o:p></p>

<p class=MsoNormal>#preprocessor frag3_engine: policy last \<o:p></o:p></p>

<p class=MsoNormal>#                          
bind_to 10.3.1.0/24<o:p></o:p></p>

<p class=MsoNormal>#preprocessor frag3_engine: policy bsd<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>preprocessor frag3_global: max_frags 65536<o:p></o:p></p>

<p class=MsoNormal>preprocessor frag3_engine: policy first detect_anomalies<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal># stream4: stateful inspection/stream reassembly for Snort<o:p></o:p></p>

<p class=MsoNormal>#----------------------------------------------------------------------<o:p></o:p></p>

<p class=MsoNormal># Use in concert with the -z [all|est] command line switch
to defeat stick/snot<o:p></o:p></p>

<p class=MsoNormal># against TCP rules.  Also performs full TCP stream
reassembly, stateful<o:p></o:p></p>

<p class=MsoNormal># inspection of TCP streams, etc.  Can statefully
detect various portscan<o:p></o:p></p>

<p class=MsoNormal># types, fingerprinting, ECN, etc.<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal># stateful inspection directive<o:p></o:p></p>

<p class=MsoNormal># no arguments loads the defaults (timeout 30, memcap
8388608)<o:p></o:p></p>

<p class=MsoNormal># options (options are comma delimited):<o:p></o:p></p>

<p class=MsoNormal>#   detect_scans - stream4 will detect stealth
portscans and generate alerts<o:p></o:p></p>

<p class=MsoNormal>#                 
when it sees them when this option is set<o:p></o:p></p>

<p class=MsoNormal>#   detect_state_problems - detect TCP state
problems, this tends to be very<o:p></o:p></p>

<p class=MsoNormal>#                     
     noisy because there are a lot of crappy ip stack<o:p></o:p></p>

<p class=MsoNormal>#                          
implementations out there<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal>#   disable_evasion_alerts - turn off the possibly
noisy mitigation of<o:p></o:p></p>

<p class=MsoNormal>#                           
overlapping sequences.<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal>#   ttl_limit [number]     -
differential of the initial ttl on a session versus<o:p></o:p></p>

<p class=MsoNormal>#                            
the normal that someone may be playing games.<o:p></o:p></p>

<p class=MsoNormal>#                            
Routing flap may cause lots of false positives.<o:p></o:p></p>

<p class=MsoNormal># <o:p></o:p></p>

<p class=MsoNormal>#   keepstats [machine|binary] - keep session
statistics, add "machine" to <o:p></o:p></p>

<p class=MsoNormal>#                        
get them in a flat format for machine reading, add<o:p></o:p></p>

<p class=MsoNormal>#                        
"binary" to get them in a unified binary output <o:p></o:p></p>

<p class=MsoNormal>#                        
format<o:p></o:p></p>

<p class=MsoNormal>#   noinspect - turn off stateful inspection only<o:p></o:p></p>

<p class=MsoNormal>#   timeout [number] - set the session timeout
counter to [number] seconds,<o:p></o:p></p>

<p class=MsoNormal>#                     
default is 30 seconds<o:p></o:p></p>

<p class=MsoNormal>#   max_sessions [number] - limit the number of
sessions stream4 keeps<o:p></o:p></p>

<p class=MsoNormal>#            
            track
of<o:p></o:p></p>

<p class=MsoNormal>#   memcap [number] - limit stream4 memory usage
to [number] bytes (does<o:p></o:p></p>

<p class=MsoNormal>#                    
not include session tracking, which is set by the<o:p></o:p></p>

<p class=MsoNormal>#                    
max_sessions option)<o:p></o:p></p>

<p class=MsoNormal>#   log_flushed_streams - if an event is detected
on a stream this option will<o:p></o:p></p>

<p class=MsoNormal>#                        
cause all packets that are stored in the stream4<o:p></o:p></p>

<p class=MsoNormal>#                        
packet buffers to be flushed to disk.  This only <o:p></o:p></p>

<p class=MsoNormal>#                        
works when logging in pcap mode!<o:p></o:p></p>

<p class=MsoNormal>#   server_inspect_limit [bytes] - Byte limit on
server side inspection.<o:p></o:p></p>

<p class=MsoNormal>#   enable_udp_sessions - turn on tracking of
"sessions" over UDP.  Requires<o:p></o:p></p>

<p class=MsoNormal>#                        
configure --enable-stream4udp.  UDP sessions are<o:p></o:p></p>

<p class=MsoNormal>#                        
only created when there is a rule for the sender or<o:p></o:p></p>

<p class=MsoNormal>#                        
responder that has a flow or flowbits keyword.<o:p></o:p></p>

<p class=MsoNormal>#   max_udp_sessions [number] - limit the number
of simultaneous UDP sessions<o:p></o:p></p>

<p class=MsoNormal>#                              
to track<o:p></o:p></p>

<p class=MsoNormal>#   udp_ignore_any - Do not inspect UDP packets
unless there is a port specific<o:p></o:p></p>

<p class=MsoNormal>#                   
rule for a given port.  This is a performance improvement<o:p></o:p></p>

<p class=MsoNormal>#                   
and turns off inspection for udp xxx any -> xxx any rules<o:p></o:p></p>

<p class=MsoNormal>#   cache_clean_sessions [number] - Cleanup the session
cache by number sessions<o:p></o:p></p>

<p class=MsoNormal>#                                  
at a time.  The larger the value, the<o:p></o:p></p>

<p class=MsoNormal>#                                  
more sessions are purged from the cache when<o:p></o:p></p>

<p class=MsoNormal>#                                  
the session limit or memcap is reached.<o:p></o:p></p>

<p class=MsoNormal>#                                  
Defaults to 5.<o:p></o:p></p>

<p class=MsoNormal>#   <o:p></o:p></p>

<p class=MsoNormal>#   <o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># Stream4 uses Generator ID 111 and uses the following SIDS <o:p></o:p></p>

<p class=MsoNormal># for that GID:<o:p></o:p></p>

<p class=MsoNormal>#  SID     Event description<o:p></o:p></p>

<p class=MsoNormal># -----   -------------------<o:p></o:p></p>

<p class=MsoNormal>#   1       Stealth
activity<o:p></o:p></p>

<p class=MsoNormal>#   2       Evasive
RST packet<o:p></o:p></p>

<p class=MsoNormal>#   3       Evasive
TCP packet retransmission<o:p></o:p></p>

<p class=MsoNormal>#   4       TCP
Window violation<o:p></o:p></p>

<p class=MsoNormal>#   5       Data on
SYN packet<o:p></o:p></p>

<p class=MsoNormal>#   6       Stealth
scan: full XMAS<o:p></o:p></p>

<p class=MsoNormal>#   7       Stealth
scan: SYN-ACK-PSH-URG<o:p></o:p></p>

<p class=MsoNormal>#   8       Stealth
scan: FIN scan<o:p></o:p></p>

<p class=MsoNormal>#   9       Stealth
scan: NULL scan<o:p></o:p></p>

<p class=MsoNormal>#   10      Stealth scan:
NMAP XMAS scan<o:p></o:p></p>

<p class=MsoNormal>#   11      Stealth scan:
Vecna scan<o:p></o:p></p>

<p class=MsoNormal>#   12      Stealth scan:
NMAP fingerprint scan stateful detect<o:p></o:p></p>

<p class=MsoNormal>#   13      Stealth scan:
SYN-FIN scan<o:p></o:p></p>

<p class=MsoNormal>#   14      TCP forward
overlap<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>#preprocessor stream4<o:p></o:p></p>

<p class=MsoNormal>#: disable_evasion_alerts<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal># tcp stream reassembly directive<o:p></o:p></p>

<p class=MsoNormal># no arguments loads the default configuration <o:p></o:p></p>

<p class=MsoNormal>#   Only reassemble the client,<o:p></o:p></p>

<p class=MsoNormal>#   Only reassemble the default list of ports (See
below),  <o:p></o:p></p>

<p class=MsoNormal>#   Give alerts for "bad" streams<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># Available options (comma delimited):<o:p></o:p></p>

<p class=MsoNormal>#   clientonly - reassemble traffic for the client
side of a connection only<o:p></o:p></p>

<p class=MsoNormal>#   serveronly - reassemble traffic for the server
side of a connection only<o:p></o:p></p>

<p class=MsoNormal>#   both - reassemble both sides of a session<o:p></o:p></p>

<p class=MsoNormal>#   noalerts - turn off alerts from the stream
reassembly stage of stream4<o:p></o:p></p>

<p class=MsoNormal>#   ports [list] - use the space separated list of
ports in [list], "all" <o:p></o:p></p>

<p class=MsoNormal>#                 
will turn on reassembly for all ports, "default" will turn<o:p></o:p></p>

<p class=MsoNormal>#                 
on reassembly for ports 21, 23, 25, 42, 53, 80, 110,<o:p></o:p></p>

<p class=MsoNormal>#                 
111, 135, 136, 137, 139, 143, 445, 513, 1433, 1521,<o:p></o:p></p>

<p class=MsoNormal>#                 
and 3306<o:p></o:p></p>

<p class=MsoNormal>#   favor_old - favor an old segment (based on
sequence number) over a new one.<o:p></o:p></p>

<p class=MsoNormal>#              
This is the default.<o:p></o:p></p>

<p class=MsoNormal>#   favor_new - favor an new segment (based on
sequence number) over an old one.<o:p></o:p></p>

<p class=MsoNormal>#   overlap_limit [number] - limit on overlaping
segments for a session.<o:p></o:p></p>

<p class=MsoNormal>#   flush_on_alert - flushes stream when an alert
is generated for a session.<o:p></o:p></p>

<p class=MsoNormal>#   flush_behavior [mode] -<o:p></o:p></p>

<p class=MsoNormal>#           default     
- use old static flushpoints (default)<o:p></o:p></p>

<p class=MsoNormal>#          
large_window - use new larger static flushpoints<o:p></o:p></p>

<p class=MsoNormal>#          
random       - use random flushpoints defined by
flush_base, <o:p></o:p></p>

<p class=MsoNormal>#                         
flush_seed and flush_range<o:p></o:p></p>

<p class=MsoNormal>#   flush_base [number] - lowest allowed random
flushpoint (512 by default)<o:p></o:p></p>

<p class=MsoNormal>#   flush_range [number] - number is the space
within which random flushpoints<o:p></o:p></p>

<p class=MsoNormal>#                         
are generated (default 1213)<o:p></o:p></p>

<p class=MsoNormal>#   flush_seed [number] - seed for the random
number generator, defaults to <o:p></o:p></p>

<p class=MsoNormal>#                        
Snort PID + time<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># Using the default random flushpoints, the smallest
flushpoint is 512,<o:p></o:p></p>

<p class=MsoNormal># and the largest is 1725 bytes.<o:p></o:p></p>

<p class=MsoNormal>#preprocessor stream4_reassemble<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal># stream5: Target Based stateful inspection/stream
reassembly for Snort<o:p></o:p></p>

<p class=MsoNormal>#
---------------------------------------------------------------------<o:p></o:p></p>

<p class=MsoNormal># Stream5 is a target-based stream engine for Snort. 
Its functionality<o:p></o:p></p>

<p class=MsoNormal># replaces that of Stream4.  Consequently, BOTH Stream4
and Stream5<o:p></o:p></p>

<p class=MsoNormal># cannot be used simultaneously.  Comment out the
stream4 configurations<o:p></o:p></p>

<p class=MsoNormal># above to use Stream5.<o:p></o:p></p>

<p class=MsoNormal># <o:p></o:p></p>

<p class=MsoNormal># See README.stream5 for details on the configuration
options.<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># Example config (that emulates Stream4 with UDP support
compiled in)<o:p></o:p></p>

<p class=MsoNormal>preprocessor stream5_global: max_tcp 8192, track_tcp yes, \<o:p></o:p></p>

<p class=MsoNormal>                            
track_udp no<o:p></o:p></p>

<p class=MsoNormal>preprocessor stream5_tcp: policy first,
use_static_footprint_sizes<o:p></o:p></p>

<p class=MsoNormal># preprocessor stream5_udp: ignore_any_rules<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal># Performance Statistics<o:p></o:p></p>

<p class=MsoNormal># ----------------------<o:p></o:p></p>

<p class=MsoNormal># Documentation for this is provided in the Snort
Manual.  You should read it.<o:p></o:p></p>

<p class=MsoNormal># It is included in the release distribution as
doc/snort_manual.pdf<o:p></o:p></p>

<p class=MsoNormal># <o:p></o:p></p>

<p class=MsoNormal># preprocessor perfmonitor: time 300 file
/var/snort/snort.stats pktcnt 10000<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal># http_inspect: normalize and detect HTTP traffic and
protocol anomalies<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># lots of options available here. See
doc/README.http_inspect.<o:p></o:p></p>

<p class=MsoNormal># unicode.map should be wherever your snort.conf lives, or
given<o:p></o:p></p>

<p class=MsoNormal># a full path to where snort can find it.<o:p></o:p></p>

<p class=MsoNormal>preprocessor http_inspect: global \<o:p></o:p></p>

<p class=MsoNormal>    iis_unicode_map unicode.map 1252 <o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>preprocessor http_inspect_server: server default \<o:p></o:p></p>

<p class=MsoNormal>    profile all ports { 80 8080 8180 }
oversize_dir_length 500<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal>#  Example unique server configuration<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal>#preprocessor http_inspect_server: server 1.1.1.1 \<o:p></o:p></p>

<p class=MsoNormal>#    ports { 80 3128 8080 } \<o:p></o:p></p>

<p class=MsoNormal>#    flow_depth 0 \<o:p></o:p></p>

<p class=MsoNormal>#    ascii no \<o:p></o:p></p>

<p class=MsoNormal>#    double_decode yes \<o:p></o:p></p>

<p class=MsoNormal>#    non_rfc_char { 0x00 } \<o:p></o:p></p>

<p class=MsoNormal>#    chunk_length 500000 \<o:p></o:p></p>

<p class=MsoNormal>#    non_strict \<o:p></o:p></p>

<p class=MsoNormal>#    oversize_dir_length 300 \<o:p></o:p></p>

<p class=MsoNormal>#    no_alerts<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal># rpc_decode: normalize RPC traffic<o:p></o:p></p>

<p class=MsoNormal># ---------------------------------<o:p></o:p></p>

<p class=MsoNormal># RPC may be sent in alternate encodings besides the usual
4-byte encoding<o:p></o:p></p>

<p class=MsoNormal># that is used by default. This plugin takes the port
numbers that RPC<o:p></o:p></p>

<p class=MsoNormal># services are running on as arguments - it is assumed that
the given ports<o:p></o:p></p>

<p class=MsoNormal># are actually running this type of service. If not, change
the ports or turn<o:p></o:p></p>

<p class=MsoNormal># it off.<o:p></o:p></p>

<p class=MsoNormal># The RPC decode preprocessor uses generator ID 106<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># arguments: space separated list<o:p></o:p></p>

<p class=MsoNormal># alert_fragments - alert on any rpc fragmented TCP data<o:p></o:p></p>

<p class=MsoNormal># no_alert_multiple_requests - don't alert when >1 rpc
query is in a packet<o:p></o:p></p>

<p class=MsoNormal># no_alert_large_fragments - don't alert when the fragmented<o:p></o:p></p>

<p class=MsoNormal>#                           
sizes exceed the current packet size<o:p></o:p></p>

<p class=MsoNormal># no_alert_incomplete - don't alert when a single segment<o:p></o:p></p>

<p class=MsoNormal>#                      
exceeds the current packet size<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>preprocessor rpc_decode: 111 32771<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal># bo: Back Orifice detector<o:p></o:p></p>

<p class=MsoNormal># -------------------------<o:p></o:p></p>

<p class=MsoNormal># Detects Back Orifice traffic on the network.<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># arguments:  <o:p></o:p></p>

<p class=MsoNormal>#   syntax:<o:p></o:p></p>

<p class=MsoNormal>#     preprocessor bo: noalert { client
| server | general | snort_attack } \<o:p></o:p></p>

<p class=MsoNormal>#                     
drop    { client | server | general | snort_attack }<o:p></o:p></p>

<p class=MsoNormal>#   example:<o:p></o:p></p>

<p class=MsoNormal>#     preprocessor bo: noalert { general
server } drop { snort_attack }<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal># <o:p></o:p></p>

<p class=MsoNormal># The Back Orifice detector uses Generator ID 105 and uses
the <o:p></o:p></p>

<p class=MsoNormal># following SIDS for that GID:<o:p></o:p></p>

<p class=MsoNormal>#  SID     Event description<o:p></o:p></p>

<p class=MsoNormal># -----   -------------------<o:p></o:p></p>

<p class=MsoNormal>#   1       Back
Orifice traffic detected<o:p></o:p></p>

<p class=MsoNormal>#   2       Back
Orifice Client Traffic Detected<o:p></o:p></p>

<p class=MsoNormal>#   3       Back
Orifice Server Traffic Detected<o:p></o:p></p>

<p class=MsoNormal>#   4       Back
Orifice Snort Buffer Attack<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>preprocessor bo<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal># telnet_decode: Telnet negotiation string normalizer<o:p></o:p></p>

<p class=MsoNormal># ---------------------------------------------------<o:p></o:p></p>

<p class=MsoNormal># This preprocessor "normalizes" telnet
negotiation strings from telnet and ftp<o:p></o:p></p>

<p class=MsoNormal># traffic.  It works in much the same way as the
http_decode preprocessor,<o:p></o:p></p>

<p class=MsoNormal># searching for traffic that breaks up the normal data
stream of a protocol and<o:p></o:p></p>

<p class=MsoNormal># replacing it with a normalized representation of that
traffic so that the<o:p></o:p></p>

<p class=MsoNormal># "content" pattern matching keyword can work
without requiring modifications.<o:p></o:p></p>

<p class=MsoNormal># This preprocessor requires no arguments.<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># DEPRECATED in favor of ftp_telnet dynamic preprocessor<o:p></o:p></p>

<p class=MsoNormal>#preprocessor telnet_decode<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># ftp_telnet: FTP & Telnet normalizer, protocol
enforcement and buff overflow<o:p></o:p></p>

<p class=MsoNormal>#
---------------------------------------------------------------------------<o:p></o:p></p>

<p class=MsoNormal># This preprocessor normalizes telnet negotiation strings
from telnet and<o:p></o:p></p>

<p class=MsoNormal># ftp traffic.  It looks for traffic that breaks the
normal data stream<o:p></o:p></p>

<p class=MsoNormal># of the protocol, replacing it with a normalized
representation of that<o:p></o:p></p>

<p class=MsoNormal># traffic so that the "content" pattern matching
keyword can work without<o:p></o:p></p>

<p class=MsoNormal># requiring modifications.<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># It also performs protocol correctness checks for the FTP
command channel,<o:p></o:p></p>

<p class=MsoNormal># and identifies open FTP data transfers.<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># FTPTelnet has numerous options available, please read<o:p></o:p></p>

<p class=MsoNormal># README.ftptelnet for help configuring the options for the
global<o:p></o:p></p>

<p class=MsoNormal># telnet, ftp server, and ftp client sections for the
protocol.<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>#####<o:p></o:p></p>

<p class=MsoNormal># Per Step #2, set the following to load the ftptelnet
preprocessor<o:p></o:p></p>

<p class=MsoNormal># dynamicpreprocessor <full path to
libsf_ftptelnet_preproc.so><o:p></o:p></p>

<p class=MsoNormal># or use commandline option<o:p></o:p></p>

<p class=MsoNormal># --dynamic-preprocessor-lib <full path to
libsf_ftptelnet_preproc.so><o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>preprocessor ftp_telnet: global \<o:p></o:p></p>

<p class=MsoNormal>   encrypted_traffic yes \<o:p></o:p></p>

<p class=MsoNormal>   inspection_type stateful<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>preprocessor ftp_telnet_protocol: telnet \<o:p></o:p></p>

<p class=MsoNormal>   normalize \<o:p></o:p></p>

<p class=MsoNormal>   ayt_attack_thresh 200<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal># This is consistent with the FTP rules as of 18 Sept 2004.<o:p></o:p></p>

<p class=MsoNormal># CWD can have param length of 200<o:p></o:p></p>

<p class=MsoNormal># MODE has an additional mode of Z (compressed)<o:p></o:p></p>

<p class=MsoNormal># Check for string formats in USER & PASS commands<o:p></o:p></p>

<p class=MsoNormal># Check nDTM commands that set modification time on the
file.<o:p></o:p></p>

<p class=MsoNormal>preprocessor ftp_telnet_protocol: ftp server default \<o:p></o:p></p>

<p class=MsoNormal>   def_max_param_len 100 \<o:p></o:p></p>

<p class=MsoNormal>   alt_max_param_len 200 { CWD } \<o:p></o:p></p>

<p class=MsoNormal>   cmd_validity MODE < char ASBCZ > \<o:p></o:p></p>

<p class=MsoNormal>   cmd_validity MDTM < [ date
nnnnnnnnnnnnnn[.n[n[n]]] ] string > \<o:p></o:p></p>

<p class=MsoNormal>   chk_str_fmt { USER PASS RNFR RNTO SITE MKD } \<o:p></o:p></p>

<p class=MsoNormal>   telnet_cmds yes \<o:p></o:p></p>

<p class=MsoNormal>   data_chan<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>preprocessor ftp_telnet_protocol: ftp client default \<o:p></o:p></p>

<p class=MsoNormal>   max_resp_len 256 \<o:p></o:p></p>

<p class=MsoNormal>   bounce yes \<o:p></o:p></p>

<p class=MsoNormal>   telnet_cmds yes<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal># smtp: SMTP normalizer, protocol enforcement and buffer
overflow<o:p></o:p></p>

<p class=MsoNormal># ---------------------------------------------------------------------------<o:p></o:p></p>

<p class=MsoNormal># This preprocessor normalizes SMTP commands by removing
extraneous spaces.<o:p></o:p></p>

<p class=MsoNormal># It looks for overly long command lines, response lines,
and data header lines.<o:p></o:p></p>

<p class=MsoNormal># It can alert on invalid commands, or specific valid
commands.  It can optionally<o:p></o:p></p>

<p class=MsoNormal># ignore mail data, and can ignore TLS encrypted data.<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># SMTP has numerous options available, please read
README.SMTP for help<o:p></o:p></p>

<p class=MsoNormal># configuring options.<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>#####<o:p></o:p></p>

<p class=MsoNormal># Per Step #2, set the following to load the smtp
preprocessor<o:p></o:p></p>

<p class=MsoNormal># dynamicpreprocessor <full path to
libsf_smtp_preproc.so><o:p></o:p></p>

<p class=MsoNormal># or use commandline option<o:p></o:p></p>

<p class=MsoNormal># --dynamic-preprocessor-lib <full path to
libsf_smtp_preproc.so><o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>preprocessor smtp: \<o:p></o:p></p>

<p class=MsoNormal>  ports { 25 } \<o:p></o:p></p>

<p class=MsoNormal>  inspection_type stateful \<o:p></o:p></p>

<p class=MsoNormal>  normalize cmds \<o:p></o:p></p>

<p class=MsoNormal>  normalize_cmds { EXPN VRFY RCPT } \<o:p></o:p></p>

<p class=MsoNormal>  alt_max_command_line_len 260 { MAIL } \<o:p></o:p></p>

<p class=MsoNormal>  alt_max_command_line_len 300 { RCPT } \<o:p></o:p></p>

<p class=MsoNormal>  alt_max_command_line_len 500 { HELP HELO ETRN } \<o:p></o:p></p>

<p class=MsoNormal>  alt_max_command_line_len 255 { EXPN VRFY }<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal># sfPortscan<o:p></o:p></p>

<p class=MsoNormal># ----------<o:p></o:p></p>

<p class=MsoNormal># Portscan detection module.  Detects various types of
portscans and<o:p></o:p></p>

<p class=MsoNormal># portsweeps.  For more information on detection
philosophy, alert types,<o:p></o:p></p>

<p class=MsoNormal># and detailed portscan information, please refer to the
README.sfportscan.<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># -configuration options-<o:p></o:p></p>

<p class=MsoNormal>#     proto { tcp udp icmp ip all }<o:p></o:p></p>

<p class=MsoNormal>#       The arguments to the
proto option are the types of protocol scans that<o:p></o:p></p>

<p class=MsoNormal>#       the user wants to
detect.  Arguments should be separated by spaces and<o:p></o:p></p>

<p class=MsoNormal>#       not commas.<o:p></o:p></p>

<p class=MsoNormal>#     scan_type { portscan portsweep
decoy_portscan distributed_portscan all }<o:p></o:p></p>

<p class=MsoNormal>#       The arguments to the
scan_type option are the scan types that the<o:p></o:p></p>

<p class=MsoNormal>#       user wants to
detect.  Arguments should be separated by spaces and not<o:p></o:p></p>

<p class=MsoNormal>#       commas.<o:p></o:p></p>

<p class=MsoNormal>#     sense_level { low|medium|high }<o:p></o:p></p>

<p class=MsoNormal>#       There is only one
argument to this option and it is the level of<o:p></o:p></p>

<p class=MsoNormal>#       sensitivity in which
to detect portscans.  The 'low' sensitivity<o:p></o:p></p>

<p class=MsoNormal>#       detects scans by the
common method of looking for response errors, such<o:p></o:p></p>

<p class=MsoNormal>#       as TCP RSTs or ICMP
unreachables.  This level requires the least<o:p></o:p></p>

<p class=MsoNormal>#       tuning.  The
'medium' sensitivity level detects portscans and <o:p></o:p></p>

<p class=MsoNormal>#       filtered portscans
(portscans that receive no response).  This<o:p></o:p></p>

<p class=MsoNormal>#       sensitivity level
usually requires tuning out scan events from NATed<o:p></o:p></p>

<p class=MsoNormal>#       IPs, DNS cache
servers, etc.  The 'high' sensitivity level has<o:p></o:p></p>

<p class=MsoNormal>#       lower thresholds for
portscan detection and a longer time window than<o:p></o:p></p>

<p class=MsoNormal>#       the 'medium'
sensitivity level.  Requires more tuning and may be noisy<o:p></o:p></p>

<p class=MsoNormal>#       on very active
networks.  However, this sensitivity levels catches the<o:p></o:p></p>

<p class=MsoNormal>#       most scans.<o:p></o:p></p>

<p class=MsoNormal>#     memcap { positive integer }<o:p></o:p></p>

<p class=MsoNormal>#       The maximum number of
bytes to allocate for portscan detection.  The<o:p></o:p></p>

<p class=MsoNormal>#       higher this number the
more nodes that can be tracked.<o:p></o:p></p>

<p class=MsoNormal>#     logfile { filename }<o:p></o:p></p>

<p class=MsoNormal>#       This option specifies
the file to log portscan and detailed portscan<o:p></o:p></p>

<p class=MsoNormal>#       values to.  If
there is not a leading /, then snort logs to the<o:p></o:p></p>

<p class=MsoNormal>#       configured log
directory.  Refer to README.sfportscan for details on<o:p></o:p></p>

<p class=MsoNormal>#       the logged values in
the logfile.<o:p></o:p></p>

<p class=MsoNormal>#     watch_ip { Snort IP List }<o:p></o:p></p>

<p class=MsoNormal>#     ignore_scanners { Snort IP List }<o:p></o:p></p>

<p class=MsoNormal>#     ignore_scanned { Snort IP List }<o:p></o:p></p>

<p class=MsoNormal>#       These options take a
snort IP list as the argument.  The 'watch_ip'<o:p></o:p></p>

<p class=MsoNormal>#       option specifies the
IP(s) to watch for portscan.  The <o:p></o:p></p>

<p class=MsoNormal>#       'ignore_scanners'
option specifies the IP(s) to ignore as scanners.<o:p></o:p></p>

<p class=MsoNormal>#       Note that these hosts
are still watched as scanned hosts.  The<o:p></o:p></p>

<p class=MsoNormal>#       'ignore_scanners'
option is used to tune alerts from very active<o:p></o:p></p>

<p class=MsoNormal>#       hosts such as NAT,
nessus hosts, etc.  The 'ignore_scanned' option <o:p></o:p></p>

<p class=MsoNormal>#       specifies the IP(s) to
ignore as scanned hosts.  Note that these hosts<o:p></o:p></p>

<p class=MsoNormal>#       are still watched as
scanner hosts.  The 'ignore_scanned' option is<o:p></o:p></p>

<p class=MsoNormal>#       used to tune alerts
from very active hosts such as syslog servers, etc.<o:p></o:p></p>

<p class=MsoNormal>#     detect_ack_scans<o:p></o:p></p>

<p class=MsoNormal>#       This option will
include sessions picked up in midstream by the stream<o:p></o:p></p>

<p class=MsoNormal>#       module, which is
necessary to detect ACK scans.  However, this can lead to<o:p></o:p></p>

<p class=MsoNormal>#       false alerts,
especially under heavy load with dropped packets; which is why<o:p></o:p></p>

<p class=MsoNormal>#       the option is off by
default.<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal>preprocessor sfportscan: proto  { all } \<o:p></o:p></p>

<p class=MsoNormal>                        
memcap { 10000000 } \<o:p></o:p></p>

<p class=MsoNormal>                        
sense_level { low } \<o:p></o:p></p>

<p class=MsoNormal>                                             logfile
{ portscan.log }<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal># arpspoof<o:p></o:p></p>

<p class=MsoNormal>#----------------------------------------<o:p></o:p></p>

<p class=MsoNormal># Experimental ARP detection code from Jeff Nathan, detects
ARP attacks,<o:p></o:p></p>

<p class=MsoNormal># unicast ARP requests, and specific ARP mapping monitoring. 
To make use of<o:p></o:p></p>

<p class=MsoNormal># this preprocessor you must specify the IP and hardware
address of hosts on<o:p></o:p></p>

<p class=MsoNormal># the same layer 2 segment as you.  Specify one host IP
MAC combo per line.<o:p></o:p></p>

<p class=MsoNormal># Also takes a "-unicast" option to turn on
unicast ARP request detection. <o:p></o:p></p>

<p class=MsoNormal># Arpspoof uses Generator ID 112 and uses the following SIDS
for that GID:<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>#  SID     Event description<o:p></o:p></p>

<p class=MsoNormal># -----   -------------------<o:p></o:p></p>

<p class=MsoNormal>#   1       Unicast
ARP request<o:p></o:p></p>

<p class=MsoNormal>#   2      
Etherframe ARP mismatch (src)<o:p></o:p></p>

<p class=MsoNormal>#   3      
Etherframe ARP mismatch (dst)<o:p></o:p></p>

<p class=MsoNormal>#   4       ARP
cache overwrite attack<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>#preprocessor arpspoof<o:p></o:p></p>

<p class=MsoNormal>#preprocessor arpspoof_detect_host: 192.168.40.1
f0:0f:00:f0:0f:00<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal># ssh<o:p></o:p></p>

<p class=MsoNormal>#----------------------------------------<o:p></o:p></p>

<p class=MsoNormal># EXPERIMENTAL CODE!!!<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># THIS CODE IS STILL EXPERIMENTAL AND MAY OR MAY NOT BE
STABLE!<o:p></o:p></p>

<p class=MsoNormal># USE AT YOUR OWN RISK!  DO NOT USE IN PRODUCTION
ENVIRONMENTS.<o:p></o:p></p>

<p class=MsoNormal># YOU HAVE BEEN WARNED.<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># The SSH preprocessor detects the following exploits:
Gobbles, CRC 32,<o:p></o:p></p>

<p class=MsoNormal># Secure CRT, and the Protocol Mismatch exploit.<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># Both Gobbles and CRC 32 attacks occur after the key
exchange, and are<o:p></o:p></p>

<p class=MsoNormal># therefore encrypted.  Both attacks involve sending a
large payload<o:p></o:p></p>

<p class=MsoNormal># (20kb+) to the server immediately after the authentication
challenge.<o:p></o:p></p>

<p class=MsoNormal># To detect the attacks, the SSH preprocessor counts the
number of bytes<o:p></o:p></p>

<p class=MsoNormal># transmitted to the server.  If those bytes exceed a
pre-defined limit<o:p></o:p></p>

<p class=MsoNormal># within a pre-define number of packets, an alert is
generated.  Since<o:p></o:p></p>

<p class=MsoNormal># Gobbles only effects SSHv2 and CRC 32 only effects SSHv1,
the SSH<o:p></o:p></p>

<p class=MsoNormal># version string exchange is used to distinguish the
attacks.<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># The Secure CRT and protocol mismatch exploits are
observable before<o:p></o:p></p>

<p class=MsoNormal># the key exchange.<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># SSH has numerous options available, please read README.ssh
for help<o:p></o:p></p>

<p class=MsoNormal># configuring options.<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>#####<o:p></o:p></p>

<p class=MsoNormal># Per Step #2, set the following to load the ssh
preprocessor<o:p></o:p></p>

<p class=MsoNormal># dynamicpreprocessor <full path to
libsf_ssh_preproc.so><o:p></o:p></p>

<p class=MsoNormal># or use commandline option<o:p></o:p></p>

<p class=MsoNormal># --dynamic-preprocessor-lib <full path to
libsf_ssh_preproc.so><o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal>#preprocessor ssh: server_ports { 22 } \<o:p></o:p></p>

<p class=MsoNormal>#                 
max_client_bytes 19600 \<o:p></o:p></p>

<p class=MsoNormal>#                 
max_encrypted_packets 20<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal># DCE/RPC<o:p></o:p></p>

<p class=MsoNormal>#----------------------------------------<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># The dcerpc preprocessor detects and decodes SMB and
DCE/RPC traffic.<o:p></o:p></p>

<p class=MsoNormal># It is primarily interested in DCE/RPC data, and only
decodes SMB<o:p></o:p></p>

<p class=MsoNormal># to get at the DCE/RPC data carried by the SMB layer.<o:p></o:p></p>

<p class=MsoNormal># <o:p></o:p></p>

<p class=MsoNormal># Currently, the preprocessor only handles reassembly of
fragmentation<o:p></o:p></p>

<p class=MsoNormal># at both the SMB and DCE/RPC layer.  Snort rules can
be evaded by<o:p></o:p></p>

<p class=MsoNormal># using both types of fragmentation; with the preprocessor
enabled<o:p></o:p></p>

<p class=MsoNormal># the rules are given a buffer with a reassembled SMB or
DCE/RPC<o:p></o:p></p>

<p class=MsoNormal># packet to examine.<o:p></o:p></p>

<p class=MsoNormal># <o:p></o:p></p>

<p class=MsoNormal># At the SMB layer, only fragmentation using WriteAndX is
currently<o:p></o:p></p>

<p class=MsoNormal># reassembled.  Other methods will be handled in future
versions of<o:p></o:p></p>

<p class=MsoNormal># the preprocessor.<o:p></o:p></p>

<p class=MsoNormal># <o:p></o:p></p>

<p class=MsoNormal># Autodetection of SMB is done by looking for
"\xFFSMB" at the start of<o:p></o:p></p>

<p class=MsoNormal># the SMB data, as well as checking the NetBIOS header
(which is always<o:p></o:p></p>

<p class=MsoNormal># present for SMB) for the type "SMB Session".<o:p></o:p></p>

<p class=MsoNormal># <o:p></o:p></p>

<p class=MsoNormal># Autodetection of DCE/RPC is not as reliable. 
Currently, two bytes are<o:p></o:p></p>

<p class=MsoNormal># checked in the packet.  Assuming that the data is a
DCE/RPC header,<o:p></o:p></p>

<p class=MsoNormal># one byte is checked for DCE/RPC version (5) and another
for the type<o:p></o:p></p>

<p class=MsoNormal># "DCE/RPC Request".  If both match, the
preprocessor proceeds with that<o:p></o:p></p>

<p class=MsoNormal># assumption that it is looking at DCE/RPC data.  If
subsequent checks<o:p></o:p></p>

<p class=MsoNormal># are nonsensical, it ends processing.<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># DCERPC has numerous options available, please read
README.dcerpc for help<o:p></o:p></p>

<p class=MsoNormal># configuring options.<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>#####<o:p></o:p></p>

<p class=MsoNormal># Per Step #2, set the following to load the dcerpc
preprocessor<o:p></o:p></p>

<p class=MsoNormal># dynamicpreprocessor <full path to
libsf_dcerpc_preproc.so><o:p></o:p></p>

<p class=MsoNormal># or use commandline option<o:p></o:p></p>

<p class=MsoNormal># --dynamic-preprocessor-lib <full path to
libsf_dcerpc_preproc.so><o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>preprocessor dcerpc: \<o:p></o:p></p>

<p class=MsoNormal>    autodetect \<o:p></o:p></p>

<p class=MsoNormal>    max_frag_size 3000 \<o:p></o:p></p>

<p class=MsoNormal>    memcap 100000<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal># DNS<o:p></o:p></p>

<p class=MsoNormal>#----------------------------------------<o:p></o:p></p>

<p class=MsoNormal># The dns preprocessor (currently) decodes DNS Response
traffic<o:p></o:p></p>

<p class=MsoNormal># and detects a few vulnerabilities.<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># DNS has a few options available, please read README.dns
for<o:p></o:p></p>

<p class=MsoNormal># help configuring options.<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>#####<o:p></o:p></p>

<p class=MsoNormal># Per Step #2, set the following to load the dns
preprocessor<o:p></o:p></p>

<p class=MsoNormal># dynamicpreprocessor <full path to
libsf_dns_preproc.so><o:p></o:p></p>

<p class=MsoNormal># or use commandline option<o:p></o:p></p>

<p class=MsoNormal># --dynamic-preprocessor-lib <full path to
libsf_dns_preproc.so><o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>preprocessor dns: \<o:p></o:p></p>

<p class=MsoNormal>    ports { 53 } \<o:p></o:p></p>

<p class=MsoNormal>    enable_rdata_overflow<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>####################################################################<o:p></o:p></p>

<p class=MsoNormal># Step #4: Configure output plugins<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># Uncomment and configure the output plugins you decide to
use.  General<o:p></o:p></p>

<p class=MsoNormal># configuration for output plugins is of the form:<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># output <name_of_plugin>:
<configuration_options><o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># alert_syslog: log alerts to syslog<o:p></o:p></p>

<p class=MsoNormal># ----------------------------------<o:p></o:p></p>

<p class=MsoNormal># Use one or more syslog facilities as arguments. 
Win32 can also optionally<o:p></o:p></p>

<p class=MsoNormal># specify a particular hostname/port.  Under Win32, the
default hostname is<o:p></o:p></p>

<p class=MsoNormal># '127.0.0.1', and the default port is 514.<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># [Unix flavours should use this format...]<o:p></o:p></p>

<p class=MsoNormal># output alert_syslog: LOG_AUTH LOG_ALERT<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># [Win32 can use any of these formats...]<o:p></o:p></p>

<p class=MsoNormal># output alert_syslog: LOG_AUTH LOG_ALERT<o:p></o:p></p>

<p class=MsoNormal> output alert_syslog: host=192.168.0.1, LOG_AUTH
LOG_ALERT<o:p></o:p></p>

<p class=MsoNormal># output alert_syslog: host=hostname:port, LOG_AUTH
LOG_ALERT<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal># log_tcpdump: log packets in binary tcpdump format<o:p></o:p></p>

<p class=MsoNormal># -------------------------------------------------<o:p></o:p></p>

<p class=MsoNormal># The only argument is the output file name.<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># output log_tcpdump: tcpdump.log<o:p></o:p></p>

<p class=MsoNormal>output alert_fast: alert.ids<o:p></o:p></p>

<p class=MsoNormal># database: log to a variety of databases<o:p></o:p></p>

<p class=MsoNormal># ---------------------------------------<o:p></o:p></p>

<p class=MsoNormal># See the README.database file for more information about
configuring<o:p></o:p></p>

<p class=MsoNormal># and using this plugin.<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># output database: log, mysql, user=root password=test
dbname=db host=localhost<o:p></o:p></p>

<p class=MsoNormal># output database: alert, postgresql, user=snort
dbname=snort<o:p></o:p></p>

<p class=MsoNormal># output database: log, odbc, user=snort dbname=snort<o:p></o:p></p>

<p class=MsoNormal># output database: log, mssql, dbname=snort user=snort
password=test<o:p></o:p></p>

<p class=MsoNormal># output database: log, oracle, dbname=snort user=snort
password=test<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal># unified: Snort unified binary format alerting and logging<o:p></o:p></p>

<p class=MsoNormal># -------------------------------------------------------------<o:p></o:p></p>

<p class=MsoNormal># The unified output plugin provides two new formats for
logging and generating<o:p></o:p></p>

<p class=MsoNormal># alerts from Snort, the "unified" format. 
The unified format is a straight<o:p></o:p></p>

<p class=MsoNormal># binary format for logging data out of Snort that is designed
to be fast and<o:p></o:p></p>

<p class=MsoNormal># efficient.  Used with barnyard (the new alert/log
processor), most of the<o:p></o:p></p>

<p class=MsoNormal># overhead for logging and alerting to various slow storage
mechanisms such as<o:p></o:p></p>

<p class=MsoNormal># databases or the network can now be avoided.  <o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># Check out the spo_unified.h file for the data formats.<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># Two arguments are supported.<o:p></o:p></p>

<p class=MsoNormal>#    filename - base filename to write to
(current time_t is appended)<o:p></o:p></p>

<p class=MsoNormal>#    limit    - maximum size
of spool file in MB (default: 128)<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># output alert_unified: filename snort.alert, limit 128<o:p></o:p></p>

<p class=MsoNormal># output log_unified: filename snort.log, limit 128<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal># prelude: log to the Prelude Hybrid IDS system<o:p></o:p></p>

<p class=MsoNormal># ---------------------------------------------<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># profile = Name of the Prelude profile to use (default is
snort).<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># Snort priority to IDMEF severity mappings:<o:p></o:p></p>

<p class=MsoNormal># high < medium < low < info<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># These are the default mapped from classification.config:<o:p></o:p></p>

<p class=MsoNormal># info   = 4<o:p></o:p></p>

<p class=MsoNormal># low    = 3<o:p></o:p></p>

<p class=MsoNormal># medium = 2<o:p></o:p></p>

<p class=MsoNormal># high   = anything below medium<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># output alert_prelude<o:p></o:p></p>

<p class=MsoNormal># output alert_prelude: profile=snort-profile-name<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal># You can optionally define new rule types and associate one
or more output<o:p></o:p></p>

<p class=MsoNormal># plugins specifically to that type.<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># This example will create a type that will log to just
tcpdump.<o:p></o:p></p>

<p class=MsoNormal># ruletype suspicious<o:p></o:p></p>

<p class=MsoNormal># {<o:p></o:p></p>

<p class=MsoNormal>#   type log<o:p></o:p></p>

<p class=MsoNormal>#   output log_tcpdump: suspicious.log<o:p></o:p></p>

<p class=MsoNormal># }<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># EXAMPLE RULE FOR SUSPICIOUS RULETYPE:<o:p></o:p></p>

<p class=MsoNormal># suspicious tcp $HOME_NET any -> $HOME_NET 6667
(msg:"Internal IRC Server";)<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># This example will create a rule type that will log to
syslog and a mysql<o:p></o:p></p>

<p class=MsoNormal># database:<o:p></o:p></p>

<p class=MsoNormal># ruletype redalert<o:p></o:p></p>

<p class=MsoNormal># {<o:p></o:p></p>

<p class=MsoNormal>#   type alert<o:p></o:p></p>

<p class=MsoNormal>#   output alert_syslog: LOG_AUTH LOG_ALERT<o:p></o:p></p>

<p class=MsoNormal>#   output database: log, mysql, user=snort
dbname=snort host=localhost<o:p></o:p></p>

<p class=MsoNormal># }<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># EXAMPLE RULE FOR REDALERT RULETYPE:<o:p></o:p></p>

<p class=MsoNormal># redalert tcp $HOME_NET any -> $EXTERNAL_NET 31337 \<o:p></o:p></p>

<p class=MsoNormal>#   (msg:"Someone is being LEET";
flags:A+;)<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># Include classification & priority settings<o:p></o:p></p>

<p class=MsoNormal># Note for Windows users:  You are advised to make this
an absolute path,<o:p></o:p></p>

<p class=MsoNormal># such as:  c:\snort\etc\classification.config<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>include c:\snort\etc\classification.config<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># Include reference systems<o:p></o:p></p>

<p class=MsoNormal># Note for Windows users:  You are advised to make this
an absolute path,<o:p></o:p></p>

<p class=MsoNormal># such as:  c:\snort\etc\reference.config<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>include c:\snort\etc\reference.config<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>####################################################################<o:p></o:p></p>

<p class=MsoNormal># Step #5: Configure snort with config statements<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># See the snort manual for a full set of configuration
references<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># config flowbits_size: 64<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># New global ignore_ports config option from Andy Mullican<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># config ignore_ports: <tcp|udp> <list of ports
separated by whitespace><o:p></o:p></p>

<p class=MsoNormal># config ignore_ports: tcp 21 6667:6671 1356<o:p></o:p></p>

<p class=MsoNormal># config ignore_ports: udp 1:17 53<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>####################################################################<o:p></o:p></p>

<p class=MsoNormal># Step #6: Customize your rule set<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># Up to date snort rules are available at
http://www.snort.org<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal># The snort web site has documentation about how to write
your own custom snort<o:p></o:p></p>

<p class=MsoNormal># rules.<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>#=========================================<o:p></o:p></p>

<p class=MsoNormal># Include all relevant rulesets here <o:p></o:p></p>

<p class=MsoNormal># <o:p></o:p></p>

<p class=MsoNormal># The following rulesets are disabled by default:<o:p></o:p></p>

<p class=MsoNormal>#<o:p></o:p></p>

<p class=MsoNormal>#   web-attacks, backdoor, shellcode, policy,
porn, info, icmp-info, virus,<o:p></o:p></p>

<p class=MsoNormal>#   chat, multimedia, and p2p<o:p></o:p></p>

<p class=MsoNormal>#           
<o:p></o:p></p>

<p class=MsoNormal># These rules are either site policy specific or require
tuning in order to not<o:p></o:p></p>

<p class=MsoNormal># generate false positive alerts in most enviornments.<o:p></o:p></p>

<p class=MsoNormal># <o:p></o:p></p>

<p class=MsoNormal># Please read the specific include file for more information
and<o:p></o:p></p>

<p class=MsoNormal># README.alert_order for how rule ordering affects how
alerts are triggered.<o:p></o:p></p>

<p class=MsoNormal>#=========================================<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>include $RULE_PATH/local.rules<o:p></o:p></p>

<p class=MsoNormal>include $RULE_PATH/bad-traffic.rules<o:p></o:p></p>

<p class=MsoNormal>include $RULE_PATH/exploit.rules<o:p></o:p></p>

<p class=MsoNormal>include $RULE_PATH/scan.rules<o:p></o:p></p>

<p class=MsoNormal>include $RULE_PATH/finger.rules<o:p></o:p></p>

<p class=MsoNormal>include $RULE_PATH/ftp.rules<o:p></o:p></p>

<p class=MsoNormal>include $RULE_PATH/telnet.rules<o:p></o:p></p>

<p class=MsoNormal>include $RULE_PATH/rpc.rules<o:p></o:p></p>

<p class=MsoNormal>include $RULE_PATH/rservices.rules<o:p></o:p></p>

<p class=MsoNormal>include $RULE_PATH/dos.rules<o:p></o:p></p>

<p class=MsoNormal>include $RULE_PATH/ddos.rules<o:p></o:p></p>

<p class=MsoNormal>include $RULE_PATH/dns.rules<o:p></o:p></p>

<p class=MsoNormal>include $RULE_PATH/tftp.rules<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>include $RULE_PATH/web-cgi.rules<o:p></o:p></p>

<p class=MsoNormal>include $RULE_PATH/web-coldfusion.rules<o:p></o:p></p>

<p class=MsoNormal>include $RULE_PATH/web-iis.rules<o:p></o:p></p>

<p class=MsoNormal>include $RULE_PATH/web-frontpage.rules<o:p></o:p></p>

<p class=MsoNormal>include $RULE_PATH/web-misc.rules<o:p></o:p></p>

<p class=MsoNormal>include $RULE_PATH/web-client.rules<o:p></o:p></p>

<p class=MsoNormal>include $RULE_PATH/web-php.rules<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>include $RULE_PATH/sql.rules<o:p></o:p></p>

<p class=MsoNormal>include $RULE_PATH/x11.rules<o:p></o:p></p>

<p class=MsoNormal>include $RULE_PATH/icmp.rules<o:p></o:p></p>

<p class=MsoNormal>include $RULE_PATH/netbios.rules<o:p></o:p></p>

<p class=MsoNormal>include $RULE_PATH/misc.rules<o:p></o:p></p>

<p class=MsoNormal>include $RULE_PATH/attack-responses.rules<o:p></o:p></p>

<p class=MsoNormal>include $RULE_PATH/oracle.rules<o:p></o:p></p>

<p class=MsoNormal>include $RULE_PATH/mysql.rules<o:p></o:p></p>

<p class=MsoNormal>include $RULE_PATH/snmp.rules<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>include $RULE_PATH/smtp.rules<o:p></o:p></p>

<p class=MsoNormal>include $RULE_PATH/imap.rules<o:p></o:p></p>

<p class=MsoNormal>include $RULE_PATH/pop2.rules<o:p></o:p></p>

<p class=MsoNormal>include $RULE_PATH/pop3.rules<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>include $RULE_PATH/nntp.rules<o:p></o:p></p>

<p class=MsoNormal>include $RULE_PATH/other-ids.rules<o:p></o:p></p>

<p class=MsoNormal> include $RULE_PATH/web-attacks.rules<o:p></o:p></p>

<p class=MsoNormal># include $RULE_PATH/backdoor.rules<o:p></o:p></p>

<p class=MsoNormal># include $RULE_PATH/shellcode.rules<o:p></o:p></p>

<p class=MsoNormal> include $RULE_PATH/policy.rules<o:p></o:p></p>

<p class=MsoNormal> include $RULE_PATH/porn.rules<o:p></o:p></p>

<p class=MsoNormal> include $RULE_PATH/info.rules<o:p></o:p></p>

<p class=MsoNormal> include $RULE_PATH/icmp-info.rules<o:p></o:p></p>

<p class=MsoNormal> include $RULE_PATH/virus.rules<o:p></o:p></p>

<p class=MsoNormal> include $RULE_PATH/chat.rules<o:p></o:p></p>

<p class=MsoNormal> include $RULE_PATH/multimedia.rules<o:p></o:p></p>

<p class=MsoNormal> include $RULE_PATH/p2p.rules<o:p></o:p></p>

<p class=MsoNormal> include $RULE_PATH/spyware-put.rules<o:p></o:p></p>

<p class=MsoNormal> include $RULE_PATH/specific-threats.rules<o:p></o:p></p>

<p class=MsoNormal>include $RULE_PATH/experimental.rules<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal># Include any thresholding or suppression commands. See
threshold.conf in the<o:p></o:p></p>

<p class=MsoNormal># <snort src>/etc directory for details. Commands
don't necessarily need to be<o:p></o:p></p>

<p class=MsoNormal># contained in this conf, but a separate conf makes it
easier to maintain them. <o:p></o:p></p>

<p class=MsoNormal># Note for Windows users:  You are advised to make this
an absolute path,<o:p></o:p></p>

<p class=MsoNormal># such as:  c:\snort\etc\threshold.conf<o:p></o:p></p>

<p class=MsoNormal># Uncomment if needed.<o:p></o:p></p>

<p class=MsoNormal> include c:\snort\etc\threshold.conf<o:p></o:p></p>

</div>

</body>

</html>