- Met de chroot-techniek kunt u processen of gebruikers isoleren in een beveiligde omgeving binnen Linux.
- Voor het opzetten van een functionele jail moeten de benodigde binaire bestanden, bibliotheken en directorystructuren worden voorbereid.
- chroot is handig voor het beperken van services, maar ook voor het veilig herstellen van systemen of het testen van software.
Heb je je ooit afgevraagd hoe je een proces of service op je Linux-systeem daadwerkelijk kunt isoleren? Het meest traditionele en veelzijdige antwoord is het creëren van een chroot kooi, een techniek die even krachtig als onderschat is, de sleutel tot het beschermen van uw systeem en waarmee u kunt experimenteren zonder angst voor rampen. In dit artikel vindt u een uitgebreide handleiding over wat een chroot-jail is, waar het voor wordt gebruikt en, nog belangrijker, hoe u er zelf een kunt maken in Linux, of u nu op zoek bent naar een veilige testomgeving, gebruikers wilt beperken of systemen wilt herstellen. En alles wordt uitgelegd in eenvoudige taal en met praktische voorbeelden, zodat u het direct in de praktijk kunt toepassen.
Als je al een tijdje met Linux bezig bent, heb je waarschijnlijk wel eens van chroot jails gehoord. Je hebt ze echter nog nooit geprobeerd, omdat ze lijken op iets dat alleen is voorbehouden aan gevorderde beheerders. Echter, Het maken van een chroot-cage is eenvoudiger dan het lijkt. en bovendien enorm nuttig in reële situaties: van het beschermen van het systeem bij het uitvoeren van verdachte software tot het isoleren van netwerkdiensten zoals SSH of FTP, of zelfs beschadigde systemen redden als alles verloren lijkt. Maak je toetsenbord maar klaar, want na het lezen van deze handleiding weet je niet alleen hoe chroot werkt, maar ook hoe je er het maximale uit haalt.
Wat is een chrootcage en wanneer gebruik je er een?
een chroot kooi (van het Engelse "change root") is een geïsoleerde omgeving binnen het systeem zelf waarin de root directory (/) wordt tijdelijk opnieuw gedefinieerd voor een proces of gebruiker. In de praktijk, Wat er gebeurt, is dat de toegang van dat proces of die gebruiker beperkt is tot de bestanden en mappen in die kooi., zonder de mogelijkheid om iets daarbuiten te zien of te wijzigen. Alles wat zich binnen de kooi afspeelt, wordt ingekapseld en heeft geen invloed op de rest van het systeem..
En waar is dit voor? De toepassingen zijn zeer divers. Bijvoorbeeld:
- Verdachte programma's uitvoeren of onbetrouwbaar zijn, zonder dat het hele systeem beschadigd raakt.
- Gebruikers beperken, met name in netwerkdiensten, waardoor ze geen toegang hebben tot gevoelige informatie op het hoofdsysteem, zoals het geval is bij FTP of SSH.
- Bied beperkte toegang tot bepaalde apparaten, waarbij alleen specifieke functies zijn toegestaan.
- Beschadigde systemen herstellen opstarten vanaf een LiveCD en het systeem jailbreaken om reparaties veilig uit te kunnen voeren.
- Test complexe configuraties of installaties zonder de stabiliteit van het hoofdsysteem in gevaar te brengen.
Deze methode is een Effectief hulpmiddel voor beveiliging en geavanceerd beheer in Linux. De toetredingsdrempel is meestal het gebrek aan kennis over hoe je de kooi op de juiste manier in elkaar zet en alle benodigde elementen kopieert, maar U zult zien dat het zeker haalbaar is als u een aantal specifieke stappen volgt..
Algemene werking en beperkingen van chroot

