Veiligheid

Hoe Linux Chroot Jails in te stellen

Hoe Linux Chroot Jails in te stellen
Vooral degenen die zich toeleggen op kritieke services, Linux-systemen vereisen kennis op expertniveau om mee te werken en kernbeveiligingsmaatregelen.

Helaas, zelfs na het nemen van cruciale beveiligingsmaatregelen, vinden beveiligingsproblemen nog steeds hun weg naar beveiligde systemen. Een manier om uw systeem te beheren en te beschermen, is door de mogelijke schade te beperken zodra een aanval plaatsvindt.

In deze tutorial bespreken we het proces van het gebruik van chroot jail om systeemschade te beheren in het geval van een aanval. We zullen kijken hoe we processen en subprocessen kunnen isoleren in een bepaalde omgeving met valse root-privileges. Als u dit doet, wordt het proces beperkt tot een specifieke map en wordt de toegang tot andere systeemgebieden geweigerd.

Een korte introductie tot chroot jail

Een chroot-jail is een methode om processen en hun subproces van het hoofdsysteem te isoleren met behulp van valse root-privileges.

Zoals vermeld, beperkt het isoleren van een bepaald proces met behulp van valse rootrechten de schade in het geval van een kwaadwillende aanval. Gechroote services zijn beperkt tot de mappen en bestanden in hun mappen en zijn niet-permanent bij het opnieuw opstarten van de service.

Waarom chroot jail gebruiken?

Het belangrijkste doel van chroot jail is als een beveiligingsmaatregel:. Chroot is ook handig bij het herstellen van verloren wachtwoorden door apparaten van live media te koppelen.

Er zijn verschillende voor- en nadelen van het instellen van chroot jail. Waaronder:

Voordelen:

nadelen

Een basischroot-gevangenis maken

In dit proces zullen we een basischroot-jail maken met 3 commando's die beperkt zijn tot die map. Dit zal helpen illustreren hoe je een jail maakt en verschillende commando's toewijst.

Begin met het maken van een hoofdmap. U kunt deze map zien als de / map in het hoofdsysteem. De naam van de map kan van alles zijn. In ons geval noemen we het /chrootjail

sudo mkdir /chrootjail

We zullen deze map gebruiken als de nep-root die de opdrachten bevat die we eraan toewijzen. Met de commando's die we zullen gebruiken, hebben we de bin-map nodig (bevat de uitvoerbare bestanden van de opdracht) en de, enz., directory (met configuratiebestanden voor de opdrachten).

Maak in de map /chrootjail deze twee mappen:

sudo mkdir /chrootjail/etc,bin

De volgende stap is het maken van mappen voor dynamisch gekoppelde bibliotheken voor de opdrachten die we in de jail willen opnemen. Voor dit voorbeeld gebruiken we de commando's bash, ls en grep.

Gebruik de opdracht ldd om de afhankelijkheden van deze opdrachten weer te geven, zoals hieronder weergegeven:

sudo ldd /bin/bash /bin/ls /bin/grep

Als u zich niet in de bin-map bevindt, moet u het volledige pad doorgeven voor de opdrachten die u wilt gebruiken. Bijvoorbeeld ldd /bin/bash of ldd /bin/grep

Van de ldd-uitvoer hierboven hebben we de mappen lib64 en /lib/x86_64-linux-gnu nodig. Maak deze mappen in de jail-directory.

sudo mkdir -p /chrootjaillib/x86_64-linux-gnu, lib64

Zodra we de dynamische bibliotheekmappen hebben gemaakt, kunnen we ze weergeven met behulp van een boomstructuur, zoals hieronder weergegeven:

Naarmate we verder komen, zul je een duidelijk beeld krijgen van wat een chroot-gevangenis betekent.

We creëren een omgeving die lijkt op een normale hoofdmap van een Linux-systeem. Het verschil is dat binnen deze omgeving alleen specifieke opdrachten zijn toegestaan ​​en dat de toegang beperkt is.

