Internet Windows Android

Instalarea și configurarea unui server FTP în Linux. Instalarea și configurarea unui server FTP Linux Cum să configurați o conexiune FTP pe Linux

Din când în când, fiecare administrator de sistem are nevoie de un server FTP, cel mai adesea acest lucru se datorează necesității de a asigura schimbul de informații într-un mod automat între aplicații, de exemplu, în timpul schimbului automat al unei baze de informații 1C distribuite, sau pentru a accesa fișiere de pe un server web. Astăzi vă vom spune cum să creați un astfel de server pe platforma Ubuntu în mai puțin de jumătate de oră.

Dar mai întâi, puțină teorie. FTP (File Transfer Protocol) este, după cum sugerează și numele, pentru transferul de fișiere și a apărut în 1971, dar, în ciuda vârstei sale avansate, continuă să fie utilizat pe scară largă până în zilele noastre. Deși utilizarea sa astăzi este mai mult de natură tehnică, este obișnuit ca utilizatorii finali să acceseze date folosind un browser și HTTP. Avantajele FTP includ capacitatea de a relua un fișier atunci când conexiunea este întreruptă și capacitatea de a citi și scrie fișiere la fel de ușor. Dar există dezavantaje, cel mai grav este securitatea scăzută, așa că acestei probleme ar trebui să i se acorde cea mai mare atenție.

FTP, ca și PPTP, utilizează diferite conexiuni pentru transferul de comenzi și transferul de date. La inițierea unei conexiuni, clientul transmite comenzi de control către portul 21 al serverului, care la rândul său stabilește o conexiune de ieșire pentru transmisia de date pe portul 20, portul din partea clientului fiind determinat ca urmare a negocierii. Totuși, dacă clientul se află în spatele NAT, conexiunea nu poate fi stabilită în acest mod, prin urmare a fost dezvoltat un mod pasiv FTP suplimentar, când clientul, mai degrabă decât serverul, stabilește conexiunea pentru transferul de date, dar cu parametrii specificați de Server. Aceste puncte trebuie luate în considerare atunci când redirecționați FTP și când configurați un filtru de rețea.

Pentru serverul nostru, vom folosi vsftpd- server FTP simplu, rapid și sigur. Deoarece va servi atât rețelelor externe, cât și rețelelor interne, este logic să adăugăm acest rol la al nostru. Instalarea serverului este extrem de simplă:

Apt-get install vsftpd

Serverul este configurat prin fișierul de configurare /etc/vsftpd.conf are o structură simplă, este bine comentată și vă permite să configurați serverul fără instrucțiuni cu cunoștințe minime. Să luăm în considerare principalii săi parametri.

Serverul poate fi pornit constant ca serviciu sau pornit dacă este necesar, prima opțiune este mai potrivită pentru noi:

Ascultă = DA

Această opțiune are o înregistrare care se exclude reciproc, care ar trebui redusă la forma:

Listen_ipv6 = NU

Permiteți numai utilizatorilor locali să se conecteze:

Anonymous_enable = NU
local_enable = DA

Permitem utilizatorilor să scrie fișiere și să spună serverului să seteze automat drepturile necesare (755 pentru foldere și 644 pentru fișiere):

Write_enable = DA
local_umask = 022

Dacă doriți să setați un set diferit de drepturi: 775 și 664, atunci umask trebuie să fie 002.

În mod implicit, serverul folosește ora GMT pentru a seta fișierele la ora fusului dvs. orar, utilizați opțiunea:

Use_localtime = YES

Activați jurnalul fișierelor încărcate și descărcate:

Xferlog_enable = DA

Lăsați serverul să stabilească conexiuni de date pe portul 20 (mod activ):

Connect_from_port_20 = DA

Următoarele opțiuni specifică locația și formatul pentru stocarea jurnalelor:

Xferlog_file = / var / log / vsftpd.log
xferlog_std_format = DA

Să setăm intervalele de timp ale sesiunii:

Idle_session_timeout = 600
data_connection_timeout = 120

De asemenea, din motive de securitate, izolăm utilizatorul în directorul său principal și permitem imediat scrierea la rădăcină:

Chroot_local_user = DA
allow_writeable_chroot = DA

Pentru a lucra corect cu datele text, puteți activa suportul ASCII, acest lucru va permite atunci când transferați un fișier text dintr-un sistem Windows pe UNIX (Linux) să înlocuiți corect caracterele de întrerupere de linie de la CR + LF la LF pentru afișarea corectă a conținutului și efectuați transformarea inversă atunci când îl transferați înapoi.

Ascii_upload_enable = DA
ascii_download_enable = DA

O singură opțiune poate fi activată, pentru încărcare sau descărcare. Vă rugăm să rețineți că transferul unui fișier binar în modul ASCII îl poate deteriora pe acesta din urmă.

O varianta destul de interesanta:

Ls_recurse_enable = DA

Permite navigarea recursivă în directoare, pe de o parte este convenabilă, pe de altă parte poate provoca o încărcare grea pe server, dacă, de exemplu, obțineți o listare a unui director care conține un număr mare de fișiere și directoare.

Lăsăm toate celelalte opțiuni în mod implicit, deși puteți edita salutul serverului scriind acolo ce doriți:

Ftpd_banner = Bun venit la Roga i Kopyta LLC FTP

La sfârșitul fișierului de configurare, vom seta setările pentru modul pasiv, se recomandă să setați explicit porturile, astfel încât să le puteți specifica în timpul redirecționării dacă serverul se află în spatele NAT sau în regulile firewall:

