(1) Ανίχνευση δικτυακών επιθέσεων με Snort/BASE σε OS X: XTools, MacPorts, PHP και MySQL

Ακολουθώντας τον οδηγό Intrusion Detection: Snort, Base, MySQL, And Apache2 On Ubuntu 7.10 και αλλάζοντας μόνο τις εκδόσεις των προγραμμάτων που έπρεπε να κατέβουν, για να προσαρμοστούν σε αυτές που ισχύουν τώρα, πέρασα χθες τα snort και BASE σε Ubuntu 8.04.1. Η διαδικασία λειτούργησε και έτσι μου γεννήθηκε η λογική απορία: Στο Leopard γίνεται;

Λοιπόν γίνεται. Τα απαραίτητα:

1. Εγκατάσταση του πακέτου Xcode και X11 από το δεύτερο DVD του Leopard. Για τη ρύθμιση του περιβάλλοντος ανοίγουμε το Terminal ή όποια εφαρμογή χρησιμοποιούμε για εντολές (εδώ iTerm) και γράφουμε:

nano ~/.profile

Στον editor που ανοίγει κάνουμε επικόλληση τα παρακάτω:

export PATH=/opt/local/bin:/opt/local/sbin:$PATH

export DISPLAY=:0.0

σώζουμε με ctrl+O, πατάμε enter και μετά κλείνουμε με ctrl+X.

2. Εγκατάσταση των MacPorts. Αυτή τη στιγμή η τελευταία έκδοση είναι η 1.6.0. Μόλις τελειώσει η εγκατάσταση κάνουμε update των ports, δίνοντας στο terminal την εντολή:

sudo port -d selfupdate

3. Κάνουμε εγκατάσταση της php5, χρησιμοποιώντας το τελευταίο πακέτο για apache2, που είναι η έκδοση του apache στο Leopard. Κατόπιν βρίσκουμε το php.ini (στην εγκατάστασή μου στο /private/etc/php.ini) και το κάνουμε edit σαν root, δίνοντας στο terminal:

sudo nano /private/etc/php.ini

Φτιάχνουμε τη γραμμή με το mysql.default_socket έτσι:

mysql.default_socket = /opt/local/var/run/mysql5/mysqld.sock

και σώζουμε με τον τρόπο που είπαμε παραπάνω. Για να απλοποιήσουμε την διεύθυνση του web interface του BASE μπορούμε να κάνουμε edit το /etc/httpd/httpd.conf σαν root και να προσθέσουμε στην καταχώρηση του <IfModule dir_module> το index.php.

sudo nano /etc/httpd/httpd.conf

βρίσκουμε την παραπάνω καταχώρηση και την κάνουμε έτσι:

<IfModule dir_module>

DirectoryIndex index.html index.php

</IfModule>

Από το System Preferences->Sharing, ξεκινάμε τον apache2 τσεκάροντας το Web Sharing. Για να τσεκάρουμε ότι όλα είναι εντάξει, μέσα στο /Library/WebServer/Documents φτιάχνουμε το αρχείο test.php, βάζουμε σε αυτό τα παρακάτω και σώζουμε:

<?php phpinfo() ?>.

Αν όλα έχουν γίνει σωστά, γράφοντας στη μπάρα διεύθυνσης του browser: http://localhost/test.php θα δούμε τη σελίδα με τις πληροφορίες για την έκδοση της php που εγκαταστήσαμε.

php.info

4. Εγκατάσταση και ρύθμιση της mysql, δίνοντας στην κονσόλα τις εντολές:

sudo port install mysql5 +server

sudo -u mysql mysql_install_db5

sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist

Σε αυτό το σημείο η mysql έχει εγκατασταθεί και ξεκινήσει. Μπορούμε να το τσεκάρουμε δίνοντας στο terminal την εντολή:

ps -ax | grep mysql

Αν όλα έχουν πάει καλά θα πάρουμε έξοδο όπως η παρακάτω:

grep mysql

Ρύθμιση του my.cnf δίνοντας στο terminal:

sudo cp /opt/local/share/mysql5/mysql/my-small.cnf /etc/my.cnf

sudo nano /etc/my.cnf

Kάνουμε στον τομέα [client] και [mysqld] την καταχώρηση του socket ίδια με αυτή που δώσαμε στο php.ini

socket = /opt/local/var/run/mysql5/mysqld.sock

και σώζουμε.

Στη συνέχεια δίνουμε το password του root για την mysql:

sudo /opt/local/lib/mysql5/bin/mysqladmin -u root password ότιθέλουμε

Στο δεύτερο μέρος: δημιουργία της snort db, εγκατάσταση και ρύθμιση του BASE καθώς και εγκατάσταση και ρύθμιση του snort. Επίσης μερικές ακόμα μικρολεπτομέρειες μέχρι το τελικό αποτέλεσμα.

base

Και να μην ξεχάσω, οι διαδρομές των αρχείων αντιστοιχούν στη δική μου εγκατάσταση. :blaf:

