Instalarea unui server FTP (vsftpd) pe Ubuntu 18.04 / 18.10 / 19.04 / 19.10

posted in: Articles | 0

Înainte de a începe…

este surprinzător cât de mulți dezvoltatori web sunt încă conștienți de SFTP și avantajele pe FTP/FTPS. SFTP vine cu serverul Linux preinstalat și funcționează la fel ca FTP normal, dar este mai sigur și mai puțin hassle pentru a configura. FTP acceptă SFTP, ar trebui să-l utilizați!

  • Cum să configurați SFTP pentru un server web document root

Instalare vsftpd

Să începem prin actualizarea pachetului liste și instalarea vsftpd pe Ubuntu 18.04 / 18.10 / 19.04 / 19.10.,

mai jos avem două comenzi separate prin &&. Prima comandă va actualiza listele de pachete pentru a vă asigura că obțineți cea mai recentă versiune și dependențe pentru vsftpd. A doua comandă va descărca și instala apoi vsftpd. Apăsați y și ENTER atunci când a cerut pentru a continua.

sudo apt update && sudo apt install vsftpd

Odată instalat, verificați starea de vsftpd

sudo service vsftpd status

de mai Sus, putem vedea serverul nostru FTP acum este de până și să fie difuzate.,

configurare Firewall

dacă nu ați făcut-o deja, este recomandat să activațiufw firewall pentru Ubuntu 18.04 / 18.10 / 19.04 / 19.10. Înainte de a activa firewall-ul ufw, asigură-te că adaugi o regulă pentru SSH, altfel s-ar putea să rămâi blocat de server dacă Ești conectat de la distanță. Dacă nu doriți să configurați un firewall, treceți la Pasul 3.

sudo ufw allow OpenSSH

să deschidem porturile 20 și 21 pentru FTP și porturile 40000-50000 pentru FTP pasiv. De asemenea, vom deschide portul 990 pentru TLS, pe care îl vom configura mai târziu.,

sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 40000:50000/tcp
sudo ufw allow 990/tcp

Acum, activați paravanul de protecție dacă nu este deja. Apăsați yși ENTER dacă este avertizat despre întreruperea conexiunii SSH.pentru a verifica starea firewall-ului, executați:

sudo ufw status

dacă firewall-ul rulează, ar trebui să vedețiStatus: active și regulile de firewall pe care tocmai le-am adăugat.

Creare utilizator FTP

acum vom crea un utilizator nou pe care îl vom folosi pentru a ne conecta la FTP., În acest exemplu, vom crea un nou utilizator numit ftpuser.

sudo adduser ftpuser

generați o parolă puternică și păstrați-o în siguranță.de asemenea, vi se poate solicita să introduceți anumite informații de contact. Puteți apăsa ENTER pentru fiecare dintre acestea.

Dacă doriți doar ftpuser să vă conectați prin FTP, ar trebui să dezactivați accesul SSH prin lista neagră a numelui de utilizator în fișierul de configurare SSH. În caz contrar, treceți la Pasul 4.

deschideți configurarea SSH în nano.,

sudo nano /etc/ssh/sshd_config

se Adaugă următorul text la partea de jos a fișierului înlocuirea ftpuser cu utilizatorul pe care doriți să nege SSH și SFTP acces. Puteți adăuga mai mulți utilizatori aici separați de un singur spațiu. (Pentru a lipi în nano, apăsați butonul din dreapta al mouse-ului).

/etc/ssh/sshd_config
DenyUsers ftpuser

Pentru a salva fișierul și ieși, apăsați CTRL + X, apăsați Y și apoi apăsați ENTER.

reporniți serviciul SSH.,

sudo service sshd restart

permisiuni Director

acum trebuie să decidă în cazul în care acest nou utilizator FTP este permis pentru a vizualiza și încărca fișiere.

vsftpd utilizează închisorile chroot pentru a restricționa utilizatorii la directoarele lor de domiciliu și necesită ca directorul de domiciliu să nu poată fi scris. Din acest motiv, trebuie să configurăm câteva directoare și permisiuni.

dacă intenționați să utilizați acest cont de utilizator FTP pentru a încărca fișiere pe un server web, continuați cu Pasul 4.1. Dacă doriți doar să încărcați într-un folder de pornire, treceți la Pasul 4.2.

4. 1., Încărcați pe un Server web

în multe cazuri, doriți să puteți încărca fișiere în rădăcina documentului de pe serverul web.