Nu we de prullenbak hebben gemaakt. enz., lib en lib64, kunnen we de vereiste bestanden in hun respectievelijke mappen toevoegen.

Laten we beginnen met de binaire bestanden.

sudo cp /bin/bash /chrootjail/bin && sudo cp /bin/ls /chrootjail/bin && sudo cp /bin/grep /chrootjail/bin

Nadat we de binaire bestanden hebben gekopieerd voor de commando's die we nodig hebben, hebben we de bibliotheken voor elk commando nodig. U kunt de opdracht ldd gebruiken om de bestanden te bekijken die u wilt kopiëren.

Laten we beginnen met bash. Voor bash hebben we de volgende bibliotheken nodig:

/lib/x86_64-linux-gnu/libtinfo.zo.6
/lib/x86_64-linux-gnu/libdl.zo.2
/lib/x86_64-linux-gnu/libc.zo.6
/lib64/ld-linux-x86-64.zo.2

In plaats van al deze bestanden één voor één te kopiëren, kunnen we een eenvoudige for-lus gebruiken om elke bibliotheek in alle bibliotheken te kopiëren naar /chrootjail/lib/x86_64-linux-gnu

Laten we dit proces herhalen voor zowel het ls- als het grep-commando:

Voor ls-opdracht:

Voor grep-commando:

Vervolgens hebben we in de lib64-map één gedeelde bibliotheek voor alle binaire bestanden. We kunnen het eenvoudig kopiëren met behulp van een eenvoudig cp-commando:

Laten we vervolgens het belangrijkste bash-aanmeldingsbestand bewerken (te vinden in /etc/bash.bashrc in Debian) zodat we de bash-prompt naar onze smaak kunnen aanpassen. Met behulp van eenvoudige echo- en tee-commando's zoals weergegeven:

sudo echo 'PS1="CHROOTJAIL #"' | sudo tee /chrootjail/etc/bash.bashrc

Nadat we alle bovenstaande stappen hebben voltooid, kunnen we inloggen op de jailomgeving met het chroot-commando zoals weergegeven.

sudo chroot /chrootjail /bin/bash

U krijgt root-privileges met de prompt die vergelijkbaar is met die gemaakt in de echo en tee-opdracht hierboven.

Zodra je inlogt, zul je zien dat je alleen toegang hebt tot de commando's die je hebt toegevoegd toen je de jail maakte. Als u meer opdrachten nodig heeft, moet u deze handmatig toevoegen.

OPMERKING: Omdat je de bash-shell hebt toegevoegd, heb je toegang tot alle ingebouwde bash-commando's. Hiermee kun je de gevangenis verlaten met het exit-commando.

Conclusie

Deze tutorial behandelde wat chroot jail is en hoe we het kunnen gebruiken om een ​​geïsoleerde omgeving van het hoofdsysteem te creëren. U kunt de technieken die in de handleiding worden besproken gebruiken om geïsoleerde omgevingen voor kritieke services te creëren.

Om te oefenen wat je hebt geleerd, probeer je een apache2-jail te maken.

TIP: Begin met het maken van een hoofdmap, voeg de configuratiebestanden toe (etc/apache2), voeg de documenthoofdmap toe (/var/www/html), voeg het binaire bestand toe (/usr/sbin/apache2) en voeg ten slotte de vereiste bibliotheken toe (ldd / usr/sbin/apache2)

Beste Linux-distributies voor gaming in 2021
Het Linux-besturingssysteem heeft een lange weg afgelegd van zijn oorspronkelijke, eenvoudige, servergebaseerde uiterlijk. Dit besturingssysteem is de...
Hoe u uw gamesessie op Linux kunt vastleggen en streamen
In het verleden werd het spelen van games alleen als een hobby beschouwd, maar met de tijd zag de game-industrie een enorme groei in termen van techno...
Beste spellen om te spelen met handtracking
Oculus Quest introduceerde onlangs het geweldige idee van handtracking zonder controllers. Met een steeds toenemend aantal games en activiteiten die f...