Συμβουλές ασφαλείας για συστήματα GNU / Linux

Λοιπόν, αυτή η ανάρτηση προετοιμαζόταν το blog μου για κάποιο διάστημα που μου το πρότειναν μέσα DesdeLinux, και λόγω έλλειψης χρόνου δεν είχε καταφέρει ή ήθελε. αν είμαι τεμπέλης ????. Αλλά τώρα θα είναι απεργία, όπως λέμε στην Κούβα...

Αυτή είναι μια συλλογή βασικών κανόνων ασφαλείας για διαχειριστές συστημάτων, σε αυτήν την περίπτωση, για όσους από εμάς διαχειριζόμαστε, όπως εγώ, δίκτυα/συστήματα που βασίζονται στο GNU/Linux... Μπορεί να υπάρχουν περισσότεροι και στην πραγματικότητα υπάρχουν περισσότεροι, αυτό είναι μόνο ένα δείγμα της περιπλάνησής μου στον κόσμο του linux…

0- Διατηρούμε τα συστήματά μας ενημερωμένα με τις πιο πρόσφατες ενημερώσεις ασφαλείας.

0.1- Λίστες αλληλογραφίας κρίσιμων ενημερώσεων [Σύμβουλος ασφαλείας Slackware, Debian Security Advisor, στην περίπτωσή μου]

1- Μηδενική φυσική πρόσβαση στους διακομιστές από μη εξουσιοδοτημένο προσωπικό.

1.1- Εφαρμογή κωδικού πρόσβασης σε BIOS των διακομιστών μας

1.2- Δεν εκκινείται από CD/DVD

1.3- Κωδικός πρόσβασης στο GRUB/Lilo

2- Καλή πολιτική κωδικών πρόσβασης, αλφαριθμητικούς χαρακτήρες και άλλα.

2.1- Παλιά κωδικού πρόσβασης [Password Aging] με την εντολή «chage», καθώς και τον αριθμό των ημερών μεταξύ της αλλαγής κωδικού πρόσβασης και της τελευταίας ημερομηνίας αλλαγής.

2.2- Αποφύγετε τη χρήση παλιών κωδικών πρόσβασης:

στο /etc/pam.d/common-password

password sufficient pam_unix.so use_auth ok md5 shadow remember 10

Αλλάζεις λοιπόν τον κωδικό και σου θυμίζει τους τελευταίους 10 κωδικούς πρόσβασης που είχε ο χρήστης.

3- Καλή πολιτική διαχείρισης/τμηματοποίησης για το δίκτυό μας [δρομολογητές, μεταγωγείς, vlans] και το τείχος προστασίας, καθώς και κανόνες φιλτραρίσματος INPUT, OUTPUT, FORWARD[NAT, SNAT, DNAT]

4- Ενεργοποιήστε τη χρήση κελυφών[/etc/shells]. Οι χρήστες που δεν πρέπει να συνδεθούν στο σύστημα λαμβάνουν /bin/false ή /bin/nologin.

5- Αποκλεισμός χρηστών όταν αποτυγχάνει η σύνδεση [faillog], καθώς και έλεγχος του λογαριασμού χρήστη του συστήματος.

passwd -l pepe -> αποκλεισμός χρήστη pepe passwd -v pepe -> ξεκλείδωμα χρήστη pepe

6- Ενεργοποιήστε τη χρήση του "sudo", ΠΟΤΕ μην συνδεθείτε ως root με ssh, "ΠΟΤΕ". Στην πραγματικότητα, πρέπει να επεξεργαστείτε τη διαμόρφωση ssh για να επιτύχετε αυτόν τον σκοπό. Χρησιμοποιήστε δημόσια/ιδιωτικά κλειδιά στους διακομιστές σας με το sudo.

7- Εφαρμόστε στα συστήματά μας το "Αρχή του ελάχιστου προνομίου".

8- Ελέγχετε κατά καιρούς τις υπηρεσίες μας [netstat -lptun], για κάθε έναν από τους διακομιστές μας. Προσθέστε εργαλεία παρακολούθησης που μπορούν να μας βοηθήσουν σε αυτήν την εργασία [Nagios, Cacti, Munin, Monit, Ntop, Zabbix].

9- Εγκαταστήστε IDS, Snort/AcidBase, Snotby, Barnyard, OSSEC.

10- Το Nmap είναι φίλος σας, χρησιμοποιήστε το για να ελέγξετε τα υποδίκτυα/υποδίκτυά σας.

