Raspberry Pi brandvägg och Intrusion Detection System (13 / 14 steg)

Steg 13: SNORT



Snort är en av de bästa öppen källkoden nätverk Intrusion Detection System (NIDS). Titta på paketen nyttolasten är vad kan inte göras av iptables effektivt (eller endast i mycket grundläggande former, genom att titta på strängar med den "-m strängen" modul). Snort ser djupare in paketen nyttolaster gör det möjligt att upptäcka skadlig trafik.

Det stora problemet här är att få igång på hallon med det är CPU och RAM begränsningar

Först måste vi installera det:

$ sudo pacman -S snort

För att krympa ner vi ska göra vår första ändringar:

$ sudo vi /etc/snort/snort.conf
# Steg 1: variabler
#########################################################################################################################
ipvar HOME_NET [192.168.1.0/24]
ipvar EXTERNAL_NET! $HOME_NET
ipvar DNS_SERVERS [192.168.1.3]
ipvar SMTP_SERVERS $HOME_NET
ipvar HTTP_SERVERS $HOME_NET
ipvar SQL_SERVERS $HOME_NET
ipvar TELNET_SERVERS $HOME_NET
ipvar FTP_SERVERS $HOME_NET
ipvar SIP_SERVERS $HOME_NET
portvar HTTP_PORTS 80
portvar ORACLE_PORTS 1024:
portvar FTP_PORTS [21,2100,3535]
portvar SIP_PORTS [5060,5061,5600]
portvar FILE_DATA_PORTS [$HTTP_PORTS, 110, 143]
ipvar SSH_SERVERS [192.168.1.3]
portvar SHELLCODE_PORTS! 80
portvar SSH_PORTS [22,15507]
portvar GTP_PORTS [2123,2152,3386]
ipvar 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]

var RULE_PATH /etc/snort/rules
var SO_RULE_PATH... /so_rules
var PREPROC_RULE_PATH... /preproc_rules
var WHITE_LIST_PATH $RULE_PATH
var BLACK_LIST_PATH $RULE_PATH

# Steg #2: Konfigurera dekodern. För mer information, se README.decode
#########################################################################################################################
config disable_decode_alerts
config disable_tcpopt_experimental_alerts
config disable_tcpopt_obsolete_alerts
config disable_tcpopt_ttcp_alerts
config disable_tcpopt_alerts
config disable_ipopt_alerts
config checksum_mode: alla

# Steg #3: Konfigurera bas upptäckten motor. För mer information, se README.decode
#########################################################################################################################
config pcre_match_limit: 3500
config pcre_match_limit_recursion: 1500

# Den här inställningen är mycket viktigt:
# "lowmem" som krävs för Snort att köra med lite minne
config upptäckt: search-metoden lowmem Sök-optimera max-mönster-len 20

config event_queue: max_queue 8 logga 3 order_events content_length
config paf_max: 16000

# Steg #4: Konfigurera dynamiska laddade bibliotek.
#########################################################################################################################
dynamicpreprocessor katalogen/usr/lib/snort_dynamicpreprocessor /
dynamicengine /usr/lib/snort_dynamicengine/libsf_engine.so

# Steg #5: Konfigurera förbehandling
#########################################################################################################################
preprocessor normalize_ip4
preprocessor normalize_tcp: ips ecn ström
preprocessor normalize_icmp4
preprocessor normalize_ip6
preprocessor normalize_icmp6
preprocessor frag3_global: max_frags 65536
preprocessor frag3_engine: politik windows detect_anomalies overlap_limit 10 min_fragment_length 100 timeout 180

# Målbaserade stateful inspection/stream återmontering. För mer information, se README.stream5
preprocessor stream5_global: track_tcp Ja, \
track_udp Ja, \
track_icmp nej, \
max_tcp 262144, \
max_udp 131072, \
max_active_responses 2, \
min_response_seconds 5
preprocessor stream5_tcp: politik windows, detect_anomalies, require_3whs 180, \
overlap_limit 10, small_segments 3 bytes 150, timeout 180, \
hamnar klienten 21 22 23 25 42 53 79 109 110 111 113 119 135 136 137 139 143 \
161 445 513 514 587 593 691 1433 1521 2100 3306 6070 6665 6666 6667 6668 6669 \
7000 8181 32770 32771 32772 32773 32774 32775 32776 32777 32778 32779, \
hamnar båda 80 81 311 443 465 563 591 593 636 901 989 992 993 994 995 1220 1414 1830 2301 2381 2809 3128 3702 4343 5250 7907 7001 7145 7510 7802 7777 7779 \
7801 7900 7901 7902 7903 7904 7905 7906 7908 7909 7910 7911 7912 7913 7914 7915 7916 \
7917 7918 7919 7920 8000 8008 8014 8028 8080 8088 8118 8123 8180 8243 8280 8800 8888 8899 9080 9090 9091 9443 9999 11371 55555
preprocessor stream5_udp: timeout 180

