Ενημέρωση, αναβάθμιση και επανεκκίνηση
Προεγκατάσταση διαμόρφωσης
Εγκατάσταση της Βιβλιοθήκης Απόκτησης Δεδομένων (DAQ)
Εγκατάσταση του Snort
Un-rooting Snort
Το Snort είναι ένα δωρεάν σύστημα ανίχνευσης εισβολής δικτύου (IDS). Με λιγότερο επίσημους όρους, σας επιτρέπει να παρακολουθείτε το δίκτυό σας για ύποπτη δραστηριότητα σε πραγματικό χρόνο . Επί του παρόντος, το Snort διαθέτει πακέτα για συστήματα Fedora, CentOS, FreeBSD και Windows. Η ακριβής μέθοδος εγκατάστασης διαφέρει μεταξύ των λειτουργικών συστημάτων. Σε αυτό το σεμινάριο, θα εγκαταστήσουμε απευθείας από τα αρχεία προέλευσης για το Snort. Αυτός ο οδηγός γράφτηκε για το Debian.
Ενημέρωση, αναβάθμιση και επανεκκίνηση
Πριν πάρουμε πραγματικά στα χέρια μας τις πηγές Snort, πρέπει να βεβαιωθούμε ότι το σύστημά μας είναι ενημερωμένο. Μπορούμε να το κάνουμε αυτό εκδίδοντας τις παρακάτω εντολές.
sudo apt-get update
sudo apt-get upgrade -y
sudo reboot
Προεγκατάσταση διαμόρφωσης
Μόλις το σύστημά σας επανεκκινηθεί, πρέπει να εγκαταστήσουμε έναν αριθμό πακέτων για να βεβαιωθούμε ότι μπορούμε να εγκαταστήσουμε το SBPP. Κατάφερα να καταλάβω ότι ένας αριθμός από τα πακέτα που χρειάζονταν, επομένως η εντολή βάσης είναι παρακάτω.
sudo apt-get install flex bison build-essential checkinstall libpcap-dev libnet1-dev libpcre3-dev libnetfilter-queue-dev iptables-dev libdumbnet-dev zlib1g-dev -y
Μόλις εγκατασταθούν όλα τα πακέτα, θα χρειαστεί να δημιουργήσετε έναν προσωρινό κατάλογο για τα αρχεία προέλευσης - μπορούν να βρίσκονται οπουδήποτε θέλετε. θα χρησιμοποιήσω /usr/src/snort_src
. Για να δημιουργήσετε αυτόν τον φάκελο, θα πρέπει να συνδεθείτε ως root
χρήστης ή να έχετε sudo
δικαιώματα - root
απλώς το κάνει πιο εύκολο.
sudo mkdir /usr/src/snort_src
cd /usr/src/snort_src
Εγκατάσταση της Βιβλιοθήκης Απόκτησης Δεδομένων (DAQ)
Για να μπορέσουμε να λάβουμε την πηγή για το Snort, πρέπει να εγκαταστήσουμε το DAQ. Είναι αρκετά απλό στην εγκατάσταση.
wget https://www.snort.org/downloads/snort/daq-2.0.6.tar.gz
Εξάγετε τα αρχεία από το tarball.
tar xvfz daq-2.0.6.tar.gz
Μεταβείτε στον κατάλογο DAQ.
cd daq-2.0.6
Διαμορφώστε και εγκαταστήστε το DAQ.
./configure; make; sudo make install
Αυτή η τελευταία γραμμή θα εκτελεστεί ./configure
πρώτη. Στη συνέχεια θα εκτελεστεί make
. Τέλος, θα εκτελεστεί make install
. Χρησιμοποιούμε τη συντομότερη σύνταξη εδώ μόνο για να εξοικονομήσουμε λίγο την πληκτρολόγηση.
Εγκατάσταση του Snort
Θέλουμε να βεβαιωθούμε ότι βρισκόμαστε /usr/src/snort_src
ξανά στον κατάλογο, οπότε φροντίστε να μεταβείτε σε αυτόν τον κατάλογο με:
cd /usr/src/snort_src
Τώρα που βρισκόμαστε στον κατάλογο για τις πηγές, θα κατεβάσουμε το tar.gz
αρχείο για την πηγή. Τη στιγμή που γράφεται αυτό το άρθρο, η πιο πρόσφατη έκδοση του Snort είναι 2.9.8.0
.
wget https://www.snort.org/downloads/snort/snort-2.9.8.0.tar.gz
Οι εντολές για την εγκατάσταση του snort είναι πολύ παρόμοιες με αυτές που χρησιμοποιούνται για το DAQ, αλλά έχουν διαφορετικές επιλογές.
Εξαγάγετε τα αρχεία πηγής Snort.
tar xvfz snort-2.9.8.0.tar.gz
Αλλαγή στον κατάλογο προέλευσης.
cd snort-2.9.8.0
Διαμορφώστε και εγκαταστήστε τις πηγές.
./configure --enable-sourcefire; make; sudo make install
Μετά την εγκατάσταση του Snort
Αφού εγκαταστήσουμε το Snort, πρέπει να βεβαιωθούμε ότι οι κοινόχρηστες βιβλιοθήκες μας είναι ενημερωμένες. Μπορούμε να το κάνουμε χρησιμοποιώντας την εντολή:
sudo ldconfig
Αφού το κάνουμε αυτό, δοκιμάστε την εγκατάσταση του Snort:
snort --version
Εάν αυτή η εντολή δεν λειτουργεί, θα χρειαστεί να δημιουργήσετε έναν συμβολικό σύνδεσμο. Μπορείτε να το κάνετε αυτό πληκτρολογώντας:
sudo ln -s /usr/local/bin/snort /usr/sbin/snort
snort --version
Η προκύπτουσα έξοδος θα μοιάζει με την ακόλουθη:
,,_ -*> Snort! <*-
o" )~ Version 2.9.7.5 GRE (Build 262)
'''' By Martin Roesch & The Snort Team: http://www.snort.org/contact#team
Copyright (C) 2014-2015 Cisco and/or its affiliates. All rights reserved.
Copyright (C) 1998-2013 Sourcefire, Inc., et al.
Using libpcap version 1.6.2
Using PCRE version: 8.35 2014-04-04
Using ZLIB version: 1.2.8
Un-rooting Snort
Τώρα που έχουμε εγκαταστήσει το snort, δεν θέλουμε να εκτελείται ως root
, επομένως πρέπει να δημιουργήσουμε έναν snort
χρήστη και μια ομάδα. Για να δημιουργήσουμε έναν νέο χρήστη και ομάδα, μπορούμε να χρησιμοποιήσουμε αυτές τις δύο εντολές:
sudo groupadd snort
sudo useradd snort -r -s /sbin/nologin -c SNORT_IDS -g snort
Εφόσον έχουμε εγκαταστήσει το πρόγραμμα χρησιμοποιώντας την πηγή, πρέπει να δημιουργήσουμε τα αρχεία ρυθμίσεων και τους κανόνες για το snort.
sudo mkdir /etc/snort
sudo mkdir /etc/snort/rules
sudo mkdir /etc/snort/preproc_rules
sudo touch /etc/snort/rules/white_list.rules /etc/snort/rules/black_list.rules /etc/snort/rules/local.rules
Αφού δημιουργήσουμε τους καταλόγους και τους κανόνες, τώρα πρέπει να δημιουργήσουμε τον κατάλογο καταγραφής.
sudo mkdir /var/log/snort
Και τέλος, για να μπορέσουμε να προσθέσουμε κανόνες, χρειαζόμαστε ένα μέρος για να αποθηκεύσουμε τους δυναμικούς κανόνες.
sudo mkdir /usr/local/lib/snort_dynamicrules
Αφού δημιουργηθούν όλα τα προηγούμενα αρχεία, ορίστε τα κατάλληλα δικαιώματα σε αυτά.
sudo chmod -R 5775 /etc/snort
sudo chmod -R 5775 /var/log/snort
sudo chmod -R 5775 /usr/local/lib/snort_dynamicrules
sudo chown -R snort:snort /etc/snort
sudo chown -R snort:snort /var/log/snort
sudo chown -R snort:snort /usr/local/lib/snort_dynamicrules
Ρύθμιση των αρχείων διαμόρφωσης
Για να εξοικονομήσετε χρόνο και για να μην χρειάζεται να αντιγράψετε και να επικολλήσετε τα πάντα, ας αντιγράψετε όλα τα αρχεία στον κατάλογο ρυθμίσεων.
sudo cp /usr/src/snort_src/snort*/etc/*.conf* /etc/snort
sudo cp /usr/src/snort_src/snort*/etc/*.map /etc/snort
Τώρα που υπάρχουν τα αρχεία διαμόρφωσης, μπορείτε να κάνετε ένα από τα δύο πράγματα:
- Μπορείτε να ενεργοποιήσετε το Barnyard2
- Ή μπορείτε απλώς να αφήσετε μόνα τα αρχεία διαμόρφωσης και να ενεργοποιήσετε επιλεκτικά τους επιθυμητούς κανόνες.
Είτε έτσι είτε αλλιώς, θα συνεχίσετε να θέλετε να αλλάξετε μερικά πράγματα. Συνέχισε να διαβάζεις.
Διαμόρφωση
Στο /etc/snort/snort.conf
αρχείο, θα χρειαστεί να αλλάξετε τη μεταβλητή HOME_NET
. Θα πρέπει να οριστεί στο μπλοκ IP του εσωτερικού δικτύου σας, ώστε να μην καταγράφει τις προσπάθειες του δικού σας δικτύου να συνδεθεί στον διακομιστή. Αυτό μπορεί να είναι 10.0.0.0/24
ή 192.168.0.0/16
. Στη γραμμή 45 του /etc/snort/snort.conf
αλλάξτε τη μεταβλητή HOME_NET
σε αυτήν την τιμή του μπλοκ IP του δικτύου σας.
Στο δίκτυό μου, μοιάζει με αυτό:
ipvar HOME_NET 192.168.0.0/16
Στη συνέχεια, θα πρέπει να ορίσετε τη EXTERNAL_NET
μεταβλητή σε:
any
Το οποίο απλώς μετατρέπεται EXERNAL_NET
σε ό,τι HOME_NET
δεν είσαι.
Θέτοντας τους κανόνες
Τώρα που έχει ρυθμιστεί η μεγάλη πλειοψηφία του συστήματος, πρέπει να διαμορφώσουμε τους κανόνες μας για αυτό το μικρό γουρουνάκι. Κάπου γύρω από τη γραμμή 104 που σου /etc/snort/snort.conf
αρχείο, θα πρέπει να δείτε ένα «var» δήλωσης και οι μεταβλητές RULE_PATH
, SO_RULE_PATH
, PREPROC_RULE_PATH
, WHITE_LIST_PATH
, και BLACK_LIST_PATH
. Οι τιμές τους θα πρέπει να οριστούν στις διαδρομές που χρησιμοποιήσαμε Un-rooting Snort
.
var RULE_PATH /etc/snort/rules
var SO_RULE_PATH /etc/snort/so_rules
var PREPROC_RULE_PATH /etc/snort/preproc_rules
var WHITE_LIST_PATH /etc/snort/rules
var BLACK_LIST_PATH /etc/snort/rules
Μόλις οριστούν αυτές οι τιμές, διαγράψτε ή σχολιάστε τους τρέχοντες κανόνες ξεκινώντας από τη γραμμή 548.
Τώρα, ας ελέγξουμε για να βεβαιωθούμε ότι η διαμόρφωσή σας είναι σωστή. Μπορείτε να το επαληθεύσετε με snort
.
# snort -T -c /etc/snort/snort.conf
Θα δείτε έξοδο παρόμοια με την παρακάτω (περικομμένη για συντομία).
Running in Test mode
--== Initializing Snort ==--
Initializing Output Plugins!
Initializing Preprocessors!
Initializing Plug-ins!
.....
Rule application order: activation->dynamic->pass->drop->sdrop->reject->alert->log
Verifying Preprocessor Configurations!
--== Initialization Complete ==--
,,_ -*> Snort! <*-
o" )~ Version 2.9.8.0 GRE (Build 229)
'''' By Martin Roesch & The Snort Team: http://www.snort.org/contact#team
Copyright (C) 2014-2015 Cisco and/or its affiliates. All rights reserved.
Copyright (C) 1998-2013 Sourcefire, Inc., et al.
Using libpcap version 1.7.4
Using PCRE version: 8.35 2014-04-04
Using ZLIB version: 1.2.8
Rules Engine: SF_SNORT_DETECTION_ENGINE Version 2.4 <Build 1>
Preprocessor Object: SF_IMAP Version 1.0 <Build 1>
Preprocessor Object: SF_FTPTELNET Version 1.2 <Build 13>
Preprocessor Object: SF_SIP Version 1.1 <Build 1>
Preprocessor Object: SF_REPUTATION Version 1.1 <Build 1>
Preprocessor Object: SF_POP Version 1.0 <Build 1>
Preprocessor Object: SF_DCERPC2 Version 1.0 <Build 3>
Preprocessor Object: SF_SDF Version 1.1 <Build 1>
Preprocessor Object: SF_GTP Version 1.1 <Build 1>
Preprocessor Object: SF_DNS Version 1.1 <Build 4>
Preprocessor Object: SF_SSH Version 1.1 <Build 3>
Preprocessor Object: SF_DNP3 Version 1.1 <Build 1>
Preprocessor Object: SF_SSLPP Version 1.1 <Build 4>
Preprocessor Object: SF_SMTP Version 1.1 <Build 9>
Preprocessor Object: SF_MODBUS Version 1.1 <Build 1>
Snort successfully validated the configuration!
Snort exiting
Τώρα που όλα έχουν ρυθμιστεί χωρίς σφάλματα, είμαστε έτοιμοι να ξεκινήσουμε τη δοκιμή του Snort.
Δοκιμή Snort
Ο ευκολότερος τρόπος για να δοκιμάσετε το Snort είναι ενεργοποιώντας το local.rules
. Αυτό είναι ένα αρχείο που περιέχει τους προσαρμοσμένους κανόνες σας.
Εάν έχετε παρατηρήσει στο snort.conf
αρχείο, κάπου γύρω από τη γραμμή 546, υπάρχει αυτή η γραμμή:
include $RULE_PATH/local.rules
Εάν δεν το έχετε, προσθέστε το γύρω στο 546. Στη συνέχεια, μπορείτε να χρησιμοποιήσετε το local.rules
αρχείο για δοκιμή. Ως βασικό τεστ, έχω απλώς το Snort να παρακολουθεί ένα αίτημα ping (αίτημα ICMP). Μπορείτε να το κάνετε αυτό προσθέτοντας στην ακόλουθη γραμμή στο local.rules
αρχείο σας .
alert icmp any any -> $HOME_NET any (msg:"ICMP test"; sid:10000001; rev:001;)
Μόλις το έχετε στο αρχείο σας, αποθηκεύστε το και συνεχίστε την ανάγνωση.
Εκτελέστε το τεστ
Η ακόλουθη εντολή θα εκκινήσει το Snort και θα εκτυπώσει ειδοποιήσεις "γρήγορης λειτουργίας", καθώς ο χρήστης ρουθουνίζει, κάτω από το ροχαλητό ομάδας, χρησιμοποιώντας το config /etc/snort/snort.conf
, και θα ακούει στη διεπαφή δικτύου eno1
. Θα χρειαστεί να αλλάξετε eno1
σε οποιαδήποτε διεπαφή δικτύου ακούει το σύστημά σας.
$ sudo /usr/local/bin/snort -A console -q -u snort -g snort -c /etc/snort/snort.conf -i eno1
Μόλις το ενεργοποιήσετε, κάντε ping σε αυτόν τον υπολογιστή. Θα αρχίσετε να βλέπετε έξοδο που μοιάζει με το ακόλουθο:
01/07−16:03:30.611173 [**] [1:10000001:0] ICMP test [**] [Priority: 0] 192.168.1.105 -> 192.168.1.104
01/07−16:03:31.612174 [**] [1:10000001:0] ICMP test [**] [Priority: 0] 192.168.1.104 -> 192.168.1.105
01/07−16:03:31.612202 [**] [1:10000001:0] ICMP test [**] [Priority: 0] 192.168.1.105 -> 192.168.1.104
^C*** Caught Int−Signal
Μπορείτε να πατήσετε Ctrl+C για να βγείτε από το πρόγραμμα, και αυτό είναι. Το Snort είναι έτοιμο. Μπορείτε τώρα να χρησιμοποιήσετε όποιους κανόνες επιθυμείτε.
Τέλος, θέλω να σημειώσω ότι υπάρχουν ορισμένοι δημόσιοι κανόνες που έχουν δημιουργηθεί από την κοινότητα που μπορείτε να κατεβάσετε από τον επίσημο ιστότοπο στην καρτέλα "Κοινότητα". Αναζητήστε το "Snort", μετά ακριβώς από κάτω υπάρχει ένας σύνδεσμος κοινότητας. Κατεβάστε το, εξάγετε το και αναζητήστε το community.rules
αρχείο.