11- Καλές πρακτικές ασφαλείας σε OpenSSH, Apache2, Nginx, MySQL, PostgreSQL, Postfix, Squid, Samba, LDAP [αυτές που χρησιμοποιούν οι περισσότεροι] και κάποια άλλη υπηρεσία που χρειάζεστε στο δίκτυό σας.

12- Κρυπτογραφήστε όλες τις επικοινωνίες όποτε είναι δυνατόν στα συστήματά μας, SSL, gnuTLS, StarTTLS, digest, κλπ... Και αν χειρίζεστε ευαίσθητες πληροφορίες, κρυπτογραφήστε τον σκληρό σας δίσκο!!!

13- Ενημερώστε τους διακομιστές αλληλογραφίας μας με τους πιο πρόσφατους κανόνες ασφαλείας, μαύρες λίστες και antispam.

14- Καταγραφή δραστηριότητας στα συστήματά μας με logwatch και logcheck.

15- Γνώση και χρήση εργαλείων όπως top, sar, vmstat, δωρεάν μεταξύ άλλων.

sar -> αναφορά δραστηριότητας συστήματος vmstat -> διεργασίες, μνήμη, σύστημα, i/o, δραστηριότητα cpu κ.λπ. iostat -> κατάσταση cpu i/o mpstat -> κατάσταση πολλαπλών επεξεργαστών και χρήση pmap -> χρήση μνήμης από διεργασίες δωρεάν - > μνήμη iptraf -> επισκεψιμότητα σε πραγματικό χρόνο του δικτύου μας ethstatus -> παρακολούθηση στατιστικών ethernet βάσει κονσόλας etherape -> γραφική παρακολούθηση δικτύου ss -> κατάσταση υποδοχής[tcp socket info, udp, raw sockets, DCCP Sockets] tcpdump -> Λεπτομερής ανάλυση vnstat -> παρακολούθηση κυκλοφορίας δικτύου επιλεγμένων διεπαφών mtr -> εργαλείο διάγνωσης και ανάλυσης υπερφόρτωσης δικτύου ethtool -> στατιστικά για τις κάρτες δικτύου

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

Μια αγκαλιά και ελπίζω να λειτουργήσει για εσάς 😀


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

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

*

