Raspberry Pi pare-feu et Intrusion Detection System (13 / 14 étapes)

Étape 13 : SNORT

Snort est l’un des meilleur open source Network Intrusion Detection System (JNV). Charge utile de paquets en regardant, c’est ce qui ne peut se faire efficacement par iptables (ou seulement dans les formes très basiques, en regardant les chaînes avec la "-m chaîne" module). Snort ressemble plus profondément dans les charges de paquets lui permettant de détecter le trafic malveillant.

Le plus gros problème ici est de faire fonctionner sur la framboise avec ses limitations CPU et RAM

Tout d’abord, on doit l’installer :

$ sudo pacman snort -S

Pour rétrécir vers le bas nous ferons nos premières modifications :

$ sudo vi /etc/snort/snort.conf
# Étape 1: les variables
#########################################################################################################################
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 lancons
var SO_RULE_PATH... /so_rules
var PREPROC_RULE_PATH... /preproc_rules
var WHITE_LIST_PATH $RULE_PATH
var BLACK_LIST_PATH $RULE_PATH

# Étape #2: Configurer le décodeur. Pour plus d’informations, consultez 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 : tous les

# Étape #3: Configurer le moteur de base de détection. Pour plus d’informations, consultez README.decode
#########################################################################################################################
config pcre_match_limit : 3500
config pcre_match_limit_recursion : 1500

# Ce paramètre est très important :
# « lowmem » est requise pour Snort courir avec peu de mΘmoire
détection de config : lowmem méthode de recherche recherche-optimiser len-patron-max 20

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

# Étape #4: Configurer les bibliothèques de chargement dynamiques.
#########################################################################################################################
dynamicpreprocessor répertoire/usr/lib/snort_dynamicpreprocessor /
dynamicengine /usr/lib/snort_dynamicengine/libsf_engine.so

# Étape 5 #: Configurer préprocesseurs
#########################################################################################################################
préprocesseur normalize_ip4
préprocesseur normalize_tcp: ips ecn stream
préprocesseur normalize_icmp4
préprocesseur normalize_ip6
préprocesseur normalize_icmp6
préprocesseur frag3_global : max_frags 65536
préprocesseur frag3_engine : politique windows detect_anomalies overlap_limit 10 min_fragment_length 100 timeout 180

# Remontage tripartites d’objectifs stateful inspection/flux. Pour plus d’informations, consultez README.stream5
préprocesseur stream5_global : track_tcp Oui, \
track_udp Oui, \
track_icmp non, \
max_tcp 262144, \
max_udp 131072, \
max_active_responses 2, \
min_response_seconds 5
préprocesseur stream5_tcp : windows politique, detect_anomalies, require_3whs 180, \
overlap_limit 10, small_segments 3 octets 150, timeout 180, \
client de ports 21 22 23 25 42 53 79 109 110 111 113 119 135 136 137 139 143 \
161 445 514 587 593 513 691 1433 1521 2100 3306 6070 6665 6666 6667 6668 6669 \
7000 8181 32770 32771 32772 32773 32774 32775 32776 32777 32778 32779, \
les ports les deux 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
préprocesseur stream5_udp : timeout 180