Pasv_enable = DA
pasv_min_port = 62000
pasv_max_port = 62999

Reporniți serverul (acest lucru trebuie făcut de fiecare dată după ce faceți modificări în configurație):

Repornirea serviciului vsftpd

și încercați să vă conectați cu orice client FTP folosind acreditările unui utilizator existent. Trebuie să intrăm în directorul lui de acasă și să fim izolați în el.

În cazul unei erori legate de funcționarea incorectă a vsftpd și a sistemului de securitate seccomp:

500 OOPS: prctl PR_SET_SECCOMP a eșuat

adăugați opțiunea nedocumentată la fișier:

Seccomp_sandbox = NU

Cu toate acestea, amintiți-vă că FTP este un protocol nesigur, așa că lăsarea oricărui utilizator local pe server, așa cum se face acum, nu este cea mai bună opțiune. Pentru a evita această situație, vsftpd are încorporat un mecanism de control al utilizatorului. Să adăugăm o opțiune la fișierul de configurare:

Userlist_enable = DA

și creați un fișier cu listă de utilizatori:

Atingeți /etc/vsftpd.user_list

vsftpd implicit interzice acces la server pentru utilizatorii specificati in aceasta lista chiar inainte de a introduce parola, i.e. implementează principiul este permis tuturor celor care nu sunt interzis. Dar ar fi mult mai bine să implementați o abordare diferită: este interzis tuturor celor care nu au voie. Acestea. permite acces numai la utilizatori specificati. Pentru a face acest lucru, adăugați o opțiune:

Userlist_deny = NU

Acum doar utilizatorii specificați explicit vor avea acces la serverul FTP, ar trebui să fie specificați în vsftpd.user_list unul pe linie, de exemplu:

Ivanov
petrov

Dacă nu se specifică altfel, utilizatorii se conectează prin FTP la directorul lor principal. Acest lucru nu este întotdeauna convenabil, de multe ori trebuie să le redirecționați către un alt director. Dacă acesta este un folder comun pentru toți, să spunem / var / ftp, atunci puteți specifica opțiunea:

Rădăcină_locală = / var / ftp

Care va redirecționa toți utilizatorii către directorul specificat și îi va izola acolo.

Aceasta este cea mai simplă situație, sarcinile reale sunt de obicei mai dificile, să presupunem că trebuie să setăm utilizatorul Ivanov ca director rădăcină /var/www/example1.comși Petrov /var/www/example2.com astfel încât fiecare dintre ele să funcționeze cu propriul folder. În aceste scopuri, puteți utiliza o altă caracteristică a vsftpd - setările utilizatorului, care înlocuiesc setările din fișierul principal de configurare.

Pentru a face acest lucru, adăugați o opțiune:

User_config_dir = / etc / vsftpd_user_conf

Apoi vom crea directorul în sine

Mkdir / etc / vsftpd_user_conf

Pentru a seta propriile setări pentru utilizatorul din acest director, creați un fișier cu numele de utilizator și adăugați-i opțiunile necesare. Modificările sunt aplicate fără a reporni serverul FTP data viitoare când clientul se conectează.

Să creăm un fișier cu setări pentru Ivanov:

Tocuh / etc / vsftpd_user_conf / ivanov

și adăugați o opțiune:

Rădăcină_locală = / var / www / example1.com

Data viitoare când vă conectați, directorul rădăcină al utilizatorului se va schimba în cel specificat. De asemenea, în acest fișier putem seta orice opțiuni personale, de exemplu, alta umask sau permisiuni pentru fișiere. Totuși, nu putem folosi setările globale aici: opțiuni de conectare, de logare, de autentificare, acestea vor fi pur și simplu ignorate.

Dacă trebuie să ascundeți proprietarii reali ai fișierelor și folderelor, atunci puteți utiliza opțiunea:

Hide_ids = DA

În acest caz, ftp: ftp va fi indicat în locul proprietarilor și grupurilor reali, acest lucru poate fi util în cazul unui server public sau dacă există persoane neautorizate în lista de utilizatori cărora nu doriți să le dezvăluiți reale. numele de utilizator ale sistemului dvs.

După cum puteți vedea, am configurat de fapt un server FTP funcțional în mai puțin de jumătate de oră.

F TP (File Transfer Protocol) este un protocol de rețea standard utilizat pentru a transfera fișiere către și de la o rețea la distanță. Pentru un transfer de date mai sigur și mai rapid, utilizați SCP.

Există multe servere FTP open source disponibile pentru Linux. Cele mai populare și utilizate pe scară largă sunt PureFTPd, ProFTPD și vsftpd. În acest tutorial, vom instala vsftpd. Este un server FTP stabil, sigur și rapid. Vă vom arăta, de asemenea, cum să configurați vsftpd pentru a restricționa accesul utilizatorilor la directorul lor principal și a cripta toate transmisiile folosind SSL / TLS.

Deși acest articol a fost scris pentru Ubuntu 18.04, aceleași instrucțiuni se aplică Ubuntu 16.04 și oricărei distribuții bazate pe Debian, inclusiv Debian, Linux Mint și Elementary OS.

Cerințe preliminare

Instalarea vsftpd pe Ubuntu 18.04

Pachetul vsftpd este disponibil în depozite. Pentru a-l instala, rulați următoarele comenzi:

Sudo apt update sudo apt install vsftpd

Serviciul vsftpd va porni automat după finalizarea procesului de instalare. Verificați-l prin imprimarea stării serviciului:

Sudo systemctl status vsftpd

Rezultatul va arăta cam așa, arătând că serviciul vsftpd este activ și rulează:

* vsftpd.service - vsftpd server FTP Încărcat: încărcat (/lib/systemd/system/vsftpd.service; activat; prestabilit furnizor: activat) Activ: activ (în rulare) din luni 2018-10-15 03:38:52 PDT; Acum 10 minute PID principal: 2616 (vsftpd) Sarcini: 1 (limită: 2319) CGroup: /system.slice/vsftpd.service `-2616 / usr / sbin / vsftpd /etc/vsftpd.conf

Configurarea vsftpd

Serverul vsftpd poate fi configurat prin editarea fișierului /etc/vsftpd.conf. Majoritatea setărilor sunt documentate în fișierul de configurare. Pentru toate opțiunile disponibile, vizitați pagina oficială vsftpd.

În secțiunile următoare, vom trece peste câteva dintre setările importante necesare pentru a configura o instalare sigură a vsftpd.

Începeți prin a deschide fișierul de configurare vsftpd:

Sudo nano /etc/vsftpd.conf

1. Acces FTP

Permitem doar utilizatorilor locali să acceseze serverul FTP, să găsească directivele anonymous_enable și local_enable și să verificăm dacă configurația dvs. corespunde următoarelor linii:

/etc/vsftpd.conf

Anonymous_enable = NU local_enable = DA

2. Activarea descărcarii

Decomentați setarea write_enable pentru a permite modificări ale sistemului de fișiere, cum ar fi încărcarea și ștergerea fișierelor.

/etc/vsftpd.conf

Write_enable = DA

3. Chroot

Pentru a împiedica utilizatorii FTP să acceseze orice fișiere din afara directoarelor lor de acasă, decomentați setarea chroot.

/etc/vsftpd.conf

Chroot_local_user = DA

În mod implicit, pentru a preveni o vulnerabilitate de securitate atunci când chroot-ul este activat, vsftp va refuza să descarce fișiere dacă directorul în care sunt blocați utilizatorii poate fi scris.

  • Metoda 1.- Modul recomandat de a permite încărcările este activarea chroot-ului și configurarea directoarelor FTP. În acest tutorial, vom crea un director ftp în interiorul casei utilizatorului care va servi drept chroot și va scrie un director de încărcări pentru încărcarea fișierelor.

    /etc/vsftpd.conf

    User_sub_token = $ USER local_root = / home / $ USER / ftp

  • Metoda 2. O altă opțiune este să adăugați următoarea directivă la fișierul dvs. de configurare vsftpd. Utilizați acest parametru dacă trebuie să acordați acces de scriere utilizatorului în directorul dvs. de acasă.

    /etc/vsftpd.conf

    Allow_writeable_chroot = DA

4. Conexiuni FTP pasive

vsftpd poate folosi orice port pentru conexiuni FTP pasive. Vom specifica intervalul de porturi minim și maxim și apoi deschidem intervalul în firewall-ul nostru.

Adăugați următoarele linii în fișierul de configurare:

/etc/vsftpd.conf

Pasv_min_port = 30000 pasv_max_port = 31000

5. Restricționarea autentificarii utilizatorului

Pentru a permite numai anumitor utilizatori să se conecteze la serverul FTP, adăugați următoarele rânduri la sfârșitul fișierului:

/etc/vsftpd.conf

Userlist_enable = YES userlist_file = / etc / vsftpd.user_list userlist_deny = NU

Când această opțiune este activată, trebuie să specificați în mod explicit ce utilizatori se pot conecta adăugând nume de utilizator în fișierul /etc/vsftpd.user_list (un utilizator pe linie).

6. Securizarea transmisiei folosind SSL / TLS

Pentru a cripta transferurile FTP folosind SSL / TLS, trebuie să aveți un certificat SSL și să configurați serverul dvs. FTP pentru a-l utiliza.

Puteți utiliza un certificat semnat de o autoritate de certificare de încredere sau puteți crea un certificat autosemnat.

Dacă aveți un domeniu sau un subdomeniu care indică adresa IP a serverului FTP, puteți crea cu ușurință un certificat SSL gratuit pentru criptare.

În acest articol, vom genera un certificat SSL autosemnat folosind comanda openssl.

Următoarea comandă va genera o cheie privată de 2048 de biți și un certificat autosemnat valabil timp de 10 ani. Atât cheia privată, cât și certificatul vor fi salvate în același fișier:

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

Acum că certificatul SSL a fost creat, deschideți fișierul de configurare vsftpd:

Sudo nano /etc/vsftpd.conf

Găsiți directivele rsa_cert_file și rsa_private_key_file, modificați valoarea lor pam în calea fișierului și setați directiva ssl_enable la YES:

/etc/vsftpd.conf

Rsa_cert_file = / etc / ssl / private / vsftpd.pem rsa_private_key_file = / etc / ssl / private / vsftpd.pem ssl_enable = YES

Dacă nu se menționează altfel, serverul FTP va folosi doar TLS pentru a asigura conexiuni sigure.

Reporniți serviciul vsftpd

După ce ați terminat de editat, fișierul de configurare vsftpd (cu excepția comentariilor) ar trebui să arate cam așa:

/etc/vsftpd.conf

Ascultă = NU listen_ipv6 = DA anonymous_enable = NU local_enable = DA write_enable = DA dirmessage_enable = DA use_localtime = DA xferlog_enable = DA connect_from_port_20 = DA chroot_local_user = DA secure_chroot_dir = /vard/runds_ etc. private / vsftpd.pem ssl_enable = YES user_sub_token = $ USER local_root = / home / $ USER / ftp pasv_min_port = 30000 pasv_max_port = 31000 userlist_enable = etc userlist_deny = NU

Salvați fișierul și reporniți serviciul vsftpd pentru ca modificările să intre în vigoare:

Sudo systemctl reporniți vsftpd

Deschiderea firewall-ului

Dacă utilizați firewall UFW, trebuie să permiteți traficul FTP.

Pentru a deschide portul 21 (port de comandă FTP), portul 20 (port de date FTP) și 30000-31000 (gamă de porturi pasive), rulați următoarele comenzi:

Sudo ufw allow 20: 21 / tcp sudo ufw allow 30000: 31000 / tcp

Pentru a evita blocarea, vom deschide portul 22:

Sudo ufw permit OpenSSH

Reîncărcați regulile UFW dezactivând și reactivând UFW:

Sudo ufw disablesudo ufw enable

Pentru a verifica progresul modificărilor:

Stare Sudo ufw Stare: activ Pentru acțiune De la - ------ ---- 20: 21 / tcp ALLOW Oriunde 30000: 31000 / tcp ALLOW Oriunde OpenSSH ALLOW Oriunde 20: 21 / tcp (v6) ALLOW Oriunde (v6) 30000: 31000 / tcp (v6) ALLOW oriunde (v6) OpenSSH (v6) ALLOW oriunde (v6)

Creați utilizator FTP

Pentru a testa serverul nostru FTP, vom crea un nou utilizator.

  • Dacă aveți deja un utilizator căruia doriți să îi acordați acces FTP, săriți peste pasul 1.
  • Dacă ați setat allow_writeable_chroot = YES în fișierul de configurare, săriți peste pasul 3.
  1. Creați un utilizator nou numit newftpuser: sudo adduser newftpuser
  2. Adăugați utilizatorul în lista FTP Allowed Users: echo "newftpuser" | sudo tee -a /etc/vsftpd.user_list
  3. Creați arborele director FTP și setați permisiunile corecte: sudo mkdir -p / home / newftpuser / ftp / uploadsudo chmod 550 / home / newftpuser / ftpsudo chmod 750 / home / newftpuser / ftp / uploadsudo chown -R newftpuser: / home / newftpuser / ftp

    După cum sa discutat în secțiunea anterioară, utilizatorul își va putea încărca fișierele în directorul ftp / upload.

În acest moment, serverul dvs. FTP este complet operațional și ar trebui să vă puteți conecta la server cu oricine poate fi configurat să utilizeze criptarea TLS, cum ar fi FileZilla.

Dezactivați accesul la shell

În mod implicit, la crearea unui utilizator, dacă nu este specificat în mod explicit, utilizatorul va avea acces la serverul SSH.

Pentru a dezactiva accesul la shell, vom crea un nou shell care va tipări pur și simplu un mesaj prin care îi spune utilizatorului că contul său este limitat doar la accesul FTP.

Creați un shell / bin / ftponly și faceți-l executabil:

Echo -e "#! / Bin / sh \ necho" Acest cont este limitat doar la accesul FTP. "" | sudo tee -a / bin / ftponlysudo chmod a + x / bin / ftponly

Adăugați noul shell la lista de shell-uri valide din fișierul / etc / shells

Echo „/ bin / ftponly” | sudo tee -a / etc / shells

Schimbați shell-ul utilizatorului în / bin / ftponly:

Sudo usermod newftpuser -s / bin / ftponly

Concluzie

În acest articol, ați învățat cum să instalați și să configurați un server FTP sigur și rapid pe sistemul dumneavoastră Ubuntu 18.04.

File Transfer Protocol (FTP) este un protocol TCP pentru transferul de fișiere între computere. În trecut, a fost folosit și pentru descărcarea [fișierelor de pe Internet], dar deoarece această metodă nu folosește criptarea, datele utilizatorului, precum conținutul fișierelor, sunt transmise în mod deschis și sunt ușor de interceptat. Prin urmare, dacă căutați o modalitate de a transfera și încărca fișiere în siguranță aici, mai bine vă referiți la articolul OpenSSH din secțiunea Administrare la distanță.

FTP funcționează pe bază de client/server. Componenta server se numește serviciu FTP. Ascultă în mod constant solicitările FTP de la clienți la distanță. Când se primește o solicitare, acesta controlează intrarea și stabilirea conexiunii. În timpul sesiunii, execută orice comenzi trimise de clientul FTP.

vsftpd - Configurare server FTP

vsftpd este un serviciu FTP disponibil în Ubuntu. Este ușor de instalat, configurat și întreținut. Pentru a instala vsftpd, puteți rula următoarea comandă:

Sudo apt install vsftpd

Pentru a porni serviciul, trebuie să îl adăugați la pornire. Din Ubuntu 15.04, este folosit Systemd, așa că pentru a adăuga vsftpd la pornire automată, introduceți următoarele comenzi:

Sudo systemctl start vsftpd sudo systemctl enable vsftpd

Firewall-ul ufw poate fi folosit pe Ubuntu Server. Apoi trebuie să permiteți porturile 20 și 21

Sudo ufw allow 20 / tcp sudo ufw allow 21 / tcp

Fișierul de configurare conține multe opțiuni de personalizare. Informațiile pentru fiecare parametru sunt disponibile în același fișier. Alternativ, puteți consulta manualul de comandă a sistemului

Man 5 vsftpd.conf

pentru a clarifica detaliile pentru fiecare parametru.

Accesul la serverul FTP poate fi organizat în două moduri:

V modul anonim un client la distanță poate accesa serverul FTP utilizând contul de utilizator implicit numit „anonim” sau „ftp” și trecând adresa de e-mail ca parolă. V modul autorizat utilizatorul trebuie să aibă un nume de cont și o parolă. Această ultimă opțiune este foarte nesigură și nu ar trebui utilizată decât în ​​circumstanțe speciale. Dacă doriți să transferați fișiere în siguranță, consultați SFTP în secțiunea despre OpenSSH Server. Accesul utilizatorului la directoare și fișiere ale serverului FTP depinde de drepturile de acces ale utilizatorului specificate în timpul conectării. De obicei, serviciul FTP ascunde directorul rădăcină al serverului FTP, înlocuindu-l cu directorul principal FTP. Aceasta ascunde rădăcina sistemului de fișiere de la sesiunile de la distanță.

Configurarea accesului FTP anonim

Configurația implicită vsftpd nu permite încărcări anonime. Dacă doriți să permiteți încărcări anonime, modificați următoarele în /etc/vsftpd.conf:

Anonymous_enable = DA

Procesul de instalare creează un utilizator ftp cu directorul principal / srv / ftp. Acesta este directorul FTP implicit.

Dacă doriți să schimbați locația sa în, de exemplu, / srv / files / ftp, trebuie doar să creați un nou director și să schimbați directorul principal al utilizatorului ftp:

Sudo mkdir / srv / fișiere / ftp sudo usermod -d / srv / fișiere / ftp ftp

După modificări, reporniți vsftpd:

În cele din urmă, copiați toate fișierele și directoarele pe care doriți să le faceți disponibile pentru FTP anonim în / srv / files / ftp (sau / srv / ftp dacă doriți să păstrați setările implicite).

În mod implicit, un utilizator anonim nu are capacitatea de a încărca fișiere pe serverul FTP. Pentru a schimba această setare, decomentați următoarea linie și reporniți vsftpd:

Anon_upload_enable = DA

Permiterea unui utilizator anonim să descarce fișiere poate reprezenta un risc serios de securitate. Cel mai bine este să nu permiteți încărcările anonime de fișiere pe servere cu acces direct de pe Internet.

Configurarea accesului FTP autorizat

Înainte de a face orice modificări în fișierul de configurare, este recomandat să copiați eșantionul pentru a putea face înapoi modificările fără a reinstala pachetul sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig

Pentru a autentifica utilizatorii locali, trebuie să decomentați linia

Local_enable = DA

În mod implicit, vsftpd este configurat pentru a autentifica utilizatorii sistemului cu posibilitatea de a primi fișiere. Dacă doriți să permiteți utilizatorilor să încarce fișiere, modificați în /etc/vsftpd.conf:

Write_enable = DA

apoi reporniți vsftpd:

Reporniți serviciul Sudo vsftpd

Acum, când utilizatorii de sistem se conectează prin FTP, aceștia vor fi duși la directoarele lor de acasă, de unde pot descărca, încărca [fișiere], pot crea directoare etc.

Securitate FTP

Limitarea utilizatorilor

Există opțiuni în /etc/vsftpd.conf pentru a face vsftpd mai sigur. De exemplu, această opțiune vă permite să puneți un utilizator local într-un chroot () „întemnițare”, deasupra căruia (de-a lungul arborelui de directoare) nu va putea să urce.

Chroot_local_user = DA

De asemenea, puteți defini o listă de utilizatori care au acces doar la directorul principal:

Chroot_list_enable = DA chroot_list_file = / etc / vsftpd.chroot_list

După decomentarea acestor opțiuni, creați /etc/vsftpd.chroot_list care conține o listă de utilizatori, câte unul pe linie. Apoi reporniți vsftpd:

Reporniți serviciul Sudo vsftpd

Dacă ați eliminat comentariile din toate cele trei rânduri, atunci utilizatorii din listă nu se vor limita la directoarele lor de acasă, spre deosebire de utilizatorii care nu sunt incluși în listă.

În mod similar, fișierul / etc / ftpusers conține o listă de utilizatori cărora li se interzice accesul FTP. În mod implicit, include root, daemon, nimeni etc. Pentru a refuza accesul FTP pentru utilizatori suplimentari, pur și simplu adăugați-i la această listă.

Dacă vedeți o eroare când încercați să vă conectați:

Răspuns: 500 OOPS: vsftpd: refuzul de a rula cu rădăcină care poate fi scrisă în interiorul chroot ()

atunci aceasta înseamnă că utilizatorul local are acces de scriere la directorul principal, ceea ce nu ar trebui să fie. Există mai multe moduri de a rezolva această eroare:

    Interziceți utilizatorului local să scrie în directorul principal (nu este potrivit pentru toată lumea și nu întotdeauna)

sudo chmod a-w / home / user / allow_writeable_chroot = DA

    Înregistrați / acasă cu directorul în care vor merge utilizatorii locali după conectarea la serverul FTP. Apoi, fiecare dintre ei va putea scrie numai în directorul de acasă

local_root = / home

Criptare

FTP poate fi criptat atunci când este utilizat FTPS... Spre deosebire de SFTP, FTPS este FTP peste SSL. SFTP este o sesiune asemănătoare FTP printr-o conexiune SSH criptată. Principala diferență este că utilizatorii SFTP trebuie să aibă un cont shell în loc de shell-ul nologin. Acordarea accesului shell tuturor utilizatorilor poate să nu fie cea mai bună soluție pentru unele sisteme, cum ar fi un server web partajat. Cu toate acestea, este posibil să restricționați astfel de conturi doar la SFTP și să preveniți interacțiunea cu shell-ul. Consultați secțiunea despre OpenSSH pentru mai multe informații.

Pentru a configura FTPS, adăugați următoarele la sfârșitul /etc/vsftpd.conf:

Ssl_enable = Da

De asemenea, rețineți opțiunile de certificat și cheie:

Rsa_cert_file = / etc / ssl / certs / ssl-cert-snakeoil.pem rsa_private_key_file = / etc / ssl / private / ssl-cert-snakeoil.key

În mod implicit, aceste opțiuni sunt setate la valorile furnizate de pachet ssl-cert... Pentru un mediu de producție, acestea ar trebui înlocuite cu un certificat și cheie generate pentru un anumit computer. Consultați secțiunea Certificate pentru mai multe informații.

Acum reîncărcați vsftpd și utilizatorii non-anonimi vor folosi FTPS:

Reporniți serviciul Sudo vsftpd

Pentru a permite utilizatorilor cu shell / usr / sbin / nologin să acceseze FTP, dar să nu ofere acces shell, editați / etc / shell-uri adăugând nologin la shell:

# / etc / shell-uri: shell-uri de conectare valide / bin / csh / bin / sh / usr / bin / es / usr / bin / ksh / bin / ksh / usr / bin / rc / usr / bin / tcsh / bin / tcsh / usr / bin / esh / bin / dash / bin / bash / bin / rbash / usr / bin / ecran / usr / sbin / nologin

Acest lucru este necesar deoarece vsftpd utilizează în mod implicit autorizarea PAM și fișierul de configurare /etc/pam.d/vsftpd conține:

Autentificarea necesară pam_shells.so

Modulul PAM scoici restricționează accesul la shell-urile listate în fișierul / etc / shells.

Cei mai populari clienți FTP pot fi configurați să utilizeze FTPS. Clientul FTP din linia de comandă lftp are, de asemenea, capacitatea de a utiliza FTPS.

Este capacitatea de a transfera fișiere folosind protocolul de transfer de fișiere. Este folosit pentru partajarea ușoară a fișierelor prin LAN cu fir și fără fir. Acest server local poate fi util atât la serviciu, cât și acasă. Cu Ubuntu, serverul FTP este și mai convenabil, deoarece necesită un minim de efort și resurse pentru configurare și utilizare.

Un server ftp poate fi instalat pe baza Ubuntu.


Astăzi, protocolul de schimb de fișiere este folosit în special pentru a vă transfera propriile resurse pe servere de pe Internet, precum și între computere de încredere. Clienții FTP bine-cunoscuți pentru Windows, cum ar fi FileZilla, urmăresc să comunice între două computere într-un mod care să facă comunicarea dintre ele cât mai simplă și cât mai ușor de gestionat.

Protocolul este construit pe baza logicii client-server. Aceasta înseamnă că există două laturi tehnice - clientul (ale cărui nevoi sunt deservite) și serverul (care servește nevoilor). Conexiunea la server poate fi efectuată fie folosind autentificare deschisă (nume de utilizator și parolă), fie anonim (dacă este acceptată). În ciuda acestui fapt, protocolul FTP este slab din punct de vedere al securității, mai ales după standardele actuale. Cu toate acestea, pe Ubuntu, o instalare FTP poate include unele standarde de securitate suplimentare.

Să trecem la practică. Daemon Profpd

Pentru a instala cu succes serverul FTP Ubuntu, folosim un așa-numit „daemon”. Este un program care vă permite să efectuați sarcini de rutină în timp ce rulați în fundal. Daemonul de care aveți nevoie pentru FTP pe Ubuntu este Proftpd. Instalarea acestuia se realizează printr-o simplă comandă în Terminal:

„Sudo apt-get install proftpd”.

Când instalarea este finalizată, va trebui să actualizați configurația serverului și să modificați setările de bază. Acest lucru vă va ajuta să configurați procesul de conectare la server. Toate modificările necesare trebuie făcute în fișierul „/etc/proftpd/proftpd.conf”. Poate fi deschis direct cu editorul nano.

Așa că a început configurarea serverului FTP Ubuntu. În primul rând, să schimbăm cei 2 parametri necesari.

La sfârșitul fișierului, adăugați linia:

„AuthUserFile /etc/proftpd/ftpd.passwd”

În acest document, pe care vă vom invita să-l adăugați ulterior, vor fi stocați principalii parametri de autentificare. Eliminam simbolul de comentariu din linia „DefaultRoot” - „#”. Acum să trecem la editarea fișierului „/ etc / shells”. Trebuie să adăugați linia „/ bin / false”. Cu ajutorul acestor comenzi veți putea adăuga noi utilizatori la un grup existent:

„Addgroup username group”, dacă inserați „username” = „ftp” și „group” = „www-data”, devine posibil să lucrați cu fișiere din „proprietatea” serverului.

În plus, instalarea serverului FTP Ubuntu oferă comanda „change owner”: „chown -R ftp: www-data”. Poate fi folosit pentru a face proprietarul fișierelor utilizatorul „ftp”. Grupului de utilizatori „www-data” i se va acorda acces de grup la documente. Când toate setările sunt finalizate, trebuie doar să reporniți serverul:

„Sudo /etc/init.d/proftpd restart”

Acum trebuie să configurați conturi de utilizator virtuale. Acest lucru trebuie făcut conform următoarei scheme:

„Ftpasswd -passwd -file = / etc / proftpd / ftpd.passwd -name = (nume utilizator) -shell = / bin / false -home = / var / www / html -uid = (ID utilizator, poate fi găsit prin comanda " id ftp ") -gid = (ID de grup, să spunem pentru grup" www-data "- 33)

„Sudo nano /etc/dhcp3/dhcpd.conf”

Trebuie să scrieți următoarele în el:

„# Nume de domeniu (intern).
opțiune nume-domeniu „nume_domeniu”;
#Serverul DNS pe computerul conectat.
opțiunea nume-domeniu-servere adresa_ip;
# Eliminați comentariul „#” din această linie.
autoritar;
# Datele de subrețea dorite pentru server.
subrețea 192.168.0.0 mască de rețea 255.255.255.0 (
# Gama de adrese de emitere.
interval adresa_IP adresa_IP;
# Un router cu acces la internet. opțiune routere adresa_IP;
# Fișierul care urmează să fie încărcat în momentul pornirii în rețea.
nume fișier = „tftp / pxelinux.0”;

Acum tot ce rămâne este să reporniți serverul DHCP:

„Sudo /etc/init.d/dhcp3-server restart”.

După cum puteți vedea, configurarea unui server FTP Ubuntu nu necesită abilități tehnice speciale. În plus, este destul de simplu pentru oricine a lucrat pe Linux.

In concluzie

În acest articol, am examinat în detaliu și în detaliu cum să instalați un server FTP pe Ubuntu și am acordat, de asemenea, atenție instalării unui server TFTP. Aceste instrumente sunt un exemplu perfect al cât de flexibil și funcțional este Ubuntu. Dacă mai aveți întrebări despre utilizarea și configurarea acestuia, nu ezitați să le întrebați în comentariile acestui articol. Și citiți și alte materiale de pe paginile site-ului nostru.

F ile T transfer P rotocol, adică FTP este un protocol de transfer de fișiere și, după cum sugerează și numele complet, este conceput pentru a transfera fișiere între computere la distanță printr-o rețea. În ciuda faptului că protocolul FTP în sine nu este în prezent cel mai perfect din cauza faptului că datele transmise nu sunt criptate, acest lucru nu îl face învechit. În plus, este încă posibil să se aplice protecție criptografică bazată pe protocolul SSL la FTP, ceea ce face din FTP un instrument demn de transfer de fișiere.

Deoarece FTP funcționează conform schemei de interacțiune client-server, o implementare abil și fiabilă a protocolului (și într-adevăr a sistemului) îi poate oferi protecție fiabilă, viteză mare și, ca urmare, popularitate, ceea ce poate fi observat astăzi. , deoarece majoritatea proiectelor mari, cum ar fi ftp.gnu.org, ftp.suse.com, ftp.redhat.com, ftp.gnome.org etc., folosesc FTP pentru a distribui software-ul de pe serverele lor. Trebuie remarcat faptul că o astfel de popularitate a FTP se datorează, într-o măsură mai mare, uneia dintre numeroasele sale implementări - vsFTPd. Acesta este un server FTP care acceptă lucrul cu cele mai moderne tehnologii pentru protecția datelor - SSL și IPv6, implementarea sa combină fiabilitatea ridicată, stabilitatea, viteza de operare și transferul de date, precum și configurarea flexibilă a serverului și funcționalitatea largă. VsFTPd este dezvoltat de Chris Evans, un cercetător profesionist în protecția datelor și securitatea informațiilor. vsFTPd este serverul FTP implicit în aproape toate sistemele Linux, deoarece, după cum am menționat deja, pe lângă fiabilitate și viteza mare de operare, are o funcționalitate excelentă, dintre care cele mai semnificative sunt:

  1. Lucrul cu utilizatori virtuali.
  2. Lucrul cu adrese IP virtuale.
  3. Configurarea utilizatorilor.
  4. A sustine
  5. Criptare SSL pentru a proteja datele transmise.
  6. Controlul lățimii de bandă.

Acest articol discută despre instalarea și configurarea unui server FTP folosind exemplul vsFTPd, care, apropo, este un software gratuit și open source. Pagina oficială a proiectului: https://security.appspot.com/vsftpd.html.

Instalarea vsFTPd

Pentru a instala Vsftd pe distribuțiile Linux orientate spre Debian, utilizați comanda:

$ sudo apt-get install vsftpd

De asemenea, va fi util să instalați un client FTP simplu pentru testarea conexiunilor și a transferurilor de fișiere:

$ apt-get install ftp

Pentru distribuții bazate pe pachete RPM, CentOS, RedHat:

$ yum install vsftpd $ yum install ftp

De obicei, după instalare, demonul vsFTPd pornește automat, puteți verifica acest lucru folosind următoarele comenzi:

$ systemctl status vsftpd

$ service vsftpd stare

Pornirea, repornirea și oprirea serverului:

$ systemctl start vsftpd $ systemctl restart vsftpd $ systemctl stop vsftpd

Pentru a activa demonul vsftpd să pornească la pornire, utilizați comanda:

$ systemctl enable vsftpd

La fel și cu comanda de service.

Dacă vsFTPd este utilizat în distribuțiile de server care rulează adesea un firewall, de exemplu ufw, atunci poate fi necesar să permiteți și utilizarea porturilor 20 și 21:

$ ufw permit 20 / tcp $ ufw permit 21 / tcp

Configurarea vsFTPd

Fișierul de configurare pentru configurarea vsFTPd este fișierul vsftpd.conf, care se găsește de obicei în directorul etc /. Puteți face cunoștință cu obsesia lui pentru comanda pisicii:

$ cat /etc/vsftpd/vsftpd.conf

Pentru orice eventualitate, este util să faceți o copie de rezervă a acesteia înainte de a edita fișierul de setări original:

$ sudo cp /etc/vsftpd.conf vsftpd.conf.backup

Serverul FTP vsFTPd oferă două opțiuni principale pentru lucrul cu utilizatori anonimi și autorizați. Prima opțiune este considerată „mai sigură”, dar numai pentru că nu trebuie să configurați aproape nimic pentru a asigura o protecție fiabilă. Dar cu o organizație competentă de acces autorizat, care implică lucrul cu FTP-ul utilizatorilor locali ai sistemului, puteți asigura securitatea nu mai rău decât utilizarea accesului anonim.

Configurare în modul de acces anonim

Funcția vsFTPd în acest mod este că acțiunile cu fișiere de pe un server la distanță sunt efectuate de un utilizator definit implicit, de exemplu, un utilizator numit " ftp" sau " anonim”, În acest caz, e-mailul este folosit ca parolă.

Pentru a activa accesul FTP anonim, trebuie să definiți valoarea „DA” pentru directiva corespunzătoare din fișierul vsftpd.conf:

Anonymous_enable = DA

Acum un anumit director (de obicei / srv / ftp) și un anumit utilizator - de obicei ftp va fi folosit pentru a gestiona fișierele.

Puteți defini o locație diferită a fișierului pentru accesul FTP anonim, adică schimbați directorul principal al utilizatorului ftp:

$ sudo mkdir / srv / share / ftp $ sudo usermod -d / srv / share / ftp ftp

Dacă doriți ca utilizatorii anonimi să poată încărca fișiere pe un server la distanță, atunci acest lucru se va face prin directivă:

Anon_upload_enable = DA

Acum puteți copia fișierele necesare pentru accesul anonim în folderul principal al utilizatorului ftp și reporniți demonul vsftpd:

$ systemctl reporniți vsftpd

De obicei, acest set de setări este suficient pentru organizarea accesului FTP anonim. Pentru a testa conexiunea, puteți rula comanda ftp address_host:

$ ftp 127.0.0.1

$ ftp localhost

care, dacă are succes, va da ceva de genul acesta:

Configurarea în Modul Acces Autorizat

Local_enable = DA

Write_enable = DA

Acum trebuie să reporniți vsftpd pentru a activa modificările făcute:

$ systemctl reporniți vsftpd

Limitarea utilizatorilor la directoarele lor de acasă

Pentru a defini utilizatorii cărora li se permite accesul numai la directorul lor principal, există directive:

Chroot_list_enable = DA chroot_list_file = / etc / vsftpd.chroot_list

Primul permite utilizarea unei liste de utilizatori, al doilea definește un fișier în care fiecare linie listează utilizatorii cu acces doar la directoarele lor de acasă. Dacă, în același timp, specificați și directiva:

Chroot_local_user = DA

care „blochează” utilizatorii locali în chroot () și nu se pot ridica deasupra directoarelor lor de acasă, în acest caz utilizatorii din fișierul vsftpd.chroot_list nu se vor limita la directoarele lor de acasă, spre deosebire de cei care nu sunt incluși în această listă.

La distribuirea accesului FTP între utilizatori, poate apărea o eroare, care apare din cauza faptului că utilizatorul local are acces de scriere la rădăcina directorului principal, ceea ce este inacceptabil din motive de securitate. Această eroare arată astfel:

500 OOPS: vsftpd: refuzul de a rula cu rădăcină care poate fi scrisă în interiorul chroot ()

Cea mai bună modalitate de a remedia această eroare este să specificați un anumit director rădăcină comun, unde vor merge toți utilizatorii atunci când se conectează, având acces doar la subdirectoarele lor de acasă, de exemplu:

Local_root = / home

De asemenea, puteți dezactiva verificarea pentru scriere în directorul principal pentru a elimina această eroare:

Allow_writeable_chroot = DA

Dar totuși, acest lucru ar trebui făcut numai atunci când există o înțelegere clară a motivului pentru care este necesar pentru o anumită situație.

Protecția datelor cu SSL

Pentru a putea cripta datele transmise, ar trebui să configurați vsFTPd în modul FTPS. Acesta este același transfer de date FTP, dar organizat pe deasupra protocolului SSL. Criptarea și verificarea datelor folosind certificate și chei.

Pentru a activa modul FTPS, trebuie să utilizați următoarea directivă:

Ssl_enable = Da

În mod implicit, fișierul de configurare vsftpd.conf conține și opțiuni care definesc certificate și chei, de exemplu:

Rsa_cert_file = / etc / ssl / certs / ssl-cert-snakeoil.pem rsa_private_key_file = / etc / ssl / private / ssl-cert-snakeoil.key

Acest certificat și cheia trebuie înlocuite. Pentru a utiliza FTPS, trebuie să utilizați un certificat și o cheie. Generat (sau primit) pentru un anumit server sau computer.

Dacă găsiți o eroare, vă rugăm să selectați o bucată de text și apăsați Ctrl + Enter.