*

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

  1.   Κορατσούκι dijo

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

    1.    Γιουκιτέρου dijo

      Λοιπόν θα πρόσθετα:

      1.- Εφαρμόστε κανόνες sysctl για να αποτρέψετε την πρόσβαση dmesg, /proc, SysRQ, εκχώρηση PID1 στον πυρήνα, ενεργοποίηση προστασίας για σκληρούς και μαλακούς συμβολικούς συνδέσμους, προστασίες για στοίβες TCP/IP για IPv4 και IPv6, ενεργοποίηση πλήρους VDSO για μέγιστη τυχαιοποίηση των δεικτών και κατανομή χώρου μνήμης και βελτίωση της ανθεκτικότητας έναντι υπερχείλισης buffer.

      2.- Δημιουργήστε fire walls τύπου SPI (Stateful Package Inspect) για να αποτρέψετε την πρόσβαση στο σύστημα συνδέσεων που δεν έχουν δημιουργηθεί προηγουμένως ή δεν επιτρέπονται.

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

      4.- Χρησιμοποιήστε αυστηρά όρια για να αποτρέψετε την πρόσβαση σε συγκεκριμένες ομάδες ή χρήστες που μπορεί να αποσταθεροποιήσουν το σύστημά σας. Πολύ χρήσιμο σε περιβάλλοντα όπου υπάρχουν ενεργοί πραγματικοί πολλοί χρήστες ανά πάσα στιγμή.

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

      6.- Δημιουργήστε κλειδιά RSA SSH τουλάχιστον 2048 bit ή καλύτερα από 4096 bit με αλφαριθμητικά κλειδιά άνω των 16 χαρακτήρων.

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

      8.- Προσαρτήστε οποιοδήποτε εξωτερικό διαμέρισμα που δεν το απαιτεί, με τις επιλογές noexec, nosuid, nodev.

      9.- Χρησιμοποιήστε εργαλεία όπως το rkhunter και το chkrootkit για να ελέγχετε περιοδικά ότι το σύστημα δεν έχει εγκατεστημένο rootkit ή κακόβουλο λογισμικό. Ένα συνετό μέτρο εάν είστε ένας από αυτούς που εγκαθιστούν πράγματα από μη ασφαλή αποθετήρια, από PPA ή απλά μεταγλωττίζοντας ζωντανό κώδικα από αναξιόπιστους ιστότοπους.

      1.    Κορατσούκι dijo

        Χμμμ, νόστιμο… Ωραίο σχόλιο, προσθέστε παιδιά… 😀

    2.    Γουίλιαμ Μόρενο Ρέις dijo

      Εφαρμογή υποχρεωτικού ελέγχου πρόσβασης με το SElinux;

  2.   ArmandoF dijo

    πολύ καλό άρθρο

    1.    Κορατσούκι dijo

      Ευχαριστώ φίλε 😀

  3.   Τζοάκο dijo

    Γεια σας και αν είμαι κανονικός χρήστης, πρέπει να χρησιμοποιήσω su ή sudo;
    Χρησιμοποιώ το su επειδή δεν μου αρέσει το sudo, λόγω του ότι όποιος έχει τον κωδικό χρήστη μου μπορεί να αλλάξει ό,τι θέλει στο σύστημα, αντί με το su no.

    1.    Κορατσούκι dijo

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

      1.    Τζοάκο dijo

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

    2.    Ανδρέας dijo

      Ενδιαφέρον άρθρο, κρυπτογραφώ ορισμένα αρχεία με gnu-gpg, πώς είναι αυτό το λιγότερο προνόμιο, σε περίπτωση που θέλετε να εκτελέσετε, για παράδειγμα, ένα δυαδικό αρχείο άγνωστης προέλευσης που χάνεται στις απέραντες θάλασσες πληροφοριών στο δίσκο, πώς μπορώ να αφαιρέσω την πρόσβαση σε ορισμένες λειτουργίες;

      1.    Κορατσούκι dijo

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

      2.    Γιουκιτέρου dijo

        Θυμάμαι ότι διάβασα ότι υπάρχει τρόπος να απενεργοποιήσω τις δυνατότητες root σε ένα εγχειρίδιο σε GNU/Linux και UNIX, αν το βρω θα το δημοσιεύσω 😀

      3.    Γιουκιτέρου dijo
      4.    κλόουν dijo

        και chown jails για να τρέχουν άγνωστα δυαδικά;

    3.    Γιουκιτέρου dijo

      Η χρήση sudo ανά πάσα στιγμή είναι πολύ καλύτερη.

    4.    Έλαβ dijo

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

  4.   Κέβιν Ροντρίγκεζ dijo

    Παρόμοια εργαλεία που χρησιμοποιώ για την παρακολούθηση του υπολογιστή, "iotop" ως υποκατάστατο του "iostat", "htop" εξαιρετικό "task manager", "iftop" παρακολούθηση εύρους ζώνης.

  5.   monitolinux dijo

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

    https://twitter.com/monitolinux/status/594235592260636672/photo/1

    ΥΓ: Κινέζοι ζητιάνοι και οι προσπάθειές τους να χακάρουν τον διακομιστή μου.

  6.   κλόουν dijo

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

  7.   Διαβήτης dijo

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

  8.   Claudio J. Concepcion Certad dijo

    Καλή συμβολή.

    Θα πρόσθετα: SELinux ή Apparmor, ανάλογα με τη διανομή, πάντα ενεργοποιημένο.

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

    Ένα χαιρετισμό.

  9.   Linux?? dijo

    1. Πώς να κρυπτογραφήσετε ολόκληρο το σύστημα αρχείων; αξίζει τον κόπο??
    2. Πρέπει να αποκρυπτογραφείτε κάθε φορά που ενημερώνεται το σύστημα;
    3. Η κρυπτογράφηση ολόκληρου του συστήματος αρχείων του μηχανήματος είναι ίδια με την κρυπτογράφηση οποιουδήποτε άλλου αρχείου;;

    1.    Γιουκιτέρου dijo

      Πώς ξέρεις ότι ξέρεις τι λες;

  10.   Ναυτίλος dijo

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

  11.   ΤΟΝΟ dijo

    Η καλύτερη και πιο βολική πολιτική ασφαλείας είναι να μην είσαι παρανοϊκός.
    Δοκιμάστε το, είναι αλάνθαστο.

  12.   αγγελβενίτες dijo

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

    Ψάχνω την εντολή ξεκλειδώματος από ssh… οποιεσδήποτε προτάσεις