Linux bestandsrechten zijn lastig te begrijpen, omdat er vele misvattingen zijn en niet iedere server hetzelfde omgaat met rechten. Er zijn in principe twee manieren waarop een hostingserver kan werken.
Standaard is Apache de webserver, welke alles regelt. Wanneer u bijvoorbeeld via Joomla of WordPress een bestand uploadt, doet u dat via het internet, dus via de webserver, dus via Apache. Apache moet dus schrijfrechten hebben tot een bepaalde map. Maar, aangezien dat u vanuit FTP of Installatron die mappen heeft aangemaakt, zijn dat úw mappen (of in ieder geval die van uw gebruikersnaam van het hostingpakket), niet die van Apache. De permissie 755 geeft aan dat enkel de eigenaar van een map (u dus) erin mag schrijven, alle anderen (Apache bijvoorbeeld) mogen enkel lezen. U als gebruiker (bijvoorbeeld via FTP) mag dus wel bestanden opslaan, maar u via Joomla Administrator (online – dus Apache) mag dat dus niet. Apache is immers niet de eigenaar van die map, heeft dus ‘maar een 5’ en mag enkel lezen. Hierdoor moet een map op 777 staan om schrijfbaar te zijn.
Ja, dan is de map schrijfbaar en beginnen overal belletjes te rinkelen. 777? Nooit doen! Toegankelijk voor hackers!
Dat klopt. Indien u dit wilt voorkomen, geeft u de mappen permissie 755 en kan er niet in geschreven worden. Het nadeel is dan wel dat u bijvoorbeeld ook geen afbeeldingen meer kunt uploaden vanuit uw Administrator of Dashboard. Maar, als u het niet kan, kan een hacker het ook niet. En als de site eenmaal is opgezet, hoeft dit vermoedelijk ook niet meer.
Deze manier van serverbeheer is standaard, echter is gebleken dat het voor onze doorsnee gebruikers niet wenselijk is. Vandaar dat wij op nieuwe servers gebruik maken van de extra Apache-module mod_ruid2. Wat dit eigenlijk doet is, wanneer u een bestand uploadt via bijvoorbeeld de Joomla Administrator en dit dus eigenlijk door Apache uitgevoerd wordt, Apache ‘een ander petje opzet’ en als uw eigen gebruikersnaam door het leven gaat. Hierdoor wordt het bestand niet door Apache (een overige gebruiker) geupload maar door de eigenaar van de map (uw gebruikersnaam van het hostingpakket), en is 755 dus opeens wél voldoende.
Voor uw gevoel denkt u nu wellicht: “maar 755 is dus veiliger dan 777, waarom doen jullie dat dan niet standaard?” De verklaring is simpel: een ‘mod_ruid2’-map met permissie 755 staat gelijk aan een gewone map met permissie 777. Door mod_ruid2 zet Apache immers dat andere petje op en mag plotseling overal schrijven wat begint met een 7. En dát maakt het juist gevaarlijk, want in dat geval staat uw hele hostingpakket open voor hackers wanneer uw mappen permissie 755 hebben.
Afgezien van de beveiliging van uw mappen en bestanden is er nog een belangrijke factor die meespeelt in de beveiliging van uw website: de website zelf. Natuurlijk is het makkelijk om een plaatje te kunnen uploaden, maar een goed geschreven upload-script zorgt ervoor dat dit plaatje enkel geüpload mag worden als het ook daadwerkelijk een plaatje is. Dit kan gemakkelijk door bijvoorbeeld te controleren op bestandsextensie (.jpg, .bmp etc) maar ook op andere dingen. Gebruikt u nog een Joomla 1.x website? Dan hoeft u zich vermoedelijk al geen zorgen meer te maken om het juist instellen van map-permissies, grote kans dat er reeds misbruik is gemaakt van één of ander lek in uw website, want deze versies staan er om bekend volledig lek te zijn.
Het beveiligen van uw website vindt dus op twee fronten plaats, welke beiden evenveel aandacht verdienen. Mocht u verdere vragen hebben, kunt u deze altijd via het ticketsysteem of telefonisch aan ons stellen, wij helpen u graag op weg. Mocht u uw hostingpakket willen verhuizen naar één van onze nieuwe servers zodat u gebruik kunt maken van de mod_ruid2-functionaliteit, horen we dat graag via een ticket onder vermelding van uw klantnummer.
Dit artikel is geplaatst op 13 december 2014. Het kost je ongeveer 3 minuten om het te lezen.