# HTTP normalisering och anomali upptäckt. För mer information, se README.http_inspect
preprocessor http_inspect: global iis_unicode_map unicode.map 1252 compress_depth 65535 decompress_depth 65535
preprocessor http_inspect_server: serverstandard \
http_methods {få POST sätta Sök MKCOL kopia flytta låsa låsa upp meddela POLL BCOPY BDELETE BMOVE länk AVLÄNKA alternativ huvud bort spår spår ansluta källa prenumerera UNSUBSCRIBE PROPFIND PROPPATCH BPROPFIND BPROPPATCH RPC_CONNECT PROXY_SUCCESS BITS_POST CCM_POST SMS_POST RPC_IN_DATA RPC_OUT_DATA RPC_ECHO_DATA} \
chunk_length 500000 \
server_flow_depth 0 \
client_flow_depth 0 \
post_depth 65495 \
oversize_dir_length 500 \
max_header_length 750 \
max_headers 100 \
max_spaces 0 \
small_chunk_length {10 5} \
hamnar {80 81 311 591 593 901 1220 1414 1830 2301 2381 2809 3128 3702 4343 5250 7001 7145 7510 7777 7779 8000 8008 8014 8028 8080 8088 8118 8123 8180 8181 8243 8280 8800 8888 8899 9080 9090 9091 9443 9999 11371 55555} \
non_rfc_char {0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07} \
enable_cookie \
extended_response_inspection \
inspect_gzip \
normalize_utf \
unlimited_decompress \
normalize_javascript \
apache_whitespace ingen \
ASCII ingen \
bare_byte ingen \
Katalog nr \
double_decode ingen \
iis_backslash ingen \
iis_delimiter ingen \
iis_unicode ingen \
multi_slash ingen \
utf_8 ingen \
u_encode ja \
Webroot ingen

# ONC-RPC normalisering och anomali upptäckt. För mer information, se Snort Manual, konfigurera Snort - förbehandling - RPC avkoda
preprocessor rpc_decode: 111 32770 32771 32772 32773 32774 32775 32776 32777 32778 32779 no_alert_multiple_requests no_alert_large_fragments no_alert_incomplete

# Back Orifice upptäckt.
preprocessor bo

