Namestitev VSFTPD
VSFTPD (Very Secure FTP Daemon) je program, ki se uporablja za konfiguriranje FTP na strežniku. V tej vadnici bo VSFTPD uporabljen za konfiguracijo strežnika FTP na napravi. Pred namestitvijo VSFTPD posodobite repozitorije v strežniku tako, da izdate naslednji ukaz.
[e-pošta zaščitena]: ~ $ sudo apt-get update -yNato z naslednjim ukazom namestite VSFTPD.
[zaščiteno po e-pošti]: ~ $ sudo apt-get install vsftpd -yNa koncu preverite namestitev s preverjanjem različice vsftpd z naslednjim ukazom.
[e-pošta zaščitena]: ~ $ vsftpd -v
Zgornji ukaz bo izdal različico vsftpd, če bo namestitev uspešna.
FTP v aktivnem načinu
V aktivnem načinu odjemalec FTP začne sejo tako, da vzpostavi nadzorno povezavo TCP iz poljubnih naključnih vrat na odjemalskem računalniku do vrat 21 strežnika. Nato odjemalec začne poslušati naključna vrata X za podatkovno povezavo in prek povezave TCP Control obvesti strežnik, da odjemalec čaka na podatkovno povezavo na vratih X. Po tem strežnik vzpostavi podatkovno povezavo od vrat 20 do vrat X na odjemalskem računalniku.
Težava lahko nastane, če je odjemalec za požarnim zidom in je vrata X blokirana. V tem primeru strežnik ne more vzpostaviti podatkovne povezave s stranko. Da bi se izognili tej težavi, se strežnik FTP večinoma uporablja v pasivnem načinu, o čemer bomo razpravljali kasneje v tem članku. VSFTPD privzeto uporablja pasivni način, zato ga bomo morali spremeniti v aktivni način.
Najprej odprite konfiguracijsko datoteko VSFTPD.
[e-pošta zaščitena]: ~ $ sudo nano / etc / vsftpd.confNa konec datoteke dodajte naslednjo vrstico.
pasv_enable = NE
Prepričajte se tudi, da je možnost 'connect_from_port_20' nastavljena na 'YES.'Ta možnost zagotavlja, da je podatkovna povezava vzpostavljena na vratih 20 strežnika.
Nato ustvarite imenik, ki ga bo strežnik FTP uporabljal za shranjevanje datotek. V tej vadnici bomo kot korensko pot strežnika FTP nastavili '/ home / ubuntu / ftp /'.
[e-pošta zaščitena]: ~ $ sudo mkdir / home / ubuntu / ftpZdaj določite ta imenik v konfiguracijski datoteki tako, da spremenite možnost 'local_root'. Naslednji parameter bo konfiguriral korensko pot strežnika.
local_root = / home / ubuntu / ftp
Morala je biti omogočena možnost 'write_enable', da lahko uporabniki pišejo na strežnik FTP.
Vsakič, ko spremenite konfiguracijsko datoteko, vedno znova zaženite strežnik.
[e-pošta zaščitena]: ~ $ sudo systemctl znova zaženite vsftpdNastavitev gesla za uporabnika
Odjemalec FTP se s strežnikom poveže z uporabniškim imenom in geslom. Z naslednjim ukazom nastavite geslo za svojega uporabnika na napravi.
[e-pošta zaščitena]: ~ $ sudo passwd ubuntuZgornji ukaz bo zahteval geslo za uporabnika 'ubuntu'.
Konfiguriranje požarnega zidu za aktivni način
Če se FTP uporablja v aktivnem načinu, bo strežnik FTP za komunikacijo z odjemalcem uporabil dve vrati, vrata 21 in 22. Vrata 21 se uporabljajo za posredovanje ukazov odjemalcu, vrata 20 pa za prenos podatkov v poljubna naključna vrata odjemalca. Za nastavitev požarnega zidu na strežniku bomo uporabili ufw. Namestite ufw z naslednjim ukazom.
[zaščitena po e-pošti]: ~ $ sudo apt-get install ufwZdaj bomo na strani strežnika odprli vrata 20, 21 in 22 (za povezavo SSH).
[e-pošta zaščitena]: ~ $ sudo ufw dovoli od katerega koli do katerega koli pristanišča proto tcp
Omogočite in preverite stanje ufw z naslednjimi ukazi.
[e-pošta zaščitena]: ~ $ sudo ufw enable[e-pošta zaščitena]: ~ $ sudo ufw status
OPOMBA: če konfigurirate strežnik FTP v oblaku, boste morali dovoliti tudi vrata 20, 21 in 22 v varnostni skupini.
OPOZORILO: Preden omogočite ufw na oddaljenem sistemu, vedno omogočite vrata 22 skupaj z zahtevanimi vrati. UFW privzeto blokira promet z vrat 22, zato do oddaljenega strežnika ne boste mogli dostopati s pomočjo SSH, če omogočite ufw, ne da bi dovolili promet z vrat 22.
Namestitev odjemalca FTP
Zdaj je naš strežnik konfiguriran v aktivnem načinu in do njega lahko dostopamo s strani odjemalca. Za odjemalsko aplikacijo bomo uporabili FileZilla, odjemalsko aplikacijo ftp. Namestite FileZilla z naslednjim ukazom.
[zaščiteno po e-pošti]: ~ $ sudo apt-get install filezilla -yOdprite odjemalsko aplikacijo FTP in vnesite javni naslov IP in druge poverilnice strežnika FTP.
Ko kliknete »Hitra povezava«, se boste povezali s strežnikom FTP in samodejno preusmerjeni v imenik, naveden v možnosti »local_root« v konfiguracijski datoteki »/ home / ubuntu / ftp«.
Težave v aktivnem načinu
Uporaba FTP v aktivnem načinu povzroča težave, ko je odjemalec za požarnim zidom. Ko strežnik ustvari podatkovno povezavo z odjemalcem na naključnih vratih, lahko po vnosu začetnih nadzornih ukazov požarni zid na odjemalcu blokira vrata in povzroči prenos podatkov. Težave s požarnim zidom lahko v pasivnem načinu uporabite FTP.
FTP v pasivnem načinu
V pasivnem načinu odjemalec ustvari nadzorno povezavo s strežnikom na vratih 21 strežnika. Nato odjemalec pošlje poseben ukaz 'PASV', da obvesti strežnik, da bo podatkovno povezavo vzpostavil odjemalec namesto strežnika. V odgovor stranka prejme IP strežnika in naključno številko vrat (ta številka vrat bo nastavljena na strežniku). Odjemalec s tem IP-jem in številko vrat ustvari podatkovno povezavo s strežnikom. V pasivnem načinu odjemalec vzpostavi tako podatkovne kot nadzorne povezave, tako da požarni zid ne moti komunikacije med odjemalcem in strežnikom.
Odprite konfiguracijsko datoteko FTP v svojem najljubšem urejevalniku.
[e-pošta zaščitena]: ~ $ sudo nano / etc / vsftpd.confV datoteki nastavite možnost 'pasv_enable' na 'DA', tako da lahko strežnik komunicira s stranko v pasivnem načinu. Nastavite tudi možnost 'local_root', da določite korenski imenik strežnika, in možnost 'write_enable' nastavite na 'YES', da lahko uporabniki naložijo datoteke na strežnik.
Kot smo že omenili, podatkovno povezavo vzpostavi odjemalec, strežnik pa pošlje svoj javni IP in naključna vrata odjemalcu, da ustvari podatkovno povezavo. Ta naključna vrata na strežniku lahko določite med različnimi vrati v konfiguracijski datoteki.
Podatkovna povezava med strežnikom in odjemalcem bo vzpostavljena na vratih med 1024 in 1048. Po spremembi konfiguracijske datoteke znova zaženite strežnik FTP.
[e-pošta zaščitena]: ~ $ sudo systemctl znova zaženite vsftpdKonfiguriranje požarnega zidu v pasivnem načinu
Če FTP uporabljamo v pasivnem načinu, se bo podatkovna povezava vzpostavila na vseh vratih od 1024 do 1048, zato je treba omogočiti vsa ta vrata na strežniku FTP.
[e-pošta zaščitena]: ~ $ sudo ufw dovoli od katerega koli do katerega koli pristanišča proto tcp
Ko dovolite vsa vrata na požarnem zidu, aktivirajte ufw tako, da zaženete naslednji ukaz.
[e-pošta zaščitena]: ~ $ sudo ufw enablePreden omogočite požarni zid, vedno dovolite vrata na strežniku; v nasprotnem primeru do strežnika ne boste mogli dostopati prek SSH kot ufw, ki privzeto blokira vrata 22.
Testiranje povezave
Zdaj smo strežnik FTP nastavili v pasivni način in lahko preverimo povezavo ftp z odjemalsko aplikacijo. V tem sistemu odprite FileZilla.
Po vnosu gostitelja, uporabniškega imena, gesla in vrat se lahko zdaj povežete s strežnikom. Zdaj, ko ste povezani s strežnikom FTP, ki deluje v pasivnem načinu, lahko datoteke naložite na strežnik.
Konfiguriranje potrdil SSL s strežnikom FTP
Strežnik FTP privzeto vzpostavi povezavo med odjemalcem in strežnikom prek nezaščitenega kanala. Te vrste komunikacije ne smete uporabljati, če želite med odjemalcem in strežnikom deliti občutljive podatke. Za komunikacijo prek varnega kanala je treba uporabiti potrdila SSL.
Ustvarjanje potrdil SSL
Potrdila SSL bomo uporabili za vzpostavitev varne komunikacije med odjemalcem in strežnikom. Ta potrdila bomo ustvarili z uporabo openssl. Naslednji ukaz bo ustvaril potrdila SSL za vaš strežnik.
[zaščiteno po e-pošti]: ~ $ sudo openssl req -x509 -nodes -day 365 -newkey rsa: 2048 -keyout / etc / ssl / private / vsftpd.pem -out / etc / ssl / private / vsftpd.pemKo zaženete zgornji ukaz, boste vprašani. Ko odgovorite na ta vprašanja, bodo potrdila ustvarjena. Potrdila lahko preverite v terminalu.
[e-pošta zaščitena]: ~ $ sudo ls / etc / ssl / private /
Uporaba potrdil v konfiguracijski datoteki
Zdaj so naša potrdila pripravljena za uporabo. Konfigurirali bomo 'vsftpd.conf 'za uporabo potrdil SSL za komunikacijo. Odprite konfiguracijsko datoteko z naslednjim ukazom.
[e-pošta zaščitena]: ~ $ sudo nano / etc / vsftpd.confNa konec datotek dodajte naslednje vrstice. Te spremembe bodo zagotovile, da strežnik FTP uporablja novo ustvarjena potrdila SSL za varno komunikacijo s stranko.
ssl_enable = DAforce_local_data_ssl = NE
force_local_logins_ssl = NE
ssl_tlsv1 = DA
ssl_sslv2 = NE
ssl_sslv3 = NE
rsa_cert_file = / etc / ssl / private / vsftpd.pem
rsa_private_key_file = / etc / ssl / private / vsftpd.pem
Znova zaženite strežnik FTP, da uveljavite te spremembe.
[e-pošta zaščitena]: ~ $ sudo systemctl znova zaženite vsftpdPo ponovnem zagonu strežnika se poskusite povezati s strežnikom z odjemalsko aplikacijo FileZilla. Tokrat vas bo odjemalska aplikacija vprašala, ali zaupati tem potrdilom.
Če imate potrdila zaupanja vrednega overitelja, se to opozorilo ne bi smelo pojaviti. Naša potrdila smo ustvarili z uporabo openssl, ki ni zaupanja vreden overitelj potrdil, zato je v našem primeru zahteval overjanje potrdil. Zdaj lahko komuniciramo med odjemalcem in strežnikom po varnem kanalu.
Anonimna konfiguracija
Na strežniku FTP lahko omogočite tudi anonimno prijavo. Če je ta konfiguracija omogočena, se lahko vsak uporabnik prijavi v strežnik FTP s katerim koli uporabniškim imenom in geslom. Naslednji parametri v konfiguracijski datoteki bodo omogočili anonimni dostop do strežnika FTP.
Zgornja konfiguracija nastavi anonimnim uporabnikom korensko pot »/ home / ubuntu / ftp / anon« in ne bo zahtevala gesla, ko se anonimni uporabnik prijavi.
OPOMBA: Prepričajte se, da pot '/ home / ubuntu / ftp / anon' obstaja na strežniku FTP.
Zdaj znova zaženite strežnik FTP.
[e-pošta zaščitena]: ~ $ sudo systemctl znova zaženite vsftpdPo ponovnem zagonu strežnika se bomo poskušali povezati s strežnikom prek brskalnika Google Chrome. Pojdite na naslednji URL.
ftp: // 3.8.12.52Zgornji URL vas bo pripeljal do korenskega imenika strežnika FTP, kot je določeno v konfiguracijski datoteki. Ko je anonimna prijava onemogočena, boste med poskusom povezave s strežnikom FTP s pomočjo brskalnika najprej pozvani k preverjanju pristnosti, nato pa boste preusmerjeni v korenski imenik strežnika.
Konfigurirajte lokalni dostop
Lokalni dostop do strežnika FTP lahko omogočimo ali blokiramo tudi s spreminjanjem konfiguracijske datoteke. Trenutno lahko do strežnika FTP dostopamo lokalno, ne da bi uporabljali odjemalsko aplikacijo FTP, vendar lahko ta dostop blokiramo. Če želite to narediti, moramo spremeniti parameter 'local_enable'.
Najprej znova zaženite strežnik FTP.
[e-pošta zaščitena]: ~ $ sudo systemctl znova zaženite vsftpdPo ponovnem zagonu strežnika poskusite lokalno dostopati do strežnika FTP z vmesnikom ukazne vrstice. Prijavite se v oddaljeni strežnik s pomočjo SSH.
[zaščitena po e-pošti]: ~ $ ssh ubuntu @ 3.8.12.52 -iZdaj izdajte naslednji ukaz za lokalno prijavo v strežnik FTP z vmesnikom ukazne vrstice.
[e-pošta zaščitena]: ~ $ ftp localhostKo zaženete zgornji ukaz, bo prišlo do napake 500.
Zaključek
Protokol za prenos datotek se že vrsto let uporablja za prenos datotek in dokumentov prek interneta. VSFTPD je eden od paketov, ki se uporablja kot strežnik FTP na vašem računalniku. VSFTPD vsebuje različne konfiguracije, s katerimi lahko prilagodite strežnik FTP. Ta vadnica vam je pokazala, kako za večjo varnost konfigurirate strežnik FTP s TLS. Če želite izvedeti več o konfiguracijah FTP, obiščite naslednjo povezavo.
http: // vsftpd.zveri.org / vsftpd_conf.html