Οδηγός Ασφάλειας
Αυτός ο οδηγός καλύπτει τις βέλτιστες πρακτικές ασφάλειας για την εκτέλεση της πλατφόρμας Chamilo 2.0 σε παραγωγικό περιβάλλον. Η ασφάλεια είναι κοινή ευθύνη μεταξύ του λογισμικού της πλατφόρμας, της διαμόρφωσης του διακομιστή σας και των συνεχιζόμενων λειτουργικών πρακτικών.
Διατήρηση Ενημερωμένης Chamilo
Η σημαντικότερη πρακτική ασφάλειας είναι η διατήρηση της εγκατάστασης Chamilo ενημερωμένη.
Εγγραφείτε στον λογαριασμό X ασφαλείας Chamilo (@chamilosecurity) ή παρακολουθήστε το αποθετήριο GitHub για ανακοινώσεις κυκλοφοριών.
Εφαρμόστε τα patches ασφαλείας άμεσα. Οι μικρές ενημερώσεις εντός του κλάδου 2.0 είναι σχεδιασμένες να είναι ασφαλείς στην εφαρμογή.
Ακολουθήστε τη διαδικασία αναβάθμισης για κάθε ενημέρωση.
HTTPS
Πάντα να παρέχετε την Chamilo μέσω HTTPS σε παραγωγικό περιβάλλον.
Αποκτήστε πιστοποιητικό SSL/TLS (το Let's Encrypt παρέχει δωρεάν πιστοποιητικά μέσω Certbot).
Διαμορφώστε τον web server σας να ανακατευθύνει όλη την κίνηση HTTP σε HTTPS.
Ενεργοποιήστε την κεφαλίδα HSTS (HTTP Strict Transport Security) για την αποτροπή επιθέσεων υποβάθμισης:
Strict-Transport-Security: max-age=31536000; includeSubDomains
Χωρίς HTTPS, τα διαπιστευτήρια σύνδεσης, τα cookies συνεδρίας και όλα τα δεδομένα χρήστη μεταδίδονται σε απλό κείμενο και μπορούν να παρεμβληθούν στο δίκτυο.
Δικαιώματα Αρχείων
Περιορίστε τα δικαιώματα αρχείων στο ελάχιστο απαραίτητο.
Αρχεία εφαρμογής (πηγαίος κώδικας)
root ή χρήστης ανάπτυξης
755 (κατάλογοι), 644 (αρχεία)
Ο web server χρειάζεται πρόσβαση μόνο-ανάγνωσης.
var/
χρήστης web server
775
Πρέπει να είναι εγγράψιμο για cache Symfony, αρχεία καταγραφής και μεταφορτώσεις αρχείων
.env
root ή χρήστης ανάπτυξης
640
Περιέχει μυστικά. Ο web server χρειάζεται πρόσβαση ανάγνωσης μόνο κατά τη φυσιολογική χρήση, αλλά χρειάζεται πρόσβαση εγγραφής κατά την εγκατάσταση.
config/
root ή χρήστης ανάπτυξης
750
Περιέχει μυστικά. Ο web server χρειάζεται πρόσβαση ανάγνωσης μόνο κατά τη φυσιολογική χρήση, αλλά χρειάζεται πρόσβαση εγγραφής κατά την εγκατάσταση.
Ποτέ μην ορίζετε δικαιώματα σε 777. Ποτέ μην εκτελείτε τον web server ως root.
Πολιτικές Κωδικών Πρόσβασης
Διαμορφώστε αυστηρές απαιτήσεις κωδικών πρόσβασης στις Ρυθμίσεις Ασφαλείας:
Ελάχιστο μήκος 8 χαρακτήρων (12+ συνιστάται).
Απαίτηση συνδυασμού κεφαλαίων, πεζών, αριθμών και ειδικών χαρακτήρων.
Σκεφτείτε την ενεργοποίηση λήξης κωδικού πρόσβασης για περιβάλλοντα με απαιτήσεις συμμόρφωσης.
Εκπαιδεύστε τους χρήστες σχετικά με την επιλογή ισχυρών, μοναδικών κωδικών πρόσβασης.
Περιορισμός Ρυθμού και Προστασία Brute-Force
Επίπεδο Εφαρμογής
Ορίστε Μέγιστες προσπάθειες σύνδεσης πριν τον αποκλεισμό λογαριασμού (
login_max_attempt_before_blocking_account) σε μικρή τιμή (π.χ. 5).Ενεργοποιήστε CAPTCHA στη σελίδα σύνδεσης. Το CAPTCHA είναι ενεργο/ανενεργό — δεν ενεργοποιείται αυτόματα μετά από N αποτυχημένες συνδέσεις. Συνδυάστε το με CAPTCHA λάθη πριν τον αποκλεισμό (
captcha_number_mistakes_to_block_account) για να κλειδώσετε έναν λογαριασμό που αποτυγχάνει συνεχώς στο CAPTCHA.
Επίπεδο Διακομιστή
Χρησιμοποιήστε το fail2ban για την παρακολούθηση αποτυχιών σύνδεσης και τον αποκλεισμό προσβλητικών διευθύνσεων IP:
Δημιουργήστε ένα αντίστοιχο φίλτρο στο /etc/fail2ban/filter.d/chamilo-auth.conf για να ταιριάζει με καταχωρήσεις αρχείων καταγραφής αποτυχιών ταυτοποίησης.
Διαχείριση Συνεδρίας
Ορίστε εύλογη διάρκεια ζωής συνεδρίας (π.χ., 3600 δευτερόλεπτα / 1 ώρα) στις ρυθμίσεις ασφαλείας.
Διαμορφώστε σημαίες cookie συνεδρίας στη διαμόρφωση Symfony σας:
Σκεφτείτε την απενεργοποίηση του "Remember me" σε πλατφόρμες με ευαίσθητο περιεχόμενο.
Κεφαλίδες Ασφαλείας HTTP
Διαμορφώστε τον web server σας να αποστέλλει κεφαλίδες ασφαλείας:
X-Content-Type-Options
nosniff
Αποτρέπει την ανίχνευση τύπου MIME.
X-Frame-Options
SAMEORIGIN
Αποτρέπει το clickjacking μέσω iframes.
X-XSS-Protection
1; mode=block
Αρχαία προστασία XSS για παλαιότερους browsers.
Referrer-Policy
strict-origin-when-cross-origin
Ελέγχει τη διαρροή πληροφοριών referrer.
Content-Security-Policy
Διαφέρει
Ελέγχει ποιους πόρους μπορούν να φορτωθούν. Απαιτεί προσεκτική ρύθμιση για Chamilo.
Παράδειγμα για Apache:
Παράδειγμα για Nginx:
Ασφάλεια Ανεβάσματος Αρχείων
Μπλοκάρετε τις επεκτάσεις εκτελέσιμων αρχείων (exe, bat, sh, php, phtml, cgi) στις Ρυθμίσεις Ασφαλείας.
Ρυθμίστε τον web server σας ώστε να μην εκτελεί ποτέ ανεβασμένα αρχεία. Για Apache, προσθέστε για ολόκληρο τον κατάλογο var/:
Σαρώνετε τα ανεβασμένα αρχεία με antivirus (ClamAV) αν το περιβάλλον σας το απαιτεί.
Ασφάλεια Βάσης Δεδομένων
Χρησιμοποιήστε έναν ειδικό χρήστη βάσης δεδομένων για το Chamilo με μόνο τα προνόμια που χρειάζεται (SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP, INDEX στη βάση δεδομένων του Chamilo).
Μην χρησιμοποιείτε τον λογαριασμό root της βάσης δεδομένων.
Βεβαιωθείτε ότι η βάση δεδομένων δεν είναι προσβάσιμη από το δημόσιο internet. Δέστε την στο localhost ή σε ιδιωτικό δίκτυο.
Ενεργοποιήστε καταγραφή ελέγχου βάσης δεδομένων για περιβάλλοντα ευαίσθητα ως προς τη συμμόρφωση.
Αντίγραφα Ασφαλείας
Προγραμματίστε ημερήσια αυτοματοποιημένα αντίγραφα ασφαλείας τόσο της βάσης δεδομένων όσο και των ανεβασμένων αρχείων.
Αποθηκεύστε τα αντίγραφα ασφαλείας σε ξεχωριστή τοποθεσία από τον server (εκτός έδρας ή cloud αποθήκευση).
Δοκιμάστε περιοδικά την αποκατάσταση αντιγράφων ασφαλείας για να επαληθεύσετε ότι είναι χρησιμοποιήσιμα.
Κρυπτογραφήστε τα αντίγραφα ασφαλείας αν περιέχουν ευαίσθητα δεδομένα.
Δείτε τις Οδηγίες Αντιγράφων Ασφαλείας για λεπτομερείς οδηγίες.
Παρακολούθηση
Παρακολουθείτε τα logs του Chamilo στο
var/log/prod.logγια σφάλματα και ύποπτη δραστηριότητα.Ρυθμίστε παρακολούθηση server (CPU, μνήμη, δίσκος) για ανίχνευση εξάντλησης πόρων.
Ρυθμίστε ειδοποιήσεις για επαναλαμβανόμενες αποτυχίες πιστοποίησης.
Ελέγχετε περιοδικά λογαριασμούς χρηστών για μη εξουσιοδοτημένους ή ανενεργούς λογαριασμούς.
Λίστα Ελέγχου
Χρησιμοποιήστε αυτή τη λίστα ελέγχου κατά την ανάπτυξη ή έλεγχο εγκατάστασης Chamilo:
Τελευταία ενημέρωση
Ήταν χρήσιμο αυτό;