# FTP / Telnet normalisering och anomali upptäckt. För mer information, se README.ftptelnet
preprocessor ftp_telnet: global inspection_type stateful encrypted_traffic ingen
preprocessor ftp_telnet_protocol: telnet \
ayt_attack_thresh 20 \
normalisera hamnar {23} \
detect_anomalies
preprocessor ftp_telnet_protocol: ftp serverstandard \
def_max_param_len 100 \
portar {21 2100 3535} \
telnet_cmds ja \
ignore_telnet_erase_cmds ja \
ftp_cmds {abort ACCT ADAT ALLO APPE AUTH CCC CDUP} \
ftp_cmds {CEL CLNT CMD CONF CWD DELE ENC EPRT} \
ftp_cmds {EPSV ESTA ESTP FEAT hjälpa LANG lista LPRT} \
ftp_cmds {LPSV MACB MAIL MDTM MIC MKD MLSD MLST} \
ftp_cmds {läge NLST NOOP alternativ PASS PASV PBSZ PORT} \
ftp_cmds {PROT PWD sluta REIN resten RETR RMD RNFR} \
ftp_cmds {RNTO SDUP webbplatsen storlek SMNT STAT STOR STOU} \
ftp_cmds {h SYST TEST typ användaren XCUP XCRC XCWD} \
ftp_cmds {XMAS XMD5 XMKD XPWD XRCP XRMD XRSQ XSEM} \
ftp_cmds {XSEN XSHA1 XSHA256} \
alt_max_param_len 0 {abort CCC CDUP ESTA FEAT LPSV NOOP PASV PWD sluta REIN STOU SYST XCUP XPWD} \
alt_max_param_len 200 {ALLO APPE CMD hjälpa NLST RETR RNFR STOR STOU XMKD} \
alt_max_param_len 256 {CWD RNTO} \
alt_max_param_len 400 {PORT} \
alt_max_param_len 512 {storlek} \
chk_str_fmt {ACCT ADAT ALLO APPE AUTH CEL CLNT CMD} \
chk_str_fmt {CONF CWD DELE ENC EPRT EPSV ESTP hjälpa} \
chk_str_fmt {LANG lista LPRT MACB MAIL MDTM MIC MKD} \
chk_str_fmt {MLSD MLST läge NLST alternativ passera PBSZ PORT} \
chk_str_fmt {PROT resten RETR RMD RNFR RNTO SDUP webbplatsen} \
chk_str_fmt {storlek SMNT STAT STOR h typ TESTANVÄNDARE} \
chk_str_fmt {XCRC XCWD XMAS XMD5 XMKD XRCP XRMD XRSQ} \
chk_str_fmt {XSEM XSEN XSHA1 XSHA256} \
cmd_validity ALLO < int [char R int] > \
cmd_validity EPSV < [{röding 12 | char en char L char L}] > \
cmd_validity MACB < sträng > \
cmd_validity MDTM < [datum nnnnnnnnnnnnnn [.n [n [n]]]] sträng > \
cmd_validity läge < char ASBCZ > \
cmd_validity PORT < host_port > \
cmd_validity PROT < char CSEP > \
cmd_validity h < char FRPO [sträng] > \
cmd_validity typ < {char AE [char NTC] | char jag | char L [nummer]} >
preprocessor ftp_telnet_protocol: ftp klienten standard \
max_resp_len 256 \
studsa ja \
ignore_telnet_erase_cmds ja \
telnet_cmds Ja
# SMTP normalisering och anomali upptäckt. Mer information finns i README. SMTP
preprocessor smtp: portar {25 465 587 691} \
inspection_type stateful \
b64_decode_depth 0 \
qp_decode_depth 0 \
bitenc_decode_depth 0 \
uu_decode_depth 0 \
log_mailfrom \
log_rcptto \
log_filename \
log_email_hdrs \
normalisera cmds \
normalize_cmds {ATRN AUTH BDAT SPALTNING DATA DEBUG EHLO EMAL Cecilia ESND ESOM ETRN EVFY} \
normalize_cmds {EXPN HELO hjälpa IDENT MAIL NOOP ONEX QUEU sluta RCPT RSET SAML skicka SOML} \
normalize_cmds {STARTTLS tickande tid tur TURNME VERB VRFY X-ADAT X-DRCP X-ERCP X-EXCH50} \
normalize_cmds {X-EXPS X-LINK2STATE XADR XAUTH XCIR XEXCH50 XGEN XLICENSE XQUE XSTA XTRN XUSR} \
max_command_line_len 512 \
max_header_line_len 1000 \

max_response_line_len 512 \
alt_max_command_line_len 260 {e} \
alt_max_command_line_len 300 {RCPT} \
alt_max_command_line_len 500 {hjälpa HELO ETRN EHLO} \
alt_max_command_line_len 255 {EXPN VRFY ATRN storlek BDAT DEBUG EMAL Cecilia ESND ESOM EVFY IDENT NOOP RSET} \
alt_max_command_line_len 246 {skicka SAML SOML AUTH tur ETRN DATA RSET sluta ONEX QUEU STARTTLS tickande tid TURNME VERB X-EXPS X-LINK2STATE XADR XAUTH XCIR XEXCH50 XGEN XLICENSE XQUE XSTA XTRN XUSR} \
valid_cmds {ATRN AUTH BDAT SPALTNING DATA DEBUG EHLO EMAL Cecilia ESND ESOM ETRN EVFY} \
valid_cmds {EXPN HELO hjälpa IDENT MAIL NOOP ONEX QUEU sluta RCPT RSET SAML skicka SOML} \
valid_cmds {STARTTLS tickande tid tur TURNME VERB VRFY X-ADAT X-DRCP X-ERCP X-EXCH50} \
valid_cmds {X-EXPS X-LINK2STATE XADR XAUTH XCIR XEXCH50 XGEN XLICENSE XQUE XSTA XTRN XUSR} \
xlink2state {aktiverat}

# Portscan upptäckt. För mer information, se README.sfportscan
# preprocessor sfportscan: proto {alla} memcap {10000000} sense_level {låg}

# ARP spolat upptäckt. För mer information, se Snort Manual - konfigurera Snort - förbehandling - ARP spolat Preprocessor
# preprocessor arpspoof
# preprocessor arpspoof_detect_host: 192.168.40.1 f0:0f:00:f0:0f:00

# SSH anomali upptäckt. För mer information, se README.ssh
preprocessor ssh: server_ports {22 15507} \
Autodetektera \
max_client_bytes 19600 \
max_encrypted_packets 20 \
max_server_version_len 100 \
enable_respoverflow enable_ssh1crc32 \
enable_srvoverflow enable_protomismatch

