Beveiliging
Webapplicaties zijn complex en er steken van tijd tot tijd wel eens beveiligingskwesties de kop op. Vaak gaat het dan om combinaties van input die de programmeurs niet hadden voorzien. Binnen het Moodle project wordt veiligheid serieus genomen en worden dergelijke issues direct verholpen zodra ze worden gevonden.
Woord vooraf
- In dit artikel vindt u belangrijke maatregelen voor de beveiliging van uw Moodle installatie.
- Vriendelijk verzoek om veiligheidsproblemen direct te melden op http://security.moodle.org. Ontwikkelaars kunnen deze namelijk altijd over het hoofd zien en om aanvallen te voorkomen dienen deze problemen te zijn opgelost voordat ze naar het brede publiek worden gepuliceerd.
- Plaats aub om dezelfde reden geen exploits op forums of in de bugtracker.
Eenvoudige veiligheidsmaatregelen
- De beste beveiligingsstrategie is een goede backup! Maar u heeft geen goede backup als u deze niet daadwerkelijk kunt herstellen. Test daarom uw herstel procedures!
- Start alleen software en services op die u daadwerkelijk gebruikt
- Voer regelmatig updates uit
- Bouw de beveiliging van uw Moodle site op in lagen, zoals de kleding die u draagt op een koude winterdag.
Basale maatregelen
- Update Moodle regelmatig na elke release
- Gepuliceerde zwakke plekken trekken de aandacht van hackers na een release. Hoe ouder de versie, des te meer zwakke plekken deze waarschijnlijk zal bevatten.
- zet register globals uit
- hiermee voorkomt u mogelijke XSS problemen in scripts van derden.
- Gebruik "sterke" wachtwoorden voor administrators en docenten
- Met moeilijke wachtwoorden voorkomt u "brute kracht" pogingen om accounts te kraken.
- Verleen alleen docentenaccounts aan gebruikers die u vertrouwt en vermijd pulieke sandboxes met docentenaccounts op productie servers.
- Met docentenpermissies kunnnen makkelijker situaties ontstaan waarin gegevens worden misbruikt of gestolen.
- Breng zo veel mogelijk scheiding aan in uw systemen.
- Een andere basismaatregel is het gebruiken van verschillende wahtwoorden op verschillende systemen, verschillende machines voor verschillende services enz. Zo voorkomt u wijdverspreide schade als de beveiliging van een enkele account of server is doorbroken.
Verricht regelmatig updates
- Gebruik automatische update systemen
- Windows Update
- Linux: up2date, yum, apt-get
- Mac OSX update systeem
- Automatiseer updates met behulp van het cron script
- Blijf bij met php, apache en moodle versies
Gebruik mailings lijsten om bij te blijven
- CERT - http://www.us-cert.gov/cas/signup.html
- PHP - http://www.php.net/mailing-lists.php - meld u aan voor de Announcements list
- MySQL - http://lists.mysql.com - meld u aan voor MySQL Announcements
Firewalls
- Beveiligingsexperts raden dubbele firewalls aan
- Verschillende hard- en software combinaties
- Uitzetten van ongebruikte services is vaak net zo effectief als een firewall
- Gebruik netstat -a om open network poorten te bekijken
- Biedt geen garantie voor bescherming
- Zet de volgende poorten open:
- 80, 443(ssl), en 9111 (chat),
- Remote admin: ssh 22, of rpd 3389
Bereid u voor op het ergste
- Houd backups gereed
- Oefen alvast met de herstel procedures
- gebruik regelmatig een rootkit detector
- Linux/MacOSX - http://www.chkrootkit.org/
- Windows - http://www.sysinternals.com/Utilities/RootkitRevealer.html
Moodle veiligheidsmeldingen
- Registreer uw Moodle site op Moodle.org
- Geregistreerde gebruikers ontvangen email waarschuwingen
- Veiligheidsmeldingen worden ook online gepubliceerd
- Web - http://security.moodle.org/
- RSS feed - http://security.moodle.org/rss/file.php/1/1/forum/1/rss.xml
Overig
Onderstaand nog een aantal zaken die de algemene veiligheid van uw Moodle installatie beinvloeden:
- Zet uit: opentogoogle
- Gebruik SSL, httpslogins=yes
- Zet uit: guest access
- Gebruik sleutels voor alle cursussen
- Gebruik goede wachtwoorden
- Gebruik de secure forms setting
- Set het mysql root user wachtwoord
- Zet mysql netwerk toegang uit
Bestandenpermissies voor optimale veiligheid
Aangenomen dat uw Moodle installatie op een sealed server draait, (dwz geen gebruiker logins toegestaan op de machine) en dat de root user verantwoordelijk is voor aanpassingen aan de moodle code en configuratie (config.php), dan zijn dit de veiligste instellingen:
1. moodledata map en alle inhoud (submappen, inclusief sessies):
owner: apache user (apache, httpd, www-data, whatever) group: apache group (apache, httpd, www-data, whatever) perms: 700 on directories, 600 on files
2. moodle map, alle inhoud en submappen (inclusief config.php):
owner: root group: root perms: 755 on directories, 644 on files.
Als u lokale logins toestaat, moet 2 zijn:
owner: root group: apache group perms: 750 on directories, 640 on files
NB. Deze instellingen zijn het meest vergaand wat betreft beveiliging. U kunt met minder strikte permissies redelijk beveiligd zijn voor de mappen moodledata en moodle (inclusief submappen).
Zie ook
- de Using Moodle forum discussie Guide to Securing your Moodle Server