Het commando chroot Het is inbegrepen in de meeste Linux-distributies en verandert de root-directory (/) voor het proces dat in de kooi draait, waardoor het geïsoleerd wordt van het oorspronkelijke systeem. Eenmaal binnen zal elk commando of programma alleen de bestanden in die geïsoleerde omgeving zien en zal geen toegang hebben tot wat zich buiten de kooi bevindt.
Niet alles is perfect en niet elk programma werkt in een chroot-jail.. Sommige complexe services of services die absolute paden verwachten, zoals sendmail in bepaalde versies, werken mogelijk niet correct. Het is essentieel om te plannen welke applicaties u gaat gebruiken en hun afhankelijkheden te verifiëren voordat u ze in cages lanceert.
Bovendien, in tegenstelling tot volledige virtualisatieoplossingen, chroot biedt geen resource-isolatie op kernelniveau. De jail is geïsoleerd op het bestandssysteem, maar deelt de kernel en de belangrijkste systeembronnen. Daarom is het een lichtgewicht alternatief dat nuttig is wanneer u simpelweg op zoek bent naar gescheiden bestandsruimtes en -toegang, zonder dat u een volledig afzonderlijke omgeving nodig hebt.
Stap voor stap een chroot-jail opzetten: structuur en afhankelijkheden
Om een functionele kooi te creëren, Het is essentieel om de directorystructuur voor te bereiden en alle benodigde binaire bestanden en bibliotheken te kopiëren.. Het heeft geen zin om een lege map aan te maken: alles wat erin moet draaien, zoals / bin / bash, /bin/ls en de afhankelijkheden daarvan, moeten aanwezig zijn met respect voor de oorspronkelijke structuur van het systeem.
De basisstappen zijn:
- Maak de jail-directory aan, bijvoorbeeld in /opt/chroot_dir of /usr/src/jaula.
- Kopieer de essentiële binaire bestanden (zoals slaan y ls) op hun respectievelijke plaatsen in de kooi.
- Gebruik de ldd-opdracht op de binaire bestanden om de benodigde bibliotheken te identificeren (voorbeeld: ldd /bin/bash y ldd /bin/ls).
- Kopieer die bibliotheken in de kooistructuur, waarbij dezelfde organisatie wordt gehandhaafd als in het oorspronkelijke systeem, in / lib y /lib64.
- Inclusief basisconfiguratiebestanden zoals /etc/passwd en /etc/group als u gebruikers in de jail wilt beheren.
- Wilt u een interactieve sessie? Schakel dan een tolk in. commando's en pas bestanden aan zoals /etc/bash.bashrc om de omgeving te configureren.
Nadat de structuur is voorbereid en de bestanden zijn gekopieerd, je kunt de chroot-opdracht gebruiken om toegang te krijgen tot de geïsoleerde omgeving en daar te kunnen werken.
Klassiek voorbeeld: een chroot-jail maken om bash en ls uit te voeren
Stel dat u een eenvoudige kooi wilt om in te rennen slaan y ls. De stappen zijn:
- Maak de kooimap:
sudo mkdir /opt/chroot_dir
- Kopieer de benodigde binaire bestanden:
sudo cp /bin/bash /opt/chroot_dir/bin/ sudo cp /bin/ls /opt/chroot_dir/bin/
- Gebruik ldd om de bibliotheken te identificeren en te kopiëren:
ldd /bin/bash /bin/ls
Zoek de vermelde bibliotheken en verdeel ze in de kooistructuur. /opt/chroot_dir/lib/ y /opt/chroot_dir/lib64/.
Als u de ervaring gemakkelijker wilt maken, kunt u de prompt bewerken:
echo "PS1='KOOI $ '" | sudo tee /opt/chroot_dir/etc/bash.bashrc
Om toegang te krijgen, voer je het volgende uit:
sudo chroot /opt/chroot_dir /bin/bash
Dus je zit in de kooi, volledig geïsoleerd. Houd er rekening mee dat als u meer hulpmiddelen nodig hebt, u deze samen met hun afhankelijkheden moet kopiëren.
Kritieke systemen monteren: /proc, /dev en /sys
Om de chroot-omgeving echt nuttig te maken, vooral voor hersteltaken of het uitvoeren van programma's waarvoor toegang tot apparaten nodig is, Het is noodzakelijk om /proc, /dev en /sys in de jail te mounten. Dit wordt bereikt door bind mounts.
- Maak de structuur en monteer de partitie:
sudo mkdir /media/kooi sudo mount /dev/sda1 /media/kooi
- Koppel de virtuele systemen:
sudo mount --bind /proc /media/jaula/proc sudo mount --bind /dev /media/jaula/dev sudo mount --bind /sys /media/jaula/sys
Met deze koppelingen kunnen programma's binnen de chroot toegang krijgen tot de bronnen die nodig zijn om goed te functioneren. Om de kooi binnen te gaan:
sudo chroot /media/cage
Vanaf dat moment hebben de opdrachten die u uitvoert alleen nog effect op het gemonteerde systeem. Dit is ideaal voor hersteltaken of wijzigingen, zonder dat dit gevolgen heeft voor het hoofdsysteem.
Gebruikers beperken via chroot: OpenSSH en de ChrootDirectory-optie
Een veelvoorkomend gebruik van chroot-kooien is Beperk SSH-gebruikerstoegang naar bepaalde mappen met behulp van de optie ChrootDirectory in OpenSSH. Sinds recente versies kunt u het configureren zonder externe hulpprogramma's.
Het algemene proces bestaat uit:
- Bereid de kooistructuur voor, inclusief de benodigde tools en bibliotheken.
- Kopieer de binaire bestanden en afhankelijkheden, zoals slaan.
- Gebruikersbestanden configureren (/ Etc / passwd, / etc / group), en pas indien nodig de schaal aan.
- Wijzig het bestand / Etc / ssh / sshd_config om een richtlijn op te nemen zoals:
Match Gebruiker jaileduser ChrootDirectory /pad/naar/de/gevangenis
Zodra SSH opnieuw wordt opgestart, wordt de gebruiker automatisch beperkt tot die directory en is er geen toegang meer mogelijk tot andere directory's. Het is essentieel om te controleren welke binaire bestanden en bibliotheken beschikbaar zijn in de jail voor een functionele en veilige sessie.
Geavanceerde tips: de kooi aanpassen aan elk geval en automatisering
Zodra u de basis onder de knie hebt, kunt u uw kooien aanpassen en optimaliseren:
- Voeg alleen de benodigde opdrachten toe voor elke gebruiker, waardoor de beveiliging wordt versterkt.
- Gebruik hulpmiddelen zoals opstartband in Debian om snel complete en functionele omgevingen te creëren.
- Pas opstartscripts, de prompt en basisinstellingen aan om de gebruikerservaring te verbeteren.
- In distributies zoals Gentoo wordt gebruik gemaakt van systeemd-nspawn om chroots efficiënter te beheren.
Waar u rekening mee moet houden: chroot-beperkingen en echte isolatie
Het is belangrijk te onthouden dat chroot biedt geen volledige kernel-isolatie. Geprivilegieerde processen kunnen ontsnappen als er specifieke kwetsbaarheden of mogelijkheden bestaan. Voor extra veiligheid kunt u overwegen om: containers zoals Docker of complete virtualisatieoplossingen.
Voor software waarvoor een grafische interface of audio-/videotoegang nodig is, moet u sockets en de juiste machtigingen delen door bind mounts te gebruiken en gebruikers-ID's te synchroniseren. Een zorgvuldige planning van bronnen en afhankelijkheden is essentieel voor een stabiele en veilige omgeving.
Gepassioneerd schrijver over de wereld van bytes en technologie in het algemeen. Ik deel mijn kennis graag door te schrijven, en dat is wat ik in deze blog ga doen: je de meest interessante dingen laten zien over gadgets, software, hardware, technologische trends en meer. Mijn doel is om u te helpen op een eenvoudige en onderhoudende manier door de digitale wereld te navigeren.