# SMB / DCE-RPC normalisering och anomali upptäckt. För mer information, se README.dcerpc2
preprocessor dcerpc2: memcap 102400, händelser [co]
preprocessor dcerpc2_server: standard politik WinXP, \
upptäcka [smb [139,445], tcp 135, UDP-135, rpc-över-http-server 593], \
Autodetektera [tcp 1025:, udp 1025:, rpc-över-http-server 1025:], \
smb_max_chain 3, smb_invalid_shares ["C$", "D$", "ADMIN$"]

# DNS anomali upptäckt. För mer information, se README.dns
preprocessor dns: portar {53} enable_rdata_overflow

# SSL anomali upptäckt och trafik förbi. För mer information, se README.ssl
preprocessor ssl: portar {443 465 563 636 989 992 993 994 995 7801 7802 7900 7901 7902 7903 7904 7905 7906 7907 7908 7909 7910 7911 7912 7913 7914 7915 7916 7917 7918 7919 7920}, trustservers, noinspect_encrypted

# SDF känsliga data preprocessor. För mer information se README.sensitive_data
preprocessor sensitive_data: alert_threshold 25

# Modbus preprocessor. För mer information se README.modbus
preprocessor modbus: portar {502}

# DNP3 preprocessor. För mer information se README.dnp3
preprocessor dnp3: portar {20000} \
memcap 262144 \
check_crc

# Rykte preprocessor. För mer information se README.reputation
preprocessor rykte: \
memcap 500, \
prioriterade vitlista, \
nested_ip inre, \
vitlista $WHITE_LIST_PATH/white_list.rules, \
svarta listan $BLACK_LIST_PATH/black_list.rules

# Steg #6: Konfigurera utdata plugins
#########################################################################################################################
inkludera classification.config
inkludera reference.config

# Steg #7: Anpassa din regeluppsättningen
#########################################################################################################################
inkludera $RULE_PATH/local.rules
# Minimiregler för hem NIDS (6 filer)
inkludera $RULE_PATH/attack-responses.rules
inkludera $RULE_PATH/backdoor.rules
inkludera $RULE_PATH/botnet-cnc.rules
inkludera $RULE_PATH/spyware-put.rules
inkludera $RULE_PATH/virus.rules
inkludera $RULE_PATH/web-client.rules

# Ytterligare regler (15 filer)
inkludera $RULE_PATH/bad-traffic.rules
inkludera $RULE_PATH/ddos.rules
inkludera $RULE_PATH/dns.rules
inkludera $RULE_PATH/dos.rules
inkludera $RULE_PATH/exploit.rules
inkludera $RULE_PATH/ftp.rules
inkludera $RULE_PATH/netbios.rules
inkludera $RULE_PATH/p2p.rules
inkludera $RULE_PATH/phishing-spam.rules
inkludera $RULE_PATH/rpc.rules
inkludera $RULE_PATH/scan.rules
inkludera $RULE_PATH/shellcode.rules
inkludera $RULE_PATH/smtp.rules
inkludera $RULE_PATH/specifika-threats.rules
inkludera $RULE_PATH/telnet.rules

## TOTALT filer = 21 filer att ladda

# Andra funktionshindrade filer: passar dig
#include $RULE_PATH/blacklist.rules
#include $RULE_PATH/pop3.rules
#include $RULE_PATH/rservices.rules
#include $RULE_PATH/scada.rules
#include $RULE_PATH/snmp.rules
#include $RULE_PATH/sql.rules
#include $RULE_PATH/tftp.rules
#include $RULE_PATH/voip.rules
#include $RULE_PATH/web-activex.rules
#include $RULE_PATH/web-attacks.rules
#include $RULE_PATH/web-cgi.rules
#include $RULE_PATH/web-coldfusion.rules
#include $RULE_PATH/web-frontpage.rules
#include $RULE_PATH/web-iis.rules
#include $RULE_PATH/web-misc.rules
#include $RULE_PATH/web-php.rules
#include $RULE_PATH/x11.rules

###################################################
# Steg #8: Anpassa aviseringarna preprocessor och dekoder
# För mer information, se README.decoder_preproc_rules
###################################################

# dekoder och regler för preprocessor event
# include $PREPROC_RULE_PATH/preprocessor.rules
# include $PREPROC_RULE_PATH/decoder.rules
# include $PREPROC_RULE_PATH/känsliga-data.rules

###################################################
# Steg #9: Anpassa din delade objekt Snort regler
# För mer information, se http://vrt-sourcefire.blogspot.com/2009/01/using-vrt-certified-shared-object-rules.html
###################################################

