Πρόσβαση σε αρχείο ελέγχου linux. Linux Hard Hardening. Επιλέγουμε εργαλεία για έναν ολοκληρωμένο έλεγχο ασφάλειας. Διεξαγωγή Ατομικών Δοκιμών στη Λύνης

Τα περισσότερα από τέτοια συστήματα επιχειρήσεων και πολλαπλών συστατικών όπως ΧΥΜΟΣ ΔΕΝΤΡΟΥ , OracleDB χρησιμοποιούν στην πλατφόρμα τους ένα λειτουργικό σύστημα που βασίζεται σε linux . Ενόψει αυτού, οι ελεγκτές πληροφορικής δίνουν τόσο μεγάλη προσοχή σε αυτά. Σήμερα στο άρθρο θα παρουσιάσουμε στην προσοχή σας πολλά δωρεάν εργαλεία που παρουσιάζονται με τη μορφή σεναρίων και με χρήση κανονικών μηχανισμών λειτουργικού συστήματος για την παροχή ενός ρητού ελέγχου της διαμόρφωσης ασφαλείας.

Οι ακόλουθες εντολές συστήματος και δέσμες ενεργειών που χρησιμοποιούνται για τον γρήγορο έλεγχο των επιλογών ασφαλείας των συστημάτων Linux OS βασίζονται στις συστάσεις ελέγχου ασφαλείας που δημοσιεύονται από την κοινότητα ISACA στο εγχειρίδιο UNIX/LINUX Operating System Security Audit/Assurance Program.

1.Επαλήθευση λογαριασμών

1.1 Καταχωρίστε όλους τους χρήστες
Η λίστα των χρηστών αποθηκεύεται στο /etc/passwdfile. Για να λάβετε μια λίστα χρηστών, μπορείτε να χρησιμοποιήσετε το ακόλουθο σενάριο:

  1. bin/bash
  2. # userslistinthesystem.sh
  3. # count και Εμφανίζει τους υπάρχοντες "πραγματικούς" χρήστες στο σύστημα.
  4. echo "[*] Υπάρχοντες χρήστες (ταξινομημένα αλφαβητικά):"
  5. grep '/bin/bash' /etc/passwd | grep -v «ρίζα» | cut-f1
  6. -δ':' | είδος
  7. echo -n "[*] Αριθμός πραγματικών χρηστών που βρέθηκαν: "
  8. grep '/bin/bash' /etc/passwd | grep -v «ρίζα» | wc -l
1.2 Καταχωρίστε τους αποκλεισμένους λογαριασμούς
Κατά τη διάρκεια του ελέγχου, πρέπει να ελέγξετε τη λίστα των αποκλεισμένων και μη αποκλεισμένων χρηστών ( όνομα λογαριασμού ). Η ακόλουθη εντολή θα λειτουργήσει για αυτό:
  1. #!/bin/bash
  2. # passwd –s Όνομα λογαριασμού

