Συμβουλές για την προστασία του διακομιστή Linux από εξωτερικές επιθέσεις

Υποθέτω ότι οι άνθρωποι που οδηγούν Διακομιστές Linux γνωρίζω και γνωρίζω DenyHOSTS y Fail2ban. Για εκείνους που δεν τον γνωρίζουν, θα το κάνω εξηγώ λίγο για αυτά τα δύο εφαρμογές.

Ο John Fredy Perez είναι ένας από τους νικητές από τον εβδομαδιαίο διαγωνισμό μας: «Μοιραστείτε ό, τι γνωρίζετε για το Linux«. Συγχαρητήρια! Αγχωμένος για συμμετέχω και να συνεισφέρετε στην κοινότητα, όπως και ο John;

Θα εγκαταστήσουμε και θα διαμορφώσουμε αυτές τις δύο εφαρμογές για να αποφύγουμε τους επόμενους πονοκεφάλους. Πρώτα απ 'όλα θα εξηγήσουμε ποιες είναι αυτές οι δύο εφαρμογές και ποια είναι η λειτουργία τους:

Fail2Ban

Είναι ένας αναλυτής καταγραφής που αναζητά αποτυχημένες προσπάθειες εγγραφής και αποκλείει τα IP από τα οποία προέρχονται αυτές οι προσπάθειες. Διανέμεται με την άδεια GNU και συνήθως λειτουργεί σε όλα τα συστήματα που διασυνδέονται με ένα σύστημα ελέγχου επίθεσης ή ένα τοπικό τείχος προστασίας.

Το Fail2Ban έχει μια εξαιρετική διαμόρφωση και μπορεί επίσης να δημιουργήσει κανόνες για προγράμματα
δικά ή τρίτα μέρη.

DenyHOSTS

Είναι ένα εργαλείο ασφάλειας γραμμένο σε python που παρακολουθεί τα αρχεία καταγραφής του διακομιστή πρόσβασης για να αποτρέψει επιθέσεις brute force σε έναν εικονικό διακομιστή. Το πρόγραμμα λειτουργεί απαγορεύοντας διευθύνσεις IP που υπερβαίνουν έναν ορισμένο αριθμό αποτυχημένων προσπαθειών σύνδεσης.

Αυτές οι εφαρμογές Linux - DenyHosts και Fail2ban - μπορούν να χρησιμοποιηθούν ξεχωριστά ή μαζί. Στην περίπτωσή μου, έχω και τους δύο να συνεργάζονται.

Η εγκατάσταση και η διαμόρφωση του καθενός εξαρτάται από τη διανομή που χρησιμοποιείτε. Αυτή η ανάρτηση προσανατολίζεται προς το CentOS 6.3, αν και οι διαφορές μεταξύ των άλλων διανομών δεν είναι πολύ έντονες.

Λοιπόν, πάμε στη δουλειά.

Εγκατάσταση και διαμόρφωση Fail2Ban

Αυτή η εφαρμογή δημιουργεί δυναμικούς κανόνες στο ίδιο το τείχος προστασίας του Linux και είναι υπεύθυνη για τη δημιουργία ζωντανών κανόνων στο IpTables.

εγκατάσταση

Για την εγκατάσταση:

yum εγκατάσταση fail2ban 

Εάν το πακέτο δεν εμφανίζεται, πρέπει να προσθέσουμε το απαραίτητο αποθετήριο:

rpm -Uvh http://mirror.metrocast.net/fedora/epel/6/i386/epel-release-6-7.noarch.rpm

Με αυτό θα πρέπει να ξεκινήσετε την εγκατάσταση της εφαρμογής μαζί με τις εξαρτήσεις της.

Τώρα πρέπει να ρυθμίσουμε το Fail2Ban για να αναλύσουμε τα αρχεία καταγραφής που θέλουμε και να αποκλείσουμε
IP, αποστολή ειδοποιήσεων μέσω e-mail. Για αυτό πρέπει να τροποποιήσουμε το αρχείο jail.conf που βρίσκουμε στο / etc / fail2ban

cd / etc / fail2ban
nanojail.conf

Τα ακόλουθα πρέπει να γίνουν σε αυτό το αρχείο:

  • Τροποποίηση είναι η τιμή bantime, αυτή η τιμή καθορίζει το χρόνο σε δευτερόλεπτα που θα αποκλειστεί η IP του εισβολέα, από προεπιλογή η τιμή έρχεται σε 600 δευτερόλεπτα.
  • Βρείτε την τιμή maxretry που θα είναι ο αριθμός των φορών που μια IP μπορεί να έχει αποτυχημένο έλεγχο ταυτότητας πριν αποκλειστεί.
  • Προσθέστε τα ip μας στην παράμετρο ignip. Εδώ η εφαρμογή θα αγνοήσει τα πιστοποιημένα IP μας σε αυτήν την παράμετρο.
[ΠΡΟΚΑΘΟΡΙΣΜΕΝΟ]
# "ignip" μπορεί να είναι μια διεύθυνση IP, μια μάσκα CIDR ή ένας κεντρικός υπολογιστής DNS. Το Fail2ban δεν θα το κάνει
# απαγόρευση ενός κεντρικού υπολογιστή που αντιστοιχεί σε μια διεύθυνση σε αυτήν τη λίστα. Μπορούν να είναι πολλές διευθύνσεις
# ορίζεται χρησιμοποιώντας διαχωριστικό χώρου.
ignip = 127.0.0.1

# "bantime" είναι ο αριθμός των δευτερολέπτων στα οποία απαγορεύεται ένας κεντρικός υπολογιστής.
bantime = 600