# dynamiska bibliotek regler
# include $SO_RULE_PATH/bad-traffic.rules
# include $SO_RULE_PATH/chat.rules
# include $SO_RULE_PATH/dos.rules
# include $SO_RULE_PATH/exploit.rules
# include $SO_RULE_PATH/icmp.rules
# include $SO_RULE_PATH/imap.rules
# include $SO_RULE_PATH/misc.rules
# include $SO_RULE_PATH/multimedia.rules
# include $SO_RULE_PATH/netbios.rules
# include $SO_RULE_PATH/nntp.rules
# include $SO_RULE_PATH/p2p.rules
# include $SO_RULE_PATH/smtp.rules
# include $SO_RULE_PATH/snmp.rules
# include $SO_RULE_PATH/specifika-threats.rules
# include $SO_RULE_PATH/web-activex.rules
# include $SO_RULE_PATH/web-client.rules
# include $SO_RULE_PATH/web-iis.rules
# include $SO_RULE_PATH/web-misc.rules

# Händelse tröskelvärde eller dämpning kommandon. Se threshold.conf
inkludera threshold.conf

#include $RULE_PATH/chat.rules
#include $RULE_PATH/innehåll-replace.rules
#include $RULE_PATH/fil-identify.rules
#include $RULE_PATH/finger.rules
#include $RULE_PATH/icmp.rules
#include $RULE_PATH/icmp-info.rules
#include $RULE_PATH/imap.rules
#include $RULE_PATH/info.rules
#include $RULE_PATH/misc.rules
#include $RULE_PATH/multimedia.rules
#include $RULE_PATH/mysql.rules
#include $RULE_PATH/nntp.rules
#include $RULE_PATH/oracle.rules
#include $RULE_PATH/other-ids.rules
#include $RULE_PATH/policy.rules
#include $RULE_PATH/pop2.rules

Vi agerar på tre saker för att hjälpa snortar använda mindre CPU och minne:
-Laddar mindre förbehandling
-Laddar mindre regler
-"lowmem" parametern

Som standard har Snort inte någon regel. Du måste registrera dig på https://www.snort.org/signup som fri förbrukaren för att kunna ladda ner gratis snort reglerna (en månad gammal). Aktuell rulesets kräver för att betala licens.

När du registrerat dig, kommer att du behöva generera en "OinkCode", som ger dig möjlighet att ladda ner senaste gratis regeluppsättning. Till gör så, då du få aktiveringsmail, gå till webbplatsen logging, "Få regeln", "Command Line", "Få en Oinkcode", klicka på "Generera kod".

När du har det, kan du hämta regeluppsättning VERSION tillgänglig (ersätta det i kommandoraden nedan, t.ex.: 2923):
$ cd/home/rss
$ wget http://www.snort.org/reg-rules/snortrules-snapshot-VERSION.tar.gz/oinkcode - O./snortrules-snapshot-VERSION.tar.gz

Naturligtvis ersätta strängen ovan "oinkcode" av det du just skapat.
$ tar zxpvf./snortrules-snapshot-VERSION.tar.gz
$ sudo mv ./preproc_rules//etc/snort /
$ sudo mv. /rules//etc/snort /
$ sudo mv ./so_rules//etc/snort /

Skapa två filer Snort kommer att förvänta sig:
$ touch /etc/snort/rules/white_list.rules
$ touch /etc/snort/rules/black_list.rules

Kolla den Snort versionen installerad:
$ sudo snort-version

Nu skapar vi en testet notifieringsregel:
$ sudo vi /etc/snort/rules/local.rules
varna icmp någon någon -> $HOME_NET alla (msg: "ICMP-test", sid: 10000001;)

Kontrollera att Snorts konfigurationen är korrekt innan du gör något (-T parameter):
$ sudo snort - en konsol - q -u snort -g snort - c /etc/snort/snort.conf -i eth0 -T

Allt bör vara ok, om inte, kontrollera tillbaka /etc/snort.conf för att kontrollera dina variabler (undernät, hamnar och vägar).

Vi kan göra nu ett verkligt test, starta Snort i Konsolläge och kontrollera om Snort körs och om vår varning visas på skärmen:
$ sudo snort - en konsol - q -u snort -g snort - c /etc/snort/snort.conf -i eth0

Starta manuellt "ping" kommandon från en datorns LAN till hallon, det ska utlösa en notifiering (CTRL + C för att avbryta testet). Om allt fungerar nu, skulle kunna vi vara frestad att säga det är vann, men det är inte :-)

Nästa logiska steg är att kontrollera Snort startkonfigurationen för nästa gång du kommer att starta:
$ sudo vi /etc/conf.d/snort
# Där är filen snort.conf.
SNORT_CONF="/etc/snort/snort.conf"

# Vad användarkonto ska vi köra.
USER = "snorta"

# Vad gruppkonto bör vi köra.
GRUPP = "snorta"

# definiera gränssnittet vi lyssna på
INTERFACE = "eth0"

# Om du använder förspel, ta bort den '-en snabb "alternativet
SNORT_OPTIONS = "-en snabb -b -D -p"

