Λοιπόν, αυτή η ανάρτηση προετοιμαζόταν το blog μου για κάποιο διάστημα που μου το πρότειναν μέσα DesdeLinux, και λόγω έλλειψης χρόνου δεν είχε καταφέρει ή ήθελε. αν είμαι τεμπέλης ????. Αλλά τώρα θα είναι απεργία, όπως λέμε στην Κούβα...
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 -> στατιστικά για τις κάρτες δικτύου
Προς το παρόν είναι όλα. Ξέρω ότι υπάρχουν χίλιες και μία ακόμη προτάσεις ασφάλειας σε τέτοιου τύπου περιβάλλον, αλλά αυτές είναι που με έχουν εντυπωσιάσει περισσότερο ή ότι κάποια στιγμή χρειάστηκε να εφαρμόσω/ασκήσω σε ένα περιβάλλον που έχω καταφέρει.
Μια αγκαλιά και ελπίζω να λειτουργήσει για εσάς 😀
Σας προσκαλώ να μας πείτε στα σχόλια για κάποιον άλλο κανόνα που έχετε εφαρμόσει εκτός από αυτούς που έχουν ήδη αναφερθεί, για να αυξήσετε τη γνώση των αναγνωστών μας 😀
Λοιπόν θα πρόσθετα:
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 ή απλά μεταγλωττίζοντας ζωντανό κώδικα από αναξιόπιστους ιστότοπους.
Χμμμ, νόστιμο… Ωραίο σχόλιο, προσθέστε παιδιά… 😀
Εφαρμογή υποχρεωτικού ελέγχου πρόσβασης με το SElinux;
πολύ καλό άρθρο
Ευχαριστώ φίλε 😀
Γεια σας και αν είμαι κανονικός χρήστης, πρέπει να χρησιμοποιήσω su ή sudo;
Χρησιμοποιώ το su επειδή δεν μου αρέσει το sudo, λόγω του ότι όποιος έχει τον κωδικό χρήστη μου μπορεί να αλλάξει ό,τι θέλει στο σύστημα, αντί με το su no.
Στον υπολογιστή σας δεν ενοχλεί να χρησιμοποιήσετε το su, μπορείτε να το χρησιμοποιήσετε χωρίς προβλήματα, σε διακομιστές, συνιστάται ανεπιφύλακτα να απενεργοποιήσετε τη χρήση του su και να χρησιμοποιήσετε το sudo, πολλοί λένε ότι είναι λόγω ελέγχου ποιος εκτέλεσε ποια εντολή και το sudo Αυτή η εργασία... Εγώ συγκεκριμένα, στον υπολογιστή μου χρησιμοποιώ το su, όπως και εσύ...
Φυσικά, δεν ξέρω πώς λειτουργεί σε διακομιστές. Αν και, μου φαίνεται ότι το sudo είχε το πλεονέκτημα ότι μπορείς να δώσεις προνόμια στον χρήστη από άλλον υπολογιστή, αν δεν κάνω λάθος.
Ενδιαφέρον άρθρο, κρυπτογραφώ ορισμένα αρχεία με gnu-gpg, πώς είναι αυτό το λιγότερο προνόμιο, σε περίπτωση που θέλετε να εκτελέσετε, για παράδειγμα, ένα δυαδικό αρχείο άγνωστης προέλευσης που χάνεται στις απέραντες θάλασσες πληροφοριών στο δίσκο, πώς μπορώ να αφαιρέσω την πρόσβαση σε ορισμένες λειτουργίες;
Σου το χρωστάω αυτό το κομμάτι, αν και πιστεύω ότι πρέπει να τρέχεις μόνο ως sudo/root προγράμματα που είναι αξιόπιστα, δηλαδή προέρχονται από το repo σου...
Θυμάμαι ότι διάβασα ότι υπάρχει τρόπος να απενεργοποιήσω τις δυνατότητες root σε ένα εγχειρίδιο σε GNU/Linux και UNIX, αν το βρω θα το δημοσιεύσω 😀
@andrew εδώ είναι το άρθρο που ανέφερα και λίγη ακόμα βοήθεια
http://www.cis.syr.edu/~wedu/seed/Labs/Capability_Exploration/Capability_Exploration.pdf
http://linux.die.net/man/7/capabilities
https://wiki.archlinux.org/index.php/Capabilities
και chown jails για να τρέχουν άγνωστα δυαδικά;
Η χρήση sudo ανά πάσα στιγμή είναι πολύ καλύτερη.
Εναλλακτικά, μπορείτε να χρησιμοποιήσετε το sudo, αλλά περιορίστε τον χρόνο απομνημόνευσης του κωδικού πρόσβασης.
Παρόμοια εργαλεία που χρησιμοποιώ για την παρακολούθηση του υπολογιστή, "iotop" ως υποκατάστατο του "iostat", "htop" εξαιρετικό "task manager", "iftop" παρακολούθηση εύρους ζώνης.
Πολλοί θα σκεφτούν ότι αυτό είναι υπερβολικό, αλλά έχω ήδη δει επιθέσεις για να συμπεριλάβω έναν διακομιστή σε ένα botnet.
https://twitter.com/monitolinux/status/594235592260636672/photo/1
ΥΓ: Κινέζοι ζητιάνοι και οι προσπάθειές τους να χακάρουν τον διακομιστή μου.
κάτι που είναι επίσης βολικό είναι η χρήση chown jails για τις υπηρεσίες, οπότε αν για κάποιο λόγο δεχτούν επίθεση δεν θα θέσουν σε κίνδυνο το σύστημα.
Η χρήση της εντολής ps είναι επίσης εξαιρετική για παρακολούθηση και θα μπορούσε να είναι μέρος των ενεργειών για την αναθεώρηση ελαττωμάτων ασφαλείας. Η εκτέλεση του ps -ef παραθέτει όλες τις διεργασίες, είναι παρόμοια με την κορυφή, ωστόσο εμφανίζει κάποιες διαφορές. Η εγκατάσταση του Iptraf είναι ένα άλλο εργαλείο που μπορεί να λειτουργήσει.
Καλή συμβολή.
Θα πρόσθετα: SELinux ή Apparmor, ανάλογα με τη διανομή, πάντα ενεργοποιημένο.
Από τη δική μου εμπειρία συνειδητοποίησα ότι είναι κακή πρακτική η απενεργοποίηση αυτών των στοιχείων. Σχεδόν πάντα το κάνουμε όταν πρόκειται να εγκαταστήσουμε ή να διαμορφώσουμε μια υπηρεσία, με τη δικαιολογία ότι εκτελείται χωρίς προβλήματα, όταν πραγματικά αυτό που πρέπει να κάνουμε είναι να μάθουμε να τις διαχειριζόμαστε έτσι ώστε να επιτρέπει αυτήν την υπηρεσία.
Ένα χαιρετισμό.
1. Πώς να κρυπτογραφήσετε ολόκληρο το σύστημα αρχείων; αξίζει τον κόπο??
2. Πρέπει να αποκρυπτογραφείτε κάθε φορά που ενημερώνεται το σύστημα;
3. Η κρυπτογράφηση ολόκληρου του συστήματος αρχείων του μηχανήματος είναι ίδια με την κρυπτογράφηση οποιουδήποτε άλλου αρχείου;;
Πώς ξέρεις ότι ξέρεις τι λες;
Επίσης, μπορείτε να φυλακίσετε προγράμματα και ακόμη και πολλούς χρήστες. Αν και αυτό είναι περισσότερη δουλειά, αλλά αν συμβεί κάτι και είχατε ένα προηγούμενο αντίγραφο αυτού του φακέλου, απλώς επικολλήστε και τραγουδήστε.
Η καλύτερη και πιο βολική πολιτική ασφαλείας είναι να μην είσαι παρανοϊκός.
Δοκιμάστε το, είναι αλάνθαστο.
Χρησιμοποιώ csf και όταν ξεκλειδώνω έναν πελάτη που έβαλε λάθος τον κωδικό πρόσβασής του σε κάποια πρόσβαση, χρειάζεται πολύς χρόνος στη διαδικασία, αλλά το κάνει. Είναι φυσιολογικό?
Ψάχνω την εντολή ξεκλειδώματος από ssh… οποιεσδήποτε προτάσεις