Android

Cum să înființez pușcărie chroot sftp

Transfer Host PSFTP (Putty SFTP) Example

Transfer Host PSFTP (Putty SFTP) Example

Cuprins:

Anonim

În acest tutorial, vă vom explica cum să configurați un mediu SFTP Chroot Jail care va restricționa utilizatorii la directorii lor de acasă. Utilizatorii vor avea acces numai SFTP, accesul SSH va fi dezactivat. Aceste instrucțiuni ar trebui să funcționeze pentru orice distribuție modernă Linux, inclusiv Ubuntu, CentOS, Debian și Fedora.

Crearea unui grup SFTP

În loc de a configura serverul OpenSSH pentru fiecare utilizator în parte, vom crea un grup nou și vom adăuga toți utilizatorii chrootiți la acest grup.

Rulați următoarea comandă groupadd pentru a crea grupul de utilizatori sftponly :

sudo groupadd sftponly Puteți numi grupul așa cum doriți.

Adăugarea utilizatorilor la grupul SFTP

Următorul pas este să adăugați utilizatorii pe care doriți să-i restricționați la grupul sftponly .

Dacă aceasta este o configurare nouă și utilizatorul nu există, puteți crea un nou cont de utilizator tastând:

sudo useradd -g sftponly -s /bin/false -m -d /home/username username

  • Opțiunea -g sftponly va adăuga utilizatorul în grupul sftponly. Opțiunea -s /bin/false setează shell-ul de conectare al utilizatorului. Prin setarea shell-ului de conectare la /bin/false , utilizatorul nu se va putea conecta la server prin SSH. Opțiunile -m -d /home/username ne spun useradd să creeze directorul de acasă al utilizatorului.

Setați o parolă puternică pentru utilizatorul nou creat:

sudo passwd username

În caz contrar, dacă utilizatorul pe care doriți să îl restricționați există deja, adăugați-l în grupul sftponly și schimbați shell-ul utilizatorului:

sudo usermod -G sftponly -s /bin/false username2

Directorul de domiciliu al utilizatorului trebuie să fie deținut de root și să aibă permisiuni 755 :

sudo chown root: /home/username sudo chmod 755 /home/username

Deoarece directoarele de domiciliu ale utilizatorilor sunt deținute de utilizatorul rădăcină, acești utilizatori nu vor putea crea fișiere și directoare în directoarele de acasă. Dacă nu există directoare în casa utilizatorului, va trebui să creați noi directoare la care utilizatorul să aibă acces complet. De exemplu, puteți crea următoarele directoare:

sudo mkdir /home/username/{public_html, uploads} sudo chmod 755 /home/username/{public_html, uploads} sudo chown username:sftponly /home/username/{public_html, uploads}

Dacă o aplicație web folosește directorul public_html al utilizatorului ca rădăcină de document, aceste modificări pot duce la probleme de autorizare. De exemplu, dacă executați WordPress, va trebui să creați un pool PHP care să fie difuzat ca utilizator care deține fișierele și să adăugați site-urile în sftponly grupul de sftponly .

Configurarea SSH

SFTP este un subsistem de SSH și acceptă toate mecanismele de autentificare SSH.

Deschideți fișierul de configurare SSH /etc/ssh/sshd_config cu editorul de text:

sudo nano /etc/ssh/sshd_config

Căutați linia care începe cu Subsystem sftp , de obicei la sfârșitul fișierului. Dacă linia începe cu un hash # eliminați hash # și modificați-o astfel încât să arate astfel:

/ Etc / ssh / sshd_config

Subsystem sftp internal-sftp

Spre sfârșitul fișierului, următorul bloc de setări:

/ Etc / ssh / sshd_config

Match Group sftponly ChrootDirectory %h ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no

Directiva ChrootDirectory specifică calea către directorul chroot. %h înseamnă directorul principal al utilizatorului. Acest director trebuie să fie deținut de utilizatorul rădăcină și nu poate fi scris de niciun alt utilizator sau grup.

Fii mai atent atunci când modifici fișierul de configurare SSH. Configurația incorectă poate determina pornirea serviciului SSH.

După ce ați terminat, salvați fișierul și reporniți serviciul SSH pentru a aplica modificările:

sudo systemctl restart ssh

În CentOS și Fedora, serviciul ssh este numit sshd :

sudo systemctl restart sshd

Testarea configurației

După ce ați configurat chroot SFTP, puteți încerca să vă conectați la mașina de la distanță prin SFTP folosind datele de autentificare ale utilizatorului corelat. În cele mai multe cazuri, veți utiliza un client SFTP desktop, cum ar fi FileZilla, dar în acest exemplu, vom folosi comanda sftp.

Deschideți o conexiune SFTP folosind comanda sftp urmată de numele de utilizator al serverului de la distanță și adresa IP a serverului sau numele de domeniu:

sftp [email protected]

Vi se va solicita să introduceți parola utilizatorului. Odată conectat, serverul la distanță va afișa un mesaj de confirmare și promptul sftp> :

[email protected]'s password: sftp>

Rulați comanda pwd , așa cum se arată mai jos, și dacă totul funcționează așa cum este de așteptat, comanda ar trebui să revină / .

sftp> pwd Remote working directory: /

De asemenea, puteți enumera fișierele și directoarele la distanță folosind comanda ls și ar trebui să vedeți directoarele pe care le-am creat anterior:

sftp> ls public_html uploads

Concluzie

În acest tutorial, ați învățat cum să configurați un mediu SFTP Chroot Jail pe serverul dvs. Linux și să restricționați accesul utilizatorilor la directorul lor de origine.

În mod implicit, SSH ascultă portul 22. Schimbarea portului SSH implicit adaugă un strat suplimentar de securitate serverului dvs. prin reducerea riscului de atacuri automatizate. De asemenea, poate doriți să configurați o autentificare bazată pe cheie SSH și să vă conectați la server fără a introduce o parolă.

securitate ssh sftp