Allt verkar ok, så låt oss göra en verklig test genom att köra Snort i daemon läge (-D parameter):
$ sudo snort - en konsol - q -u snort -g snort - c /etc/snort/snort.conf -i eth0 -D

Det kraschar med felet "gaffel: kan inte allokera minne".

Jag kunde inte räkna ut först varför Snort skulle köra ok samtidigt inte i daemon, men skulle inte fungera annars. Jag spelade med /etc/security/limits.conf till ingen nytta, tror det var någon form av minne allokeringsbegränsning.

Men när du kör igen Snort som en användarprocess, inte som daemon, märkte jag i "htop" att Snort anslagit virtuellt minne (mer än 290MB) medan jag inte har någon swap-fil! Jag tänkt då det var ett bra spår att följa, och genom archlinuxarm documentation, skapas en swap-fil:
$ sudo dd om = / dev/zero of=/swapfile.img bs = 1M count = 512
$ sudo mkswap /swapfile.img
$ sudo swapon /swapfile.img

512MB verkar tillräckligt när det gäller vad Snort försöker fördela. Också, det är inte rekommenderat på en flash media, SD-kortet, att skapa en växlingsfil, som mer skriver kommer att ske till media, förkorta sin livstid. Tanken här är att tillåta Snort att tilldela minne, men hoppas att det inte i själva verket behöver det (vi funktionshindrade många preprocessor och regler, minns).

Nu, Snort bör köra med framgång:
$ sudo snort - en konsol - q -u snort -g snort - c /etc/snort/snort.conf -i eth0 -D

Grattis. Också, du kan märka i htop att Snort faktiskt inte använder något virtuellt minne, det bara fördelas det, vilket är vad vi ville.

Låt oss lösa detta genom att först aktivera swappen vid start:
$ sudo vi/etc/fstab
# lägga detta på slutet
/swapfile.img ingen swap sw 0 0

Slutligen Lägg till Snort vid start:
$ sudo vi /etc/rc.conf
DAEMONS = (! hwclock syslog-ng network dnsmasq snort)

Starta om och kontrollera att Snort körs, så att varningen fortfarande regel utlöser:
$ sudo omstart
$ htop
$ sudo tail-f /var/log/snort/alert

Om allt är ok, kommentera din testregel:
$ sudo vi /etc/snort/rules/local.rules

Starta om Snort:
$ sudo rc.d starta om snort

När det gäller föreställningar, för en gemensam beter märker jag inte någon avmattning. När jag öppnar Google Chrome med 10 eller 15 flikar som alla försöker ladda på en gång, hallon CPU går till 100% för några sekunder, som 3 eller 4 sekunder, men snabbt går tillbaka till normal, med ingen märkbar avmattning i webbsida Laddar.

Jag tror dock när det gäller CPU användning när några nätverkstrafik händer, det laddar mer Snort regler eller preprocessor skulle hindra föreställningar. Jag tycker den nuvarande avvägning godtagbart när det gäller säkerhet/prestandan, för hemmabruk. Hur som helst, du kan spela med inställningar om du vill ha mer säkerhet.

Snorts regler uppdatering:

Om du inte vill betala något för att få tillgång till uppdaterade regler, blir tillgängliga gratis regler en månad gammal. Om emellertid du inte betala 30$ / år (personlig/home användning) för personliga prenumerationen, har du de mest aktuella reglerna för ett rimligt pris.

Logga in på ditt konto på snort.org och sedan gå till följande länk för att köpa din prenumeration om du vill ha senaste regler tillgängliga:
http://www.snort.org/VRT/Buy-a-Subscription

Nu, för att uppdatera våra snort regler, vi kommer att använda PulledPork. Kolla på deras hemsida om en nyare version har släppts sedan jag skrev denna artikel.