Dacă ați urmat un precedent ghid aici pentru configurarea mai multe domenii, documentul rădăcină poate fi situat undeva ca /var/www/test1.com/public_html – în acest caz, va trebui să setați folderul acasă pentru ftpuser la dosarul de mai sus document root: /var/www/test1.com (substituirea test1.com pentru propriul domeniu).,

Dacă nu sunteți folosind mai multe domenii, vom presupune că sunteți folosind default document root /var/www/html atât pentru Apache si Nginx în Ubuntu 18.04 / 18.10 / 19.04 / 19.10. În acest scenariu, trebuie să facem /var/www/directorul de acasă pentru utilizatorul nostru ftpuser.

să setăm folderul de deasupra rădăcinii documentului ca director de pornire pentru ftpuser.

sudo usermod -d /var/www ftpuser

Acest lucru va permite utilizatorului nostru FTP să scrie și să modifice fișiere în directorul rădăcină de documente.,

sudo chown ftpuser:ftpuser /var/www/html

acum treceți la Pasul 5 pentru a configura vsftpd.

4.2 Incarca la un Dosar Acasă

Dacă în loc să vă doriți acest utilizator pentru a încărca fișiere în directorul home, de a crea un nou director numit ftp în directorul home al utilizatorului și un alt termen se numește files. În acest exemplu de mai jos, utilizatorul nostru se numește ftpuser.

sudo mkdir /home/ftpuser/ftp

Set de dreptul de proprietate asupra ftp director să nu nobody:nogroup.,

sudo chown nobody:nogroup /home/ftpuser/ftp

Setați permisiunile pentru ftp director folosind chmod așa că nu este scris de cineva, altfel vsftpd nu vă va permite să vă conectați. a-w înseamnă a = tot/toată lumea - = scoateți w = scriere, deci, de a elimina permisiuni de scriere pentru toată lumea.

sudo chmod a-w /home/ftpuser/ftp

în continuare vom crea un nou director în cadrul /ftp unde utilizatorul poate vizualiza și încărca fișiere.,

sudo mkdir /home/ftpuser/ftp/files

atribuiți proprietatea acestui director noului nostru utilizator FTP, altfel nu vor putea să-i scrie.

sudo chown ftpuser:ftpuser /home/ftpuser/ftp/files

Configurare vsftpd

Există câteva schimbări pe care trebuie să le facă pentru vsftpd fișier de configurare înainte de a putea începe să utilizați FTP pe Ubuntu 18.04 / 18.10 / 19.04 / 19.10.înainte de a edita fișierul de configurare, creați o copie de rezervă.

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak

Acum, deschideți fișierul de configurare în nano editor.,

sudo nano /etc/vsftpd.conf

acesta este un fișier destul de mare, dar este în mare parte umplut cu comentarii pentru a vă ajuta.

trebuie să coborâți fișierul și să vă asigurați că setările se potrivesc cu cele de mai jos. Notă: puteți căuta în nano cu ajutorul CTRL + W

Uita-te pentru #write_enable=YES și decomentați prin eliminarea semnul#. Acest lucru va permite utilizatorilor FTP să scrie fișiere pe server.

etc / vsftpd.,conf
write_enable=YES

căutați #chroot_local_user=YES și decomentați-l eliminând semnul#. Acest lucru va împiedica utilizatorii FTP să navigheze în afara propriului director.

etc / vsftpd.conf
chroot_local_user=YES

căutați #local_umask=022 și decomentați-l eliminând semnul#. Acest lucru va oferi fișierelor și folderelor încărcate permisiunile corecte.

etc / vsftpd.conf
local_umask=022

acum trebuie să adăugăm câteva directive care nu există în fișier.,

deoarece Linux nu afișează fișiere care încep cu un punct, fișiere precum .htaccess nu vor fi vizibile în FTP. Aceasta poate fi o problemă dacă intenționați să utilizați Apache și doriți să lucrați cu .htaccess.pentru a forța vsftpd să afișeze nume de fișiere care încep cu un punct, lipiți următoarele în partea de jos a fișierului. (Pentru a lipi în nano, apăsați butonul din dreapta al mouse-ului)

etc/vsftpd.conf
force_dot_files=YES

În cele din urmă, să adăugăm câteva intervale de porturi pentru FTP pasiv pentru a vă asigura că sunt disponibile suficiente conexiuni. Lipiți următoarele în partea de jos a fișierului., (Pentru a lipi în nano, apăsați butonul din dreapta al mouse-ului)

