Creați un nou utilizator vsftpd și blocați-l în (specificați) directorul home / login (Administrarea sistemului, Linux, Centos, Ftp, Vsftpd)

zigojacko a intrebat.

Am nevoie să dau periodic acces temporar și limitat la diverse directoare pe un server linux CentOS care are instalat vsftp.

Am creat un utilizator folosind useradd [user_name] și i-am dat o parolă folosind passwd [password].

Am creat un director în /var/ftp și apoi am legat acesta de directorul la care doresc să limitez accesul.

Ce altceva trebuie să fac în mod special pentru a mă asigura că atunci când acest utilizator se conectează la FTP, are acces numai la acest director, vă rog?

Comentarii

  • Îmi pare rău, dar v-ați gândit vreodată să verificați vsftpd.conf? –  > Por jirib.
  • Da, am făcut-o. Nu-mi spune cum să instruiesc un anumit utilizator să se conecteze la un anumit director…? –  > Por zigojacko.
  • Sigur? opțiunea chroot_list_enable… Sau vă referiți la suprascrierea unui director diferit de $HOME? –  > Por jirib.
  • Vreau să știu cum să declar un anumit director de domiciliu pentru un anumit utilizator. Am activat chroot_list_enable și am creat /etc/vsftpd/chroot_list. Doar că nu știam ce să fac în continuare. –  > Por zigojacko.
  • Apoi usermod pentru a schimba homedir-ul utilizatorului. –  > Por jirib.
3 răspunsuri
zigojacko

Răspunsul complet care mi-a rezolvat întrebarea pentru toți ceilalți care sunt după un ghid pas cu pas…

Instalați vsftpd folosind acest lucru ca un ghid.

  • Creați un utilizator cu useradd [user_name].
  • Creați parola utilizatorului cu passwd [user_name]. (Vi se va cere să specificați parola).
  • Creați directorul FTP în /var/ftp și apoi faceți bind la directorul „home” pe care doriți să-l specificați pentru acest utilizator cu mount --bind /var/www/vhosts/domain.com/ /var/ftp/custom_name/.
  • Schimbați directorul „home” al utilizatorului cu usermod -d /var/ftp/custom_name/ user_name

    În /etc/vsftpd/vsftpd.conf, asigurați-vă că sunt setate toate elementele următoare:-

    • chroot_local_user=YES
    • chroot_list_enable=YES
    • chroot_list_file=/etc/vsftpd.chroot_list

Se listează numai utilizatorii din fișierul vsftpd.chroot_list dacă doriți ca aceștia să aibă acces complet la orice locație de pe server. Prin faptul că nu îi listați în acest fișier, spuneți că restricționați toți vsftpd utilizatorii la directorul lor personal specificat.

Cu alte cuvinte (pentru referință):-

  1. înseamnă că, în mod implicit, TOȚI utilizatorii sunt înrădăcinați, cu excepția utilizatorilor din acest fișier…
    • chroot_local_user=YES
    • chroot_list_enable=YES
  2. înseamnă că, în mod implicit, NUMAI utilizatorii din fișier sunt înrădăcinați…
    • chroot_local_user=NO
    • chroot_list_enable=YES

