Î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).
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.
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.
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.
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)
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)
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!
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
)
ssl_enable=NO
Schimba-l la:
ssl_enable=YES
lipiți în cele ce urmează sub ea.
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!,
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