Οδηγός Ασφάλειας

Αυτός ο οδηγός καλύπτει τις βέλτιστες πρακτικές ασφάλειας για την εκτέλεση της πλατφόρμας 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:

Τελευταία ενημέρωση

Ήταν χρήσιμο αυτό;