Raspberry Pi Firewall en Intrusion Detection System (13 / 14 stap)

Stap 13: SNORT


Snort is één van de beste open source Network Intrusion Detection System (NIDS). Kijken naar pakketten lading is wat niet kan worden gedaan door iptables efficiënt (of alleen in zeer basisvormen, door te kijken naar tekenreeksen met de "-m tekenreeks" module). Snort ziet er dieper in pakketten payloads zodat het schadelijke verkeer te detecteren.

Het grote probleem hier is om het op de framboos met CPU en RAM beperkingen uitgevoerd te krijgen

Eerst hebben we om het te installeren:

$ sudo pacman -S snort

Om te verschrompelen op neer we do onze eerste wijzigingen:

$ sudo vi /etc/snort/snort.conf
# Stap 1: variabelen
#########################################################################################################################
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

# Stap #2: Configureer de decoder. Voor meer informatie, zie 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: alle

# Stap #3: Configureer de basis detectie motor. Voor meer informatie, zie README.decode
#########################################################################################################################
config pcre_match_limit: 3500
config pcre_match_limit_recursion: 1500

# Deze instelling is van groot belang:
# "lowmem" is vereist voor Snort uitvoeren met weinig geheugen
config detectie: zoekmethode lowmem Zoek-optimaliseren max-patroon-len 20

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

# Stap #4: Configureer dynamisch geladen bibliotheken.
#########################################################################################################################
dynamicpreprocessor directory/usr/lib/snort_dynamicpreprocessor /
dynamicengine /usr/lib/snort_dynamicengine/libsf_engine.so

# Stap #5: Configureer preprocessors
#########################################################################################################################
preprocessor normalize_ip4
preprocessor normalize_tcp: ips ecn stream
preprocessor normalize_icmp4
preprocessor normalize_ip6
preprocessor normalize_icmp6
preprocessor frag3_global: max_frags 65536
preprocessor frag3_engine: beleid windows detect_anomalies overlap_limit 10 min_fragment_length 100 timeout 180

# Target-Based statusafhankelijke inspectie/stream de herbouw. Zie voor meer stile, README.stream5
preprocessor stream5_global: track_tcp-Ja, \
track_udp Ja, \
track_icmp Nee, \
max_tcp 262144, \
max_udp 131072, \
max_active_responses 2, \
min_response_seconds 5
preprocessor stream5_tcp: beleid windows, detect_anomalies, require_3whs 180, \
overlap_limit 10, small_segments 3 bytes 150, 180, time-out \
poorten client 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, \
poorten van beide 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: time-out 180

