auto-explicativo com as opções que estão sendo usadas.
#/etc/snort/snort.conf
#Autor:Douglas Q. dos Santos
#Data:10/03/2010
#Arquivo de configuração do Snort
#Uma rede ou uma lista de redes que identificaram a rede interna ou a DMZ que será monitorada
var HOME_NET [192.168.0.0/24,200.200.200.200/29]
#Especifica as redes externas. Será utilizada pela maioria das regras para determinar o atacante
#var EXTERNAL_NET any
var EXTERNAL_NET !$HOME_NET
#Especifica os servidores de DNS
var DNS_SERVERS $HOME_NET
#Especifica os servidores de SMTP servidores de Emails
var SMTP_SERVERS $HOME_NET
#Especifica os servidores WEB
var HTTP_SERVERS $HOME_NET
#Especifica a porta que o servidor WEB trabalha
var HTTP_PORTS 80 3000 3128 8080 9090
#Especifica as portas em que a execução remota de código deve ser monitorada
var SHELLCODE_PORTS !$HTTP_PORTS
#Especifica os servidores SQL
var SQL_SERVERS $HOME_NET
#Especifica os servidores ORACLE
var ORACLE_PORTS 1521
#Especifica os servidores de TELNET
var TELNET_SERVERS $HOME_NET
#Especifica os servidores de SNMP
var SNMP_SERVERS $HOME_NET
#Especifica os servidores AIM da AOL
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]
#Indica o caminho onde estarão as regras utilizadas pelo Snort
var RULE_PATH /etc/snort/rules
#Define que a biblioteca dinâmica de pré-processador deve ser carregada
dynamicpreprocessor directory /usr/lib/snort_dynamicpreprocessor/
#Define que a biblioteca dinâmica de engine de detecção deve ser carregada
dynamicengine /usr/lib/snort_dynamicengine/libsf_engine.so
#Preprocessadores são aplicações que fazem uma pré-analise e filtragem dos pacotes antes de enviar os dados para o conjunto de regras
#Preprocessador de monitoramento de fluxo, detector de portscan
preprocessor flow: stats_interval 0 hash 2
#Preprocessor frag3 desfragmenta pacotes IP antes de envia-los para a analise do conjunto de regras
#O objetivo de desfragmentar os pacotes e impedir que o atacante possa usar técnicas de evasão através da construção de pacotes com múltiplos fragmentos
#para realizar ataques que não possam ser detectados pelo IDS.
#max_frags método de gerenciamento de memória que define o numero máximo de fragmentos que serão rastreados simultaneamente.
preprocessor frag3_global: max_frags 65536
#Policy define a política de fragmentação utilizada pelo sistema operacional
#Os valores podem ser first,last,bsd,bsd-right e Linux
#detect_anomalies:detecta anomalias em fragmentos.
preprocessor frag3_engine: policy first detect_anomalies
#Stream5 efetua a reconstrução e o rastreamento de conexões TCP e UDP, além de monitorar pacotes ICMP.
#permite ao Snort detectar ataques sem estado de conexão (stateless) e também gera alerta sobre conexões forjadas
#max_tcp:define o numero máximo de sessões TCP simultâneas que podem ser rastreadas.
#track_tcp:ativa o rastreamento de sessões TCP
#track_dup:ativa o rastreamento de sessões UDP
#track_icmp:ativa o rastreamento de sessões ICMP
preprocessor stream5_global: max_tcp 8192, track_tcp yes, track_udp yes, track_icmp yes
#policy: define a política utilizada pelo sistema operacional-alvo.
#use_static_footprint_sizes:emula o ambiente do pré-processador stream4 para o processo de remontagem do pacote.
preprocessor stream5_tcp: policy first, use_static_footprint_sizes
preprocessor stream5_udp: timeout 30, ignore_any_rules
preprocessor stream5_icmp: timeout 30
#Preprocesso http_inspect o seu principal objetivo e impedir que técnicas de evasão através do protocolo HTTP surtam efeito
#ira operar tanto em requisições de clientes quanto em resposta de servidores
#iis_unicode_map:informa o arquivo de mapa de códigos do IIS, seguido do tipo de codificação de caracteres 1252 corresponde ao padrão
#detect_anomalous_servers:habilita a detecção de tráfego http
preprocessor http_inspect: global iis_unicode_map unicode.map 1252 detect_anomalous_servers
#Preprocessor http_inspect_server:define o perfil do servidor WEB
#ports:Define em quais portas será realizada a decodificação de dados HTTP
#flow_depth:define a quantidade de dados que devem ser inspecionados em pacotes relacionados a respostas de servidores algo entre 150-300
#directory:opcao que normaliza diretórios com referencias cruzadas
#ascci:permite a decodificação de códigos ASCII
#utf_8:permite a decodificai de códigos UTF8 habilite esta opção se estiver utilizando servidores Apache
#bare_bytes:habilita a interpretação de codificação de Bare byte usado pelo IIS se tiver servidores IIS pode habilitar
#double_decode:faz duas varreduras seguidas em uma URI, realizando o processo de decodificação em ambas. especifica para IIS
#u_encode:emula o esquema %u usado pelo IIS, que tem o %u mais 4 caracteres que representam um caracter ASCII
#multi_slash:normaliza múltiplas barras em uma linha. algo como eu/////////eu será normalizado para eu/eu
#chunk_length:finalidade e detectar uma anomalia utilizada por vários exploits do Apache. também alerta sobre tunelamento via HTTP.
#non_strict:assume que a URI esta entre o primeiro e o segundo espaço em branco. EX:GET /index.html alallala\n como e o caso do apache
#iis_unicode:permite o mapeamento de codepoints Unicode. Esses codepoints são aceitos pelo IIS para decodificação de requisições UTF9
#iis_backslash:converte contra-barras '\' em '/'. também uma emulação para o IIS
#iis_delimiter: trata o delimitador \n o IIS e o Apache suporta
#webroot:alerta quando uma referencia cruzada de diretório tenta transpassar o diretório raiz do servidor HTTP.
#pode detectar um atacante tentando acessar arquivos ou diretórios fora do diretório onde residem as paginas de um site
preprocessor http_inspect_server: server default \
ports { 80 3128 8080 3000 8080 9090 } \
flow_depth 200 \
directory no \
ascii no \
utf_8 no \
bare_byte yes \
double_decode no \
u_encode yes \
multi_slash yes \
chunk_length 500000 \
non_strict \
iis_unicode no \
iis_backslash yes \
iis_delimiter yes \
webroot yes
#Preprocessor rpc_decode: criado para agregar múltiplos registros do protocolo rpc que estejam fragmentados em um único registro.
#Os números determinam as portas do serviço rpc elas tem que estar separadas por espaço
#Alert_fragments:habilita a geração de alertas quando forem encontrados registros RPC fragmentados
preprocessor rpc_decode: 111 32771 alert_fragments
#bo: tenta detectar tráfego de rede gerado pelo exploit back Orifice.
# utilizando por atacantes para realizar a administração remote de equipamentos Windows
preprocessor bo: noalert { general server } drop { snort_attack }
#ftp_telnet:provê a inspeção de conexões FTP e TELNET. ele pode decodificar uma conexão, identificar comandos FTP e sequências
#de escape usadas pelo protocolo TELNET
#encrypted_traffic:habilita a detecção e geração de alertas quando for encontrado tráfego encriptado em canais de comando telnet e ftp.
#inspection_type:indica se o modo de inspeção será stateful(default) ou stateless
#stateful: faz a analise por conexão, assim e capaz de remontar as cadeias TCP desses protocolos
#stateless: faz a analise pacote a pacote, neste caso, não remonta as cadeias.
preprocessor ftp_telnet: global encrypted_traffic yes inspection_type stateful
#configuracoes especificas do protocolo telnet
#normalize:habilita a normalização de tráfego Telnet através da eliminação de sequências de escape.
#ayt_attack_thresh: gera alertas quando o numero informado de comandos de telnet consecutivos do tipo ayt(Are You There) e ultrapassado.
#so se aplica quando o modo de operação for stateful
#detect_anomalies:habilita a detecção de anomalias no protocolo telnet.
preprocessor ftp_telnet_protocol: telnet normalize ayt_attack_thresh 200 detect_anomalies
#preprocessor ftp_telnet_protocol lado servidor:
#ports: define em quais portas deve haver o monitoramento para decodificação de tráfego ftp
#def_max_param_len:define o valor padrão para o tamanho máximo de um comando ftp, usado para detectar overflow
#alt_max_param_len:define o tamanho máximo, em bytes para o comando ftp especificado.
#cmd_validity:especifica o formato valido para parâmetros de determinado comando.
#telnet_cmds: habilita a detecção e geração de alertas quando sequências de escape do protocolo telnet forem localizadas em um canal de comando ftp.
#data_chan:define que outros pre-processadores e regras irão ignorar conexões que contiverem canais de dados ftp.
preprocessor ftp_telnet_protocol: ftp server default ports { 20 21 } def_max_param_len 100 alt_max_param_len 200 { CWD } cmd_validity MODE < char ASBCZ > cmd_validity MDTM < [ date nnnnnnnnnnnnnn[.n[n[n]]] ] string > chk_str_fmt { USER PASS RNFR RNTO SITE MKD } telnet_cmds yes data_chan
#preprocessor ftp_telnet_protocol lado cliente:
#max_resp_len:define o tamanho máximo de uma resposta para um comando de FTP aceito. usado para detectar overflow.
#bounce:faz com que sejam verificados ataques do tipo FTP bounce nos comandos especificados.
#telnet_cmds:habilita a detecção e geração de alertas quando sequências de escape do protocolo telnet forem localizadas em um canal de comandos FTP.
preprocessor ftp_telnet_protocol: ftp client default max_resp_len 256 bounce yes telnet_cmds yes
#preprocessor smtp: decodifica um buffer de dados a procura de comandos e respostas SMTP.
#ele consegue marcar os comandos, o cabeçalho de dados e o corpo da mensagem e, ainda, as sessões TLS. Pode atuar stateful ou stateless
#ports: especifica quais portas serão verificadas a procura de dados smtp.
#inspection_type:informa o modo de operação (stateful ou stateless)
#normalize:habilita a normalização. ira pesquisar comandos que sejam seguidos de mais de um espaço em branco ou uma tabulação.
#(parâmetros de normalize:all:verifica todos os comandos,none:desabilita a normalização para todos os comandos,
#cmds:verifica apenas os comandos listados na opção normalize_cmds)
#max_header_line_len:gera alertas quando uma linha de comando STMP for maior que o valor especificado, o default e 1024 bytes
#normalize_cmds:normaliza os comandos contidos na lista. o default e {RCPT VRFY EXPN}
#alt_max_command_line_len:sobrescreve o valor de max_command_line_len para os comandos especificados
preprocessor smtp: ports { 25 } inspection_type stateful normalize cmds normalize_cmds { EXPN VRFY RCPT } max_header_line_len 1024 alt_max_command_line_len 260 { MAIL } alt_max_command_line_len 300 { RCPT } alt_max_command_line_len 500 { HELP HELO ETRN } alt_max_command_line_len 255 { EXPN VRFY }
#preprocessor sfportscan:detecta varreduras de portas em hosts na rede protegida.
#pode detectar praticamente todos os tipos de varreduras realizados pelo nmap ou outro portscanner.
#proto:define os protocolos que serão monitorados pelo pré-processador. opções validas tcp,udp,igmp,ip_proto e all
#memcap:define a quantidade de memória, em kilobytes, disponível para a operacao deste pré-processor
#sense_level:define o nivel de sensibilidade do pré-processador. os níveis disponíveis são:low,medium,high.
preprocessor sfportscan: proto { all } memcap { 10000000 } sense_level { low }
#preprocessor dcerpc:detecta e decodifica tráfego SMB e DCE/RPC.
#autodetect:ira ignorar a configuração de portas e examinara qualquer pacote a procura de tráfego SMB ou DCE/RCP.
#max_frag_size:define o tamanho máximo, em bytes, de um fragmento para remontado. o default e 3000
#memcap:define a quantidade de memória, em kilobytes, disponível para a operação deste pré-processor
preprocessor dcerpc: autodetect max_frag_size 3000 memcap 100000
#preprocessor ssh: tenta detectar alguns exploits usados em ataques contra o protocolo SSH.
#server_ports:especifica quais portas serão monitoradas por este preprocessador
#max_client_bytes:define a quantidade máxima de bytes aceitos, dentro do limite de pacotes estipulados pela opção max_encrypted_packets
#max_encrypted_packets:especifica o numero de pacotes sem resposta que serão aceitos antes de gerar alertas sobre ataques tipo bobbles ou crc32.
preprocessor ssh: server_ports { 22 3000 } max_client_bytes 19600 max_encrypted_packets 20
#preprocessor dns: detecta respostas de requisições feitas a servidores DNS a procura de exploits.
#ports:esta opção especifica as portas que serão inspecionadas pelo pré-processador.
#enable_rdata_overflow:verifica ataques de sobrecarga no cliente de DNS realizados pelo exploit RData TXT Overflow.
#gera alertas quando forem encontrados registros que se tornaram obsoletos segundo a RFC1035
preprocessor dns: ports { 53 } enable_rdata_overflow enable_obsolete_types
#Gera arquivo de log no formato utilizado pela libpcap que e o mesmo formato utilizado por outras aplicações como tcpdump e wireshark.
output log_tcpdump: tcpdump.log
#Envia os dados do Snort para o banco de dados.
output database: log, mysql,user=snort password=d0ug220903..h0j3 dbname=snort host=localhost
#Contem as informações que serão incluídas para especificar os níveis de risco definidos nas regras.
include classification.config
#define URL's a serem utilizadas com as referencias encontradas nas regras para obtenção de informações mais detalhadas sobre um determinado ataque
include reference.config
#Definição do conjunto de regras incluído com o Snort ira gerar alertas de atividades suspeitas encontradas em pacotes que estiverem
#trafegando entre as redes monitoradas
include $RULE_PATH/local.rules
include $RULE_PATH/bad-traffic.rules
include $RULE_PATH/exploit.rules
include $RULE_PATH/community-exploit.rules
include $RULE_PATH/scan.rules
include $RULE_PATH/finger.rules
include $RULE_PATH/ftp.rules
include $RULE_PATH/telnet.rules
include $RULE_PATH/rpc.rules
include $RULE_PATH/rservices.rules
include $RULE_PATH/dos.rules
include $RULE_PATH/community-dos.rules
include $RULE_PATH/ddos.rules
include $RULE_PATH/dns.rules
include $RULE_PATH/tftp.rules
include $RULE_PATH/web-cgi.rules
include $RULE_PATH/web-coldfusion.rules
include $RULE_PATH/web-iis.rules
include $RULE_PATH/web-frontpage.rules
include $RULE_PATH/web-misc.rules
include $RULE_PATH/web-client.rules
include $RULE_PATH/web-php.rules
include $RULE_PATH/community-sql-injection.rules
include $RULE_PATH/community-web-client.rules
include $RULE_PATH/community-web-dos.rules
include $RULE_PATH/community-web-iis.rules
include $RULE_PATH/community-web-misc.rules
include $RULE_PATH/community-web-php.rules
include $RULE_PATH/sql.rules
include $RULE_PATH/x11.rules
include $RULE_PATH/icmp.rules
include $RULE_PATH/netbios.rules
include $RULE_PATH/misc.rules
include $RULE_PATH/attack-responses.rules
include $RULE_PATH/oracle.rules
include $RULE_PATH/community-oracle.rules
include $RULE_PATH/mysql.rules
include $RULE_PATH/snmp.rules
include $RULE_PATH/community-ftp.rules
include $RULE_PATH/smtp.rules
include $RULE_PATH/community-smtp.rules
include $RULE_PATH/imap.rules
include $RULE_PATH/community-imap.rules
include $RULE_PATH/pop2.rules
include $RULE_PATH/pop3.rules
include $RULE_PATH/nntp.rules
include $RULE_PATH/community-nntp.rules
include $RULE_PATH/community-sip.rules
include $RULE_PATH/other-ids.rules
include $RULE_PATH/web-attacks.rules
include $RULE_PATH/backdoor.rules
include $RULE_PATH/community-bot.rules
include $RULE_PATH/community-virus.rules
include $RULE_PATH/experimental.rules
include threshold.conf