Για να πάρω μια γεύση με το αντικείμενο με το οποίο θα ασχοληθώ κατά την πτυχιακή εργασία μου, αποφάσισα να στήσω ένα απλό ssh honeypot σε ένα μικρό vps (192MB RAM) για να δω αν όντως θα καταγραφούν επιθέσεις. Το honeypot που επέλεξα (ανάμεσα σε δύο) ήταν το Kippo, ένα απλό SSH honeypot γραμμένο σε Python με αρκετές δυνατότητες. Ακολουθεί οδηγός στα ελληνικά για την εγκατάσταση και λειτουργία του, σύμφωνα με τη διαδικασία που ακολούθησα. Τα παρακάτω αφορούν διανομή Ubuntu server 11.04 (32-bit).
1. Καταρχήν κάνουμε login ως root στο box μας και προχωρούμε σε ανανέωση και αναβάθμιση του συστήματος:
apt-get update && apt-get upgrade
2. Το Kippo “ακούει” by default στη θύρα 2222, το οποίο για δοκιμή είναι μια χαρά, αλλά στην πραγματικότητα ελαττώνει πολύ τις πιθανότητες να δεχτούμε κάποια επίθεση (γιατί τα συνήθη αυτοματοποιημένα εργαλεία που τρέχουν οι hackers ελέγχουν τη θύρα 22 του ssh). Καλό θα ήταν να κάνουμε το Kippo να ακούει στη standard port 22. Για να γίνει αυτό θα πρέπει πρώτα να αλλάξουμε τη θύρα του ssh server μας ώστε αργότερα να μπορούμε και εμείς να συνδεθούμε κανονικά στο σύστημα. Ξεκινάμε λοιπόν και επεξεργαζόμαστε το αρχείο ρυθμίσεων του ssh server μας (sshd):
vi /etc/ssh/sshd_config
Αλλάζουμε την επιλογή Port 22, επιλέγοντας κάποια άλλη, πχ 2222. Κάνουμε επανεκκίνηση του ssh server:
/etc/init.d/ssh restart
Σε αυτό το σημείο καλό θα ήταν να αποσυνδεθούμε από το σύστημα και να ξανασυνδεθούμε στη νέα θύρα.
3. Συνεχίζουμε εγκαθιστώντας τα απαιτούμενα πακέτα για το Kippo:
apt-get install python-dev openssl python-openssl python-pyasn1 python-twisted
Μπορούμε να κατεβάσουμε την τελευταία stable έκδοση του Kippo (0.5) αλλά είναι καλύτερο να χρησιμοποιήσουμε την πιο πρόσφατη έκδοση κατευθείαν από τον SVN server του. Για το λόγο αυτό χρειαζόμαστε το subversion:
apt-get install subversion
Επίσης, σχετικά με τη θύρα που θέλουμε να χρησιμοποιήσουμε, υπάρχει το πρόβλημα ότι στο linux μόνο ο root user επιτρέπεται να χρησιμοποιεί ports κάτω του 1024 και εμείς ΔΕΝ πρέπει για λόγους ασφαλείας να τρέχουμε το Kippo ως root. Στη σελίδα του Kippo υπάρχουν διάφορες λύσεις για το πώς να τρέξεις το honeypot στη θύρα 22, αλλά η πιο απλή είναι με τη βοήθεια της εφαρμογής authbind:
apt-get install authbind
4. Πριν προχωρήσουμε παρακάτω, προσθέτουμε στο σύστημα ένα νέο non-root χρήστη για να τρέχουμε το Kippo:
adduser kippo
και τον προσθέτουμε στη λίστα με τους χρήστες που μπορούν να χρησιμοποιήσουν την εντολή sudo:
visudo
όπου προσθέτουμε τη γραμμή:
kippo ALL=(ALL:ALL) ALL
κάτω από το χρήστη root.
Ολοκληρώνουμε τις ρυθμίσεις για χρήση της θύρας 22:
touch /etc/authbind/byport/22 chown kippo:kippo /etc/authbind/byport/22 chmod 777 /etc/authbind/byport/22
Σε αυτό το σημείο μπαίνουμε στο σύστημα ως χρήστης ‘kippo’ και πηγαίνουμε στον κατάλογο /home.
5. Κατεβάζουμε την τελευταία έκδοση του Kippo:
svn checkout http://kippo.googlecode.com/svn/trunk/ ./kippo
Αλλάζουμε τη θύρα στο αρχείο ρυθμίσεων του Kippo από 2222 σε 22:
mv kippo.cfg.dist kippo.cfg vi kippo.cfg
6. Τέλος, στο αρχείο εκκίνησης του Kippo:
vi start.sh
αλλάζουμε την εντολή
twistd -y kippo.tac -l log/kippo.log --pidfile kippo.pid
σε
authbind --deep twistd -y kippo.tac -l log/kippo.log --pidfile kippo.pid
ώστε αυτό να χρησιμοποιεί την εφαρμογή authbind για να μπορεί να “ακούει” στη θύρα 22, και τρέχουμε το honeypot:
./start.sh
7. Ελέγχουμε ότι όντως άνοιξε η θύρα μας και το Kippo “ακούει”:
sudo netstat -antp
όπου θα πρέπει να υπάρχει μια γραμμή σαν την παρακάτω:
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 22627/python
Είμαστε έτοιμοι. Τώρα κάθε προσπάθεια σύνδεσης στη θύρα 22 του συστήματος θα καταγράφεται από το Kippo και τα log files θα αποθηκεύονται στον αντίστοιχο κατάλογο.
Pingback: Installing Kippo SSH Honeypot (Ubuntu 11.04) » bruteforce.gr()