Comentarii

  • De ce să nu setați direct directorul personal al acelui utilizator la /var/www/vhosts/domain.com/? Există vreo problemă în acest sens (cum ar fi vreun risc potențial)? –  > Por leemes.
  • Tocmai am aflat că vsftp pare să interzică acordarea de permisiuni de scriere unui utilizator ftp la nivelul superior chroot din motive de securitate (dar nu sunt 100% sigur). Așadar, acesta ar putea fi un motiv pentru a avea această „indirecțiune” pentru a acorda utilizatorului ftp acces de scriere la un anumit folder, dar fără a permite vizualizarea acestuia. orice frate sau soră (ceea ce ar fi cazul dacă i-ați seta pur și simplu pagina de pornire cu un nivel mai sus, ceea ce ar evita problema menționată). (a se vedea ubuntuforums.org/…) –  > Por leemes.
  • @zigojacko utilizatorul dvs. vede doar directorul de acasă care i-a fost atribuit? Pentru mine, acest lucru implicit utilizatorul la directorul atribuit, dar, cu toate acestea, el poate vedea și alte dosare și își poate face veacul până la root, deși are doar acces de citire. –  > Por GraehamF.
  • Acest răspuns, în combinație cu unix.stackexchange.com/questions/208960/…. a fost răspunsul complet pentru mine. Am sfârșit prin a crea un utilizator într-un grup și am limitat accesul grupului la directorul dorit. –  > Por GraehamF.
  • Dacă folosești „mount” o faci doar o singură dată dacă am dreptate? O intrare în /etc/fstab ar fi mai bună cred eu? –  > Por Martin Eckleben.
gnaanaa

Pentru mine nu a funcționat nici după cele de mai sus. A existat un local_root deja setat la un director și, indiferent ce fac, directorul utilizatorului nu a fost închis. în cele din urmă, a funcționat după ce am schimbat doar

chroot_local_user=YES

Și următoarea procedură

  1. vi /etc/vsftpd.conf
  2. Adăugați linia ‘user_config_dir=/etc/vsftpd_user_conf’ (fără ghilimele)
  3. mkdir /etc/vsftpd_user_conf;
  4. cd /etc/vsftpd_user_conf
  5. vi nume_utilizator;
  6. Introduceți linia „local_root=/srv/ftp/user_name”.

Doar cei doi cenți ai mei dacă cineva a mai avut aceeași problemă.

Comentarii

  • Am urmat această procedură pentru a schimba directorul rădăcină al vsftpd, inclusiv pașii suplimentari de la gnaanaa. Din păcate, nu funcționează încă. Filezilla raportează 530 Login incorect. Utilizatorul și parola sunt conform procedurii de mai sus (user_name). Am creat un utilizator de test ftp2, și i-am setat parola. Conectarea normală la Filezilla folosește acel nume de utilizator și acea parolă. Am setat, de asemenea, directorul root read only și am creat un director de nivel inferior cu permisiuni de scriere conform acestei postări Folosesc Ubuntu 16.04 dacă asta face vreo diferență. –  > Por tim11g.
  • Folosesc Ubuntu 16.04 dacă asta face vreo diferență, @gnaanaa. De asemenea, mi s-a părut ciudat că nu există un director ftp în /var. Așa că a trebuit să creez /var/ftp, iar apoi /var/ftp/nume_utilizator. code<br/> Răspuns: 220 (vsFTPd 3.0.3)<br/> Command: USER ftp2<br/> Răspuns: 331 Vă rugăm să specificați parola.<br/> Command: PASS *****<br/> Răspuns: 530 Autentificare incorectă.<br/> Eroare: Eroare critică: Nu s-a putut conecta la server <br/> code –  > Por tim11g.
  • În primul rând, căutați de ce nu v-ați putut conecta la server. Puteți depana problema cu jailingul numai după ce ați reușit să vă conectați. Noroc. –  > Por gnaanaa.
  • Folosește vsftp un utilizator/parolă diferit față de conturile de pe mașină? Am descoperit că parolele smb trebuie setate separat cu smbpasswd -a. Funcționează vsftpd în același mod? –  > Por tim11g.
  • Nu, este vorba de contul de utilizator de sistem. verificați acest răspuns : askubuntu.com/questions/413677/vsftpd-530-login-incorrect –  > Por gnaanaa.
Nico Vink

Chrooting-ul menționat în răspunsurile anterioare nu a funcționat pe serverul meu ubuntu 18.04. Am reușit în cele din urmă să funcționeze folosind această referință: https://passingcuriosity.com/2014/openssh-restrict-to-sftp-chroot/