# HTTP normalisatie en anomalie detectie. Voor meer informatie, zie README.http_inspect
preprocessor http_inspect: global iis_unicode_map unicode.map 1252 compress_depth 65535 decompress_depth 65535
preprocessor http_inspect_server: standaardwaarde voor de server \
http_methods {krijgen POST zetten Zoek MKCOL kopie verplaatsen LOCK ontgrendelen NOTIFY POLL BCOPY BDELETE BMOVE LINK ontkoppelen opties hoofd verwijderen TRACE TRACK verbinding bron inschrijven uitschrijven 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} \
poorten {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 geen \
ASCII geen \
bare_byte geen \
Directory geen \
double_decode geen \
iis_backslash geen \
iis_delimiter geen \
iis_unicode geen \
multi_slash geen \
utf_8 geen \
u_encode ja \
Webroot geen

# ONC-RPC normalisatie en anomalie detectie. Voor meer informatie, zie de Snort Manual, configureren Snort - Preprocessors - RPC decoderen
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

# Terug opening detectie.
preprocessor bo

# FTP / Telnet normalisatie en anomalie detectie. Voor meer informatie, zie README.ftptelnet
preprocessor ftp_telnet: global inspection_type stateful encrypted_traffic geen
preprocessor ftp_telnet_protocol: telnet \
ayt_attack_thresh 20 \
normaliseren van poorten {23} \
detect_anomalies
preprocessor ftp_telnet_protocol: FTP-server standaard \
def_max_param_len 100 \
poorten {21 2100 3535} \
telnet_cmds ja \
ignore_telnet_erase_cmds ja \
ftp_cmds {ABOR ACCT ADAT ALLO APPE AUTH CCC CDUP} \
ftp_cmds {CEL CLNT CMD CONF CWD DELE ENC EPRT} \
ftp_cmds {EPSV ESTA ESTP FEAT helpen LANG lijst LPRT} \
ftp_cmds {LPSV MACB MAIL MDTM MIC MKD MLSD MLST} \
ftp_cmds {modus NLST NOOP OPTS PASS PASV PBSZ PORT} \
ftp_cmds {PROT PWD stoppen REIN REST RETR RMD RNFR} \
ftp_cmds {RNTO SDUP SITE grootte SMNT STAT STOR STOU} \
ftp_cmds {STRU SYST TEST TYPE gebruiker XCUP XCRC XCWD} \
ftp_cmds {XMAS XMD5 XMKD XPWD XRCP XRMD XRSQ XSEM} \
ftp_cmds {XSEN XSHA1 XSHA256} \
alt_max_param_len 0 {ABOR CCC CDUP ESTA FEAT LPSV NOOP PASV PWD stoppen REIN STOU SYST XCUP XPWD} \
alt_max_param_len 200 {ALLO APPE CMD helpen NLST RETR RNFR STOR STOU XMKD} \
alt_max_param_len 256 {CWD RNTO} \
alt_max_param_len 400 {PORT} \
alt_max_param_len 512 {grootte} \
chk_str_fmt {ACCT ADAT ALLO APPE AUTH CEL CLNT CMD} \
chk_str_fmt {CONF CWD DELE ENC EPRT EPSV ESTP HELP} \
chk_str_fmt {LANG lijst LPRT MACB MAIL MDTM MIC MKD} \
chk_str_fmt {MLSD MLST modus NLST OPTS PASS PBSZ PORT} \
chk_str_fmt {PROT REST RETR RMD RNFR RNTO SDUP SITE} \
chk_str_fmt {grootte SMNT STAT STOR STRU TYPE TESTGEBRUIKER} \
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 < [{char 12 | char een char char L L}] > \
cmd_validity MACB < tekenreeks > \
cmd_validity MDTM < [datum nnnnnnnnnnnnnn [.n [n [n]]]] tekenreeks > \
cmd_validity modus < char ASBCZ > \
cmd_validity poort < host_port > \
cmd_validity PROT < char CSEP > \
cmd_validity STRU < char FRPO [koord] > \
cmd_validity TYPE < {char AE [char NTC] | char ik | char L [nummer]} >
preprocessor ftp_telnet_protocol: FTP-client standaard \
max_resp_len 256 \
Ja stuiteren \
ignore_telnet_erase_cmds ja \
telnet_cmds Ja
# SMTP normalisatie en anomalie detectie. Zie README voor meer informatie. SMTP
preprocessor smtp: poorten {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 \
normaliseren cmds \
normalize_cmds {ATRN AUTH BDAT CHUNKING gegevens DEBUG EHLO EMAL ESAM ESND ESOM ETRN EVFY} \
normalize_cmds {EXPN HELO helpen IDENT MAIL NOOP ONEX QUEU stoppen RCPT RSET SAML verzenden SOML} \
normalize_cmds {STARTTLS TEEK tijd beurt TURNME WERKWOORD 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 {helpen HELO ETRN EHLO} \
alt_max_command_line_len 255 {EXPN VRFY ATRN grootte BDAT DEBUG EMAL ESAM ESND ESOM EVFY IDENT NOOP RSET} \
alt_max_command_line_len 246 {verzenden SAML SOML AUTH beurt ETRN gegevens RSET stoppen ONEX QUEU STARTTLS TEEK tijd TURNME WERKWOORD X-EXPS X-LINK2STATE XADR XAUTH XCIR XEXCH50 XGEN XLICENSE XQUE XSTA XTRN XUSR} \
valid_cmds {ATRN AUTH BDAT CHUNKING gegevens DEBUG EHLO EMAL ESAM ESND ESOM ETRN EVFY} \
valid_cmds {EXPN HELO helpen IDENT MAIL NOOP ONEX QUEU stoppen RCPT RSET SAML verzenden SOML} \
valid_cmds {STARTTLS TEEK tijd beurt TURNME WERKWOORD 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 {enabled}

# Portscan detectie. Voor meer informatie, zie README.sfportscan
# preprocessor sfportscan: proto {alle} memcap {10000000} sense_level {laag}

# ARP spoof detectie. Voor meer informatie, zie de Snort Manual - configureren van Snort - Preprocessors - ARP Spoof Preprocessor
# preprocessor arpspoof
# preprocessor arpspoof_detect_host: 192.168.40.1 f0:0f:00:f0:0f:00

# SSH anomaly Detectie. Voor meer informatie, zie README.ssh
preprocessor ssh: server_ports {22 15507} \
autodetect \
max_client_bytes 19600 \
max_encrypted_packets 20 \
max_server_version_len 100 \
enable_respoverflow enable_ssh1crc32 \
enable_srvoverflow enable_protomismatch

# SMB / DCE-RPC normalisatie en anomalie detectie. Voor meer informatie, zie README.dcerpc2
preprocessor dcerpc2: memcap 102400, evenementen [co]
preprocessor dcerpc2_server: standaard beleid WinXP, \
[[139,445] smb, tcp 135, udp 135, rpc-over-http-server 593] wordt gedetecteerd, \
autodetect [tcp 1025:, udp 1025:, rpc-over-http-server 1025:], \
smb_max_chain 3, smb_invalid_shares ["C$", "D$", "ADMIN$"]

# DNS anomaly Detectie. Voor meer informatie, zie README.dns
preprocessor dns: poorten {53} enable_rdata_overflow

# SSL anomaly Detectie en verkeer omzeilen. Voor meer informatie, zie README.ssl
preprocessor ssl: havens {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 gevoelige gegevens preprocessor. Zie voor meer informatie README.sensitive_data
preprocessor sensitive_data: alert_threshold 25

# Modbus preprocessor. Zie voor meer informatie README.modbus
preprocessor modbus: poorten {502}

# DNP3 preprocessor. Zie voor meer informatie README.dnp3
preprocessor dnp3: poorten {20000} \
memcap 262144 \
check_crc

# Reputatie preprocessor. Zie voor meer informatie README.reputation
preprocessor reputatie: \
memcap 500, \
prioriteit whitelist, \
binnenste, nested_ip \
whitelist $WHITE_LIST_PATH/white_list.rules, \
zwarte lijst $BLACK_LIST_PATH/black_list.rules

# Stap #6: Configureer uitvoer plugins
#########################################################################################################################
omvatten classifcation.config
omvatten reference.config

# Stap #7: Aanpassen uw regelset
#########################################################################################################################
omvatten $RULE_PATH/local.rules
# Minimumregels voor thuis NIDS (6-bestanden)
opnemen van $RULE_PATH/aanval-responses.rules
omvatten $RULE_PATH/backdoor.rules
opnemen van $RULE_PATH/botnet-cnc.rules
opnemen van $RULE_PATH/spyware-put.rules
omvatten $RULE_PATH/virus.rules
opnemen van $RULE_PATH/web-client.rules

# Extra regels (15-bestanden)
opnemen van $RULE_PATH/bad-traffic.rules
omvatten $RULE_PATH/ddos.rules
omvatten $RULE_PATH/dns.rules
omvatten $RULE_PATH/dos.rules
omvatten $RULE_PATH/exploit.rules
omvatten $RULE_PATH/ftp.rules
omvatten $RULE_PATH/netbios.rules
omvatten $RULE_PATH/p2p.rules
opnemen van $RULE_PATH/phishing-spam.rules
omvatten $RULE_PATH/rpc.rules
omvatten $RULE_PATH/scan.rules
omvatten $RULE_PATH/shellcode.rules
omvatten $RULE_PATH/smtp.rules
opnemen van $RULE_PATH/specifieke-threats.rules
omvatten $RULE_PATH/telnet.rules

## TOTAAL bestanden = 21 bestanden te laden

# Andere uitgeschakelde bestanden: pak jezelf
#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

###################################################
# Stap #8: Aanpassen uw waarschuwingen preprocessor en decoder
# Voor meer informatie, zie README.decoder_preproc_rules
###################################################

# decoder en preprocessor event regels
# omvatten $PREPROC_RULE_PATH/preprocessor.rules
# omvatten $PREPROC_RULE_PATH/decoder.rules
# omvatten $PREPROC_RULE_PATH/gevoelige-data.rules

###################################################
# Stap #9: Uw Shared Object Snort regels aanpassen
# Voor meer informatie, zie http://vrt-sourcefire.blogspot.com/2009/01/using-vrt-certified-shared-object-rules.html
###################################################

# dynamische bibliotheek regels
# omvatten $SO_RULE_PATH/bad-traffic.rules
# omvatten $SO_RULE_PATH/chat.rules
# omvatten $SO_RULE_PATH/dos.rules
# omvatten $SO_RULE_PATH/exploit.rules
# omvatten $SO_RULE_PATH/icmp.rules
# omvatten $SO_RULE_PATH/imap.rules
# omvatten $SO_RULE_PATH/misc.rules
# omvatten $SO_RULE_PATH/multimedia.rules
# omvatten $SO_RULE_PATH/netbios.rules
# omvatten $SO_RULE_PATH/nntp.rules
# omvatten $SO_RULE_PATH/p2p.rules
# omvatten $SO_RULE_PATH/smtp.rules
# omvatten $SO_RULE_PATH/snmp.rules
# omvatten $SO_RULE_PATH/specifieke-threats.rules
# omvatten $SO_RULE_PATH/web-activex.rules
# omvatten $SO_RULE_PATH/web-client.rules
# omvatten $SO_RULE_PATH/web-iis.rules
# omvatten $SO_RULE_PATH/web-misc.rules

# Gebeurtenis drempelmethode of onderdrukking opdrachten. Zie threshold.conf
omvatten threshold.conf

#include $RULE_PATH/chat.rules
#include $RULE_PATH/inhoud-replace.rules
#include $RULE_PATH/bestand-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/andere-ids.rules
#include $RULE_PATH/policy.rules
#include $RULE_PATH/pop2.rules

Wij handelen op drie dingen te helpen snort gebruikt minder CPU- en geheugengebruik:
-minder preprocessors laden
-laden van minder regels
-instellen van de parameter "lowmem"

Snort heeft standaard geen elke regel. U moet registreren bij https://www.snort.org/signup als gratis gebruiker voor zitten kundig voor downloaden van de gratis snort regels (één maand oud). Up to date regelsets vereisen om te betalen van een licentie.

Zodra geregistreerd, moet u voor het genereren van een "OinkCode", die u toelaten zal om de laatste gratis regelset downloaden. Om dit te doen, dan u de activatie e-mail ontvangt, ga naar de website loggen, op "Get regel", "Command Line", "Get an Oinkcode", klik op "Generate code".

Zodra u het hebt, kunt u het downloaden van de regelset versie beschikbaar (vervangen in de command line hieronder, bijvoorbeeld: 2923):
$ cd/home/rss
$ wget http://www.snort.org/reg-rules/snortrules-snapshot-VERSION.tar.gz/oinkcode - O./snortrules-snapshot-VERSION.tar.gz

Natuurlijk de bovenstaande tekenreeks "oinkcode" te vervangen door degene die u net hebt gegenereerd.
$ tar zxpvf./snortrules-snapshot-VERSION.tar.gz
$ sudo mv ./preproc_rules//etc/snort /
$ sudo mv. /rules//etc/snort /
$ sudo mv ./so_rules//etc/snort /

Maak twee bestanden die snort zullen verwachten:
$ touch /etc/snort/rules/white_list.rules
$ touch /etc/snort/rules/black_list.rules

Controleer de versie van de Snort geïnstalleerd:
$ sudo snort-versie

Nu maken we een testregel alert:
$ sudo vi /etc/snort/rules/local.rules
icmp waarschuw eventuele een -> $HOME_NET ieder (msg: "ICMP-test"; sid: 10000001;)

Controleer of de configuratie van Snort juist is voordat u iets doet (-parameter T):
$ sudo snort - een console - q -u snort -g snort - c /etc/snort/snort.conf -i eth0 -T

Alles moet worden ok, zoniet, de /etc/snort.conf om te controleren of uw variabelen (subnetten, poorten en paden) comprobar.

We kunnen nu doen een echte test start Snort in Consolemodus en controleren of Snort wordt uitgevoerd en als onze waarschuwing wordt weergegeven op het scherm:
$ sudo snort - een console - q -u snort -g snort - c /etc/snort/snort.conf -i eth0

Handmatig starten "ping" opdrachten uit een van uw computer van LAN naar de framboos, het moet leiden tot een waarschuwing (CTRL + C om te stoppen met de test). Als alles nu werkt, kunnen wij worden geneigd om te zeggen het gewonnen, maar het is niet :-)

De volgende logische stap is het controleren van Snort opstartconfiguratie voor de volgende keer dat je reboot zal:
$ sudo vi /etc/conf.d/snort
# Waar is het snort.conf bestand.
SNORT_CONF="/etc/snort/snort.conf"

# Welke gebruikersaccount moet we worden uitgevoerd.
USER = "snort"

# Wat groepsaccount moet we worden uitgevoerd.
GROEP = "snort"

# Definieer de interface we luisteren op
INTERFACE = "eth0"

# Als u prelude gebruikt, verwijdert u de '-een snelle ' optie
SNORT_OPTIONS = "-een snelle -b -D -p"

Alles lijkt ok, dus laten we doen een echte test door het uitvoeren van Snort in daemon-modus (-parameter D):
$ sudo snort - een console - q -u snort -g snort - c /etc/snort/snort.conf -i eth0 -D

Het verplettert met de fout "vork: kan niet Allocate Memory".

Ik niet kon achterhalen aanvankelijk waarom Snort ok terwijl niet in daemon zou lopen, maar zou anders niet werken. Ik speelde met /etc/security/limits.conf tevergeefs, te geloven dat het was een soort geheugen toewijzingslimiet.

Toen echter opnieuw uit te voeren Snort als een gebruikersproces, niet als daemon, ik merkte in "htop" dat Snort virtueel geheugen (meer dan 290MB), toegewezen terwijl ik heb geen wisselbestand! Ik zou dan het was een goede parcours te volgen, en dankzij de archlinuxarm documentatie, een wisselbestand gemaakt:
$ sudo dd wanneer = / dev/zero of=/swapfile.img bs = 1M graaf = 512
$ sudo mkswap /swapfile.img
$ sudo swapon /swapfile.img

512MB lijkt genoeg over wat Snort probeert toe te wijzen. Ook, het is niet aanbevolen op een flash-medium, net als de SD-kaart, maken een swap-bestand, zoals meer schrijft zal worden gedaan tot de media, verkorting van de levensduur. Echter, het idee is hier kunnen Snort om het geheugen toe te wijzen, maar hoop dat het in feite niet nodig (wij vele preprocessor uitgeschakeld en regels, niet vergeten).

Snort moet nu draaien met succes:
$ sudo snort - een console - q -u snort -g snort - c /etc/snort/snort.conf -i eth0 -D

Proficiat. U kunt ook in htop opmerken dat Snort is eigenlijk niet met behulp van een virtueel geheugen, het zojuist toegewezen, dat is wat we wilden.

Laten we dit te regelen door de swap bij het opstarten eerst activeren:
$ sudo vi/etc/fstab
# Voeg dit toe aan het einde
/swapfile.img geen swap sw 0 0

Tot slot toevoegen Snort bij het opstarten:
$ sudo vi /etc/rc.conf
DAEMONS = (! hwclock syslog-ng netwerk dnsmasq snort)

Opnieuw opstarten en controleren dat Snort draait, dan dat uw waarschuwing regel nog steeds wordt gegenereerd:
$ sudo reboot
$ htop
$ sudo tail-f /var/log/snort/alert

Als alles ok is, reactie op uw testregel:
$ sudo vi /etc/snort/rules/local.rules

Herstart Snort:
$ sudo rc.d herstart snort

Met betrekking tot prestaties, voor een gemeenschappelijke browsen doen ik niet gemerkt eventuele vertraging. Wanneer ik open Google Chrome met 10 of 15 tabs die allemaal proberen te laden in een keer, de Raspberry CPU gaat naar 100% voor enkele seconden, als 3 of 4 seconden, maar snel gaat terug naar normaal, met geen merkbare vertraging in webpagina laden.

Ik denk echter dat met betrekking tot de CPU zede wanneer sommige netwerk verkeer gebeurt, dat het laden van de meer Snort regels of preprocessor optredens zou belemmeren. Ik vind de huidige afweging aanvaardbare met betrekking tot beveiliging/prestaties, voor thuisgebruik. Hoe dan ook, je kunt spelen met de instellingen als u wilt dat meer veiligheid.

Update van de Snort regels:

Als u niet wenst te betalen om het even wat toegang hebben tot bijgewerkte regels, zullen de beschikbare gratis regels een maand oud zijn. Als je het echter niet erg om te betalen 30$ per jaar (alleen persoonlijke/privé-gebruik) voor de persoonlijke abonnement, zul je de meest up-to-date regels voor een redelijke prijs.

Inloggen op uw account op snort.org ga dan naar de volgende link om uw abonnement te kopen als u wilt dat de laatste regels beschikbaar:
http://www.snort.org/VRT/buy-a-subscription

Nu, als u wilt bijwerken van onze snort regels, zullen we PulledPork gebruiken. Controleren op hun website als een nieuwere versie is vrijgegeven, aangezien ik dit artikel schreef.

$ 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/regels /
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
back-up = / etc/snort
versie = 0.6.0

Installeren vereist perl module voor pulledpork:
$ sudo pacman -S maken
$ sudo pacman -S perl-libwww
$ sudo pacman -S perl-crypt-ssleay
$ sudo pacman -S perl-switch

En nu laten we beginnen de update handmatig eerste:
$ 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

Als u de betaalversie gebruikt, uw bestanden regel begint met "VRT-", moet u snort.conf bewerken en vervanging van de regels aan het einde met laden:
$ sudo vi /etc/snort/snort.conf
# Minimumregels voor thuis NIDS (5 files)
# Als de versie van de licentie
opnemen van $RULE_PATH/VRT-indicator-compromise.rules
opnemen van $RULE_PATH/VRT-backdoor.rules
opnemen van $RULE_PATH/VRT-botnet-cnc.rules
opnemen van $RULE_PATH/VRT-spyware-put.rules
opnemen van $RULE_PATH/VRT-web-client.rules

# Extra regels (15-bestanden)
# Als de versie van de licentie
opnemen van $RULE_PATH/VRT-bad-traffic.rules
opnemen van $RULE_PATH/VRT-ddos.rules
opnemen van $RULE_PATH/VRT-dns.rules
opnemen van $RULE_PATH/VRT-dos.rules
opnemen van $RULE_PATH/VRT-exploit.rules
opnemen van $RULE_PATH/VRT-ftp.rules
opnemen van $RULE_PATH/VRT-netbios.rules
opnemen van $RULE_PATH/VRT-pua-p2p.rules
opnemen van $RULE_PATH/VRT-phishing-spam.rules
opnemen van $RULE_PATH/VRT-rpc.rules
opnemen van $RULE_PATH/VRT-scan.rules
opnemen van $RULE_PATH/VRT-shellcode.rules
opnemen van $RULE_PATH/VRT-smtp.rules
opnemen van $RULE_PATH/VRT-specifieke-threats.rules
opnemen van $RULE_PATH/VRT-telnet.rules

We hebben opnieuw op te starten van Snort:
$ sudo rc.d stop snort
$ sudo rc.d start snort

Nu laten we het maken van een taak voor het automatisch uitvoeren van pulledpork:
$ crontab -e
# Update Snort regels elke zondag om 12u30
30 12 ** 0 /usr/local/bin/pulledpork.pl -k - c /etc/pulledpork.conf -K /etc/snort/rules -o /etc/snort/rules

# Update Snort regels elke woensdag om 21h 00
00 21 ** 3 /usr/local/bin/pulledpork.pl -k - c /etc/pulledpork.conf -K /etc/snort/rules -o /etc/snort/rules

Dit zijn voorbeelden, graag twee updates per week plannen, maar u kunt dat veranderen. Houd er rekening mee maar dat zou niet verstandig zijn om de update te vaak als plannen het gebruikt 100% CPU voor meer dan 5 minuten, en dat een kleine swap wordt ook gebruikt (4-5MB).

Thats it, nu heb je een volledig werkende Snort!

Gerelateerde Artikelen

Home Network Intrusion Detection System

Home Network Intrusion Detection System

Dit is mijn eerste instuctable. Ik was op zoek naar mijn thuisnetwerk inbraakdetectiesysteem op een VM maken en kon vinden geen instructies over hoe dit te doen. Dus ik mijn eigen gemaakt en hoop dat het helpt dat sommigen van u uit. Mijn excuses voo
Automatisering van Locking systemen en Intrusion Detection In huizen

Automatisering van Locking systemen en Intrusion Detection In huizen

Internetis de technologie van de toekomst die langzaam is coming up en wint dynamiek in de telecom industrie van dingen. Hier, hebben we geprobeerd te maken van een veiligheidssysteem dat wordt beheerd door het Internet. Het doel van het project was
Raspberry Pi en ROS (Robotic Operating System)

Raspberry Pi en ROS (Robotic Operating System)

In deze Tutorial gaan we om te gaan over het opzetten van een Raspberry Pi met Linux en ROS. Naast de steeds vertrouwd zijn met enkele van de basisprincipes door enkele eenvoudige tutorial programma's uitvoeren vanaf de "ROS WIKI" . Als u onbeke
Open vliegen Detection System

Open vliegen Detection System

Dit instructable was een samenwerking met OHoilett. Check hem uit, hij is geweldig!We hebben allemaal er geweest. U gebruikt het toilet uur geleden, kijk naar beneden en...Uw rits heeft deze hele tijd open geweest?! Hoe? Vraag je je af als iedereen o
Arduino Home basketbal hoepel Score Detection System alias teamscorer

Arduino Home basketbal hoepel Score Detection System alias teamscorer

Mijn zusje en ik vond deze indoor basketbal hoepel (hierboven afgebeeld) op een dumpster een paar weken geleden. We kwamen thuis van kerk net zoals twee mensen waren het lossen van hun vrachtwagen. We besloten om te grijpen, samen met de air hockey t
Bodemvocht/Detection System

Bodemvocht/Detection System

Dat begon als een eenvoudige twee nagel, 5V, vocht detectiesysteem het uitgegroeid tot een iets meer verfijnde tuig met LED's en minder bijwerken als gevolg van mijn vorige toezicht: elektrolyse.Daarvoor moet u:Arduino1 x rode LED1 x gele LED1 x de g
FerretPi: Met behulp van Raspberry Pi als een beveiligde FTP-Server

FerretPi: Met behulp van Raspberry Pi als een beveiligde FTP-Server

ik weet wat je denkt: "hoe cool zou het zijn als ik had mijn eigen Google Drive/SkyDrive/Dropbox die ik gebruiken kan wanneer ik wil?" Of misschien bent u gewoon het krijgen in de beweging van de Maker en je denkt dat het is het grootste ding si
Bouwen van uw eigen gateway firewall

Bouwen van uw eigen gateway firewall

leren hoe te bouwen uw eigen gateway firewall met behulp van FreeBSD® en oude PC onderdelen. De firewall zal bestaan uit de PF firewall, Snort IDS, verschillende IPS toepassingen, Squid proxy en een intuïtieve webinterfaces voor controle. De kosten v
De 802.11 Ninja - draagbare 802.11 hacken apparaat

De 802.11 Ninja - draagbare 802.11 hacken apparaat

IntroductieVoordat wij beginnen met deze tutorial, moet ik vermelden dat ik zelfs nog niet geborsteld het oppervlak van de mogelijkheden die dit geweldige stukje hardware biedt! Niet elke uitvoering van de 802.11 Ninja hoeft niet elke één functie, du
Visuele netwerk bedreiging niveau Indicator v2

Visuele netwerk bedreiging niveau Indicator v2

op veler verzoek is dit een nieuwe draadloze versie van de visuele netwerk bedreiging niveau-Indicator. Deze maakt gebruik van een Roving netwerken WiFly RN-XV Module te doen 802.11 WiFi samen met een Arduino voor weergave van het dreigingsniveau op
Visuele netwerk bedreiging niveau Indicator

Visuele netwerk bedreiging niveau Indicator

Netwerkmonitoring is erg belangrijk in de huidige wereld. Het internet is een enge plaats. Mensen hebben stappen ondernomen om hun bewustmaking door Intrusion Detection Systems(IDS) zoals SNORT installeren.Het probleem met de meeste van deze systemen
DIY Infrarood Sensor bewegingssysteem voor Raspberry Pi

DIY Infrarood Sensor bewegingssysteem voor Raspberry Pi

Tijdens de maand juli 2015, ik legde een stage van de middelbare school bij Colorado State University, en één van de projecten die ik heb gewerkt was dat van een infrarode nabijheidssensor voor Raspberry Pi.Deze korte reeks infrarode sensor kan worde
Procedure: Setup een IPCop Virtuele Machine Firewall ter bescherming van uw Windows-Host (gratis!)

Procedure: Setup een IPCop Virtuele Machine Firewall ter bescherming van uw Windows-Host (gratis!)

Summary:Het doel van dit project is met IpCop (gratis Linux-distributie) in een virtuele Machine te beschermen een Windows host-systeem op een netwerk. IpCop is een zeer krachtige Linux gebaseerde Firewall met geavanceerde functies zoals: VPN, NAT, I
Meerdere netwerkkaarten.

Meerdere netwerkkaarten.

We zullen kijken hoe u meerdere netwerkkaarten op linux.Multihomed netwerk (geen routing).Multihomed-netwerk met routering.Toestaan meer band breedte usubg meerdere netwerkkaarten.Één nic meerdere IP-adressen.Dubbel zo ingewikkeld.Gewone router.U kun