Rajoita SSH-käyttäjien pääsyä kotihakemistoon Chrooted Jailin avulla


On useita syitä rajoittaa SSH-käyttäjäistunto tiettyyn hakemistoon, erityisesti verkkopalvelimilla, mutta ilmeinen syy on järjestelmän suojaus. SSH-käyttäjien lukitsemiseksi tiettyyn hakemistoon voimme käyttää chroot-mekanismia.

vaihda root (chroot) Unix-tyyppisissä järjestelmissä, kuten Linuxissa, on tapa erottaa tietyt käyttäjän toiminnot muusta Linux-järjestelmästä; muuttaa parhaillaan käynnissä olevan käyttäjäprosessin näennäisen juurihakemiston ja sen alatason (emo) prosessin uudella juurihakemistolla, jota kutsutaan chrooted vankilaksi.

Tässä opetusohjelmassa näytämme, kuinka voit rajoittaa SSH-käyttäjien pääsyä tiettyyn hakemistoon Linuxissa. Huomaa, että suoritamme kaikki komennot pääkäyttäjänä, käytä sudo-komentoa, jos olet kirjautunut palvelimeen normaalina käyttäjänä.

Vaihe 1: Luo SSH Chroot Jail

1. Aloita luomalla chroot-vankila alla olevalla mkdir-komennolla:

mkdir -p /home/test

2. Tunnista seuraavaksi tarvittavat tiedostot sshd_config -man-sivun mukaan, ChrootDirectory-vaihtoehto määrittää hakemiston polun, johon chroot-kirjoitetaan todennuksen jälkeen. . Hakemiston tulee sisältää tarvittavat tiedostot ja hakemistot, jotka tukevat käyttäjän istuntoa.

Vuorovaikutteista istuntoa varten tämä vaatii ainakin komentotulkin, yleensä sh- ja perus /dev-solmut, kuten null-, nolla-, stdin-, stdout-, stderr- ja tty-laitteet:

ls -l /dev/{null,zero,stdin,stdout,stderr,random,tty}

3. Luo nyt /dev-tiedostot seuraavasti mknod-komennolla. Alla olevassa komennossa -m-lippua käytetään määrittämään tiedoston käyttöoikeusbitit, c tarkoittaa merkkitiedostoa ja kaksi numeroa ovat pää- ja sivunumeroita, joihin tiedostot osoittavat. .

mkdir -p /home/test/dev/		
cd /home/test/dev/
mknod -m 666 null c 1 3
mknod -m 666 tty c 5 0
mknod -m 666 zero c 1 5
mknod -m 666 random c 1 8

4. Määritä sen jälkeen oikea käyttöoikeus chroot-vankilaan. Huomaa, että chroot-vankilan ja sen alihakemistojen ja alitiedostojen on oltava root-käyttäjän omistuksessa, eivätkä tavalliset käyttäjät tai ryhmät saa kirjoittaa niitä:

chown root:root /home/test
chmod 0755 /home/test
ls -ld /home/test

Vaihe 2: Asenna Interactive Shell SSH Chroot Jailille

5. Luo ensin bin-hakemisto ja kopioi sitten /bin/bash-tiedostot bin-hakemistoon käyttämällä cp-komento seuraavasti:

mkdir -p /home/test/bin
cp -v /bin/bash /home/test/bin/

6. Tunnista nyt jaetuille lib-tiedostoille vaadittava bash, kuten alla, ja kopioi ne lib-hakemistoon:

ldd /bin/bash
mkdir -p /home/test/lib64
cp -v /lib64/{libtinfo.so.5,libdl.so.2,libc.so.6,ld-linux-x86-64.so.2} /home/test/lib64/

Vaihe 3: Luo ja määritä SSH-käyttäjä

7. Luo nyt SSH-käyttäjä useradd-komennolla ja aseta käyttäjälle suojattu salasana:

useradd tecmint
passwd tecmint

8. Luo chroot vankilan yleiset määrityshakemistot /home/test/etc ja kopioi päivitetyt tilitiedostot (/etc/passwd ja /etc/group) tähän hakemistoon seuraavasti:

mkdir /home/test/etc
cp -vf /etc/{passwd,group} /home/test/etc/

Vaihe 4: Määritä SSH käyttämään Chroot Jailia

9. Avaa nyt sshd_config-tiedosto.

vi /etc/ssh/sshd_config

ja lisää/muokkaa alla olevia rivejä tiedostoon.

#define username to apply chroot jail to
Match User tecmint
#specify chroot jail
ChrootDirectory /home/test

Tallenna tiedosto ja poistu ja käynnistä SSHD-palvelut uudelleen:

systemctl restart sshd
OR
service sshd restart

Vaihe 5: Testaa SSH:ta Chroot Jaililla

10. Testaa tässä vaiheessa, toimiiko chroot jail -asetukset odotetulla tavalla:

ssh [email 
-bash-4.1$ ls
-bash-4.1$ date
-bash-4.1$ uname

Yllä olevasta kuvakaappauksesta voimme nähdä, että SSH-käyttäjä on lukittu chroottuun vankilaan, eikä hän voi suorittaa ulkoisia komentoja (ls, päivämäärä, uname jne.).

Käyttäjä voi suorittaa vain bashin ja sen sisäänrakennetut komennot, kuten (pwd, historia, kaiku jne.), kuten alla näkyy:

ssh [email 
-bash-4.1$ pwd
-bash-4.1$ echo "Tecmint - Fastest Growing Linux Site"
-bash-4.1$ history

Vaihe 6. Luo SSH-käyttäjän kotihakemisto ja lisää Linux-komentoja

11. Edellisen vaiheen perusteella voimme huomata, että käyttäjä on lukittu juurihakemistoon, voimme luoda SSH-käyttäjälle kotihakemiston näin (tee tämä kaikille tuleville käyttäjille):

mkdir -p /home/test/home/tecmint
chown -R tecmint:tecmint /home/test/home/tecmint
chmod -R 0700 /home/test/home/tecmint

12. Asenna seuraavaksi muutama käyttäjäkomento, kuten ls, date ja mkdir bin-hakemistoon:

cp -v /bin/ls /home/test/bin/
cp -v /bin/date /home/test/bin/
cp -v /bin/mkdir /home/test/bin/

13. Tarkista seuraavaksi yllä olevat komennot jaetuista kirjastoista ja siirrä ne chroottuun vankilakirjastojen hakemistoon:

ldd /bin/ls
cp -v /lib64/{libselinux.so.1,libcap.so.2,libacl.so.1,libc.so.6,libpcre.so.1,libdl.so.2,ld-linux-x86-64.so.2,libattr.so.1,libpthread.so.0} /home/test/lib64/

Vaihe 7. SFTP:n testaus Chroot Jaililla

14. Tee viimeinen testi sftp:llä; tarkista, toimivatko juuri asentamasi komennot.

Lisää alla oleva rivi /etc/ssh/sshd_config-tiedostoon:

#Enable sftp to chrooted jail 
ForceCommand internal-sftp

Tallenna tiedosto ja poistu. Käynnistä sitten SSHD-palvelut uudelleen:

systemctl restart sshd
OR
service sshd restart

15. Testaa nyt SSH:ta, niin saat seuraavan virheilmoituksen:

ssh [email 

Kokeile SFTP:n käyttöä seuraavasti:

sftp [email 

Siinä se toistaiseksi! Tässä artikkelissa näytimme sinulle, kuinka voit rajoittaa SSH-käyttäjää tietyssä hakemistossa (chrooted jail) Linuxissa. Käytä alla olevaa kommenttiosiota kertoaksesi meille mielipiteesi tästä oppaasta.