Situatie
Acest tutorial prezinta un mijloc de a limita privilegiile unui user doar pentru folderul sau. Daca avem un server cu un numar foarte mare de useri, care folosesc pentru access, sftp/ssh, ar fi bine folosit ssh jail.
Solutie
Mai întâi, descarcam OpenSSH source și SSHjail patch. Le deschidem si le aplicam pe fiecare.
De exemplu, dacă ați instalat OpenSSH 4.5p1 în /usr/local folder:
~# cd /usr/local
~# tar xvfz openssh-4.5p1.tar.gz
~# patch -p0
Dupa aplicarea cu succes a patch-ului, rulam script ul de configurare.
~# cd openssh-4.5p1
~# ./configure
In acest moment daca apare eroarea “your Zlib libraries are too old and are a potential security risk”,
aceasta poate fi rezolvata prin aplicarea urmatorilor parametri:
~# ./configure –without-zlib-version-check
Ultimul pas este de a realiza și instala fisierele
~# make && make install
Fisierele vor fi instalate in /usr/local folder
Inainte de a porni serviciul de jail, trebuie facute cateva configurari.
Trebuie creat /etc/sshjail.conf, unde toti utilizatori vor fii inchisi. Exemplu:
chroot=/public/jail1
users=mihai,adrian,george,cristi
chroot=/public/jail2
users=@testers,david
Aici am facut 2 “jail uri”, jail1 si jail2. Putem avea cate “jail-uri” ne dorim, dar in mod normal
nu este necesar sa avem mai mult de una.
Prima linie in fisierul de configurare este sursa “jail-ului”, a doua linie reprezinta utilizatori restrictionati.
Principiul pentru jail2 este acelasi, doar ca am folosit un grup de utilizatori “testers”.
Acum trebuie creat un mediu “chroot” pentru utilizatori. Acest manual ofera mai multe informatii despre proces.
Eu am creat modiul “chroot” sub directorul /public , unde am creat “jail1” si “jail2” pentru utilizatori.
În aceste dosare am un dosar de domiciliu în care sunt stocate toate dosarele de domiciliu ale utilizatorilor inchisi.
Dosarele utilizatorilor din mediul chroot sunt în esență copii ale dosarelor de domiciliu din locația standard /home cu
exact aceleasi permisiuni.
În final, în / etc / passwd, trebuie să schimbați calea dosarului de domiciliu pentru toți utilizatorii pe care îi închideți.
De exemplu, în cazul meu, să vedem ce trebuie schimbat în fișierul / etc / passwd pentru utilizatorul cristi.
Linia originală din / etc / passwd pentru utilizatorul cristi arată astfel:
cristi:x:501:501::/home/cristi:/bin/bash
Cristi are dosarul său de origine situat în locația standard / home / cristi.
Din moment ce eu am închis utilizatorul cristi în mediul chroot, schimbăm calea dosarului de domiciliu la aceasta:
cristi:x:501:501::/public/jail1/home/cristi:/bin/bash
In acest moment configurarea este completa. Tot ce mai ramane de facut este sa rulam serviciul sshd.
Test
Dacă ați configurat totul în mod corect, utilizatorii dvs. restricționați ar trebui acum să se poată conecta
la serverul SSH și mediul ar trebui să arate cam așa:
anze@mac:~$ ssh cristi@srv1.example.com
cristi@srv1.example.com’s password:
Last login: Tue Apr 10 17:39:42 2018 from mac.example.com
-bash-3.00$ pwd
/home/cristi
-bash-3.00$ ls /
bin home lib
După cum puteți vedea, utilizatorul cristi se va simți ca acasă (rețineți calea / home / pablo).
Dar după cum puteți vedea, dacă listați conținutul sistemului de fișiere rădăcină,
voi vedea doar ceea ce am creat în dosarul / public / jail1, ceea ce înseamnă că utilizatorul cristi este restrictionat și nu poate accesa nici un dosar sub rădăcină virtuală.
Leave A Comment?