$ wget http://pulledpork.googlecode.com/files/pulledpork-0.6.1.tar.gz
$ tar zxpvf./pulledpork-0.6.1.tar.gz
$ sudo cp pulledpork-0.6.1/etc/*.conf/etc
$ sudo cp pulledpork-0.6.1/pulledpork.pl/usr/local/bin /

$ sudo vi /etc/pulledpork.conf
rule_url = https://www.snort.org/reg-rules/ |snortrules-snapshot.tar.gz|
Ignore=Deleted.Rules,experimental.Rules,Local.rules
temp_path = / tmp
out_path = / etc/snort/regler /
local_rules=/etc/snort/rules/Local.rules
sid_msg=/etc/snort/sid-MSG.map
sid_changelog=/var/log/sid_changes.log
snort_path = / usr/bin/snort
config_path=/etc/snort/snort.conf
Backup = / etc/snort
version = 0.6.0

Installera nödvändiga perl-modul för pulledpork:
$ sudo pacman -S göra
$ sudo pacman -S perl-libwww
$ sudo pacman -S perl-crypt-ssleay
$ sudo pacman -S perl-switch

Och nu Låt oss starta uppdateringen manuellt första:
$ sudo touch /etc/snort/sid-msg.map
$ sudo chown rss:snort /etc/snort/sid-msg.map
$ pulledpork.pl -k - c /etc/pulledpork.conf -K /etc/snort/rules -o /etc/snort/rules

Om du använder den betalda versionen, filerna regel börjar med "VRT-", måste du redigera snort.conf och ersätta reglerna laddar i slutet med:
$ sudo vi /etc/snort/snort.conf
# Minimiregler för hem NIDS (5 objekt)
# om med hjälp av licens version
inkludera $RULE_PATH/VRT-indikator-compromise.rules
inkludera $RULE_PATH/VRT-backdoor.rules
inkludera $RULE_PATH/VRT-botnet-cnc.rules
inkludera $RULE_PATH/VRT-spyware-put.rules
inkludera $RULE_PATH/VRT-web-client.rules

# Ytterligare regler (15 filer)
# om med hjälp av licens version
inkludera $RULE_PATH/VRT-bad-traffic.rules
inkludera $RULE_PATH/VRT-ddos.rules
inkludera $RULE_PATH/VRT-dns.rules
inkludera $RULE_PATH/VRT-dos.rules
inkludera $RULE_PATH/VRT-exploit.rules
inkludera $RULE_PATH/VRT-ftp.rules
inkludera $RULE_PATH/VRT-netbios.rules
inkludera $RULE_PATH/VRT-pua-p2p.rules
inkludera $RULE_PATH/VRT-phishing-spam.rules
inkludera $RULE_PATH/VRT-rpc.rules
inkludera $RULE_PATH/VRT-scan.rules
inkludera $RULE_PATH/VRT-shellcode.rules
inkludera $RULE_PATH/VRT-smtp.rules
inkludera $RULE_PATH/VRT-specifika-threats.rules
inkludera $RULE_PATH/VRT-telnet.rules

Vi måste starta om Snort:
$ sudo rc.d stop snort
$ sudo rc.d start snort

Nu låt oss skapa en aktivitet för att köra pulledpork automatiskt:
$ crontab -e
# Uppdatera Snort regler varje söndag kl 12h 30
30 12 ** 0 /usr/local/bin/pulledpork.pl -k - c /etc/pulledpork.conf -K /etc/snort/rules -o /etc/snort/rules

# Uppdatera Snort regler varje onsdag kl 21h 00
00 21 ** 3 /usr/local/bin/pulledpork.pl -k - c /etc/pulledpork.conf -K /etc/snort/rules -o /etc/snort/rules

Dessa är exempel, jag gillar att planera två uppdateringar per vecka, men du kan ändra detta. Kom ihåg dock att det inte vore klokt att schemalägga uppdateringen alltför ofta som den använder 100% CPU för mer än 5 minuter, och att en liten swap används alltför (4-5MB).

Det är det, du har nu en fullt ut arbetande Snort!

Se Steg
Relaterade Ämnen

Hem-Intrusion Detection System

Detta är min första instuctable. Jag var ute efter för att skapa mitt hemnätverk intrusion detection system på en VM och kunde inte hitta några instruktioner på hur man gör detta. Så jag skapade mitt eget och hoppas att det hjälper vissa av er ut. Ja...

Automatisering av låsning system och Intrusion Detection In bostäder

InternetSaker är tekniken som sakta kommer och vinner terräng inom telekombranschen. Här har vi försökt att skapa ett säkerhetssystem som kontrolleras av Internet. Syftet med projektet var att utveckla en web program/verktyg som ger användaren tillgå...

Bluetooth vatten Detection System

Någonsin finner dig själv i denna situation...Det har hänt mig. Men oroa dig inte mer med detta vatten detection system som är kul att bygga och kan rädda du några $$$ när VVS byster.Detta exempel visar hur du använder nod-röd på en RaspberryPi för a...

HACCSY - Hackerspace åtkomstkontroll och checka in System

HACCSY abreviation står för Hackerspace Access Control och checka in System och det är ganska mycket vad den gör.HACCSY app är tänkt att köra på en RaspberryPi som är ansluten till internet och elektriska strike låsa ytterdörren. Det gör jobbet enkel...

LPG / Biogas Detection System med MediaTek LinKIt en

LinKIt en utvecklingsplattform har konstruerats och lanserades av MediaTek Labs med litet footprint, som möjliggör skapandet av kläder och IoT enheter, med rika anslutningsmöjligheter. Instructables HQ har seedade cirka 250 medlemmar med LinKIt en st...

Lie Detection System

Lie detection, kallas även bedrägeri upptäckt, använder förhör tekniker tillsammans med teknik som registrerar fysiologiska funktioner för att förvissa sig om sanning och lögn i svar• En lie detection system görs med olika simulerade medicinska senso...

Enklaste ebb och flod hydroponics system någonsin! Modulära, drivs av luftpump.

Ebb och flod hydroponiska system behöver noggrann utformning och en ganska dyr pump. Detta är ett billigare enklare alternativ som använder en luftpump för att skapa ebb och flow i stället. Det är förmodligen mer justerbar och mycket mer anpassningsb...

Dagis övervakning och spårning System med Intel Edison Development Kit

Vi har byggt ett dagis övervakning och spårning system med Intel Edison styrelsen tillsammans med Bluetooth låg energi (BLE) enheter och en USB-kamera. Det är en demonstration av hur lätt Intel Edison DevKit kan användas för att bygga en lösning till...

SMART CAR och SMART parkering SYSTEM

Detta instructable är den skriftliga versionen av min "Arduino: hur till bygga en skarp bil och SMART parkering SYSTEM"Robotics är en del av dagens meddelande. I dagensvärlden robotics är en snabbväxande och intressanta området. Är det enklaste...

Nya K'nex berg-och dalbana Propulsion System

Detta är ett nytt K'nex berg-och dalbana propulsion system som använder 2 hjul istället för att använda en kedja. Mycket practicle. Dessa steg visar dig hur man bygger den huvudsakliga delen, då du lägger till din berg-och dalbana. Den använder 2 mot...

Raspberry Pi media player och arbete stationen med en integrerad högtalare

En mängd olika ramar för Raspberry Pi pekskärmen är kommersiellt tillgängliga och publicerade. De flesta av dessa lösningar är tyst, saknas en aktiv högtalare. Adafruit har nyligen släppt en utbrytning ett I2S DAC & förstärkare whichworks bra med en...

Raspberry Pi fotocell log och alert system

detta är ett enkelt instructable för att göra en RasPi-baserade photosensor-utlöst alert och loggning system som enkelt kan utökas för att visa möjliga posterna in i ett rum som en garderob eller utrustning skåp som är oftast mörkt, eller att övervak...

DIY mänskliga DETECTION SYSTEM och larm (ingen arduino)

DET HÄNDER ALLTID NÄR DU ÄR I RUMMET OCH NÅGON KOMMER IN I DITT HUS ELLER SHOPPA UTAN ATT ANMÄLAN... HAN kan vara en tjuv.. .så här är lösningen där du är graden av ett larmsystem när någon rörelse detekteras. (Mindre än 10 minuter projekt) SÅ LÅT OS...

Bygga din första IOT med en Raspberry Pi, DHT11 sensor och Thingspeak.

Sakernas Internet eller Internet of Things är ett hett ämne! Enligt experterna allt kommer att vara ansluten till internet och alla våra enheter och deras data snart kommer bara en IP-adress från oss. Så var börjar du om du vill utforska världen av S...

Raspberry Pi DMX Controller och Pure Data: en animerad lågan konst Installation

Att ha önskade att fungera med en Raspberry Pi sedan de kom ut, var det mycket spännande när en vän Jean Margret Thomas bad mig att hjälpa henne med en ljus skulptur som hon ville skapa. Jean Margret är en ljusdesigner och hennes design kallas för en...

Kompakt, Billigt, och utbyggbart Hydroponics System

jag vet det finns massor av andra instructables där ute som handlar med hydroponics men jag ville ha min att uppfylla en viss uppsättning specifikationer. När jag satte mig för att designa min nya hydroponics system för min lägenhet hade jag några må...

Ansluta Raspberry pi till MacOS och Linux med SSH

Du kan använda SSH för att ansluta till din Raspberry Pi från en Linux-dator eller Mac (eller en annan Pi) från terminalen, utan att installera ytterligare programvara.Detta är verkligen användbart om du vill köra din Pi som en "huvudlösa" maski...

Hur man räkna i binär och hexadecimala numrering system

visste du att det finns andra system för numrering än våra vanliga decimal-system?Det första systemet för numrering var bas 60.Det decimal-systemet, eller basen 10, är inom matematik och vardagen, men datorer och annan elektronik måste ha enklare (ib...

Raspberry Pi Torrent, Samba och DLNA med 3 + hårddiskar

det finns många Raspberry Pi guider där ute som hjälper dig att förvandla din Pi till en server med stöd för dataöverföring torrents och dela filer via Samba och DLNA. Men de alla har en stor brist: stödja endast en hårddisk. I detta instructables hj...