Sikkerhetsveiledning
Denne veiledningen dekker sikkerhetsmessige beste praksiser for å kjøre en Chamilo 3.0-plattform i produksjon. Sikkerhet er et delt ansvar mellom plattformprogramvaren, serverkonfigurasjonen din og løpende driftspraksis.
For de innebygde overvåkings- og revisjonsverktøyene som det vises til gjennom hele denne veiledningen (logger over innloggingsforsøk, inntrengingsdeteksjon, skanning av passordstyrke og kontroll av filintegritet), se kapitlet Sikkerhet.
Hold Chamilo oppdatert
Den viktigste sikkerhetspraksisen er å holde Chamilo-installasjonen oppdatert.
Abonner på Chamilo-sikkerhetskontoen på X (@chamilosecurity) eller følg GitHub-repositoriet for kunngjøringer om utgivelser.
Bruk sikkerhetsoppdateringer raskt. Mindre oppdateringer innen 3.0-grenen er utformet for å være trygge å bruke.
Følg oppgraderingsprosessen for hver oppdatering.
HTTPS
Server alltid Chamilo over HTTPS i produksjon.
Skaff et SSL/TLS-sertifikat (Let's Encrypt tilbyr gratis sertifikater via Certbot).
Konfigurer webserveren slik at all HTTP-trafikk omdirigeres til HTTPS.
Aktiver HSTS-hodet (HTTP Strict Transport Security) for å forhindre nedgraderingsangrep:
Strict-Transport-Security: max-age=31536000; includeSubDomains
Uten HTTPS overføres innloggingsopplysninger, øktinformasjonskapsler og all brukerdata i klartekst og kan avlyttes på nettverket.
Filrettigheter
Begrens filrettighetene til det som er strengt nødvendig.
Applikasjonsfiler (kildekode)
root eller deploy-bruker
755 (mapper), 644 (filer)
Webserveren trenger skrivebeskyttet tilgang.
var/
webserverbruker
775
Må være skrivbar for Symfony-hurtigbuffer, logger og filopplastinger
.env
root eller deploy-bruker
640
Inneholder hemmeligheter. Webserveren trenger kun lesetilgang under normal bruk, men trenger skrivetilgang under installasjon.
config/
root eller deploy-bruker
750
Inneholder hemmeligheter. Webserveren trenger kun lesetilgang under normal bruk, men trenger skrivetilgang under installasjon.
Sett aldri rettighetene til 777. Kjør aldri webserveren som root.
Passordpolicyer
Konfigurer strenge passordkrav i Sikkerhetsinnstillinger:
Minimumslengde på 8 tegn (12+ anbefales).
Krev en blanding av store bokstaver, små bokstaver, tall og spesialtegn.
Vurder å aktivere passordutløp i miljøer drevet av samsvarskrav.
Opplær brukerne i å velge sterke, unike passord.
Hastighetsbegrensning og beskyttelse mot brute-force
Applikasjonsnivå
Sett Maksimalt antall innloggingsforsøk før kontoen blokkeres (
login_max_attempt_before_blocking_account) til en lav verdi (for eksempel 5).Aktiver CAPTCHA på innloggingssiden. CAPTCHA er av/på — den slås ikke automatisk på etter N mislykkede innlogginger. Kombiner den med CAPTCHA-feil før blokkering (
captcha_number_mistakes_to_block_account) for å låse en konto som fortsetter å feile CAPTCHA.Gå jevnlig gjennom rapporten Innloggingsforsøk for å oppdage brute-force-mønstre, og rapporten Simple IDS for andre flaggede forespørsler (XSS-forsøk, path traversal og lignende).
Servernivå
Bruk fail2ban til å overvåke innloggingsfeil og blokkere aktuelle IP-adresser:
Opprett et tilsvarende filter i /etc/fail2ban/filter.d/chamilo-auth.conf som matcher loggoppføringer for autentiseringsfeil.
Øktadministrasjon
Sett en rimelig øktlevetid (f.eks. 3600 sekunder / 1 time) i sikkerhetsinnstillingene.
Konfigurer flagg for øktinformasjonskapsler i Symfony-konfigurasjonen:
Vurder å deaktivere «Husk meg» på plattformer med sensitivt innhold.
HTTP-sikkerhetshoder
Konfigurer webserveren til å sende sikkerhetshoder:
X-Content-Type-Options
nosniff
Hindrer sniffing av MIME-type.
X-Frame-Options
SAMEORIGIN
Hindrer clickjacking via iframes.
X-XSS-Protection
1; mode=block
Eldre XSS-beskyttelse for eldre nettlesere.
Referrer-Policy
strict-origin-when-cross-origin
Styrer lekkasje av referrer-informasjon.
Content-Security-Policy
Varierer
Styrer hvilke ressurser som kan lastes. Krever nøye tilpasning for Chamilo.
Eksempel for Apache:
Eksempel for Nginx:
Sikkerhet for filopplasting
Blokker kjørbare filendelser (exe, bat, sh, php, phtml, cgi) i Sikkerhetsinnstillinger.
Konfigurer webserveren til aldri å kjøre opplastede filer. For Apache, legg til for hele var/-katalogen:
Skann opplastede filer med et antivirusprogram (ClamAV) dersom miljøet krever det.
Databasesikkerhet
Bruk en dedikert databasebruker for Chamilo med kun de privilegiene den trenger (SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP, INDEX på Chamilo-databasen).
Ikke bruk root-databasekontoen.
Sørg for at databasen ikke er tilgjengelig fra det offentlige internett. Bind den til localhost eller et privat nettverk.
Aktiver revisjonslogging for databasen i miljøer med samsvarskrav.
Sikkerhetskopier
Planlegg daglige automatiserte sikkerhetskopier av både databasen og opplastede filer.
Lagre sikkerhetskopier på et annet sted enn serveren (eksternt eller skylagring).
Test gjenoppretting av sikkerhetskopier jevnlig for å verifisere at de er brukbare.
Krypter sikkerhetskopier dersom de inneholder sensitive data.
Se Sikkerhetskopier for detaljerte instruksjoner.
Overvåking
Overvåk Chamilo-logger på
var/log/prod.logfor feil og mistenkelig aktivitet.Sett opp serverovervåking (CPU, minne, disk) for å oppdage ressursutmattelse.
Konfigurer varsler for gjentatte autentiseringsfeil.
Gå jevnlig gjennom brukerkontoer for uautoriserte eller inaktive kontoer.
Planlegg Filintegritet-sjekker (Chamilo 3.0+) i cron for å bli varslet når installerte filer endres uventet, og kjør Passordstyrkesjekker jevnlig, særlig etter masseimport av brukere.
Sjekkliste
Bruk denne sjekklisten ved utrulling eller revisjon av en Chamilo-installasjon:
Sist oppdatert
Var dette nyttig?