[ << ]
[ < ]
[ Home ]
[ > ]
[ >> ]
11. Chrooting en Virtuele Servers
Inhoud:
11.a. Chrooting
Een dienst chrooten is een manier om restricties op te leggen aan een dienst of
gebruiker-omgeving om enkel toe te staan wat het zou moeten en dus niet de
toegang krijgen tot informatie die zou kunnen leiden tot het verkrijgen van
root-toegang. Door het uitvoeren van een dienst als een andere gebruiker dan
root (nobody, apache, named) kan een aanvaller
alleen bestanden met de permissie van die gebruiker raadplegen. Dat betekent
dat een aanvaller dus geen root -toegang kan krijgen zelfs als de
service een veiligheidsgebrek.
Sommige diensten zoals pure-ftpd en bind hebben eigenschappen om
te chrooten, en andere niet. Als de dienst het ondersteund, gebruik het. Anders
moet je uitvissen hoe je zelf een omgeving kan creeeren voor die dienst. Laten
we eens bekijken hoe we een chroot creeeren, om de basisbegrippen van hoe
chroot werkt, zullen we het testen met bash, een gemakkelijke manier om
het aan te leren.
creeer de /chroot map met mkdir /chroot. Zoek uit met welke
dynamische bibliotheken bash gecompileerd zijn (als het is gecompileerd
is met de -static optie is deze stap onnodig).
Het volgende commando zal een lijst maken met bibliotheken gebruikt door
bash.
Codevoorbeeld 1.1: Een lijst verkrijgen van gebruikte bibliotheken |
# ldd /bin/bash
libncurses.so.5 => /lib/libncurses.so.5 (0x4001b000)
libdl.so.2 => /lib/libdl.so.2 (0x40060000)
libc.so.6 => /lib/libc.so.6 (0x40063000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
|
Laten we nu een omgeving voor bash maken.
Codevoorbeeld 1.2: Maak een chroot-omgeving voor bash |
# mkdir /chroot/bash
# mkdir /chroot/bash/bin
# mkdir /chroot/bash/lib
|
Kopieer vervolgens de bestanden die gebruikt zijn door bash
(/lib) naar de chrooted lib en kopieer het bash
commando naar de chroot- bin map. Dit zal exact dezelfde omgeving
maken, enkel met minder functies. Na het kopieren kunt ut het uittesten:
chroot /chroot/bash /bin/bash. Als jee een bericht krijgt die
/ bevat, werkt het! Anders zal het zeggen welke file je mist.
Sommige gedeelde bibliotheken hangen af van elkaar.
je zal een bericht krijgen dat je binnen de chroot niets werkt behalve
echo. Dit is omdat we geen andere comamndo's in onze chroot-omgeving dan
bash hebben. Dit is omdat echo is een ingebouwde funtie van bash.
Deze stappen moet je ook uitvoeren om je eigen chroot-omgeving te maken voor je
dienst. Het enige verschil is dat de dienst meestal afhangt van apparaten en
configuratie bestanden in de /etc map. Kopieer die simpelweg
(apparaten kunnen worden gekopieerd, met cp -a) naar een
chroot-omgeving. Bewerk het init-script om de omgeving te gebruiken voor het
opstarten ervan. Het kan moeilijk zijn om uit te zoeken welk apparaat en
configuratie bestand nodig zijn voor een dienst. Dit is waar het strace
commando handig is. start de dienst met /usr/bin/strace bash en kijk uit
voor open, read, stat en soms connect in de output van het commando. Dit zal
een hint geven welke bestanden je moet kopieren. Maar in de meeste gevallen
moet je het passwd bestand (bewerk eerst dit bestand zodanig dat overbodige
gebruikers voor deze service er niet meer inzitten.), /dev/zero,
/dev/log en /dev/random.
11.b. Gebruikers-modus Linux
Een andere manier voor het creeeren van een veilige gebruikers-omgeving is door
het opstarten van een virtuele machine. Een virtuele machine zoals het woord
zegt is een proces die bovenop je eigen OS loopt, gebruikmakend van je eigen
hardware en OS-omgeiving. De veiligheids-voordeel die we hieruit halen is dat
de server niet aangetast wordt(enkel de virtuele server).
Voor meer informatie over hoe je een Gebruikers-modues voor linux opstart,
raadpleeg de Gebruikers-mode Linux gids.
[ << ]
[ < ]
[ Home ]
[ > ]
[ >> ]
The contents of this document are licensed under the Creative Commons -
Attribution / Share Alike license.
|