Din când în când fiecare administrator de sistem este necesar în serverul FTP, cel mai adesea asociat cu necesitatea de a face schimb de informații în mod automat între aplicații, cum ar fi informațiile de bază distribuite avtoobmene 1C, sau pentru a accesa fișierele 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 o jumătate de oră.
Dar mai întâi o mică teorie. Protocolul FTP (File Transfer Protocol) este destinat, după cum sugerează și numele, pentru a transfera 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 prezent. Deși astăzi utilizarea sa este mai tehnică, accesul utilizatorilor finali la date, browserul și protocolul HTTP sunt de obicei utilizate. Avantajele FTP includ capacitatea de a relua fișierul atunci când conexiunea este întreruptă și este la fel de ușor de citit atât fișierele cât și de a le scrie. Dar există dezavantaje, cea mai gravă este securitatea scăzută, astfel că această problemă ar trebui să primească cea mai mare atenție.
FTP, cum ar fi PPTP, utilizează conexiuni diferite pentru a trimite comenzi și a transfera date. Cand clientul initierea conexiune transmite comenzi de control la portul de server 21, care la rândul său, stabilește o conexiune la ieșire pentru transmisia de date la portul 20, portul de pe partea de client este determinată ca rezultat al negocierii. Modul suplimentar Cu toate acestea, atunci când nu poate fi stabilită clientul în spatele unei conexiuni NAT în acest mod, prin urmare, a fost dezvoltat în modul FTP pasiv (modul pasiv), în cazul în care conexiunea nu este seturile de server pentru transferul de date, iar clientul, dar cu parametrii specificați de server. Aceste puncte ar trebui să fie luate în considerare la redirecționarea FTP și la configurarea unui filtru de rețea.
Pentru serverul nostru vom folosi vsftpd - un server FTP simplu, rapid și sigur. Deoarece va servi atât rețele externe, cât și interne, este logic să adăugăm acest rol routerului nostru. Instalarea serverului este extrem de simplă:
Serverul poate fi pornit permanent, ca serviciu sau pornește dacă este necesar, suntem mai potrivite pentru prima opțiune:
Această opțiune are o intrare exclusivă, care trebuie adusă la forma:
Permiteți accesul numai utilizatorilor locali:
Permiteți utilizatorilor să înregistreze fișiere și să permită serverului să stabilească automat permisiunile corecte (755 per folder și 644 per fișier):
Dacă doriți să setați un alt set de permisiuni: 775 și 664, atunci umask ar trebui să fie egal cu 002.
În mod implicit, serverul utilizează ora GMT, astfel încât fișierele să fie setate la ora din fusul dvs. de timp, utilizați opțiunea:
Includeți un jurnal al fișierelor descărcate și descărcate:
Să permitem serverului să stabilească conexiuni pentru transferul de date în portul 20 (modul activ):
Următoarele opțiuni specifică locul și formatul pentru stocarea jurnalelor:
Specificați timpul de expirare al sesiunii:
De asemenea, din motive de securitate, izolam utilizatorul în directorul său de acasă și rezolvăm imediat intrarea în rădăcină:
Korreknoy de a lucra cu date de tip text pot include suport ASCII, va permite transmiterea unui fișier text pentru sistemul de operare Windows UNIX (Linux) să înlocuiască în mod corect un șir de caractere CR + LF transfera LF pentru afișarea corectă a conținutului și de a efectua conversia inversă atunci când transferul înapoi.
Puteți activa numai o singură opțiune, pentru descărcare sau descărcare. Rețineți că atunci când transferați un fișier binar în modul ASCII, acesta din urmă poate fi corupt.
O opțiune interesantă:
Toate celelalte opțiuni sunt lăsate în mod implicit, deși puteți edita salutul serverului scriind tot ce vă place:
La sfârșitul fișierului de configurare, setăm setările pentru modul pasiv, se recomandă setarea explicită a porturilor, astfel încât să le puteți specifica la redirecționare, în cazul în care serverul este în spatele NAT sau în regulile firewall-ului:
Reporniți serverul (acest lucru trebuie efectuat de fiecare dată după efectuarea modificărilor în configurație):
și încercați să conectați orice client FTP utilizând datele de identificare ale utilizatorului existent. Trebuie să intrăm în agenda lui și să fim izolați în el.
În cazul unei erori legate de funcționarea incorectă a lui vsftpd și a sistemului seccomp securizat:
adăugați o opțiune nedocumentată la fișier:
Cu toate acestea, rețineți că FTP este un protocol nesigur, așa că pornirea 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 un mecanism de control integrat al utilizatorului. Adăugați opțiunea în fișierul de configurare:
și să creați un fișier din lista de utilizatori:
În mod implicit, vsftpd dezactivează accesul la server pentru utilizatorii specificați în această listă înainte de a introduce parola, adică. realizează că principiul este permis tuturor celor care nu sunt interzise. Dar va fi mult mai bine să implementăm o abordare diferită: este interzis oricui nu este permis. Ie permiteți numai utilizatorilor specificați. Pentru aceasta, adăugați opțiunea:
Acum, accesul la serverul FTP va avea doar utilizatori specifici explicit, acestea ar trebui să fie specificate în vsftpd.user_list unul câte unul pe linie, de exemplu:
Cu excepția cazului în care se specifică altfel, prin conectarea la FTP, utilizatorii sunt duși la directorul de acasă. Acest lucru nu este întotdeauna convenabil, de multe ori trebuie să le redirecționați către alt director. Dacă acesta este un dosar comun pentru toate, spune / var / ftp, atunci puteți specifica opțiunea:
Care va redirecționa toți utilizatorii la directorul specificat și îi va izola pe aceștia.
Aceasta este situația cea mai simplă, problemele reale sunt de obicei mai dificile, să spunem că trebuie să instalăm utilizatorul Ivanov ca director rădăcină /var/www/example1.com. și Petrov /var/www/example2.com. astfel încât fiecare dintre ei a lucrat cu dosarul propriu. În aceste scopuri, puteți utiliza o altă posibilitate vsftpd - setări de utilizator care suprascriu setările fișierului principal de configurare.
Pentru aceasta, adăugați opțiunea:
Apoi creați directorul în sine
Pentru a seta propriile setări ale utilizatorului în acest director, creați un fișier cu numele de utilizator și adăugați opțiunile necesare pentru acesta. Modificările sunt aplicate fără a reporni serverul FTP data viitoare când clientul se conectează.
Creați un fișier cu setările pentru Ivanova:
și faceți o opțiune:
Data viitoare când vă conectați, directorul rădăcină al utilizatorului se schimbă în directorul specificat. De asemenea, în acest fișier putem specifica orice opțiuni personale, de exemplu, un alt umask sau dreptul de a accesa fișierele. Cu toate acestea, nu putem folosi setările globale aici: opțiuni de conectare, logare, autentificare, ele vor fi pur și simplu ignorate.
Dacă trebuie să ascundeți proprietarii reali de fișiere și foldere, puteți utiliza opțiunea:
În acest caz, în loc de proprietarii și grupurile reale vor fi specificate ftp: ftp, poate fi util în cazul unui server public, sau prezența persoanelor neautorizate în lista de utilizatori pe care nu doriți să dezvăluie numele reale ale utilizatorilor de pe sistemul dumneavoastră.
După cum puteți vedea, am creat într-adevăr un server de lucru FTP în mai puțin de o jumătate de oră.