1.3 Προβολή στατιστικών στοιχείων για όλους τους χρήστες

  • Ο ελεγκτής πρέπει να διασφαλίσει ότι η ομάδα μετα Χριστον περιλαμβάνονται στο σύστημα, για μια επισκόπηση των δραστηριοτήτων των χρηστών:
    1. #!/bin/bash
    Για να δείτε τη δραστηριότητα της περιόδου σύνδεσης ενός χρήστη με σύνολα για κάθε ημέρα, χρησιμοποιήστε την εντολή:
    1. #!/bin/bash
    2. # ac -d
    Για εμφάνιση πληροφοριών σχετικά με τη δραστηριότητα συνεδρίας (σε ώρες) της σύνδεσης χρήστη "χρήστης" :
    1. #!/bin/bash
    2. # χρήστης εναλλασσόμενου ρεύματος
    1.4 Προβολή δραστηριότητας χρήστη
    Οι εφαρμογές συστήματος psacct ή acct εκτελούνται στο παρασκήνιο και παρακολουθούν τη δραστηριότητα κάθε χρήστη στο σύστημα, καθώς και τους πόρους που καταναλώνουν. Για να ελέγξετε τη δραστηριότητα των χρηστών στο σύστημα, εκτελέστε το ακόλουθο σενάριο:
    1. #!/usr/bin/envksh
    2. τελευταίο -Fa|awk '
    3. /wtmp ξεκινά/ ( επόμενο; )
    4. /ακόμα συνδεδεμένο/ ( επόμενο; )
    5. $0 == επανεκκίνηση ( επόμενο; )
    6. NF > 0 (
    7. if (NR > 1)
    8. printf("
      ”);
    9. printf("Χρήστης:t%s
      ”, $1); # χρήστης
    10. printf(" Έναρξη:t%s %s %s %s
      ”, $3, $4, $5, $6);
    11. if ($9 == "κάτω")
    12. printf(" End: shutdown
      ”);
    13. printf(" Τέλος:t%s %s %s %s
      ”, $9, $10, $11, $12);
    14. if(substr ($NF, 1, 1) == “(“)
    15. t = $NF;
    16. h = "localhost";
    17. t = $(NF-1);
    18. h = $NF;
    19. gsub("[()]", "", t);
    20. printf("Time On:t%s
      ”, t);
    21. printf("Remote Host:t%s
      ”, η);
  • 2. Έλεγχος της πολιτικής κωδικού πρόσβασης

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

    # γάτα /etc/shadow | awk -F: ($2==””)(εκτύπωση $1)”

    2.2 Έλεγχος πολυπλοκότητας κωδικού πρόσβασης
    Κατά τη διάρκεια του ελέγχου, είναι απαραίτητο να ελέγξετε τις ρυθμίσεις πολυπλοκότητας του κωδικού πρόσβασης για να μειώσετε τον κίνδυνο επιθέσεων brute-force (brute-force) ή λεξικών στον κωδικό πρόσβασης. Πρέπει να χρησιμοποιούνται Pluggable Authentication Modules (PAM) για τον ορισμό αυτής της πολιτικής στο σύστημα.
    Ο ελεγκτής μπορεί να ελέγξει την κατάλληλη ρύθμιση στο αρχείο διαμόρφωσης:

    # vi /etc/pam.d/system-auth

    2.3 Έλεγχος λήξης κωδικού πρόσβασης

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

    #chage -l όνομα χρήστη

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

    #chage -M 60 όνομα χρήστη
    #chage -M 60 -m 7 -W 7 Όνομα χρήστη

    Επιλογές (για να ορίσετε την ημερομηνία λήξης του κωδικού πρόσβασης):
    -M - μέγιστη ημερομηνία λήξης σε ημέρες.
    -m είναι η ελάχιστη ημερομηνία λήξης σε ημέρες.
    -W - ρύθμιση προειδοποίησης σε ημέρες.

    2.4 Χρήση επαναλαμβανόμενων κωδικών πρόσβασης
    Οι ρυθμίσεις εξουσιοδότησης στο σύστημα πρέπει να συμμορφώνονται με την πολιτική κωδικού πρόσβασης. Το αρχείο που περιέχει το ιστορικό κωδικών πρόσβασης βρίσκεται στο /etc/security/opasswd. Για έλεγχο, ακολουθήστε τα εξής βήματα:

    για RHEL: άνοιγμα αρχείου '/etc/pam.d/system-auth':

    # vi /etc/pam.d/system-auth

    για Ubuntu/Debian/Linux Mint: ανοίξτε το αρχείο '/etc/pam.d/common-password':

    # vi /etc/pam.d/common-password

    Προσθέστε την ακόλουθη γραμμή στην ενότητα "auth":

    auth επαρκής pam_unix.so likeauthnullok

    Για να απενεργοποιήσετε τη χρήση των τελευταίων έξι κωδικών πρόσβασης, προσθέστε την ακόλουθη γραμμή:

    Επαρκής κωδικός πρόσβασης pam_unix.so nullokuse_authtok md5 shadow memory=6

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

    3. Ασφαλείς ρυθμίσεις σύνδεσης
    Τα πρωτόκολλα απομακρυσμένης σύνδεσης Telnet και Rlogin είναι πολύ παλιά και ευάλωτα, λόγω της μετάδοσης του κωδικού πρόσβασης μέσω του δικτύου σε μη κρυπτογραφημένη μορφή. Πρέπει να χρησιμοποιείται ασφαλές πρωτόκολλο για απομακρυσμένη και ασφαλή σύνδεση Secure Shell (SSH). Ο ελεγκτής πρέπει επίσης να διασφαλίσει ότι η επιλογή root login απενεργοποιημένη, η προεπιλεγμένη θύρα SSH άλλαξε, η απομακρυσμένη πρόσβαση επιτρέπεται μόνο για συγκεκριμένους εξουσιοδοτημένους χρήστες. Οι ρυθμίσεις που πρέπει να ελεγχθούν βρίσκονται στο αρχείο διαμόρφωσης SSH:

    1. #vi /etc/ssh/sshd_config

    3.1 Είσοδος ως υπερχρήστης (σύνδεση root)

    Κατά τη διάρκεια του ελέγχου, ο ελεγκτής θα πρέπει να επαληθεύσει ότι απαγορεύεται η απομακρυσμένη σύνδεση με δικαιώματα υπερχρήστη root.

    # PermitRootLogin = ναι
    3.2 Επαληθεύστε τη σύνδεση του λογαριασμού υπηρεσίας SSH

    Κατά τη διάρκεια του ελέγχου, ο ελεγκτής θα πρέπει να ελέγξει τον λογαριασμό υπηρεσίας με σύνδεση SSH χωρίς κωδικό πρόσβασης. Συνήθως, οι διαχειριστές συστήματος χρησιμοποιούν αυτή τη δυνατότητα για προγραμματισμό αντίγραφα ασφαλείας, μεταφορά αρχείων και εκτέλεση σεναρίων σε λειτουργία απομακρυσμένου ελέγχου.

    Ελέγξτε ότι οι ρυθμίσεις sshd_config (/etc/ssh/sshd_config) είναι σωστές για τελευταία φορά.

    # PermitRootLogin χωρίς κωδικό πρόσβασης

    # RSAAuthentication = ναι

    #PubkeyAuthentication=ναι

    3.3 Έλεγχος λιστών πρόσβασης στο DenyHosts και στο Fail2ban
    Κατά τη διάρκεια του ελέγχου, είναι απαραίτητο να ελέγξετε τις ρυθμίσεις των λιστών πρόσβασης DenyHosts και Fail2ban . Αυτά είναι σενάρια που χρησιμοποιούνται για την παρακολούθηση και την ανάλυση αρχείων καταγραφής πρόσβασης SSH και την προστασία από επιθέσεις ωμής βίας με κωδικό πρόσβασης.

    Χαρακτηριστικά DenyHost:

    • αποθηκεύει και παρακολουθεί αρχεία καταγραφής από ένα αρχείο /var/log/secure , επισημαίνοντας όλες τις επιτυχημένες και αποτυχημένες προσπάθειες σύνδεσης και τις φιλτράρει.
    • παρακολουθεί αποτυχημένες προσπάθειες σύνδεσης
    • στέλνει ειδοποίηση μέσω email για αποκλεισμένους κεντρικούς υπολογιστές και ύποπτες προσπάθειες σύνδεσης
    Χαρακτηριστικά Fail2ban:
    • Αποθηκεύει και παρακολουθεί αρχεία καταγραφής από αρχεία /var/log/secure και /var/log/auth.log , /var/log/pwdfail
    • εξαιρετικά προσαρμόσιμο και πολλαπλών νημάτων
    • παρακολουθεί τα αρχεία καταγραφής σε τακτική βάση

    4. Έλεγχος αρχείων καταγραφής συστήματος
    Κατά τη διάρκεια του ελέγχου, πρέπει να βεβαιωθείτε ότι εκτελείται ο δαίμονας SysLog και ότι όλα τα σημαντικά συμβάντα που συμβαίνουν στο σύστημα καταγράφονται στα αρχεία καταγραφής συμβάντων. Ο έλεγχος θα πρέπει επίσης να διασφαλίζει ότι η πολιτική διατήρησης αρχείων καταγραφής συμβάντων λαμβάνει υπόψη τις απαιτήσεις της ισχύουσας νομοθεσίας και της πολιτικής ασφαλείας.

    4.1 Αρχεία καταγραφής συμβάντων στο Linux:

    /var/log/auth.log – αρχείο καταγραφής συστήματος εξουσιοδότησης (σύνδεση και μηχανισμός ελέγχου ταυτότητας).
    /var/log/dpkg.log - αρχείο καταγραφής εγκατάστασης/αφαίρεσης πακέτων με χρήση dpkg.
    /var/log/yum.log - αρχείο καταγραφής εγκατάστασης/αφαίρεσης πακέτων με χρήση yum.
    /var/log/faillog - Ένα αρχείο καταγραφής αποτυχημένων προσπαθειών σύνδεσης και το όριο τους για κάθε λογαριασμό.
    /var/log/kern.log – αρχείο καταγραφής πυρήνα, (αναλυτικό αρχείο καταγραφής μηνυμάτων από τον πυρήνα του Linux).
    /var/log/maillog ή /var/log/mail.log – αρχείο καταγραφής διακομιστή αλληλογραφίας.
    /var/log/wtmp – login log (χρόνος καταγραφής και διάρκεια όλων των χρηστών του συστήματος).
    /var/run/utmp - πληροφορίες για χρήστες που είναι συνδεδεμένοι αυτήν τη στιγμή στο σύστημα.
    /var/log/lastlog - εγγραφές προηγούμενων συνδέσεων.
    /var/log/boot - πληροφορίες που καταγράφονται κατά την εκκίνηση του συστήματος

    5. Προστασία αρχείων συστήματος

    5.1 Προστασία του φορτωτή εκκίνησης GRUB

    Για την προστασία του φορτωτή εκκίνησης GRUB, ο διαχειριστής πρέπει να χρησιμοποιήσει κρυπτογράφηση κωδικού πρόσβασης Μορφή MD5 :

    # grub-md5-crypt

    Μετά την εκτέλεση της εντολής, ο διαχειριστής πρέπει να ανοίξει το αρχείο /boot/grub/menu.lst ή /boot/grub/grub.conf και προσθέστε τον κωδικό πρόσβασης MD5:

    # vi /boot/grub/menu.lst

    #vi /boot/grub/grub.conf

    Ο νέος κωδικός πρόσβασης MD5 που δημιουργήθηκε μπορεί να προστεθεί στο αρχείο διαμόρφωσης GRUB.

    5.2 Προστασία του καταλόγου εκκίνησης /BOOT

    Κατά τη διάρκεια του ελέγχου, πρέπει να ελέγξετε την κατάσταση του καταλόγου /μπότα, δεδομένου ότι ο πυρήνας του συστήματος και τα σχετικά αρχεία βρίσκονται στον κατάλογο /μπότα. Πρέπει να βεβαιωθείτε ότι αυτός ο κατάλογος έχει πρόσβαση μόνο για ανάγνωση, η οποία αποτρέπει μη εξουσιοδοτημένες αλλαγές σε σημαντικά αρχεία του συστήματος. Για έλεγχο, ανοίξτε το αρχείο /etc/fstab και ελέγξτε τη διαμόρφωση:

    Το αρχείο πρέπει να περιέχει τη γραμμή:

    LABEL=/boot /boot ext2 προεπιλογές,ro 1 2

    5.3 Έλεγχος ανοιχτών θυρών και ενεργών συνδέσεων

    Το ακόλουθο σενάριο μπορεί να χρησιμοποιηθεί για τον έλεγχο των υπηρεσιών που εκτελούνται στο σύστημα:

    #!/bin/bash
    if (($(ps -ef | grep -v grep | grep $service | wc -l) > 0))
    τότε
    echo "Η υπηρεσία $ λειτουργεί!!!"
    αλλού
    /etc/init.d/$service start
    fi

    Θέα δικτυακές συνδέσεις

    # netstat -anop
    ή
    # lsof -i(lsof -ni)
    ή
    # iptraf

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

    # netstat-tulpn
    Ένα σενάριο για τη σάρωση θύρας είναι:
    σάρωση () (
    αν [[ -z $1 || -z$2]]; τότε
    echo «Χρήση: $0
    ΕΠΙΣΤΡΟΦΗ
    fi
    localhost=1$
    τοπικές θύρες=()
    θήκη $2 ίντσες
    *-*)
    IFS=- ανάγνωση έναρξης τέλος<<< “$2”
    για ((port=start; port<= end; port++)); do
    ports+=($port)
    Ολοκληρώθηκε
    ;;
    *,*)
    IFS=, διαβάστε τις θύρες -ra<<< “$2”
    ;; *)
    ports+=($2) ;;
    esac
    για θύρα σε "$(ports[@])"; κάνω
    συναγερμός 1 "echo >/dev/tcp/$host/$port" &&
    echo "Η θύρα $port είναι ανοιχτή" ||
    echo "Η θύρα $port είναι κλειστή"
    Ολοκληρώθηκε
    }

    τείχος προστασίας iptables

    Κατά τη διάρκεια του ελέγχου, πρέπει να ελέγξετε τη διαμόρφωση του τείχους προστασίας Linux για να αποτρέψετε μη εξουσιοδοτημένη πρόσβαση. Για τον έλεγχο της κυκλοφορίας, πρέπει να δημιουργηθούν κανόνες στα iptables που θα φιλτράρουν τα εισερχόμενα, εξερχόμενα και προωθούμενα πακέτα με βάση τη διεύθυνση IP και τον αριθμό θύρας TCP/UDP.

    # iptables -n -L -v --line-numbers

    ICMP/αιτήματα εκπομπής

    Κατά τη διάρκεια του ελέγχου, πρέπει να επαληθεύσετε ότι τα συστήματα έχουν ρυθμιστεί ώστε να αγνοούν τα ping και τα αιτήματα εκπομπής. Για να το κάνετε αυτό, βεβαιωθείτε ότι το αρχείο "/etc/sysctl.conf" πρόσθεσε τις ακόλουθες γραμμές:

    # αγνοήστε αιτήματα ICMP:
    net.ipv4.icmp_echo_ignore_all = 1
    # παράβλεψη αιτημάτων μετάδοσης:
    net.ipv4.icmp_echo_ignore_broadcasts = 1

    5.4 Έλεγχος για εγκατεστημένες ενημερώσεις

    Τα συστήματα πρέπει να έχουν εγκατεστημένες τις πιο πρόσφατες ενημερώσεις:

    # yum ενημερώσεις
    # yum check-up update

    6. Έλεγχος εργασιών CRON που εκτελούνται αυτόματα

    Ο ελεγκτής θα πρέπει να ελέγξει ποιος επιτρέπεται και ποιος απαγορεύεται να εκτελεί εργασίες στο cron. Η πρόσβαση στο Cron ελέγχεται χρησιμοποιώντας αρχεία /etc/cron.allow και /etc/cron.deny.

    # echo ALL >>/etc/cron.deny

    7. Αναγκαστικός έλεγχος ασφαλείας SELINUX

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

    • Επιβολή: Η πολιτική SELinux επιβάλλεται. Το SELinux αρνείται την πρόσβαση βάσει κανόνων πολιτικής SELinux.
    • Επιτρεπτή: Η πολιτική SELinux δεν επιβάλλεται. Το SELinux δεν αρνείται την πρόσβαση, αλλά οι αρνήσεις καταγράφονται ως ενέργειες που θα απορρίπτονταν εάν η πολιτική είχε οριστεί να επιβληθεί.
    • Απενεργοποιημένο: Το SELinux είναι απενεργοποιημένο. Χρησιμοποιούνται μόνο διακριτοί κανόνες DAC.

    Κατά τη διάρκεια ενός ελέγχου, μπορείτε να χρησιμοποιήσετε την ακόλουθη δέσμη ενεργειών για να ελέγξετε την κατάσταση του SELinux ή να χρησιμοποιήσετε τις εντολές system-configselinux, getenforce ή sestatus:

    ΕΝΕΡΓΟΠΟΙΗΜΕΝΟ=`cat /selinux/enforce`
    εάν [ “$ENABLED” == 1 ]; τότε
    echo «Το SELinux είναι ενεργοποιημένο, απενεργοποιείται; (ναι όχι):"
    ανάγνωση απενεργοποίηση
    εάν [ $disable == "ναι" ]; τότε
    echo "απενεργοποίηση selinux"
    setenforce 0
    fi
    fi

    Σενάριο LBSA για έλεγχο βασικών επιλογών ασφαλείας

    LBSA (Σενάριο ελέγχου βασικής ασφάλειας του Linux) είναι ένα βασικό σενάριο ελέγχου ρύθμισης παραμέτρων ασφαλείας Linux. Το σενάριο πρέπει να εκτελείται από μια γραμμή εντολών με δικαιώματα ρίζα, ή είναι ιδανικά προγραμματισμένο να εκτελείται σε τακτική βάση χρησιμοποιώντας το cron για συστηματικό έλεγχο για αλλαγές διαμόρφωσης.

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

    Στην τρέχουσα έκδοση (έκδοση 1.0.49), το σενάριο πραγματοποιεί σάρωση για τις ακόλουθες επιλογές:

    • τρωτά σημεία στις ρυθμίσεις λογαριασμού
    • τρωτά σημεία στις ρυθμίσεις SSH
    • τρωτά σημεία σε προσωρινούς καταλόγους και καταλόγους του συστήματος αρχείων που έχουν φορτωθεί στη μνήμη RAM (για παράδειγμα, στο /tmp, /var/tmp /dev/)
    • δικαιώματα αρχείων, κατάσταση καταλόγων συστήματος
    • -Διαμόρφωση υπηρεσιών DRBD και Hearbeat

    Το σενάριο είναι αρκετά μεγάλο, οπότε δεν το βάλαμε στη σελίδα.

    Πραγματοποιήστε έλεγχο ασφάλειας διακομιστή μία φορά το μήνα για να εντοπίσετε έγκαιρα πιθανά προβλήματα που σχετίζονται με τη διείσδυση εισβολέων στον διακομιστή.

    Εάν δεν βλέπετε ενδείξεις δραστηριότητας τρίτου μέρους στο VPS ή στον ιστότοπο, εκτελέστε την ακόλουθη σειρά ελέγχων και προσαρμογών για να προστατέψετε τον διακομιστή από εισβολή.

    Ρυθμίσεις επιπέδου εφαρμογής

    Εάν το CMS είναι εγκατεστημένο στον διακομιστή, ελέγξτε εάν έχουν εγκατασταθεί όλες οι πιο πρόσφατες ενημερώσεις.

    Joomla

    Βρείτε το αρχείο changelog.txt στον ριζικό κατάλογο του ιστότοπου, όπου θα βρείτε πληροφορίες σχετικά με την έκδοση CMS. Εάν δεν είναι ενημερωμένο, ενημερώστε το Joomla.

    Wordpress

    Αναζητήστε το αρχείο wp-includes/version.php για τις πληροφορίες έκδοσης CMS. Εάν είναι παλιό, ενημερώστε το Wordpress.

    DLE

    Αναζητήστε το αρχείο engine/data/config.php, αναζητήστε τη γραμμή version_id και βεβαιωθείτε ότι η έκδοση είναι ενημερωμένη.

    Ελέγξτε επίσης τα αρχεία engine/ajax/updates.php και upgrade/index.php (παράμετρος $dle_version).

    1C-Bitrix

    Αναζητήστε το αρχείο /bitrix/modules/main/classes/general/version.php, όπου θα βρείτε πληροφορίες σχετικά με την έκδοση CMS. Ελέγξτε επίσης το αρχείο /bitrix/admin/update_system.php. Εάν η έκδοση είναι παλιά, ενημερώστε το 1C-Bitrix.

    Drupal

    Βρείτε το αρχείο changelog.txt στον ριζικό κατάλογο του ιστότοπου, όπου θα βρείτε πληροφορίες σχετικά με την έκδοση CMS. Εάν δεν είναι ενημερωμένο, ενημερώστε το Drupal.

    Ελέγξτε την έκδοση του πυρήνα στο αρχείο /modules/system/system.info.

    Επίσης, μπορείτε να εντοπίσετε την έκδοση CMS μέσω του πίνακα ελέγχου.

    Ελεγχος διακομιστή Ιστού.

    Απάχης

    Ανοίξτε το αρχείο διαμόρφωσης Apache (ανάλογα με την έκδοση, αυτά μπορεί να είναι αρχεία httpd.conf, httpd2.conf, apache.conf, apache2.conf) και ελέγξτε εάν περιέχει μια οδηγία που απενεργοποιεί την έξοδο πληροφοριών σχετικά με την έκδοση του ιστού υπηρέτης:

    ServerTokensProd

    Εάν αυτή η οδηγία δεν υπάρχει, προσθέστε και αποθηκεύστε το αρχείο.

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

    Options +Includes -FollowSymLinks +SymLinksIfOwnerMatch AllowOverride FileInfo AuthConfig Limit Indexes Επιλογές Σειρά επιτρέπονται, αρνούνται να επιτρέπεται από όλα php_admin_value open_basedir "." Επιλογές-ΕυρετήριαΕνέργεια php-cgi /php-bin/php

    Το ασφαλές.conf σας δεν πρέπει να διαφέρει σημαντικά από το παραπάνω παράδειγμα.

    Ελέγξτε το εγκατεστημένο MPM με την εντολή

    Apachectl -V

    Για μεγαλύτερη ασφάλεια, χρησιμοποιήστε το mpm_itk εκτός εάν χρειάζεστε οπωσδήποτε το mpm_prefork.

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

    Nginx

    Ανοίξτε το αρχείο διαμόρφωσης διακομιστή web (nginx.conf), μεταβείτε στην ενότητα http και ελέγξτε εάν περιέχει οδηγίες που περιορίζουν τον αριθμό των συνδέσεων από μία διεύθυνση IP:

    Limit_zone limits $binary_remote_addr 5m; limit_conn όρια 10; ή (για πρόσφατες εκδόσεις) limit_conn_zone $binary_remote_addr zone=addr:10m; limit_conn adr 10;

    Εάν αυτές οι οδηγίες δεν υπάρχουν, προσθέστε και αποθηκεύστε το αρχείο.

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

    Εάν ($http_user_agent ~* LWP::Simple|BBBike|wget|msnbot) (επιστροφή 403;)

    Αποκλεισμός ανεπιθύμητων παραπομπών προσθέτοντας την οδηγία στην ενότητα http του αρχείου διαμόρφωσης Nginx

    If($http_referer ~*(μωρά|προπώληση|κορίτσι|κοσμήματα|αγάπη|γυμνό|οργανικό|πόκερ|πορνό|φύλο|έφηβος))(επιστροφή 403;)

    Διαχειριστής ISP

    Πραγματοποιήστε τους παρακάτω ελέγχους στον πίνακα ελέγχου του ISPmanager.

    Ελέγξτε εάν η πρόσβαση στον πίνακα ελέγχου περιορίζεται από τη διεύθυνση IP.

    Ρυθμίστε το αντίγραφο ασφαλείας δεδομένων εάν δεν είναι ενεργοποιημένο. Συνιστούμε να χρησιμοποιήσετε μια εξωτερική μονάδα δίσκου για δημιουργία αντιγράφων ασφαλείας για να αποτρέψετε την απώλεια δεδομένων μαζί με το αρχείο.

    PHP

    Ανοίξτε το αρχείο διαμόρφωσης php.ini και προσθέστε τις ακόλουθες οδηγίες.

    Expose_php=Off - απενεργοποιήστε τη μετάδοση πληροφοριών έκδοσης PHP στην κεφαλίδα HTTP. sql.safe_mode=Ενεργό - ενεργοποίηση της ασφαλούς λειτουργίας SQL. post_max_size=8M - όριο μεγέθους για δεδομένα που μεταδίδονται με τη μέθοδο POST. disable_functions exec, system, passthru, proc_open, shell_exec - απενεργοποιήστε ορισμένες λειτουργίες για λόγους ασφαλείας.

    NTP

    Στο αρχείο διαμόρφωσης NTP (/etc/ntp.conf από προεπιλογή), προσθέστε γραμμές για να απενεργοποιήσετε τα αναδρομικά αιτήματα:

    Περιορισμός προεπιλεγμένου kod limited nomodify notrap nopeer noquery περιορισμός -6 προεπιλεγμένος κωδικός περιορισμένος nomodify notrap nopeer noquery περιορισμός 127.0.0.1 περιορισμός -6::1

    Δένω

    Τοποθετήστε τις ακόλουθες γραμμές στο αρχείο named.conf για να απενεργοποιήσετε τα αναδρομικά ερωτήματα:

    Να επιτρέπεται-αναδρομή( 127.0.0.1; 82.146.32.0/19; 78.24.216.0/21; 92.63.96.0/20; 62.109.0.0/19; 188.120.224.019; 188.120.224.019 248.0/21; );

    Έλεγχος του κατόχου του καταλόγου του ιστότοπου

    Ελέγξτε σε ποιον ανήκει ο κύριος κατάλογος του ιστότοπου και όλοι οι υποκαταλόγους του.

    Στη γραμμή εργαλείων ISPmanager, μεταβείτε στην ενότητα "Σύστημα" -> "Διαχείριση αρχείων" και ανοίξτε τον κατάλογο του ιστότοπου. Βεβαιωθείτε ότι οι στήλες Κάτοχος και Ομάδα προορίζονται για τον χρήστη στον οποίο ανήκει ο ιστότοπος. Για να αλλάξετε αυτά τα χαρακτηριστικά, κάντε κλικ στο κουμπί Χαρακτηριστικά στη γραμμή εργαλείων.

    Τα έγκυρα ονόματα κατόχων ιστότοπου είναι apache, www, www-data εάν χρησιμοποιείτε mpm_prefork. Συνιστούμε να χρησιμοποιήσετε το mpm_itk για να βελτιώσετε την ασφάλεια.

    Εάν ο ιστότοπος περιέχει κοινόχρηστους φακέλους (για παράδειγμα, upload, tmp), τότε το όνομα κατόχου 777 είναι έγκυρο για αυτούς. Βεβαιωθείτε ότι αυτός ο χρήστης έχει οριστεί μόνο στους απαραίτητους καταλόγους εκτελώντας την εντολή

    Βρείτε ./ -perm 0777

    Θα βρει όλους τους φακέλους και τα αρχεία που ανήκουν στον 777.

    Ρυθμίσεις επιπέδου λειτουργικού συστήματος

    κυνηγός

    Χρησιμοποιήστε το βοηθητικό πρόγραμμα rkhunter για να εντοπίσετε πιθανές ευπάθειες διακομιστή.

    Για να εγκαταστήσετε το βοηθητικό πρόγραμμα, χρησιμοποιήστε την εντολή:

    Yum install rkhunter - CentOS OS apt-get install rkhunter - Debian/Ubuntu OS κάνει όλες τις εγκαταστάσεις καθαρές -C /usr/ports/security/rkhunter ή pkg install rkhunter - FreeBSD OS

    Για να ενημερώσετε τη βάση δεδομένων αυτού του βοηθητικού προγράμματος, εκτελέστε τις εντολές

    Rkhunter -- ενημέρωση

    Rkhunter --propupd

    Εκτελέστε έναν έλεγχο συστήματος με την εντολή

    Rkhunter -c --cs2

    Κατά τη διαδικασία επαλήθευσης, πρέπει να πατήσετε το πλήκτρο Enter αρκετές φορές για να συνεχίσετε. Μετά την ολοκλήρωση, θα εμφανιστεί μια περίληψη του αποτελέσματος της δοκιμής.

    Τα αποτελέσματα του ελέγχου τοποθετούνται στο αρχείο καταγραφής /var/log/rkhunter/rkhunter.log, ελέγξτε το για προειδοποιήσεις και σφάλματα.

    sysctl

    Χρησιμοποιήστε το βοηθητικό πρόγραμμα sysctl για να διαχειριστείτε τις παραμέτρους του πυρήνα του συστήματος. Ανοίξτε το αρχείο ρύθμισης παραμέτρων του βοηθητικού προγράμματος /etc/sysctl.conf και εισαγάγετε τις ακόλουθες γραμμές.

    Απενεργοποιήστε τη δυνατότητα δρομολόγησης εισερχόμενης κίνησης, καθώς ένας εισβολέας μπορεί να χρησιμοποιήσει αυτήν τη δυνατότητα για να πλαστογραφήσει διευθύνσεις IP:

    net.ipv4.conf.all.accept_source_route = 0

    Απενεργοποιήστε τις απαντήσεις σε αιτήματα ICMP μέσω του καναλιού εκπομπής - αυτό θα βοηθήσει στην αποφυγή επιθέσεων στρουμφ:

    Net.ipv4.icmp_echo_ignore_broadcasts = 1

    Απενεργοποιήστε την καταγραφή μη έγκυρων μηνυμάτων σφάλματος:

    Net.ipv4.icmp_ignore_bogus_error_responses = 1

    Ενεργοποίηση προστασίας υπερχείλισης μνήμης:

    Kernel.exec-shield=1 (CentOS)

    Ενεργοποίηση χρήσης μνήμης ASLR:

    kernel.randomize_va_space = 2

    Απενεργοποιήστε τη δυνατότητα προώθησης μηνυμάτων ICMP:

    net.ipv4.conf.all.accept_redirects=0 net.ipv4.conf.default.accept_redirects=0

    Εάν δεν χρησιμοποιείτε VPN ή άλλες ειδικές εφαρμογές στο διακομιστή, απενεργοποιήστε την προώθηση:

    Net.ipv4.conf.all.forwarding=0

    Ενεργοποίηση προστασίας από πλημμύρες SYN - χρήση cookie SYN:

    Net.ipv4.tcp_syncookies=1

    Ορίστε τον αριθμό των προσπαθειών αποστολής πακέτων SYN-ACK:

    Net.ipv4.tcp_synack_retries = 3

    Ορίστε το χρόνο μετά τον οποίο ο διακομιστής ελέγχει τη σύνδεση εάν δεν έχει χρησιμοποιηθεί για μεγάλο χρονικό διάστημα (η προεπιλογή είναι 2 ώρες):

    Net.ipv4.tcp_keepalive_time=1800

    Ορίστε τον αριθμό των ελέγχων σύνδεσης προτού τερματιστεί:

    Net.ipv4.tcp_keepalive_probes=3

    Ρυθμίστε το χρονικό όριο της πρίζας στην κατάσταση FIN-WAIT-2:

    net.ipv4.tcp_fin_timeout=30

    fstab

    Ελέγξτε το αρχείο διαμόρφωσης fstab (/etc/fstab), το οποίο περιέχει πληροφορίες σχετικά με δίσκους, διαμερίσματα και συσκευές αποθήκευσης, καθώς και τον τρόπο με τον οποίο τοποθετούνται στο σύστημα.

    vi /etc/fstab

    Σημειώστε ότι τα διαμερίσματα που δεν είναι root πρέπει να έχουν την επιλογή nodev. Εάν το /tmp είναι προσαρτημένο σε ξεχωριστό διαμέρισμα, προσθέστε nodev, noexec, nosuid για αυτό το διαμέρισμα.

    rsyslog

    Ελέγξτε το αρχείο καταγραφής συστήματος /etc/rsyslog.conf.

    Vi /etc/rsyslog.conf

    Δώστε προσοχή στις ακόλουθες γραμμές, οι οποίες θα πρέπει να μοιάζουν με:

    Βεβαιωθείτε επίσης ότι το αρχείο καταγραφής δεν είναι κενό, π.χ. η καταγραφή είναι σωστή.

    sudo

    Ελέγξτε εάν το βοηθητικό πρόγραμμα sudo (ή su) έχει ρυθμιστεί σωστά, το οποίο επιτρέπει στον χρήστη να εκτελεί ορισμένες εντολές και προγράμματα ως root. Οι ρυθμίσεις για αυτό το βοηθητικό πρόγραμμα βρίσκονται στο αρχείο διαμόρφωσης /etc/sudoers ή /usr/local/etc/sudoers. Ανοίξτε το για επεξεργασία

    Vi /etc/sudoers

    Βρείτε τη γραμμή που είναι γραμμένη από προεπιλογή και επιτρέπει στον υπερχρήστη root να εκτελεί οποιεσδήποτε εντολές.

    Για να δώσετε σε όλους τους χρήστες το δικαίωμα να εκτελούν εντολές ως root, προσθέστε την ακόλουθη γραμμή:

    ALL ALL=/bin/su ή ALL ALL=/usr/bin/su

    Για να δώσετε σε έναν συγκεκριμένο χρήστη το δικαίωμα να εκτελεί μόνο ορισμένες εντολές ως root, προσθέστε τη γραμμή:

    %users ALL=/sbin/mount - η ομάδα χρηστών θα μπορεί να χρησιμοποιεί sudo μόνο με την εντολή mount χρήστης ALL=/sbin/mount - ο χρήστης χρήστης θα μπορεί να χρησιμοποιεί sudo μόνο με την εντολή mount

    Ρυθμίσεις επιπέδου δικτύου

    Ελέγξτε ποιες θύρες είναι ανοιχτές στον διακομιστή και ποιες υπηρεσίες τις χρησιμοποιούν εκτελώντας την εντολή

    Netstat -tuplnw | awk "(εκτύπωση $4,$NF)" | ταξινόμηση | uniq

    Για παράδειγμα, η καταχώρηση 127.0.0.1:53 748/named σημαίνει ότι η ονομαζόμενη υπηρεσία χρησιμοποιεί τη θύρα 53. Ελέγξτε ότι μόνο οι απαραίτητες είναι μεταξύ των υπηρεσιών που εκτελούνται, απενεργοποιήστε όλες τις άλλες.

    FTP

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

    για vsftpd.conf:

    pasv_min_port=1028 pasv_max_port=1048

    για proftpd.conf:

    Παθητικές θύρες 1028 1048

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

    για vsftpd.conf:

    Xferlog_enable=ΝΑΙ (καταγραφή ftp) anonymous_enable=ΟΧΙ (άρνηση συνδέσεων ανώνυμων χρηστών) anon_upload_enable=ΟΧΙ anon_mkdir_write_enable=ΟΧΙ

    για proftpd.conf:

    στο τμήμα ...διαγράψτε όλες τις ενότητες και προσθέστε γραμμές

    DenyAll DenyAll

    iptables

    Ελέγξτε εάν το τείχος προστασίας έχει ρυθμιστεί σωστά. Για iptables εκτελέστε την εντολή

    Iptables-nL

    Αυτή η εντολή εκτυπώνει όλους τους κανόνες του τείχους προστασίας iptables στη γραμμή εντολών. Επίσης, αυτοί οι κανόνες μπορούν να προβληθούν και να επεξεργαστούν στο αρχείο διαμόρφωσης τείχους προστασίας /etc/sysconfig/iptables - για CentOS OS, /etc/network/if-up.d/ispmgrfw - για Debian/Ubuntu OS.

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

    :INPUT ACCEPT :FORWARD ACCEPT :OUTPUT ACCEPT to :INPUT DROP :FORWARD DROP :OUTPUT DROP

    Για να ανοίξετε τις απαραίτητες θύρες, προσθέστε γραμμές όπως

    A INPUT -p tcp -m tcp --dport 53 -j ACCEPT -A INPUT -p udp -m udp --dport 53 -j ACCEPT -A INPUT -p tcp -m multiport --sports 53,80,25,443,953 -j ΑΠΟΔΕΧΟΜΑΙ

    όπου 53 είναι ο αριθμός θύρας που ανοίγει.

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

    Οι κανόνες του τείχους προστασίας μπορούν να διαμορφωθούν από τον πίνακα ελέγχου του ISPmanager.

    SSH

    Ανοίξτε το αρχείο διαμόρφωσης SSH:

    Vi /etc/ssh/sshd_config

    Ελέγξτε ότι οι ακόλουθες γραμμές δεν σχολιάζονται:

    Πρωτόκολλο 2 (για χρήση της δεύτερης έκδοσης του πρωτοκόλλου) IgnoreRhosts ναι (μην χρησιμοποιείτε το αρχείο .rhost) HostbasedAuthentication όχι (δεν γίνεται έλεγχος ταυτότητας του κεντρικού υπολογιστή) PermitRootLogin όχι (άρνηση πρόσβασης root) PermitEmptyPasswords όχι (μην χρησιμοποιείτε κενούς κωδικούς πρόσβασης) PermitUserE (απαγόρευση στον χρήστη να ορίσει μεταβλητές περιβάλλοντος) PasswordAuthentication ναι (να επιτρέπεται ο έλεγχος ταυτότητας με κωδικό πρόσβασης)

    Ενεργοποιήστε το SFTP προσθέτοντας την ακόλουθη γραμμή στο sshd_config:

    Υποσύστημα sftp /usr/lib/openssh/sftp-server

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

    Εκτελέστε την εντολή mailq και προβάλετε τη λίστα των μηνυμάτων. Εάν η λίστα είναι πολύ μεγάλη, ελέγξτε επιλεκτικά για μηνύματα που μπορεί να είναι ανεπιθύμητα. Με αναγνωριστικό (για παράδειγμα, BD65F10DEE4) προσδιορίστε τον αποστολέα της επιστολής. Εντολή

    Exim -Mvh message_id

    εμφανίζει την κεφαλίδα του email και την εντολή

    Exim -Mvb message_id

    θα εμφανίσει το σώμα του μηνύματος.

    Μεταξύ των κεφαλίδων μηνυμάτων, το πεδίο Από: περιέχει τον αποστολέα και το X-PHP-Originating-Script περιέχει το σενάριο στο οποίο στάλθηκε το μήνυμα.

    Λογισμικό

    Ελέγξτε το λογισμικό διακομιστή για τρωτά σημεία.

    CentOS OS

    Εκτελέστε μια εντολή που παραθέτει τα εγκατεστημένα αρχεία λογισμικού που τροποποιήθηκαν πρόσφατα:

    Rpm -qVa - για εμφάνιση όλων των αρχείων, rpm -qVa | awk "$2!="c" (εκτύπωση $0)" - για εκτύπωση αρχείων εκτός από αρχεία καταγραφής.

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

    S - τροποποιημένο μέγεθος αρχείου M - τροποποιημένες προεπιλεγμένες άδειες 5 - MD5 τροποποιημένο άθροισμα ελέγχου D - τροποποιημένοι αριθμοί μείζονος/μικρής σημασίας για τη συσκευή L - τροποποιημένος συμβολικός σύνδεσμος U - τροποποιημένος κάτοχος αρχείου G - τροποποιημένη ομάδα T - τροποποιημένη ημερομηνία τροποποίησης αρχείου T (mtime) γ - αρχείο διαμόρφωσης d - αρχείο τεκμηρίωσης g - αρχείο δεν περιλαμβάνεται στο πακέτο l - αρχείο άδειας r - αρχείο README

    Για παράδειγμα, η γραμμή S.5....T. c /etc/httpd/conf/httpd.conf σημαίνει ότι το httpd.conf είναι ένα αρχείο διαμόρφωσης, το μέγεθος, το άθροισμα ελέγχου και η ημερομηνία τελευταίας τροποποίησης έχουν αλλάξει. Δεδομένου ότι αυτό είναι ένα αρχείο διαμόρφωσης, αυτές οι αλλαγές δεν είναι ύποπτες.

    Δώστε προσοχή σε αρχεία στα οποία οι τιμές του αθροίσματος ελέγχου έχουν αλλάξει χωρίς προφανή λόγο. Για τέτοια αρχεία, εκτελέστε την εντολή:

    Stat /usr/sbin/sshd && file /usr/sbin/sshd όπου usr/sbin/sshd είναι η διαδρομή προς το αρχείο.

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

    Εκτελέστε την εντολή:

    Yum --ενημέρωση ασφαλείας

    για να εγκαταστήσετε την ενημέρωση ασφαλείας.

    Debian OS

    Εκτελέστε εντολές που ελέγχουν τα αθροίσματα ελέγχου MD5 για εγκατεστημένα προγράμματα:

    # apt-get install debsums # debsums -c

    Εκτελέστε τις ακόλουθες εντολές για να ελέγξετε την ενημέρωση ασφαλείας:

    # echo 'deb http://security.debian.org wheezy/updates κύρια συνεισφορά μη δωρεάν' >> /etc/apt/sources.list # grep security /etc/apt/sources.list > /etc/apt/secsrc .list # apt-get -s -o Διεύθυνση::Etc::sourcelist="secsrc.list" -o Διεύθυνση::Etc::sourceparts="-" αναβάθμιση

    Για να εγκαταστήσετε την ενημέρωση ασφαλείας, εκτελέστε την εντολή:

    # apt-get -o Διεύθυνση::Etc::sourcelist="secsrc.list" -o Αναβάθμιση Διεύθυνσης::Etc::sourceparts="-"

    Επαληθεύστε ότι όλα τα αποθετήρια έχουν εναρμόνιση gpg εκτελώντας τις εντολές:

    # grep -ri gpgcheck /etc/yum.conf # grep -ri gpgcheck /etc/yum.repos.d/ Βεβαιωθείτε ότι οι γραμμές μοιάζουν με: gpgcheck=1 # grep -ri AllowUnauthenticated /etc/apt/

    Σειρές της φόρμας

    APT::Get::Allow "αληθές" χωρίς έλεγχο ταυτότητας;

    δεν πρεπει να ειναι.

    Αχρησιμοποίητες υπηρεσίες

    CentOS OS

    chkconfig --list

    Chkconfig --del service_name όπου service_name είναι το όνομα της υπηρεσίας.

    Debian OS

    Εκτελέστε μια εντολή που παραθέτει τις υπηρεσίες που δεν χρησιμοποιούνται:

    sysv-rc-conf

    Για να απενεργοποιήσετε την εκκίνηση μιας υπηρεσίας που δεν χρησιμοποιείται, εκτελέστε την εντολή:

    Sysv-rc-conf off service_name όπου service_name είναι το όνομα της υπηρεσίας.

    Η ασφάλεια του διακομιστή Linux είναι πολύ σημαντική για την προστασία των δεδομένων σας, πνευματική ιδιοκτησία, καθώς και ο χρόνος στα χέρια των κροτίδων. Για ασφάλεια λειτουργικό σύστημαΑπαντήσεις Linux Διαχειριστής συστήματος. Σε αυτό το άρθρο, θα εξετάσουμε είκοσι πράγματα που πρέπει να κάνετε με το λειτουργικό σας σύστημα Linux για να το διατηρείτε ασφαλές και ασφαλές ανά πάσα στιγμή. Εάν αυτό οικιακός υπολογιστής, τότε σχετικά με την ασφάλεια, ίσως, δεν έχει νόημα να ανησυχείτε τόσο πολύ, θα αρκούν ισχυροί κωδικοί πρόσβασης και αποκλεισμός της πρόσβασης στις θύρες από το Διαδίκτυο. Αλλά στην περίπτωση ενός δημόσιου διακομιστή, θα πρέπει να δώσετε προσοχή στη διασφάλιση της προστασίας του.

    Αυτές οι οδηγίες θα λειτουργήσουν για οποιαδήποτε διανομή, είτε χρησιμοποιείτε CentOS, Red Hat ή Ubuntu, Debian.

    1. Κρυπτογράφηση επικοινωνίας

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

    Χρησιμοποιήστε scp, ssh , rsync ή sftp για να μεταφέρετε αρχεία. Μπορείτε επίσης να προσαρτήσετε ένα απομακρυσμένο σύστημα αρχείων στον οικιακό σας κατάλογο χρησιμοποιώντας εργαλεία όπως το shhfs.

    Το GnuPG σάς επιτρέπει να κρυπτογραφείτε και να υπογράφετε τα δεδομένα σας με ένα ειδικό ιδιωτικό κλειδί. Υπάρχουν επίσης λειτουργίες για διαχείριση κλειδιών και πρόσβαση σε δημόσια κλειδιά.

    Το Fugu είναι ένα γραφικό εργαλείο μεταφοράς αρχείων SFTP. Το SFTP μοιάζει πολύ με το FTP, αλλά ολόκληρη η συνεδρία είναι κρυπτογραφημένη. Αυτό σημαίνει ότι κανένας κωδικός πρόσβασης ή εντολές δεν μεταδίδονται στον καθαρό. Επομένως, τέτοιες μεταφορές είναι λιγότερο ευάλωτες σε τρίτους. Μπορείτε επίσης να χρησιμοποιήσετε το FileZilla, είναι cross-platform πελάτης FTPμε υποστήριξη για FTS μέσω SSH / TLS και SSH File Transfer Protocol (SFTP).

    Το OpenVPN είναι ένας αποτελεσματικός και ελαφρύς πελάτης VPN με υποστήριξη για κρυπτογράφηση SSH.

    2. Προσπαθήστε να μην χρησιμοποιείτε FTP, Telnet, Rlogin και RSH

    Στα περισσότερα δίκτυα, ονόματα χρήστη, κωδικοί πρόσβασης από FTP, Telnet, εντολές RSH μπορούν να υποκλαπούν από κάποιον στο ίδιο δίκτυο χρησιμοποιώντας έναν ανιχνευτή πακέτων. Η γενική λύση σε αυτό το πρόβλημα είναι η χρήση OpenSSH, SFTP ή SFTP, που προσθέτει SSL ή TLS σε κανονικό FTP. Εκτελέστε την ακόλουθη εντολή για να καταργήσετε NIS, RSH και άλλες παρωχημένες υπηρεσίες:

    yum erase inetd xinetd ypserv tftp-server telnet-server rsh-serve

    3. Μειώστε την ποσότητα του λογισμικού

    Χρειάζεστε πραγματικά όλες τις εγκατεστημένες υπηρεσίες web; Μην εγκαθιστάτε άσκοπα λογισμικόγια την αποφυγή ευπάθειας σε αυτά τα προγράμματα. Χρησιμοποιήστε τον διαχειριστή πακέτων για να δείτε εγκατεστημένα προγράμματακαι αφαιρέστε όλα τα περιττά:

    έχει εγκατασταθεί η λίστα yum
    $ yum πακέτο λίστας
    $ yum αφαίρεση πακέτου

    dpkg --λίστα
    $ dpkg --πακέτο πληροφοριών
    $ apt-get αφαιρέστε το πακέτο

    4. Ένα μηχάνημα - ένα σέρβις

    Εκτελέστε διαφορετικές υπηρεσίες σε ξεχωριστούς διακομιστές ή εικονικές μηχανές. Αυτό περιορίζει τον αριθμό των υπηρεσιών που μπορούν να παραβιαστούν. Για παράδειγμα, εάν ένας εισβολέας μπορεί να χακάρει τον Apache, τότε θα αποκτήσει πρόσβαση σε ολόκληρο τον διακομιστή. Συμπεριλαμβανομένων υπηρεσιών όπως MySQL, διακομιστής ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗκαι ούτω καθεξής. Μπορείτε να χρησιμοποιήσετε λογισμικό όπως το XEN ή το OpenVZ για εικονικοποίηση.

    5. Διατηρήστε ενημερωμένα τον πυρήνα και το λογισμικό Linux

    Η εφαρμογή ενημερώσεων κώδικα ασφαλείας είναι ένα πολύ σημαντικό μέρος για τη διατήρηση της ασφάλειας ενός διακομιστή Linux. Το λειτουργικό σύστημα παρέχει όλα τα εργαλεία για να διατηρείται το σύστημα ενημερωμένο και να αναβαθμίζεται σε νέες εκδόσεις. Όλες οι ενημερώσεις ασφαλείας θα πρέπει να εφαρμοστούν το συντομότερο δυνατό. Και εδώ, πρέπει να χρησιμοποιήσετε τον διαχειριστή πακέτων σας. Για παράδειγμα:

    Ή για συστήματα που βασίζονται στο Debian:

    ενημέρωση sudo apt && αναβάθμιση sudo apt

    Μπορείτε να ρυθμίσετε το Red Hat ή το Fedora για να σας στέλνει ειδοποιήσεις μέσω email όταν είναι διαθέσιμες νέες ενημερώσεις ασφαλείας. Μπορείτε επίσης να προσαρμόσετε αυτόματη ενημέρωσημέσω του cron ή μπορείτε να χρησιμοποιήσετε το aptcron του Debian για να σας ειδοποιήσει να αναβαθμίσετε το σύστημά σας.

    6. Χρησιμοποιήστε επεκτάσεις ασφαλείας στο Linux

    Το λειτουργικό σύστημα Linux συνοδεύεται από διάφορες ενημερώσεις κώδικα ασφαλείας που μπορούν να χρησιμοποιηθούν για προστασία από εσφαλμένες ρυθμίσεις παραμέτρων ή κακόβουλο λογισμικό. Αλλά μπορείτε επίσης να χρησιμοποιήσετε πρόσθετα συστήματα ελέγχου πρόσβασης για εφαρμογές όπως το SELinux ή το AppArrmor.

    Το SELinux παρέχει διάφορες πολιτικές ασφαλείας για τον πυρήνα του Linux. Εδώ είναι δυνατός ο έλεγχος της πρόσβασης σε οποιουσδήποτε πόρους του συστήματος χρησιμοποιώντας ρόλους. Ένας συγκεκριμένος πόρος μπορεί να είναι προσβάσιμος μόνο από ένα πρόγραμμα του οποίου ο ρόλος το επιτρέπει και ακόμη και τα δικαιώματα υπερχρήστη δεν έχουν σημασία. Το SELinux αυξάνει σημαντικά την ασφάλεια ενός συστήματος Linux, αφού ακόμη και το root θεωρείται κανονικός χρήστης εδώ. Περισσότερες λεπτομέρειες περιγράφονται σε ξεχωριστό άρθρο.

    7. Λογαριασμοί χρηστών και ισχυροί κωδικοί πρόσβασης

    Χρησιμοποιήστε τις εντολές useradd και usermod για να δημιουργήσετε και να διατηρήσετε λογαριασμούς χρηστών. Βεβαιωθείτε ότι έχετε έναν καλό και ισχυρό κωδικό πρόσβασης, θα πρέπει να περιέχει τουλάχιστον οκτώ χαρακτήρες, κατά προτίμηση σε διαφορετική περίπτωση, μεταξύ των οποίων θα πρέπει να υπάρχουν ειδικοί χαρακτήρες ή αριθμοί. Για παράδειγμα, 8 χαρακτήρες, εκ των οποίων οι επτά είναι γράμματα και ένας χαρακτήρας ή αριθμός. Χρησιμοποιήστε εργαλεία όπως ο John the Ripper για να βρείτε αδύναμους κωδικούς πρόσβασης χρήστη στον διακομιστή και ρυθμίστε το pam_cracklib.so για να επιβάλετε την πολιτική κωδικών πρόσβασης.

    8. Αλλάζετε τους κωδικούς πρόσβασης από καιρό σε καιρό

    Η εντολή αλλαγής σάς επιτρέπει να καθορίσετε τον αριθμό των ημερών πριν από την ημερομηνία αναγκαστικής αλλαγής κωδικού πρόσβασης. Αυτές οι πληροφορίες χρησιμοποιούνται από το σύστημα για να καθορίσει πότε ο χρήστης πρέπει να τις αλλάξει. Αυτές οι ρυθμίσεις βρίσκονται στο /etc/login.defs. Για να απενεργοποιήσετε τη γήρανση κωδικού πρόσβασης, πληκτρολογήστε την ακόλουθη εντολή:

    αλλαγή -l όνομα χρήστη

    Για να λάβετε πληροφορίες σχετικά με την ημερομηνία λήξης του κωδικού πρόσβασης, πληκτρολογήστε την εντολή:

    Μπορείτε επίσης να ρυθμίσετε τα πάντα χειροκίνητα, στο αρχείο /etc/shadow:

    (Κωδικός Χρήστη): (τελευταία τροποποίηση):(μέγ._ημέρες): (ελάχιστες_ημέρες): (Προειδοποίηση):(απενεργοποίηση):(γραμμές_λήξης):

    • Ελάχιστες ημέρες- το ελάχιστο διάστημα μεταξύ αλλαγών κωδικού πρόσβασης, δηλαδή πόσο συχνά ο χρήστης μπορεί να αλλάξει τον κωδικό πρόσβασης.
    • Μέγιστες ημέρες- πόσες ημέρες θα ισχύει ο κωδικός πρόσβασης, μετά από αυτό το διάστημα ο χρήστης θα αναγκαστεί να αλλάξει τον κωδικό πρόσβασης.
    • Προειδοποίηση- τον αριθμό των ημερών μετά τις οποίες ο χρήστης θα ειδοποιηθεί ότι πρέπει να αλλάξει τον κωδικό πρόσβασής του.
    • expiry_string- τον αριθμό των ημερών από την 1η Ιανουαρίου 1970, όταν ο λογαριασμός θα απενεργοποιηθεί πλήρως.

    chage -M 60 -m 7 -W 7 όνομα χρήστη

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

    9. Αποκλεισμός λογαριασμών μετά από αποτυχημένες προσπάθειες σύνδεσης

    Σε ένα λειτουργικό σύστημα Linux, μπορείτε να χρησιμοποιήσετε την εντολή faillog για να δείτε αποτυχημένες προσπάθειες σύνδεσης χρήστη. Μπορείτε επίσης να το χρησιμοποιήσετε για να ορίσετε ένα όριο στις αποτυχημένες προσπάθειες σύνδεσης. Όλες οι πληροφορίες σχετικά με αποτυχημένες προσπάθειες σύνδεσης αποθηκεύονται στο αρχείο /var/log/faillog. Για να το δείτε, πληκτρολογήστε:

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

    faillog -r -u χρήστης

    Μπορείτε επίσης να αποκλείσετε ή να ξεμπλοκάρετε με μη αυτόματο τρόπο λογαριασμούς χρησιμοποιώντας την εντολή passwd. Για να αποκλείσετε τη χρήση:

    χρήστης passwd -l

    Και για να ξεκλειδώσετε:

    χρήστης passwd -u

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

    awk -F: "($2 == "") (εκτύπωση)" /etc/shadow

    Ελέγξτε επίσης αν υπάρχουν χρήστες με ομάδα ή αναγνωριστικό 0. Θα πρέπει να υπάρχει μόνο ένας τέτοιος χρήστης, και αυτός είναι ο root. Μπορείτε να ελέγξετε με αυτήν την εντολή:

    awk -F: "($3 == "0") (εκτύπωση)" /etc/passwd

    Θα πρέπει να υπάρχει μόνο μία γραμμή:

    root:x:0:0:root:/root:/bin/bash

    Αν υπάρχουν άλλα, διαγράψτε τα. Οι χρήστες, και ειδικά οι αδύναμοι κωδικοί πρόσβασής τους, είναι ένα από τα πιο ευάλωτα πράγματα που μπορούν να σπάσουν την ασφάλεια στο linux.

    10. Απενεργοποιήστε τη σύνδεση Superuser

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

    11. Φυσική ασφάλεια διακομιστή

    Η ασφάλεια διακομιστή Linux πρέπει να περιλαμβάνει φυσική ασφάλεια. Πρέπει να περιορίσετε τη φυσική πρόσβαση στην κονσόλα διακομιστή. Ρυθμίστε το BIOS ώστε να μην υποστηρίζει την εκκίνηση από εξωτερικά μέσα όπως DVD, CD, USB. Ορίστε επίσης έναν κωδικό πρόσβασης στο BIOS και στο bootloader GRUB για να προστατεύσετε τις ρυθμίσεις τους.

    12. Απενεργοποιήστε τις περιττές υπηρεσίες

    Απενεργοποιήστε όλες τις αχρησιμοποίητες υπηρεσίες και τους δαίμονες. Επίσης, μην ξεχάσετε να αφαιρέσετε αυτές τις υπηρεσίες από την εκκίνηση. Μπορείτε να απαριθμήσετε όλες τις ενεργές υπηρεσίες στα συστήματα Red Hat με την εντολή:

    chkconfig --list | grep "3:on"

    Για να απενεργοποιήσετε την υπηρεσία, χρησιμοποιήστε:

    στάση υπηρεσίας
    Η υπηρεσία $ chkconfig είναι απενεργοποιημένη

    Βρείτε τα πάντα ανοιχτά προγράμματαλιμάνια:

    Το ίδιο μπορεί να γίνει με τον σαρωτή nmap:

    nmap -sT -O localhost

    Χρησιμοποιήστε το iptables για να κλείσετε όλες τις θύρες που δεν θα πρέπει να είναι προσβάσιμες από το δίκτυο. Ή σταματήστε περιττές υπηρεσίεςόπως περιγράφεται παραπάνω.

    13. Καταργήστε το διακομιστή X

    Ο διακομιστής X στον υπολογιστή διακομιστή είναι εντελώς προαιρετικός. Δεν χρειάζεται να εκτελέσετε ένα γραφικό περιβάλλον σε έναν αποκλειστικό διακομιστή Apache ή Email. Καταργήστε αυτό το λογισμικό για να βελτιώσετε την ασφάλεια και την απόδοση.

    14. Ρυθμίστε το Iptables

    Το iptables είναι ένα πρόγραμμα χώρου χρήστη για τη διαμόρφωση του τείχους προστασίας του Netfilter που είναι ενσωματωμένο στον πυρήνα. Σας επιτρέπει να φιλτράρετε όλη την επισκεψιμότητα και να επιτρέπετε μόνο ορισμένους τύπους επισκεψιμότητας. Χρησιμοποιήστε επίσης το σύστημα TCPWrappers - ACL για να φιλτράρετε την πρόσβαση στο Διαδίκτυο. Μπορείτε να αποτρέψετε πολλούς τύπους επιθέσεων DOS με το iptables. Η ασφάλεια δικτύου στο Linux είναι μια πολύ σημαντική πτυχή της συνολικής ασφάλειας του συστήματος.

    15. Ρυθμίστε τον πυρήνα

    Το αρχείο /etc/sysctl.conf αποθηκεύει τις ρυθμίσεις του πυρήνα που φορτώνονται και εφαρμόζονται κατά την εκκίνηση του συστήματος.

    Ενεργοποίηση προστασίας υπερχείλισης buffer execshield:

    kernel.exec-shield=1
    kernel.randomize_va_space=1

    Ενεργοποίηση προστασίας από πλαστογράφηση IP:

    net.ipv4.conf.all.rp_filter=1

    Απενεργοποίηση προώθησης διεύθυνσης IP:

    net.ipv4.conf.all.accept_source_route=0

    Παράβλεψη αιτημάτων εκπομπής:

    net.ipv4.icmp_echo_ignore_broadcasts=1
    net.ipv4.icmp_ignore_bogus_error_messages=1

    Καταγραφή όλων των πλαστών συσκευασιών:

    net.ipv4.conf.all.log_martians=1

    16. Διαχωρίστε τον σκληρό σας δίσκο

    Διαχωρισμός σκληρός δίσκοςσε κατατμήσεις ανάλογα με το σκοπό των αρχείων βελτιώνει την ασφάλεια του λειτουργικού συστήματος Linux. Συνιστάται η δημιουργία ξεχωριστών ενοτήτων για τέτοιους καταλόγους:

    • /Σπίτι
    • /var και /var/tmp

    Δημιουργήστε ξεχωριστά διαμερίσματα για καταλόγους ρίζας Apache και διακομιστές FTP. Ανοίξτε το αρχείο /etc/fstab και ορίστε ειδικές επιλογές για τα επιθυμητά διαμερίσματα:

    • noexec- μην εκτελείτε προγράμματα ή εκτελέσιμα αρχεία σε αυτό το διαμέρισμα, επιτρέπονται μόνο σενάρια
    • nodev- Μην επιτρέπετε συμβολικές ή ειδικές συσκευές σε αυτό το διαμέρισμα.
    • nosuid- να μην επιτρέπεται η πρόσβαση SUID / SGID για προγράμματα από αυτήν την ενότητα.

    17. Χρησιμοποιήστε τον περιορισμό χώρου στο δίσκο

    Περιορίστε τον διαθέσιμο χώρο στο δίσκο για τους χρήστες. Για να το κάνετε αυτό, δημιουργήστε ένα όριο δίσκου στο /etc/fstab, επαναπροσαρτήστε τα συστήματα αρχείων και δημιουργήστε μια βάση δεδομένων με όριο δίσκου. Αυτό θα βελτιώσει την ασφάλεια στο Linux.

    18. Απενεργοποιήστε το IPv6

    Το πρωτόκολλο Internet επόμενης γενιάς IPv6 θα αντικαταστήσει το ήδη χρησιμοποιούμενο IPv4 στο μέλλον. Αλλά αυτή τη στιγμή δεν υπάρχουν εργαλεία που σας επιτρέπουν να ελέγξετε την ασφάλεια ενός δικτύου που βασίζεται σε IPv6. Πολλές διανομές Linux επιτρέπουν το IPv6 από προεπιλογή. Οι χάκερ μπορούν να στείλουν ανεπιθύμητη κίνηση και οι διαχειριστές δεν θα μπορούν να την παρακολουθήσουν. Επομένως, εάν δεν χρειάζεστε αυτήν την υπηρεσία, απενεργοποιήστε την.

    19. Απενεργοποιήστε τα αχρησιμοποίητα δυαδικά αρχεία SUID και SGID

    Όλα τα εκτελέσιμα αρχεία για τα οποία είναι ενεργοποιημένη η σημαία SUID ή SGID είναι δυνητικά επικίνδυνα. Αυτή η σημαία σημαίνει ότι το πρόγραμμα θα εκτελεστεί με δικαιώματα υπερχρήστη. Και αυτό σημαίνει ότι εάν το πρόγραμμα έχει κάποιο είδος ευπάθειας ή σφάλματος, τότε το τοπικό ή απομακρυσμένος χρήστηςμπορεί να χρησιμοποιήσει αυτό το αρχείο. Βρείτε όλα αυτά τα αρχεία με την ακόλουθη εντολή:

    εύρεση / -perm +4000

    Βρείτε αρχεία με το σύνολο σημαιών SGID:

    εύρεση / -perm +2000

    Ή μπορούμε να τα συνδυάσουμε όλα σε μία εντολή:

    εύρεση / \(-perm -4000 -o -perm -2000 \) -print
    $ find / -path -prune -o -type f -perm +6000 -ls

    Θα πρέπει να μελετήσετε κάθε αρχείο που βρέθηκε λεπτομερώς για να καταλάβετε πόσο χρειάζεται αυτό ή εκείνο το αρχείο.

    20. Δημόσια Αρχεία

    Είναι επίσης επιθυμητό να βρείτε αρχεία που μπορούν να τροποποιηθούν από όλους τους χρήστες του συστήματος. Για να το κάνετε αυτό, χρησιμοποιήστε την ακόλουθη εντολή:

    βρείτε /dir -xdev -type d \(-perm -0002 -a ! -perm -1000 \) -print

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

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

    βρείτε /dir -xdev \(-nouser -o -nogroup \) -print

    21. Χρησιμοποιήστε ένα κεντρικό σύστημα ελέγχου ταυτότητας

    Χωρίς ένα κεντρικό σύστημα ελέγχου ταυτότητας, τα δεδομένα χρήστη γίνονται ασυνεπή, γεγονός που μπορεί να οδηγήσει σε μπαγιάτικα διαπιστευτήρια και ξεχασμένους λογαριασμούς που θα έπρεπε να είχαν διαγραφεί εδώ και πολύ καιρό. Η κεντρική υπηρεσία θα σας επιτρέψει να διατηρήσετε τον έλεγχο των λογαριασμών χρηστών και των δεδομένων ελέγχου ταυτότητας σε διαφορετικούς Συστήματα Linuxκαι Unix. Μπορείτε να συγχρονίσετε δεδομένα ελέγχου ταυτότητας μεταξύ διακομιστών. Αλλά μην χρησιμοποιείτε την υπηρεσία NIS, καλύτερα να κοιτάξετε προς το Open DAP.

    Μία από τις ενδιαφέρουσες υλοποιήσεις ενός τέτοιου συστήματος είναι το Kerberos. Επιτρέπει στους χρήστες τον έλεγχο ταυτότητας χρησιμοποιώντας ένα μυστικό κλειδί σε δίκτυα όπου τα πακέτα μπορούν να υποκλαπούν και να τροποποιηθούν. Το Kerberos χρησιμοποιεί ένα συμμετρικό κλειδί για την κρυπτογράφηση δεδομένων και απαιτεί ένα Κέντρο διαχείρισης κλειδιών για να λειτουργήσει. Μπορείτε να ρυθμίσετε απομακρυσμένη σύνδεση, απομακρυσμένη αντιγραφή, ασφαλή αντιγραφή αρχείων μεταξύ συστημάτων και άλλες εργασίες με υψηλό επίπεδο ασφάλειας.

    22. Καταγραφή και έλεγχος

    Ρυθμίστε την καταγραφή και τον έλεγχο για τη συλλογή και αποθήκευση όλων των αποτυχημένων προσπαθειών σύνδεσης και των προσπαθειών εισβολής. Από προεπιλογή, όλα τα αρχεία καταγραφής, ή τουλάχιστον τα περισσότερα από αυτά, βρίσκονται στο φάκελο /var/log/. Πιο αναλυτικά, μιλήσαμε για το τι ευθύνονται ορισμένοι σε ξεχωριστό άρθρο.

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

    Παρακολουθήστε το σύστημα με την ελεγχόμενη υπηρεσία. Το πρόγραμμα γράφει σε δίσκο όλα τα συμβάντα ελέγχου που σας ενδιαφέρουν. Όλες οι ρυθμίσεις ελέγχου αποθηκεύονται στο αρχείο /etc/audit.rules Κατά την εκκίνηση του συστήματος, η υπηρεσία διαβάζει όλους τους κανόνες από αυτό το αρχείο. Μπορείτε να το ανοίξετε και να ρυθμίσετε τα πάντα όπως χρειάζεστε ή να χρησιμοποιήσετε ένα ξεχωριστό βοηθητικό πρόγραμμα - auditctl. Μπορείτε να ορίσετε τα ακόλουθα σημεία:

    • Συμβάντα εκκίνησης και τερματισμού λειτουργίας συστήματος
    • Ημερομηνία και ώρα της εκδήλωσης
    • Συμβάντα χρήστη (για παράδειγμα, πρόσβαση σε ένα συγκεκριμένο αρχείο)
    • Τύπος συμβάντος (επεξεργασία, πρόσβαση, διαγραφή, εγγραφή, ενημέρωση κ.λπ.)
    • Επιτυχία ή αποτυχία κατά την εκτέλεση ενός συμβάντος
    • Εγγραφή ρυθμίσεων δικτύου Αλλαγή συμβάντων
    • Καταγραφή αλλαγών χρήστη και ομάδας
    • Παρακολούθηση αλλαγών αρχείων

    23. Προστατέψτε τον διακομιστή σας OpenSSH

    Να επιτρέπεται μόνο η χρήση του πρωτοκόλλου 2:

    Απενεργοποίηση σύνδεσης ως υπερχρήστη:

    24. Εγκαταστήστε IDS

    Το IDS ή το σύστημα ανίχνευσης εισβολής επιχειρεί να ανιχνεύσει ύποπτη, κακόβουλη δραστηριότητα όπως π.χ Επίθεση DOS, σάρωση θύρας ή ακόμα και απόπειρες εισβολής στον υπολογιστή παρακολουθώντας την κυκλοφορία του δικτύου.

    Είναι καλή πρακτική η ανάπτυξη τέτοιου λογισμικού πριν το σύστημα διατεθεί από το Διαδίκτυο. Μπορείτε να εγκαταστήσετε το AIDE, είναι το HIDS (Host based IDS) που μπορεί να ελέγξει όλες τις πτυχές εσωτερική συσκευήτο σύστημά σας.

    Το Snort είναι ένα λογισμικό ανίχνευσης εισβολών στο δίκτυο. Είναι σε θέση να αναλύει και να καταγράφει πακέτα και να αναλύει την κυκλοφορία του δικτύου σε πραγματικό χρόνο.

    25. Προστατέψτε τα αρχεία και τους καταλόγους σας

    Το Linux έχει εξαιρετική προστασία από μη εξουσιοδοτημένη πρόσβαση σε αρχεία. Ωστόσο, τα δικαιώματα που ορίζονται από το Linux και σύστημα αρχείωνΔεν σημαίνει τίποτα όταν ένας εισβολέας έχει φυσική πρόσβαση σε έναν υπολογιστή και μπορεί απλά να συνδεθεί HDDυπολογιστή σε άλλο σύστημα για να αντιγράψετε τα δεδομένα σας. Αλλά μπορείτε εύκολα να προστατεύσετε τα αρχεία σας με κρυπτογράφηση:

    • Για να κρυπτογραφήσετε και να αποκρυπτογραφήσετε ένα αρχείο με κωδικό πρόσβασης, χρησιμοποιήστε το GPG
    • Μπορείτε επίσης να προστατεύσετε αρχεία με το OpenSSL
    • Η κρυπτογράφηση καταλόγου γίνεται με ecryptfs
    • Το TrueCrypt είναι ένα δωρεάν εργαλείο κρυπτογράφησης δίσκου για Windows και Linux

    ευρήματα

    Τώρα η ασφάλεια του Linux OS στον υπολογιστή σας θα αυξηθεί σημαντικά. Μην ξεχνάτε να ορίζετε σύνθετους κωδικούς πρόσβασης από καιρό σε καιρό. Γράψτε το αγαπημένο σας εργαλείο ασφάλειας συστήματος στα σχόλια.

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

    Ο δικός σας ελεγκτής ή η ασφάλεια μόνοι σας

    Οι διαχειριστές, και ακόμη περισσότερο, οι ελεγκτές IS αντιμετωπίζουν συχνά το καθήκον να ελέγχουν την ασφάλεια ένας μεγάλος αριθμόςφιλοξενεί σε πολύ σύντομο χρονικό διάστημα. Και φυσικά, υπάρχουν εξειδικευμένα εργαλεία στο τμήμα Enterprise για την επίλυση αυτών των προβλημάτων, για παράδειγμα, όπως σαρωτές ασφάλειας δικτύου. Είμαι βέβαιος ότι όλα αυτά - από τις ανοιχτές πηγές του κινητήρα OpenVAS έως τα εμπορικά προϊόντα όπως το Nessus ή το Nexpose - είναι γνωστά στους αναγνώστες μας. Ωστόσο, αυτό το λογισμικό χρησιμοποιείται συνήθως για την αναζήτηση απαρχαιωμένου και επομένως ευάλωτου λογισμικού και στη συνέχεια για την εκτέλεση της διαχείρισης ενημερώσεων κώδικα. Επιπλέον, δεν λαμβάνουν όλοι οι σαρωτές υπόψη ορισμένα συγκεκριμένα χαρακτηριστικά των ενσωματωμένων μηχανισμών ασφαλείας του Linux και άλλων προϊόντων ανοιχτού κώδικα. Και τέλος, αλλά εξίσου σημαντικό, η τιμή του τεύχους έχει σημασία, διότι μόνο οι εταιρείες που διαθέτουν προϋπολογισμούς για αυτήν την επιχείρηση μπορούν να αντέξουν οικονομικά εμπορικά προϊόντα.

    Αυτός είναι ο λόγος για τον οποίο σήμερα θα μιλήσουμε για ένα εξειδικευμένο σύνολο ελεύθερα διανεμημένων βοηθητικών προγραμμάτων που μπορούν να διαγνώσουν το τρέχον επίπεδο ασφάλειας του συστήματος, να αξιολογήσουν πιθανούς κινδύνους, για παράδειγμα, "επιπλέον υπηρεσίες" που εμφανίζονται στο Διαδίκτυο ή μια μη ασφαλή προεπιλεγμένη διαμόρφωση, ακόμη και προτείνετε επιλογές για τη διόρθωση των ελλείψεων που βρέθηκαν. Ένα άλλο πλεονέκτημα της χρήσης αυτών των εργαλείων είναι η δυνατότητα αναπαραγωγής τυπικών σεναρίων δοκιμής αγροκτημάτων από οποιονδήποτε αριθμό συστημάτων Linux και δημιουργίας μιας τεκμηριωμένης βάσης δοκιμών με τη μορφή αρχείων καταγραφής και ξεχωριστών αναφορών.

    Πρακτικές όψεις του ελέγχου ασφαλείας

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

    Ο πρώτος- πρόκειται για συμμόρφωση με τις λεγόμενες απαιτήσεις συμμόρφωσης, εδώ ελέγχεται η παρουσία υποχρεωτικών στοιχείων ασφαλείας που ορίζονται σε οποιοδήποτε διεθνές πρότυπο ή "βέλτιστη πρακτική". Ένα κλασικό παράδειγμα είναι οι απαιτήσεις PCI DSS για συστήματα πληροφορικής πληρωμών, σειράς SOX404, NIST-800, .

    Δεύτερος- αυτή είναι μια καθαρά ορθολογική προσέγγιση που βασίζεται στο ερώτημα "Τι άλλο μπορεί να γίνει για να ενισχυθεί η ασφάλεια;". Δεν υπάρχουν υποχρεωτικές απαιτήσεις - μόνο οι γνώσεις σας, το φωτεινό κεφάλι και τα επιδέξια χέρια. Για παράδειγμα, αυτό είναι η ενημέρωση της έκδοσης του πυρήνα ή/και των πακέτων εφαρμογών, η ενεργοποίηση, η επιβολή, η ρύθμιση ενός τείχους προστασίας.

    Ό,τι σχετίζεται με τη δεύτερη προσέγγιση συνήθως ονομάζεται ειδικός όρος. σκληρωτικός, το οποίο μπορεί επίσης να οριστεί ως «ενέργειες που στοχεύουν στην ενίσχυση του επιπέδου αρχικής ασφάλειας του λειτουργικού συστήματος (ή προγράμματος) κυρίως με τακτικά μέσα».

    Η συμμόρφωση με τις απαιτήσεις συμμόρφωσης συνήθως ελέγχεται στο πλαίσιο της προετοιμασίας για τη διεξαγωγή υποχρεωτικού ελέγχου, όπως το PCI DSS ή άλλο έλεγχο πιστοποίησης. Θα δώσουμε μεγαλύτερη προσοχή στο στοιχείο Hardening. Όλοι οι μεγάλοι προγραμματιστές προσφέρουν για τα προϊόντα τους Οδηγίες σκλήρυνσης- οδηγούς που περιέχουν συμβουλές και συστάσεις για τον τρόπο ενίσχυσης της ασφάλειας, λαμβάνοντας υπόψη τους τακτικούς μηχανισμούς ασφαλείας και τις ιδιαιτερότητες του λογισμικού. Έτσι, τα Red Hat, Debian, Oracle, Cisco έχουν παρόμοια εγχειρίδια.

    ΠΛΗΡΟΦΟΡΙΕΣ

    Hardening είναι ένας όρος από τον κόσμο της ασφάλειας πληροφοριών, ο οποίος αναφέρεται στη διαδικασία διασφάλισης της ασφάλειας ενός συστήματος (προγράμματος) μειώνοντας την ευπάθειά του και, κατά κανόνα, χρησιμοποιώντας μόνο τυπικά βοηθητικά προγράμματα ή μηχανισμούς προστασίας.

    sudo apt-get ενημέρωση sudo apt-get install lynis

    Και για διανομές προσανατολισμένες στο RPM (μετά την προσθήκη των κατάλληλων αποθετηρίων):

    Yum εγκατάσταση linus -y

    Εγκατάσταση σε macOS:

    $ brew αναζήτηση lynis $ ετοιμάζω εγκατάσταση lynis

    Για να ξεκινήσετε το Lynis, αρκεί να καθορίσετε τουλάχιστον ένα κλειδί. Για παράδειγμα, για να εκτελέσετε όλες τις διαθέσιμες δοκιμές, θα πρέπει να καθορίσετε το διακόπτη -c (ελέγξτε όλα, ελέγξτε όλα):

    # Τυπική σουίτα δοκιμής συστήματος ελέγχου sudo lynis # Ολοκληρωμένο σύστημα ελέγχου sudo lynis -c δοκιμαστική σουίτα # Σάρωση απομακρυσμένου συστήματος ελέγχου κεντρικού υπολογιστή







    Πριν από έναν έλεγχο, είναι πάντα καλή ιδέα να ελέγχετε εάν μια νέα έκδοσηΛύνης:

    Πληροφορίες ενημέρωσης Lynis & έλεγχος ενημέρωσης lynis

    Το βοηθητικό πρόγραμμα Lynis, εκτός από το τυπικό, έχει μια ακόμη λειτουργία - μη προνομιούχο τρέξιμο:

    Lynis audit --pentest

    Εάν θέλετε να βάλετε το όνομα του ελεγκτή που ξεκίνησε τη δοκιμή, απλώς προσθέστε την παράμετρο -auditor :

    Σύστημα ελέγχου Sudo lynis -c -auditor Daddy

    Σε οποιοδήποτε στάδιο του ελέγχου, η διαδικασία επαλήθευσης μπορεί να συνεχιστεί (Enter) ή να τερματιστεί αναγκαστικά (Ctrl+C). Τα αποτελέσματα των δοκιμών που πραγματοποιήθηκαν θα εγγραφούν στο αρχείο καταγραφής Lynis στο /var/log/lynis.log . Λάβετε υπόψη ότι το αρχείο καταγραφής θα αντικαθίσταται κάθε φορά που εκκινείται το βοηθητικό πρόγραμμα.

    Για δοκιμή σε συστηματική βάση στην αυτόματη λειτουργία, μπορείτε να αντιστοιχίσετε την κατάλληλη εργασία στον προγραμματιστή Cron χρησιμοποιώντας το διακόπτη -cronjob. Σε αυτήν την περίπτωση, το βοηθητικό πρόγραμμα θα λειτουργεί σύμφωνα με το καθορισμένο πρότυπο (config) και δεν θα εμφανίζει διαδραστικά μηνύματα, ερωτήσεις ή προειδοποιήσεις. Όλα τα αποτελέσματα θα αποθηκευτούν στο αρχείο καταγραφής. Για παράδειγμα, εδώ είναι ένα σενάριο εκκίνησης βοηθητικού προγράμματος με προεπιλεγμένη διαμόρφωση μία φορά το μήνα:

    #!/bin/sh AUDITOR="automated" DATE=$(ημερομηνία +%Y%m%d) HOST=$(hostname) LOG_DIR="/var/log/lynis" REPORT="$LOG_DIR/report-$( HOST).$(DATE)" DATA="$LOG_DIR/report-data-$(HOST).$(DATE).txt" cd /usr/local/lynis ./lynis -c –auditor "$(AUDITOR)" --cronjob > $(REPORT) mv /var/log/lynis-report.dat $(DATA) # Τέλος

    Αποθηκεύστε αυτό το σενάριο στον κατάλογο /etc/cron.monthly/lynis. Και μην ξεχάσετε να προσθέσετε διαδρομές για αποθήκευση αρχείων καταγραφής (/usr/local/lynis και /var/log/lynis), διαφορετικά μπορεί να μην λειτουργεί σωστά.

    Μπορείτε να δείτε μια λίστα με όλες τις εντολές που είναι διαθέσιμες για κλήση:

    Ο Λύνης δείχνει εντολές

    Ιδιαίτερα περίεργος μπορείτε να δείτε τις ρυθμίσεις από την προεπιλεγμένη διαμόρφωση:

    Ρυθμίσεις εμφάνισης Lynis

    Σύντομη οδηγία για την εργασία με το βοηθητικό πρόγραμμα:

    άντρας λύνης

    Οι επιλογές για πιθανές καταστάσεις με βάση τα αποτελέσματα του ελέγχου περιορίζονται στην ακόλουθη λίστα: NONE, WEAK, DONE, FOUND, NOT_FOUND, OK, ΠΡΟΕΙΔΟΠΟΙΗΣΗ.


    Διεξαγωγή Ατομικών Δοκιμών στη Λύνης

    Στην πράξη, μπορεί να χρειαστεί να πραγματοποιηθούν μόνο μερικές δοκιμές. Για παράδειγμα, εάν ο διακομιστής σας εκτελεί μόνο τις λειτουργίες του Mail Server ή του Apache. Μπορούμε να χρησιμοποιήσουμε την επιλογή -tests για αυτό. Η σύνταξη της εντολής είναι η εξής:

    Lynis -δοκιμάζει "Test-IDs"

    Εάν δυσκολεύεστε να το καταλάβετε λόγω του μεγάλου αριθμού αναγνωριστικών δοκιμής, μπορείτε να χρησιμοποιήσετε την παράμετρο ομάδας -test-category . Με αυτήν την επιλογή, το Lynis εκτελεί μόνο δοκιμαστικά αναγνωριστικά που εμπίπτουν σε μια συγκεκριμένη κατηγορία. Για παράδειγμα, σκοπεύουμε να εκτελέσουμε δοκιμές τείχους προστασίας και πυρήνα:

    ./lynis -tests-category "firewalls kernel"

    Επιπλέον, η λειτουργικότητα του Lynis επεκτείνεται από διάφορα πρόσθετα που μπορείτε να προσθέσετε μόνοι σας ή μπορείτε να βάλετε νέα σε έναν υπάρχοντα κατάλογο.

    Προτάσεις διόρθωσης

    Όλες οι προειδοποιήσεις θα παρατίθενται μετά τα αποτελέσματα. Κάθε ένα ξεκινά με το κείμενο προειδοποίησης και, στη συνέχεια, το τεστ που το δημιούργησε υποδεικνύεται σε αγκύλες δίπλα του. Η επόμενη γραμμή προτείνει μια λύση στο πρόβλημα, εάν υπάρχει. Στην πραγματικότητα, η τελευταία γραμμή είναι μια διεύθυνση URL όπου μπορείτε να δείτε τις λεπτομέρειες και να βρείτε πρόσθετες συστάσεις για τον τρόπο επίλυσης του προβλήματος.

    Προφίλ

    Τα προφίλ που διαχειρίζονται τον έλεγχο ορίζονται σε αρχεία με την επέκταση .prfπου βρίσκεται στον κατάλογο /etc/lynis. Το προεπιλεγμένο προφίλ ονομάζεται προβλέψιμα: default.prf . Οι προγραμματιστές δεν συνιστούν την άμεση επεξεργασία του: τυχόν αλλαγές που θέλετε να κάνετε στον έλεγχο προστίθενται καλύτερα στο αρχείο custom.prf που βρίσκεται στον ίδιο κατάλογο.

    Συνέχεια διαθέσιμο μόνο για μέλη

    Επιλογή 1. Εγγραφείτε στην κοινότητα "site" για να διαβάσετε όλο το υλικό στον ιστότοπο

    Η συμμετοχή στην κοινότητα κατά τη διάρκεια της καθορισμένης περιόδου θα σας δώσει πρόσβαση σε ΟΛΟ το υλικό των Hacker, θα αυξήσει την προσωπική σας αθροιστική έκπτωση και θα σας επιτρέψει να συγκεντρώσετε μια επαγγελματική βαθμολογία Xakep Score!