# Ένας κεντρικός υπολογιστής απαγορεύεται εάν έχει δημιουργήσει "maxretry" κατά την τελευταία "ώρα εύρεσης"
# δευτερόλεπτα.
findtime = 600

# "maxretry" είναι ο αριθμός των αποτυχιών πριν απαγορευτεί ένας οικοδεσπότης.
maxretry = 3

Ένα παράδειγμα για το πώς μπορεί να είναι το εξής:

ignip = 127.0.0.1 190.25.242.75 192.168.1.0/24
bantime = 800
maxretry = 2

Ρύθμιση παραμέτρων Fail2Ban και SSH

Για να αναζητήσουμε αποτυχημένες προσπάθειες σύνδεσης SSH, τροποποιούμε το αρχείο μέχρι να μοιάζει με το εξής:

[ssh-iptables] 
enabled = true
φίλτρο = sshd
action = iptables [name = SSH, port = 22, protocol = tcp] sendmail-whois [name = SSH, dest=FredySnake@outlook.com, sender = fail2ban @ localhost] logpath = / var / log / safe # Αυτό είναι το log που θα αναλύσει το fail2ban
maxretry = 3 # οποιαδήποτε IP που έχει τρεις ή περισσότερες αποτυχημένες προσπάθειες θα αποκλειστεί.
bantime = 86400 # 24ωρος χρόνος απαγόρευσης εκφρασμένος σε δευτερόλεπτα

Μην ξεχνάτε ότι εάν τροποποιήσετε τη θύρα όπου ακούει το SSH, πρέπει επίσης να τροποποιήσετε την παράμετρο θύρας.

Αυτή η εφαρμογή δεν λειτουργεί μόνο για μη εξουσιοδοτημένη πρόσβαση σε SSH, αλλά και για apache, για να διαβάσει τα αρχεία καταγραφής Asterisk κ.λπ.

Εγκατάσταση και διαμόρφωση του DenyHOSTS

Η λειτουργία του βασίζεται στη χρήση του αρχείου /etc/hosts.deny, δηλαδή στον αποκλεισμό των διευθύνσεων των «επιτιθέμενων» κεντρικών υπολογιστών, στη δημιουργία μιας λίστας απαγορευμένων φιλοξενουμένων

Η εγκατάσταση από τα αποθετήρια μπορεί να ληφθεί με την ακόλουθη εντολή:

yum εγκαταστήστε denhosts 

Το αρχείο διαμόρφωσης βρίσκεται στο /etc/denyhosts.conf

Πριν συνεχίσουμε, αφού ως άνθρωποι μπορούμε να κάνουμε λάθη και να κάνουμε το τυπικό "Layer 8" όταν έχουμε πρόσβαση σε οποιαδήποτε από τις υπηρεσίες και αποκλείουμε τον εαυτό μας. Για να το αποφύγουμε αυτό, επεξεργαζόμαστε το αρχείο /etc/hosts.allow και προσθέτουμε τις IP των μηχανών από τις οποίες δεν θέλουμε να περιοριστούμε λόγω αποτυχίας πρόσβασης.

Τροποποιήστε το αρχείο denyhosts.conf

Προκειμένου να μην προχωρήσουμε τόσο πολύ στις ρυθμίσεις, σε αυτό το αρχείο θα επεξεργαστούμε και θα αποσυνδέσουμε μόνο ορισμένες παραμέτρους. Αυτά είναι:

SYNC_SERVER = http://xmlrpc.denyhosts.net:9911
SYNC_INTERVAL = 1 ώρα
SYNC_UPLOAD = ναι
SYNC_DOWNLOAD = ναι
SYNC_DOWNLOAD_THRESHOLD = 3
SYNC_DOWNLOAD_RESILIENCY = 5 ώρες

Έτσι, θα αφήσουμε μια διαμόρφωση πρακτικά από προεπιλογή, αλλά με μεγάλη ασφάλεια έναντι επιθέσεων SSH.

nano /etc/hosts.allow

Παράδειγμα:

sshd:127.0.0.1 
sshd:192.168.1.10
sshd: 192.168.0. *

Μετά από αυτό, κάνουμε επανεκκίνηση της υπηρεσίας:

Επανεκκίνηση /etc/init.d/denyhosts

Με αυτό δίνουμε άδεια σε ένα IP, ένα εύρος IP και φυσικά στη διεπαφή loopback. Κάτι που δεν έχω δοκιμάσει - επομένως δεν ξέρω αν λειτουργεί - είναι να προσθέσω DNS σε αυτό το αρχείο. δηλαδή, με υπηρεσίες όπως το DynDNS. Αν το κάνω, θα σας πω πώς πήγε.

Με ορισμένες επιλογές και προσαρμογές θα διασφαλίσουμε επίσης ότι μετά το χρονικό διάστημα που υποδεικνύουμε στη διαμόρφωση DenyHOSTS, οι αποθηκευμένες διευθύνσεις καθαρίζονται και ενημερώνονται με άλλες λίστες που έχουν γίνει από άλλους -αν το δηλώνουμε- δίνοντας άδεια πρόσβασης ο διακομιστής του DenyHOSTS.

Για να εκκαθαρίσετε τις αποθηκευμένες διευθύνσεις από καιρό σε καιρό, όπως έχει διαμορφωθεί, ο δαίμονας πρέπει να εκτελείται με την παράμετρο –purge:

/etc/init.d/denyhosts έναρξη --purge

Εκτός από αυτό, πρέπει να το συμπεριλάβουμε στην αρχή του συστήματος:

Το chkconfig denyhosts ενεργοποιείται

0 σχόλια, αφήστε τα δικά σας

Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: Miguel Ángel Gatón
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.