Postoji nekoliko razloga za to ograničiti SSH korisničku sesiju u određeni direktorij, osobito na web poslužiteljima, ali očita je sigurnost sustava. Za zaključavanje SSH korisnika u određeni direktorij možemo koristiti chroot mehanizam.
promijeni korijen (chroot) u sustavima nalik Unixu, kao što je Linux, sredstvo je za odvajanje određenih korisničkih operacija od ostatka Linux sustava; mijenja prividni korijenski direktorij za trenutni pokrenuti korisnički proces i njegov podređeni proces s novim korijenskim imenikom koji se naziva a rootirani zatvor.
U ovom vodiču pokazat ćemo vam kako ograničiti SSH korisnički pristup određenom direktoriju u Linuxu. Imajte na umu da ćemo sve naredbe izvoditi kao root, koristite sudo naredba ako ste prijavljeni na poslužitelj kao normalan korisnik.
1. Počnite stvaranjem chroot zatvora pomoću naredbe mkdir u nastavku:
# mkdir -p /home /test.
2. Zatim identificirajte potrebne datoteke prema sshd_config man stranica, ChrootDirectory
Za interaktivnu sesiju ovo obično zahtijeva barem ljusku š
, i osnovni /dev
čvorovi kao što su null, zero, stdin, stdout, stderr i tty uređaji:
# ls -l /dev /{null, zero, stdin, stdout, stderr, random, tty}
3. Sada stvorite /dev
datoteke kako slijedi pomoću naredba mknod. U naredbi ispod, -m
zastavica se koristi za navođenje bitova za dopuštenja datoteke, c
znači datoteka znakova, a dva broja su veliki i sporedni brojevi na koje datoteke upućuju.
# 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 nula c 1 5. # mknod -m 666 slučajno c 1 8.
4. Nakon toga postavite odgovarajuće dopuštenje u chroot zatvor. Imajte na umu da chroot zatvor i njegovi poddirektoriji i podfajlovi moraju biti u vlasništvu korijen korisnika, a na njih ne može pisati niti jedan normalan korisnik ili grupa:
# chown korijen: root /home /test. # chmod 0755 /dom /test. # ls -ld /home /test.
5. Prvo, stvorite kanta za smeće
direktorij, a zatim kopirajte /bin/bash
datoteke u kanta za smeće
imenik na sljedeći način:
# mkdir -p/home/test/bin. # cp -v/bin/bash/home/test/bin/
6. Sada, identificirajte bash potrebno zajedničko korištenje libs
, kao dolje, i kopirajte ih u lib
imenik:
# 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/
7. Sada stvorite SSH korisnika s naredba useradd i postavite sigurnu lozinku za korisnika:
# useradd tecmint. # passwd tecmint.
8. Izradite direktorij općih konfiguracija zatvora chroot, /home/test/etc
i kopirajte ažurirane datoteke računa (/etc/passwd i /etc/group) u ovaj direktorij na sljedeći način:
# mkdir/home/test/itd. # cp -vf/etc/{passwd, group}/home/test/etc/
Bilješka: Svaki put kad u sustav dodate više korisnika SSH -a, morat ćete kopirati ažurirane datoteke računa u /home/test/etc
imenik.
9. Sada otvorite sshd_config
datoteka.
# vi/etc/ssh/sshd_config.
te dodati/izmijeniti donje retke u datoteci.
#define korisničko ime za primjenu chroot zatvora. Podudaranje korisnika tecmint #navedite chroot zatvor. ChrootDirectory /home /test
Spremite datoteku i izađite te ponovo pokrenite SSHD usluge:
# systemctl ponovno pokrenite sshd. ILI. # usluga sshd ponovno pokretanje.
10. U ovom trenutku provjerite radi li postavka chroot zatvora prema očekivanjima:
# ssh [zaštićena e -pošta]
-bash-4,1 $ ls -bash-4.1 $ datum. -bash-4,1 $ uname.
Na gornjoj snimci zaslona možemo vidjeti da je SSH korisnik zaključan u hroniziranom zatvoru i ne može pokrenuti nikakve vanjske naredbe (ls, datum, uname itd.).
Korisnik može izvršavati samo bash i njegove ugrađene naredbe kao što su (pwd, history, echo itd.) Kako je prikazano u nastavku:
# ssh [zaštićena e -pošta]-bash-4,1 $ pwd. -bash -4.1 $ echo "Tecmint -Najbrže rastuća Linux stranica" -bash-4,1 $ povijest.
11. Iz prethodnog koraka možemo primijetiti da je korisnik zaključan u korijenskom direktoriju, možemo stvoriti kućni direktorij za SSH korisnika ovako (učinite to za sve buduće korisnike):
# mkdir -p/home/test/home/tecmint. # chown -R tecmint: tecmint/home/test/home/tecmint. # chmod -R 0700/home/test/home/tecmint.
12. Zatim instalirajte nekoliko korisničkih naredbi, poput ls, date, mkdir u kanta za smeće
imenik:
# cp -v/bin/ls/home/test/bin/ # cp -v/bin/date/home/test/bin/ # cp -v/bin/mkdir/home/test/bin/
13. Zatim provjerite postoje li gore navedene naredbe u dijeljenim knjižnicama i premjestite ih u direktorij hrooloških zatvorskih knjižnica:
# 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/
14. Napravite završni test pomoću sftp -a; provjerite rade li naredbe koje ste upravo instalirali.
Dodajte donji redak u /etc/ssh/sshd_config
datoteka:
#Omogući sftp u rotirani zatvor ForceCommand internal-sftp.
Spremite datoteku i izađite. Zatim ponovno pokrenite SSHD usluge:
# systemctl ponovno pokrenite sshd. ILI. # usluga sshd ponovno pokretanje.
15. Sada, testirajte pomoću SSH -a, dobit ćete sljedeću pogrešku:
# ssh [zaštićena e -pošta]
Pokušajte koristiti SFTP na sljedeći način:
# sftp [zaštićena e -pošta]
Predloženo čitanje:Ograničite SFTP korisnike na kućne imenike pomoću chroot zatvora
To je to za sada!. U ovom smo članku pokazali kako ograničiti korisnika SSH -a u danom direktoriju (rootirani zatvor) u Linuxu. Iskoristite donji odjeljak komentara kako biste nam iznijeli svoja mišljenja o ovom vodiču.