# Détection de normalisation et anomalie HTTP. Pour plus d’informations, consultez README.http_inspect
préprocesseur http_inspect : global iis_unicode_map unicode.map 1252 compress_depth 65535 decompress_depth 65535
préprocesseur http_inspect_server : par défaut du serveur \
http_methods {obtenir POST mis recherche MKCOL copie déplacer LOCK déverrouiller notifier sondage BCOPY BSUPPRIMER BMOVE lien UNLINK OPTIONS tête supprimer TRACE piste connecter SOURCE s’abonner se désabonner PROPFIND PROPPATCH BPROPFIND BPROPPATCH RPC_CONNECT PROXY_SUCCESS ce 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} \
ports {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 aucun \
ASCII aucun \
bare_byte aucun \
Répertoire non \
double_decode aucun \
iis_backslash aucun \
iis_delimiter aucun \
iis_unicode aucun \
multi_slash aucun \
UTF_8 aucun \
Oui u_encode \
Webroot aucun

# Détection de normalisation et anomalie ONC-RPC. Pour plus d’informations, voir le manuel de Snort, configuration Snort - préprocesseurs - RPC décoder
préprocesseur rpc_decode : 111 32770 32771 32772 32773 32774 32775 32776 32777 32778 32779 no_alert_multiple_requests no_alert_large_fragments no_alert_incomplete

# Détection de l’Orifice de retour.
préprocesseur bo

# FTP / Telnet de normalisation et anomalie de détection. Pour plus d’informations, consultez README.ftptelnet
préprocesseur ftp_telnet : global inspection_type encrypted_traffic avec état aucune
préprocesseur ftp_telnet_protocol : telnet \
ayt_attack_thresh 20 \
normaliser les ports {23} \
detect_anomalies
préprocesseur ftp_telnet_protocol : ftp par défaut du serveur \
def_max_param_len 100 \
les ports {21 2100 3535} \
Oui telnet_cmds \
Oui ignore_telnet_erase_cmds \
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 aider LANG liste LPRT} \
ftp_cmds {gilet MACB MAIL MDTM MIC MKD MLSD MLST} \
ftp_cmds {MODE NLST NOOP OPTS PASS PASV PBSZ PORT} \
ftp_cmds {PROT PWD QUIT REIN reste RETR MDM RNFR} \
ftp_cmds {déplacement SDUP SITE taille ÉNMS STAT STOR STOU} \
ftp_cmds {STRU SYST TEST TYPE utilisateur XCUP XCRC XCWD} \
ftp_cmds {Noël XMD5 XMKD XPWD XRCP XRMD XRSQ XSEM} \
ftp_cmds {XSEN XSHA1 XSHA256} \
alt_max_param_len 0 {ABOR CCC CDUP ESTA FEAT gilet NOOP PASV PWD QUIT REIN STOU SYST XCUP XPWD} \
alt_max_param_len 200 {ALLO APPE CMD aider NLST RETR RNFR STOR STOU XMKD} \
alt_max_param_len 256 {CWD RNTO} \
alt_max_param_len 400 {PORT} \
alt_max_param_len 512 {taille} \
chk_str_fmt {ACCT ADAT ALLO APPE AUTH CEL CLNT CMD} \
chk_str_fmt {CONF CWD DELE ENC EPRT EPSV ESTP aider} \
chk_str_fmt {LANG liste LPRT MACB MAIL MDTM MIC MKD} \
chk_str_fmt {MLSD MLST MODE NLST OPTS PASS PBSZ PORT} \
chk_str_fmt {PROT reste RETR MDM RNFR déplacement SDUP SITE} \
chk_str_fmt {taille ÉNMS STAT STOR STRU TEST TYPE utilisateur} \
chk_str_fmt {XCRC XCWD XMAS XMD5 XMKD XRCP XRMD XRSQ} \
chk_str_fmt {XSEM XSEN XSHA1 XSHA256} \
cmd_validity ALLO < int [int char R] > \
cmd_validity EPSV < [{char 12 | char char char L L}] > \
cmd_validity MACB < string > \
cmd_validity MDTM < string [date nnnnnnnnnnnnnn [.n [n [n]]]] > \
cmd_validity MODE < char ASBCZ > \
PORT cmd_validity < host_port > \
cmd_validity PROT < char SCPE > \
cmd_validity STRU < char FRPO [chaîne] > \
cmd_validity TYPE < {char AE [char NTC] | char je | char L [nombre]} >
préprocesseur ftp_telnet_protocol : ftp par défaut client \
max_resp_len 256 \
Bounce Oui \
Oui ignore_telnet_erase_cmds \
telnet_cmds Oui
# Détection de normalisation et anomalie SMTP. Pour plus d’informations, consultez le fichier README. SMTP
préprocesseur smtp: ports {25 465 587 691} \
stateful inspection_type \
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 \
normaliser la cmds \
normalize_cmds {ATRN AUTH BDAT CHUNKING données DEBUG EHLO EMAL ESAM ESND ESOM ETRN EVFY} \
normalize_cmds {EXPN HELO aider IDENT MAIL NOOP ONEX queue QUIT RCPT RSET SAML envoyer SOML} \
normalize_cmds {STARTTLS TICK temps tour TURNME verbe VRFY ADAT-X X-DRCP CPRE-X 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 {MAIL} \
alt_max_command_line_len 300 {RCPT} \
alt_max_command_line_len 500 {aider HELO ETRN EHLO} \
alt_max_command_line_len 255 {EXPN VRFY ATRN taille BDAT DEBUG EMAL ESAM ESND ESOM EVFY IDENT NOOP RSET} \
alt_max_command_line_len 246 {envoyer SAML SOML AUTH tour ETRN DATA RSET QUIT ONEX queue STARTTLS TICK temps TURNME verbe X-EXPS X-LINK2STATE XADR XAUTH XCIR XEXCH50 XGEN XLICENSE XQUE XSTA XTRN XUSR} \
valid_cmds {ATRN AUTH BDAT CHUNKING données DEBUG EHLO EMAL ESAM ESND ESOM ETRN EVFY} \
valid_cmds {EXPN HELO aider IDENT MAIL NOOP ONEX queue QUIT RCPT RSET SAML envoyer SOML} \
valid_cmds {STARTTLS TICK temps tour TURNME verbe VRFY ADAT-X X-DRCP CPRE-X X-EXCH50} \
valid_cmds {X-EXPS X-LINK2STATE XADR XAUTH XCIR XEXCH50 XGEN XLICENSE XQUE XSTA XTRN XUSR} \
xlink2state {activé}

# Portscan détection. Pour plus d’informations, consultez README.sfportscan
# sfportscan préprocesseur : proto {tous} memcap {10000000} sense_level {basse}

# Détection de spoof ARP. Pour plus d’informations, voir les manuel de Snort - configuration Snort - préprocesseurs - ARP Spoof préprocesseur
# arpspoof préprocesseur
# préprocesseur arpspoof_detect_host : 192.168.40.1 f0:0f:00:f0:0f:00

Détection des anomalies # SSH. Pour plus d’informations, consultez README.ssh
préprocesseur 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 / détection de normalisation et d’anomalie de DCE-RPC. Pour plus d’informations, consultez README.dcerpc2
préprocesseur dcerpc2 : memcap 102400, événements [co]
préprocesseur dcerpc2_server : stratégie de Windows XP, par défaut, \
détecter [smb [139 445], tcp 135, udp 135-over-http-serveur rpc 593], \
AutoDetect [tcp 1025:, udp 1025:,-plus-http-serveur rpc 1025:], \
smb_max_chain 3, smb_invalid_shares [« C$ », « D$ », « ADMIN$ »]

# Détection des anomalies DNS. Pour plus d’informations, consultez README.dns
préprocesseur dns : ports {53} enable_rdata_overflow

# Détection d’anomalie SSL et le trafic de contournement. Pour plus d’informations, consultez README.ssl
préprocesseur ssl : ports {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 préprocesseur de données sensibles. Pour plus d’informations, consultez README.sensitive_data
préprocesseur sensitive_data : alert_threshold 25

# Modbus préprocesseur. Pour plus d’informations, consultez README.modbus
préprocesseur modbus : ports {502}

# DNP3 préprocesseur. Pour plus d’informations, consultez README.dnp3
dnp3 préprocesseur : ports {20000} \
memcap 262144 \
check_crc

# Préprocesseur réputation. Pour plus d’informations, consultez README.reputation
préprocesseur réputation: \
memcap 500, \
priorité whitelist, \
nested_ip intérieure, \
liste blanche $WHITE_LIST_PATH/white_list.rules, \
liste noire $BLACK_LIST_PATH/black_list.rules

# Étape 6 #: Configurer sortie plugins
#########################################################################################################################
inclure des classification.config
inclure le fichier reference.config

# Étape 7 #: Personnalisez votre ensemble de règles
#########################################################################################################################
inclure des $RULE_PATH/local.rules
# Règles minimales pour maison JNV (6 fichiers)
inclure $RULE_PATH/attaque-responses.rules
inclure des $RULE_PATH/backdoor.rules
inclure $RULE_PATH/botnet-cnc.rules
inclure $RULE_PATH/spyware-put.rules
inclure des $RULE_PATH/virus.rules
inclure $RULE_PATH/web-client.rules

# Autres règles (15 files)
inclure $RULE_PATH/bad-traffic.rules
inclure des $RULE_PATH/ddos.rules
inclure des $RULE_PATH/dns.rules
inclure des $RULE_PATH/dos.rules
inclure des $RULE_PATH/exploit.rules
inclure des $RULE_PATH/ftp.rules
inclure des $RULE_PATH/netbios.rules
inclure des $RULE_PATH/p2p.rules
inclure $RULE_PATH/phishing-spam.rules
inclure des $RULE_PATH/rpc.rules
inclure des $RULE_PATH/scan.rules
inclure des $RULE_PATH/shellcode.rules
inclure des $RULE_PATH/smtp.rules
inclure $RULE_PATH/spécifiques-threats.rules
inclure des $RULE_PATH/telnet.rules

## TOTAL fichiers = 21 fichiers à charger

# Autres fichiers désactivés : adapter vous-même
#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

###################################################
# Étape 8 #: Personnalisez vos alertes préprocesseur et décodeur
# Pour plus d’informations, consultez README.decoder_preproc_rules
###################################################

décodeur de # et les règles d’événement préprocesseur
# include $PREPROC_RULE_PATH/preprocessor.rules
# include $PREPROC_RULE_PATH/decoder.rules
# include $PREPROC_RULE_PATH/sensibles-data.rules

###################################################
# Étape 9 #: Personnalisez vos règles Snort un objet partagé
# Pour plus d’informations, consultez http://vrt-sourcefire.blogspot.com/2009/01/using-vrt-certified-shared-object-rules.html
###################################################

règles de bibliothèque dynamique #
# 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/spécifiques-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

# Commandes de seuillage ou suppression de event. Voir threshold.conf
inclure des threshold.conf

#include $RULE_PATH/chat.rules
#include $RULE_PATH/contenu-replace.rules
#include $RULE_PATH/fichier-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

Nous agissons sur trois choses pour aider snort en utilisant moins de CPU et mémoire :
-chargement moins préprocesseurs
-chargement des règles moins
-le paramètre « lowmem »

Par défaut, Snort n’a pas une règle. Vous devez vous inscrire à https://www.snort.org/signup comme un utilisateur gratuit pour pouvoir télécharger les règles snort gratuit (un mois). Rulesets à jour nécessitent de payer une licence.

Une fois inscrit, vous aurez besoin générer un « OinkCode », qui vous permettra de télécharger le dernier ruleset gratuit. Pour ce faire, puis vous recevez l’email d’activation, voir le site Web de loggin, cliquez sur « Obtenir la règle », « Ligne de commande », « Get an Oinkcode », puis cliquez sur « Générer le code ».

Une fois que vous l’avez, vous pouvez télécharger la base de règles VERSION disponible (remplacer dans la ligne de commande ci-dessous, par exemple : 2923) :
$ cd/home/rss
$ wget http://www.snort.org/reg-rules/snortrules-snapshot-VERSION.tar.gz/oinkcode - O./snortrules-snapshot-VERSION.tar.gz

Bien sûr, remplacez la chaîne « oinkcode » ci-dessus par celui que vous avez généré juste.
$ tar zxpvf./snortrules-snapshot-VERSION.tar.gz
$ sudo mv ./preproc_rules//etc/snort /
$ sudo mv. /rules//etc/snort /
$ sudo mv ./so_rules//etc/snort /

Créer deux fichiers que s’attendront à Snort :
$ touch /etc/snort/rules/white_list.rules
$ touch /etc/snort/rules/black_list.rules

Vérifiez la version de Snort installée :
$ sudo snort – version

Maintenant, nous allons créer une règle d’alerte test :
$ sudo vi /etc/snort/rules/local.rules
attirer l’attention d’icmp toute une -> $HOME_NET tout (msg: "test ICMP"; sid : 10000001;)

Vérifiez que la configuration de Snort est correcte avant de faire quoi que ce soit (-paramètre T) :
$ sudo snort - une console - q -u -g snort snort /etc/snort/snort.conf - c -i eth0 -T

Tout devrait être ok, sinon, revenez au /etc/snort.conf pour vérifier vos variables (les sous-réseaux, les ports et les chemins d’accès).

Nous pouvons faire maintenant un vrai test, lancement Snort en mode console et vérifiez si Snort est en cours d’exécution et si notre alerte s’affiche sur l’écran :
$ sudo snort - une console - q -u -g snort snort /etc/snort/snort.conf - c -i eth0

Lancer manuellement les commandes de « ping » de l’un de vos ordinateur du réseau local à la framboise, il doit déclencher une alerte (CTRL + C pour arrêter le test). Si tout fonctionne maintenant, nous pourrions être tentés de dire, c’est gagné, mais il n’est pas:-)

La prochaine étape logique est de vérifier la configuration de démarrage de Snort pour la prochaine fois que vous va redémarrer :
$ sudo vi /etc/conf.d/snort
# Où est le fichier snort.conf.
SNORT_CONF="/etc/Snort/Snort.conf"

# Quel compte d’utilisateur, devrions nous courons sous.
UTILISATEUR = « snort »

# Quel compte de groupe, devrions nous courons sous.
Groupe = « snort »

# définir l’interface que nous écoutons sur
INTERFACE = « eth0 »

# Si vous utilisez prélude, supprimer le '-un jeûne ' option
SNORT_OPTIONS = "-un rapide -b -D -p"

Tout semble ok, nous allons donc faire un vrai test en exécutant Snort en mode démon (-paramètre D) :
$ sudo snort - une console - q -u -g snort snort /etc/snort/snort.conf - c -i eth0 -D

Il se bloque avec l’erreur « fourche : ne peut pas allouer mémoire ".

Je ne pouvais pas comprendre dans un premier temps pourquoi Snort irait ok tout en pas au démon, mais ne fonctionnerait pas autrement. J’ai joué avec /etc/security/limits.conf en vain, croyant que c’était une sorte de limite d’allocation de mémoire.

Toutefois, lorsque vous exécutez à nouveau Snort comme un processus utilisateur, pas en tant que démon, j’ai remarqué dans « htop » que Snort alloué mémoire virtuelle (plus de 290MB) alors que je n’ai pas de n’importe quel fichier de swap ! Je supposais alors c’était une bonne piste à suivre, et grâce à l’archlinuxarm, documentation, créé un fichier de swap :
$ sudo dd si = / dev/zero of=/swapfile.img bs = 1M count = 512
$ sudo mkswap /swapfile.img
$ sudo swapon /swapfile.img

512 Mo semble assez au sujet de ce que tente d’allouer Snort. En outre, il est déconseillé sur un média flash, comme la carte SD, pour créer un fichier d’échange, comme plus d’écritures seront fera aux médias, raccourcir sa durée de vie. Cependant, l’idée ici est de permettre de Snort allouer de la mémoire, mais en espérant qu’il ne sera pas en fait besoin (nous avons désactivé nombreux préprocesseur et règles, n’oubliez pas).

Maintenant, Snort doit s’exécuter avec succès :
$ sudo snort - une console - q -u -g snort snort /etc/snort/snort.conf - c -i eth0 -D

Félicitations. En outre, vous pouvez remarquer dans htop que Snort n’est effectivement pas à l’aide de toute mémoire virtuelle, il vient d’être alloué, c'est-à-dire ce que nous voulions.

Nous allons régler cela en activant le swap au démarrage, tout d’abord :
$ sudo vi/etc/fstab
# ajouter ceci à la fin
/swapfile.img none swap sw 0 0

Enfin ajoutez Snort au démarrage :
$ sudo vi /etc/rc.conf
DÉMONS = (! snort de dnsmasq hwclock syslog-ng réseau)

Redémarrez et vérifier que Snort est en cours d’exécution, alors que votre alerte se prononce toujours déclenche :
remise à zéro $ sudo
htop $
$ sudo tail-f /var/log/snort/alert

Si tout est ok, commenter votre règle de test :
$ sudo vi /etc/snort/rules/local.rules

Redémarrez le Snort :
$ sudo rc.d redémarrer snort

Concernant les performances, pour une navigation commune je ne remarquent pas tout ralentissement. Quand j’ai ouvert Google Chrome avec 10 ou 15 onglets qui essaient tous de charger à la fois, le CPU framboise va à 100 % pendant quelques secondes, comme 3 ou 4 secondes, mais rapidement va revenir à la normale, avec aucun ralentissement notable dans la page Web de chargement.

Je pense toutefois, concernant le CPU utilisation quand certains le trafic réseau se produit, que le chargement règles de Snort plus ou préprocesseur pouvant gêner les performances. J’ai trouver le compromis acceptable concernant sécurité/rendement actuel, pour un usage domestique. De toute façon, vous pouvez jouer avec les réglages si vous voulez plus de sécurité.

Mise à jour de règles de Snort :

Si vous ne souhaitez pas payer quoi que ce soit d’avoir accès aux mises à jour des règles, les règles de libres disponibles sera âgés d’un mois. Si toutefois vous ne me dérange pas de payer 30$ / année (Accueil particuliers/utilisation uniquement) pour l’abonnement personnel, vous aurez les règles plus à jour pour un prix raisonnable.

Connectez-vous à votre compte sur snort.org, puis clique sur le lien ci-dessous pour acheter votre abonnement si vous voulez les règles les plus récentes disponibles :
http://www.snort.org/VRT/buy-a-subscription

Maintenant, pour mettre à jour les règles de notre snort, nous allons utiliser PulledPork. Vérifier sur leur site si une version plus récente a été libérée depuis que j’ai écrit cet article.

$ 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/rules /
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
sauvegarde = / etc/snort
version = 0.6.0

Installation de module perl requis pour pulledpork :
$ sudo pacman -S faire
$ sudo -S pacman perl-libwww
$ sudo pacman -S perl-crypt-ssleay
$ sudo pacman perl - S-commutateur

Et maintenant nous allons commencer la mise à jour manuellement en premier :
$ sudo touch /etc/snort/sid-msg.map
$ sudo chown rss:snort /etc/snort/sid-msg.map
$ pulledpork.pl -k - c /etc/pulledpork.conf -K -o lancons lancons

Si vous utilisez la version payante, vos fichiers de règles commencera par « VRT-», vous devez modifier snort.conf et remplacent les règles de chargement à la fin avec :
$ sudo vi /etc/snort/snort.conf
# Règles minimales pour NIDS maison (5 fichiers)
# Si vous utilisez la version de licence
inclure $RULE_PATH/VRT-indicateur-compromise.rules
inclure $RULE_PATH/VRT-backdoor.rules
inclure $RULE_PATH/VRT-botnet-cnc.rules
inclure $RULE_PATH/VRT-spyware-put.rules
inclure $RULE_PATH/VRT-web-client.rules

# Autres règles (15 files)
# Si vous utilisez la version de licence
inclure $RULE_PATH/VRT-bad-traffic.rules
inclure $RULE_PATH/VRT-ddos.rules
inclure $RULE_PATH/VRT-dns.rules
inclure $RULE_PATH/VRT-dos.rules
inclure $RULE_PATH/VRT-exploit.rules
inclure $RULE_PATH/VRT-ftp.rules
inclure $RULE_PATH/VRT-netbios.rules
inclure $RULE_PATH/VRT-pua-p2p.rules
inclure $RULE_PATH/VRT-phishing-spam.rules
inclure $RULE_PATH/VRT-rpc.rules
inclure $RULE_PATH/VRT-scan.rules
inclure $RULE_PATH/VRT-shellcode.rules
inclure $RULE_PATH/VRT-smtp.rules
inclure $RULE_PATH/VRT-spécifique-threats.rules
inclure $RULE_PATH/VRT-telnet.rules

Nous devons redémarrer Snort :
$ sudo rc.d arrêt snort
$ sudo rc.d début snort

Maintenant nous allons créer une tâche pour exécuter automatiquement les pulledpork :
$ crontab -e
# Mise à jour règles Snort chaque dimanche à 12h 30
30 12 ** 0 /usr/local/bin/pulledpork.pl -k - c /etc/pulledpork.conf -K -o lancons lancons

# Mise à jour règles Snort tous les mercredis à 21h 00
00 21 ** 3 /usr/local/bin/pulledpork.pl -k - c /etc/pulledpork.conf -K -o lancons lancons

Voici quelques exemples, j’aime programmer deux mises à jour par semaine, mais vous pouvez changer cela. Gardez à l’esprit cependant qu’il ne serait pas sage de planifier la mise à jour trop souvent comme il utilise 100 % du CPU pendant plus de 5 minutes, et un petit swap utilisé trop (4-5 Mo).

Ça y est, vous avez maintenant un travail entièrement Snort !

Articles Liés

Construire votre propre pare-feu passerelle

Construire votre propre pare-feu passerelle

apprendre à construire votre propre passerelle de pare-feu à l'aide de FreeBSD® et vieilles pièces de PC. Le pare-feu comprendra le firewall PF, IDS Snort, diverses applications de l'IPS, proxy Squid et certaines interfaces web intuitive pour l'audit
Comment : Configurer un pare-feu de Virtual Machine IPCop pour protéger votre hôte Windows (gratuit!)

Comment : Configurer un pare-feu de Virtual Machine IPCop pour protéger votre hôte Windows (gratuit!)

Summary:L'objectif de ce projet est d'utiliser IpCop (Distribution Linux gratuite) dans une Machine virtuelle pour protéger un système d'hôte Windows sur n'importe quel réseau. IpCop est un Linux très puissante fonction pare-feu avec fonctions avancé
Un microscope de Raspberry Pi par caméra à l’aide de pièces LEGO

Un microscope de Raspberry Pi par caméra à l’aide de pièces LEGO

Raspberry Pi par caméra microscope, construit seulement à partir de pièces de LEGO.Version : 11 octobre 2015Introduction et aperçu généralJen au début, j'ai juste eu l'idée de construire un microscope simple et bon marché, à l'aide d'un pi de framboi
Pare-feu de réseau DIY de pièces anciennes.

Pare-feu de réseau DIY de pièces anciennes.

Votre routeur/pare-feu est mort et tous les magasins sont fermés. Que fais-tu? Que fais-tu?  Temps d'aller à l'emplacement de pièces anciennes et ressusciter certaines parties. Une idée unique sur cette configuration, c'est qu'au lieu d'utiliser un d
Fix Adobe Captivate problème de pare-feu Windows 8

Fix Adobe Captivate problème de pare-feu Windows 8

En raison de bugs inconnus, le pare-feu windows invite l'utilisateur à une action lorsqu'Adobe Captivate 8 est ouvert. Le pare-feu pointe vers le répertoire temporaire où les projets sont stockés. Nombre comme autant de temps que l'utilisateur ouvre
Entrer dans le pare-feu Windows w/o Admin

Entrer dans le pare-feu Windows w/o Admin

Bonjour, ce tutoriel vous permet de lire autour dans le lecteur C de votre ordinateur écoles (ou n'importe quel ordinateur vous n'avez pas les privilèges Admin). Désolé pour les pas de photos, mais je vais le faire aussi simple que possible.Étape 1:
Chargeur de smartphone propulsé par feu

Chargeur de smartphone propulsé par feu

Générateur thermoélectrique d'urgence portable, Compact et ajustable.Rappel des faits :La raison de ce projet était de résoudre un problème que j'ai. Je le fais parfois plusieurs jours de randonnée pédestre/randonnée dans la nature, et j'apporte touj
Visualiser son par feu en 3D

Visualiser son par feu en 3D

Après avoir construit un tube de Ruben, j'ai été inspiré par des vidéos d'youtube « Pyroboards » et « Firetables ».  C'était ma tentative de créer le même effet que j'ai vu dans la vidéo. Cette tentative réussit seulement semi- et il connaissait les
Bonjour tout le monde à Raspberry Pi par Seeeduino (port Uart)

Bonjour tout le monde à Raspberry Pi par Seeeduino (port Uart)

Je suis un démarreur de Raspberry Pi et j'ai trouvé que Raspberry Pi n'a pas le port usb qui peut se connecter directement au pc, alors que j'ai ramasser un Seeeduino comme un Uart convertisseur Usb à mastic mon Pi. : pÉtape 1: Jetez un oeil sur la f
Contournement de pare-feu/Proxy Server

Contournement de pare-feu/Proxy Server

beaucoup d'autres étudiants est venu et m'a demandé comment obtenir par les pare-feux et proxys. Les informaticiens à l'école deviennent plus intelligents sur les élèves à l'aide de proxies. J'ai pensé à ce problème depuis un certain temps et j'ai un
Arduino alimenté par feu

Arduino alimenté par feu

prêtSTABLEGO GO GOÉtape 1: feux de circulationFeux de circulation sont très importants pour les routes qu'ils contrôlent le flux du trafic. L'un d'entre eux il est très simple et nous allons le faire!!Étape 2: Collecte de matérielMatériaux nécessaire
Raspberry Pi comme zone de diffusion audio par faible coût

Raspberry Pi comme zone de diffusion audio par faible coût

Cette instructable explique comment étendre votre système audio avec un micro-ordinateur Raspberry Pi à jouer toute la musique locale ou flux audio sur internet (y compris Spotify Premium etc..). La meilleure chose est, que vous n'avez pas besoin d'a
Feu d’artifice commandées par ordinateur

Feu d’artifice commandées par ordinateur

* attention implique explosifs *J'ai été contractés par des amis à faire un feu d'artifice pour leur mariage (l'impression que mon penchant pour pyromanie est bien connu dans ces régions). Il m'a fallu environ 6 mois (pas un manque de compétence... m
Transformer un NFS version 4 (NFSv4) de Raspberry Pi serveur

Transformer un NFS version 4 (NFSv4) de Raspberry Pi serveur

IntroductionNetwork FIle System (NFS) peut exécuter simultanément en version 2, 3, 4. NFS version 4(NFSv4) a plusieurs améliorations par rapport au NFSv2 et NFSv3. Les améliorations que j'aime le plus sont :NFSv4 simplifie la configuration de pare-fe