V tomto tutoriálu se budeme konkrétně zabývat prostředím Debian Chroot. Spuštění systému Linux v prostředí chroot umožňuje správci systému snížit dopad na produkční server, když je server kompromitován.
Změnit kořen změní kořenový adresář na všechny aktuálně běžící procesy a jeho potomky na chroot jail. Dalším praktickým způsobem, jak využít chroot jail, může být testování různých instalací balíčků a konfigurace serveru v chrootovaném prostředí.
V tomto tutoriálu se budeme zabývat pokyny krok za krokem k nastavení chrootu na Debian Linuxu. Pokyny budou fungovat také pro jiné systémy založené na Debianu.
V tomto tutoriálu se naučíte:
- Jak nainstalovat debootstrap
- Jak nastavit chroot na Debian Linux
- Jak dostat SSH do chrootového vězení
Kategorie | Požadavky, konvence nebo použitá verze softwaru |
---|---|
Systém | Debian Linux |
Software | debootstrap |
Jiné | Privilegovaný přístup k vašemu systému Linux jako root nebo prostřednictvím sudo příkaz. |
Konvence | # – vyžaduje, aby dané linuxové příkazy byly spouštěny s právy root buď přímo jako uživatel root, nebo pomocí sudo příkaz$ – vyžaduje, aby dané linuxové příkazy byly spouštěny jako běžný neprivilegovaný uživatel |
Nainstalujte debootstrap
První věc, kterou budeme muset udělat, je nainstalovat debootstrap balíček v Debianu. Tento software nám umožní vytvořit prostředí chroot. Pomocí následujícího příkazu nainstalujte balíček pomocí správce balíčků Debianu.
$ sudo apt update $ sudo apt install debootstrap
Nainstalujte prostředí chroot
Nyní je čas nainstalovat prostředí chroot. Chcete-li jej nastavit, postupujte podle níže uvedených kroků.
- Nejprve vytvořte adresář, kde chcete, aby se nacházelo prostředí chroot. Zachováme to jednoduché a použijeme
/mnt/chroot
v tomto tutoriálu.$ sudo mkdir -p /mnt/chroot
- Jakmile bude váš nový chroot adresář připraven, použijeme debootstrap k instalaci nových systémových souborů Debianu v prostředí chroot. Instalace může nějakou dobu trvat, protože debootstrap bude muset stáhnout a nainstalovat základní balíčky.
$ sudo debootstrap stable /mnt/chroot http://deb.debian.org/debian/
Ve svém terminálu uvidíte spoustu výstupů, ale měl by být zakončen textem „I:Základní systém byl úspěšně nainstalován“, což znamená, že je hotovo.
- Nakonec propojte svůj hostitelský proc systém s prostředím chroot připojením do adresáře chroot. To umožňuje chrootu přistupovat k hardwaru vašeho hostitelského systému.
$ sudo mount -t proc proc /mnt/chroot/proc $ sudo mount -t devpts devpts /mnt/chroot/dev/pts
Konfigurace Chroot Debian
Nyní jsme připraveni se přihlásit do chrootu a provést základní konfiguraci. Abychom se vyhnuli záměně mezi hostitelským prostředím a prostředím chroot, můžeme změnit proměnnou PS1 roota na výzvu shellu na chroot#
. Tento krok je volitelný, ale doporučený.
- Nejprve se přihlaste do chrootu.
$ sudo chroot /mnt/chroot /bin/bash --login
- Provedením následujícího příkazu pro Linux trvale změníte příkazový řádek roota a ukončíte jej.
# echo 'PS1="chroot:\w# "' >> ~/.bashrc # exit
- Až příště vstoupíte do prostředí chroot, zobrazí se vám nový příkazový řádek.
# chroot /mnt/chroot /bin/bash --login
- Dále nainstalujeme a překonfigurujeme národní prostředí.
chroot:/# apt install locales
- Nyní znovu nakonfigurujte svá národní prostředí a vyberte své z nabídky.
chroot:/# dpkg-reconfigure locales
Nainstalujte chroot ssh démona
Nyní jsme připraveni nainstalovat jakoukoli službu v prostředí chroot. Začněme ssh, protože nám to umožní přihlásit se do chrootu pomocí ssh připojení z LAN nebo WAN.
- Nainstalujte SSH server pomocí následujícího příkazu.
chroot:/# apt install ssh
- Nakonfigurujte chrootovanou službu ssh tak, aby naslouchala na jiném portu než 22, protože ten je s největší pravděpodobností již obsazen vaším hostitelským systémem.
chroot:/# nano /etc/ssh/sshd_config
- A změňte řádek
#Port 22
, a zároveň přidat řádek pro přidání vzdálených přihlášení root:Port 2222 PermitRootLogin yes
- Restartujte službu SSH, aby se změny projevily.
chroot:/# /etc/init.d/ssh restart Restarting OpenBSD Secure Shell server: sshd.
- Nakonec změňte heslo pro uživatele root s chrootováním:
chroot:/# passwd
Přihlaste se vzdáleně do chrootu
Pokud vše proběhlo v pořádku, nyní bychom měli být schopni se přihlásit do nového chrootového prostředí pomocí ssh:
$ ssh root@localhost -p 2222
Jemné doladění chrootu
chroot ssh démon se nespustí automaticky, když zapnete váš hostitelský operační systém. Proto vytvořte jednoduchý shell skript, který provede tento úkol:
#!/bin/bash mount -t devpts devpts /mnt/chroot/dev/pts mount -t proc proc /mnt/chroot/proc chroot /mnt/chroot /etc/init.d/ssh start
A jako poslední krok vytvořte symbolický odkaz na /etc/rc2.d/
:
# ln -s /etc/init.d/chroot.sh /etc/rc2.d/S98chroot
Nyní byste měli mít plně funkční chroot prostředí. Neváhejte prozkoumat a nainstalovat další služby.
Úvahy na závěr
V tomto tutoriálu jsme viděli, jak nainstalovat prostředí debian chroot. Také jsme se naučili, jak se přihlásit do prostředí chroot přes SSH, což usnadňuje jeho správu a instalaci balíčků pro testování. Prostředí chroot je skvělý způsob, jak otestovat software a udržet jej oddělený od hostitelského operačního systému.