Advertisements

7 thoughts on “(1) Ανίχνευση δικτυακών επιθέσεων με Snort/BASE σε OS X: XTools, MacPorts, PHP και MySQL

  1. Ενδιαφέρον 🙂

    Κάτι που συνήθως το προσέχω με την πρώτη είναι το forced DISPLAY σε .bash_profile και .profile files.  Δεν είναι καλή ιδέα…

    Καλύτερα είναι να υπάρχει ένα shell-wrapper που φτιάχνει το «σωστό» environment και αρχίζει το αντίστοιχο πρόγραμμα.  Η forced τιμή του DISPLAY στο profile μπορεί να δημιουργήσει «conflicts» αργότερα, αν προσπαθήσεις π.χ. να χρησιμοποιήσεις VNC ή κάποιο άλλο πρόγραμμα το οποίο σηκώνει δικό του X server σε DISPLAY διαφορετικό από το :0.0.

  2. Δεν το είχα σκεφτεί αυτό. Είναι ένα πρόβλημα που μπορεί να προκύψει άνετα σε ένα τέτοιο σενάριο.
    Ευκαιρία να κοιτάξω περί shell-wrappers 🙂

    Tο advanced bash scripting βέβαια μου κάνει κάπως μακρινό και εξωτικό. :lookaround:

  3. Πάντως έχει και πλάκα το .profile/.bashrc editing.  Ακόμα θυμάμαι το εξής ανέκδοτο από τη δουλειά:

    * Εμένα μου αρέσει το Emacs ως text editor.  Πάντα το προτιμούσα από το /usr/bin/vi στο Solaris, που αν έχεις λίγο μεγάλο τερματικό βγάζει εκείνο το απωθητικό μήνυμα:

    Terminal too wide.

    * Ένας συνεργάτης στη δουλειά ήθελε να ξεκινάει μια X11 εφαρμογή στο build server μας, κι επειδή βαρέθηκε να γράφει κάθε λίγο DISPLAY=τάδε έβαλε το IP address από το δικό του workstation στο .profile του root.

    * Περνάει λίγη ώρα ή λίγες μέρες, δε θυμάμαι ακριβώς πια.

    * Μπαίνω εγώ ως root στο build server και πάω να κάνω μια αλλαγή σε ένα text file:

    # emacs lala.txt

    * Τίποτα…  Περιμένω περιμένω, και στο τέλος κλείνω το Emacs με CTRL-C.

    * Πάω να το ξανανοίξω.  Τα ίδια…  Φαίνεται σαν να κολλάει πριν ανοίξει κάτι.

    Να μη στα πολυλογώ, το Emacs χάρηκε που βρήκε $DISPLAY στο environment, κι άνοιγε στο workstation του άλλου το παράθυρό του.  Μέχρι που τον άκουσα να φωνάζει από το δίπλα γραφείο: «WTF, ποιός μου ανοίγει παράθυρα στο workstation μου???  Σταματήστε, έχουμε και δουλειά να κάνουμε!!!»

    (BTW: Πολύ ωραίο το snort series.  Τι λες, μπορεί να σε πείσουμε να γράφεις σε περίπου τέτοιο μέγεθος άρθρα για το Ελληνικό Linux Format?)

  4. Παράθεμα: Ανίχνευση δικτυακών επιθέσεων με Snort/BASE σε OS X « digita|_bot

  5. @Fog
    Έχεις περάσει σε άλλο επίπεδο. Βέβαια πιστεύω ότι καλύτερα αντί για sudo port install mysql5 +server να έκανες sudo make mousaka +salata_horiatiki

    @Γιωργος Κεραμίδας
    Αν δεις τον άχρηστο τον Μπαλλή (που αμφιβάλλω γιατί έχεις σοβαρότερα πράγματα να κάνεις αλλά είσαι αρκετές ώρες online) πέστου να κάνει κανά τηλέφωνο κατά Πάτρα μεριά…

  6. @ Γιωργος Κεραμίδας Emacs ε; Καλό λειτουργικό, νάχε και editor 🙄

    ΥΓ. Αυτά τα κανονίζει ο ατζέντης μου. 😛

    @ Techjunkie Νομίζεις δε δοκίμασα; Το ταψί όμως άδειο. Έτσι υπέθεσα ότι είχαν «πέσει» τα repos. Θα δοκιμάσω με άλλο server :what:

Σχολιάστε

Εισάγετε τα παρακάτω στοιχεία ή επιλέξτε ένα εικονίδιο για να συνδεθείτε:

Λογότυπο WordPress.com

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό WordPress.com. Αποσύνδεση / Αλλαγή )

Φωτογραφία Twitter

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Twitter. Αποσύνδεση / Αλλαγή )

Φωτογραφία Facebook

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Facebook. Αποσύνδεση / Αλλαγή )

Φωτογραφία Google+

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Google+. Αποσύνδεση / Αλλαγή )

Σύνδεση με %s