etc/vsftpd.conf
pasv_min_port=40000pasv_max_port=50000

Dacă ați urmat Pasul 4.2 anterior și numai doresc acest utilizator pentru a încărca fișiere în folderul acasă, trebuie să-i spunem vsftpd că local_root este /ftp folder-am creat mai devreme.

nu adăugați aceste două linii dacă doriți ca utilizatorul să încarce în rădăcina documentului web!

etc / vsftpd.conf
user_sub_token=$USERlocal_root=/home/$USER/ftp

Am terminat cu vsftpd.conf pentru moment, dar va reveni în etapele ulterioare pentru a configura securitatea și SSL.,

Pentru a salva fișierul și ieși, apăsați CTRL + X, apăsați Y și apoi apăsați ENTER.

reporniți vsftpd.

sudo systemctl restart vsftpd

Test FTP

acum putem testa vsftpd să vedem dacă putem conectați-vă ca utilizator am creat mai devreme. Vă recomandăm FileZilla, care funcționează pe Windows, Mac și Linux.introduceți IP-ul serverului, numele de utilizator FTP și parola pe care le-ați creat anterior și faceți clic pe Quickconnect.,

de mai Sus, putem vedea că ne-am conectat cu succes și web director rădăcină html este afișat, deși acest lucru poate fi diferit de pe server.încercați să încărcați, să creați și să editați foldere și fișiere în directorul rădăcină web pentru a vă asigura că permisiunile funcționează corect.

veți observa că avem un avertisment în FileZilla ” stare: Server nesigur, nu acceptă FTP peste TLS.”Este foarte recomandat să configurați acum TLS astfel încât acreditările de conectare și traficul să fie criptate prin conexiunea FTP.,dacă aveți probleme la conectarea la serverul FTP, încercați să verificați jurnalul vsftpd. Pentru a vizualiza ultimele 200 de înregistrări folosind tail:

sudo tail /var/log/vsftpd.log -n 200

FTP Securizat cu TLS (opțional)

este important să păstrați câteva lucruri în minte atunci când se utilizează FTP – nu este criptate în mod implicit sensul acreditările dvs. și fișierele pe care le trimiteți sunt vulnerabile la interceptarea. Pentru a aborda acest lucru ar trebui să vă conectați la vsftpd folosind FTPS (FTP peste SSL/TLS).

să începem prin crearea unui nou certificat cu instrumentul openssl.,

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem

vi se va cere să introduceți unele detalii, cum ar fi țara, etc. Nu trebuie să le completezi. Puteți apăsa doar ENTER pentru valorile implicite.acum că cheia dvs. privată a fost creată, trebuie să facem câteva modificări la fișierul de configurare vsftpd.

deschideți fișierul de configurare în editorulnano.

sudo nano /etc/vsftpd.conf

Găsi următoarea linie: (Notă: puteți căuta în nano cu ajutorul CTRL + W)

etc/vsftpd.,conf
ssl_enable=NO

Schimba-l la:

etc/vsftpd.conf
ssl_enable=YES

lipiți în cele ce urmează sub ea.

etc / vsftpd.conf

Salvați fișierul și ieșire (apăsați CTRL + X, apăsați Y și apoi apăsați ENTER).

reporniți vsftpd.

sudo systemctl restart vsftpd

testarea TLS cu FileZilla

acum putem testa TLS. Vă recomandăm FileZilla, care funcționează pe Windows, Mac și Linux.,introduceți IP-ul serverului, numele de utilizator FTP și parola pe care le-ați creat anterior și faceți clic pe Quickconnect.

este posibil să vi se prezinte un avertisment privind certificatul necunoscut. Faceți clic pe încredere întotdeauna acest certificat în sesiunile viitoare și faceți clic pe OK.

Dacă sunteți conectat prin TLS, vă va spune în Jurnalul de conexiuni. Veți vedea, de asemenea, un lacăt în colțul din dreapta jos.

ați terminat!,

4.79 (42 voturi)

lasă-mă Să știu dacă acest lucru a ajutat. Urmați-mă pe Twitter, Facebook și YouTube sau 🍊 cumpărați-mi un smoothie.p. S. am crescut veniturile mele AdSense cu 68% folosind ai 🤖. Citiți recenzia mea Ezoic pentru a afla cum.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *