FTP

Kako konfigurirati FTP s TLS-om u Ubuntuu

Kako konfigurirati FTP s TLS-om u Ubuntuu
FTP (File Transfer Protocol) prvenstveno se koristi za prijenos datoteka između računala. FTP radi u arhitekturi klijent-poslužitelj, u kojem klijent traži datoteku s poslužitelja, a poslužitelj klijentu vraća potrebnu datoteku. Na klijentskom stroju aplikacija FTP klijenta koristi se za komunikaciju s poslužiteljem. Također je moguće pristupiti FTP poslužitelju u pregledniku. Prema zadanim postavkama, FTP komunicira preko nesigurnog kanala, ali moguće je konfigurirati FTP za prijenos podataka preko sigurnog kanala. U ovom vodiču naučit ćete kako konfigurirati FTP poslužitelj s TLS-om, a zatim koristiti FileZilla kao klijentsku aplikaciju za povezivanje s FTP poslužiteljem.

Instaliranje VSFTPD

VSFTPD (Very Secure FTP Daemon) je softverski program koji se koristi za konfiguriranje FTP-a na poslužitelju. U ovom vodiču VSFTPD će se koristiti za konfiguriranje FTP poslužitelja na stroju. Prije instaliranja VSFTPD, ažurirajte spremišta na poslužitelju izdavanjem sljedeće naredbe.

[zaštićena e-poštom]: ~ $ sudo apt-get update -y

Zatim instalirajte VSFTPD pomoću sljedeće naredbe.

[zaštićena e-poštom]: ~ $ sudo apt-get install vsftpd -y

Na kraju, provjerite instalaciju provjerom verzije vsftpd sljedećom naredbom.

[e-pošta zaštićena]: ~ $ vsftpd -v

Gornja naredba će izdati verziju vsftpd ako je instalacija uspješna.

FTP u aktivnom načinu

U aktivnom načinu rada FTP klijent započinje sesiju uspostavljanjem TCP kontrolne veze s bilo kojeg slučajnog porta na klijentskom stroju na priključak 21 poslužitelja. Zatim klijent počinje slušati na slučajnom priključku X za podatkovnu vezu i obavještava poslužitelj putem TCP Control veze da klijent čeka podatkovnu vezu na portu X. Nakon toga, poslužitelj uspostavlja podatkovnu vezu od svog porta 20 do porta X na klijentskom stroju.

Problem može nastati tamo gdje je klijent iza vatrozida, a ulaz X je blokiran. U ovom slučaju, poslužitelj nije u mogućnosti uspostaviti podatkovnu vezu s klijentom. Da bi se izbjegao ovaj problem, FTP poslužitelj uglavnom se koristi u pasivnom načinu rada, o čemu ćemo razgovarati kasnije u ovom članku. Prema zadanim postavkama VSFTPD koristi pasivni način, pa ćemo ga morati promijeniti u aktivni način.

Prvo otvorite konfiguracijsku datoteku VSFTPD.

[e-pošta zaštićena]: ~ $ sudo nano / etc / vsftpd.konf

Dodajte sljedeći redak na kraj datoteke.

pasv_enable = NE

Također, budite sigurni da je opcija 'connect_from_port_20' postavljena na 'YES.'Ova opcija osigurava uspostavu podatkovne veze na priključku 20 poslužitelja.

Zatim stvorite direktorij koji će FTP poslužitelj koristiti za pohranu datoteka. Za ovaj ćemo vodič konfigurirati '/ home / ubuntu / ftp /' kao korijensku stazu za FTP poslužitelj.

[e-pošta zaštićena]: ~ $ sudo mkdir / home / ubuntu / ftp

Sada navedite ovaj direktorij u konfiguracijskoj datoteci promjenom opcije 'local_root'. Sljedeći će parametar konfigurirati korijensku stazu poslužitelja.

local_root = / home / ubuntu / ftp

Mora biti omogućena opcija 'write_enable' da bi korisnici mogli pisati na FTP poslužitelj.

Svaki put kad promijenite konfiguracijsku datoteku, uvijek ponovo pokrenite poslužitelj.

[e-pošta zaštićena]: ~ $ sudo systemctl restart vsftpd

Postavljanje lozinke za korisnika

FTP klijent povezuje se s poslužiteljem pomoću korisničkog imena i lozinke. Postavite lozinku za svog korisnika na uređaju pomoću sljedeće naredbe.

[e-pošta zaštićena]: ~ $ sudo passwd ubuntu

Gornja naredba tražit će lozinku za 'ubuntu' korisnika.

Konfiguriranje vatrozida za aktivni način

Ako se FTP koristi u aktivnom načinu rada, FTP poslužitelj koristit će dva porta za komunikaciju s klijentom, porta 21 i 22. Port 21 koristi se za prosljeđivanje naredbi klijentu, a port 20 koristi se za prijenos podataka u bilo koji slučajni port klijenta. Upotrijebit ćemo ufw za konfiguriranje vatrozida na poslužitelju. Instalirajte ufw pomoću sljedeće naredbe.

[zaštićena e-poštom]: ~ $ sudo apt-get install ufw

Sada ćemo na strani poslužitelja otvoriti priključke 20, 21 i 22 (za SSH vezu).

[zaštićen e-poštom]: ~ $ sudo ufw dopustiti s bilo kojeg na bilo koji port proto tcp

Omogućite i provjerite status ufw pomoću sljedećih naredbi.

[zaštićen e-poštom]: ~ $ sudo ufw enable
[e-pošta zaštićena]: ~ $ sudo ufw status

BILJEŠKA: ako konfigurirate FTP poslužitelj u oblaku, morat ćete dopustiti i portove 20, 21 i 22 u sigurnosnoj grupi.

UPOZORENJE: Uvijek omogućite priključak 22, zajedno s potrebnim priključcima, prije nego što omogućite ufw na udaljenom sustavu. Prema zadanim postavkama, UFW blokira promet s porta 22, tako da nećete moći pristupiti udaljenom poslužitelju pomoću SSH-a ako omogućite ufw bez dopuštanja prometa s porta 22.

Instaliranje FTP klijenta

Sada je naš poslužitelj konfiguriran u aktivnom načinu i možemo mu pristupiti s klijentske strane. Za klijentsku aplikaciju koristit ćemo FileZilla, ftp klijentsku aplikaciju. Instalirajte FileZilla pomoću sljedeće naredbe.

[zaštićena e-poštom]: ~ $ sudo apt-get install filezilla -y

Otvorite FTP klijentsku aplikaciju i unesite javnu IP adresu i ostale vjerodajnice FTP poslužitelja.

Kada kliknete na 'Quickconnect', spojit ćete se na FTP poslužitelj i automatski ćete biti preusmjereni u direktorij naveden u opciji 'local_root' u konfiguracijskoj datoteci '/ home / ubuntu / ftp'.

Problemi u aktivnom načinu

Korištenje FTP-a u aktivnom načinu stvara probleme kada je klijent iza vatrozida. Nakon unosa početnih kontrolnih naredbi, kada poslužitelj kreira podatkovnu vezu s klijentom na slučajnom priključku, priključak može blokirati vatrozid na klijentu, što uzrokuje neuspjeh prijenosa podataka. FTP se može koristiti u pasivnom načinu za rješavanje ovih problema s vatrozidom.

FTP u pasivnom načinu

U pasivnom načinu rada, klijent stvara kontrolnu vezu s poslužiteljem na priključku 21 poslužitelja. Klijent zatim šalje posebnu naredbu 'PASV' da obavijesti poslužitelj da će podatkovnu vezu klijent uspostaviti umjesto poslužitelja. Kao odgovor, klijent dobiva IP poslužitelja i slučajni broj porta (ovaj broj porta bit će konfiguriran na poslužitelju). Klijent koristi ovaj IP i broj porta za stvaranje podatkovne veze s poslužiteljem. U pasivnom načinu rada klijent uspostavlja i podatkovne i kontrolne veze, tako da vatrozid ne remeti komunikaciju između klijenta i poslužitelja.

Otvorite FTP datoteku za konfiguraciju u svom omiljenom uređivaču.

[zaštićena e-poštom]: ~ $ sudo nano / etc / vsftpd.konf

Postavite opciju 'pasv_enable' na 'DA' u datoteci kako bi poslužitelj mogao komunicirati s klijentom u pasivnom načinu. Također, postavite opciju 'local_root' da odredite korijenski direktorij poslužitelja i postavite opciju 'write_enable' na 'YES' kako biste korisnicima omogućili prijenos datoteka na poslužitelj.

Kao što je prethodno rečeno, podatkovnu vezu uspostavlja klijent, a poslužitelj klijentu šalje svoju javnu IP adresu i nasumični port za stvaranje podatkovne veze. Ovaj slučajni priključak na poslužitelju može se odrediti iz niza priključaka u konfiguracijskoj datoteci.

Podatkovna veza između poslužitelja i klijenta uspostavit će se na priključku između 1024 i 1048. Ponovno pokrenite FTP poslužitelj nakon promjene konfiguracijske datoteke.

[e-pošta zaštićena]: ~ $ sudo systemctl restart vsftpd

Konfiguriranje vatrozida u pasivnom načinu

Ako koristimo FTP u pasivnom načinu rada, podatkovna veza uspostavit će se preko bilo kojeg porta od 1024 do 1048, pa je potrebno omogućiti sve te portove na FTP poslužitelju.

[zaštićen e-poštom]: ~ $ sudo ufw dopustiti s bilo kojeg na bilo koji port proto tcp

Nakon što dopustite sve priključke na vatrozidu, aktivirajte ufw izvođenjem sljedeće naredbe.

[zaštićen e-poštom]: ~ $ sudo ufw enable

Uvijek dopustite priključke na poslužitelju prije nego što omogućite vatrozid; u suprotnom nećete moći pristupiti svom poslužitelju putem SSH-a kao ufw, koji prema zadanim postavkama blokira port 22.

Testiranje veze

Sada smo postavili FTP poslužitelj u pasivnom načinu i možemo provjeriti ftp vezu s klijentskom aplikacijom. Da biste to učinili, otvorite FileZilla u svom sustavu.

Nakon unosa hosta, korisničkog imena, lozinke i porta, sada se možete povezati sa svojim poslužiteljem. Sada kada ste povezani s FTP poslužiteljem koji radi u pasivnom načinu, možete prenijeti datoteke na poslužitelj.

Konfiguriranje SSL certifikata s FTP poslužiteljem

Prema zadanim postavkama, FTP poslužitelj uspostavlja vezu između klijenta i poslužitelja preko nesigurnog kanala. Ova vrsta komunikacije ne smije se koristiti ako želite dijeliti osjetljive podatke između klijenta i poslužitelja. Za komunikaciju preko sigurnog kanala potrebno je koristiti SSL certifikate.

Generiranje SSL certifikata

Koristit ćemo SSL certifikate za postavljanje sigurne komunikacije između klijenta i poslužitelja. Te ćemo certifikate generirati pomoću openssl. Sljedeća naredba generirat će SSL certifikate za vaš poslužitelj.

[zaštićena e-poštom]: ~ $ sudo openssl req -x509 -nodes -day 365 -newkey rsa: 2048 -keyout / etc / ssl / private / vsftpd.pem -out / etc / ssl / private / vsftpd.pem

Kada pokrenete gornju naredbu, postavit će vam se nekoliko pitanja. Nakon što odgovorite na ova pitanja, generirat će se certifikati. Potvrde možete potražiti u terminalu.

[e-pošta zaštićena]: ~ $ sudo ls / etc / ssl / private /

Korištenje certifikata u konfiguracijskoj datoteci

Sada su naši certifikati spremni za upotrebu. Konfigurirat ćemo 'vsftpd.conf 'za upotrebu SSL certifikata za komunikaciju. Otvorite konfiguracijsku datoteku sljedećom naredbom.

[e-pošta zaštićena]: ~ $ sudo nano / etc / vsftpd.konf

Dodajte sljedeće retke na kraj datoteka. Te će promjene osigurati da FTP poslužitelj koristi novo generirane SSL certifikate za sigurnu komunikaciju s klijentom.

ssl_enable = DA
force_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

Ponovo pokrenite FTP poslužitelj da biste primijenili ove promjene.

[e-pošta zaštićena]: ~ $ sudo systemctl restart vsftpd

Nakon ponovnog pokretanja poslužitelja, pokušajte se povezati sa svojim poslužiteljem pomoću klijentske aplikacije FileZilla. Ovaj put će vas klijentska aplikacija pitati trebate li vjerovati ovim certifikatima.

Ako imate certifikate od pouzdanog tijela za izdavanje certifikata, ovo se upozorenje ne bi trebalo pojaviti. Naše smo certifikate generirali koristeći openssl, koji nije pouzdano tijelo za izdavanje certifikata, zbog čega je u našem slučaju zatražio provjeru autentičnosti certifikata. Sada možemo komunicirati između klijenta i poslužitelja preko sigurnog kanala.

Anonimna konfiguracija

Također možete omogućiti anonimnu prijavu na svoj FTP poslužitelj. Ako je ova konfiguracija omogućena, svaki se korisnik može prijaviti na FTP poslužitelj s bilo kojim korisničkim imenom i lozinkom. Sljedeći parametri u konfiguracijskoj datoteci omogućit će FTP poslužitelju anonimni pristup.

Gornja konfiguracija postavlja root put anonimnih korisnika na '/ home / ubuntu / ftp / anon' i neće tražiti lozinku kad se anonimni korisnik prijavi.

BILJEŠKA: Provjerite postoji li staza '/ home / ubuntu / ftp / anon' na FTP poslužitelju.

Sada ponovno pokrenite FTP poslužitelj.

[e-pošta zaštićena]: ~ $ sudo systemctl restart vsftpd

Nakon ponovnog pokretanja poslužitelja, pokušat ćemo se povezati s poslužiteljem putem preglednika Google Chrome. Idite na sljedeći URL.

ftp: // 3.8.12.52

Gornji URL odvest će vas u korijenski direktorij FTP poslužitelja, kako je navedeno u konfiguracijskoj datoteci. S onemogućenom anonimnom prijavom, kada se pokušate povezati s FTP poslužiteljem pomoću preglednika, prvo ćete zatražiti provjeru autentičnosti, a zatim ćete biti preusmjereni u korijenski direktorij poslužitelja.

Konfigurirajte lokalni pristup

Također možemo dopustiti ili blokirati lokalni pristup FTP poslužitelju promjenom konfiguracijske datoteke. Trenutno našem FTP poslužitelju možemo pristupiti lokalno bez upotrebe aplikacije FTP klijenta, ali možemo blokirati taj pristup. Da bismo to učinili, moramo izmijeniti parametar 'local_enable'.

Prvo ponovno pokrenite FTP poslužitelj.

[zaštićena e-poštom]: ~ $ sudo systemctl restart vsftpd

Nakon ponovnog pokretanja poslužitelja, pokušajte lokalno pristupiti FTP poslužitelju pomoću sučelja naredbenog retka. Prijavite se na udaljeni poslužitelj pomoću SSH-a.

[e-pošta zaštićena]: ~ $ ssh ubuntu @ 3.8.12.52 -i

Sada izdajte sljedeću naredbu za lokalnu prijavu na FTP poslužitelj pomoću sučelja naredbenog retka.

[e-pošta zaštićena]: ~ $ ftp localhost

Kada pokrenete gornju naredbu, izbacit će pogrešku 500.

Zaključak

Protokol za prijenos datoteka koristi se već dugi niz godina za prijenos datoteka i dokumenata putem Interneta. VSFTPD je jedan od paketa koji se koristi kao FTP poslužitelj na vašem računalu. VSFTPD sadrži razne konfiguracije koje možete koristiti za prilagodbu FTP poslužitelja. Ovaj vam je vodič pokazao kako konfigurirati FTP poslužitelj s TLS-om za poboljšanu sigurnost. Da biste saznali više o FTP konfiguracijama, posjetite sljedeću vezu.

http: // vsftpd.zvijeri.org / vsftpd_conf.html

Kako promijeniti pokazivač miša i veličinu, boju i shemu pokazivača na sustavu Windows 10
Pokazivač i pokazivač miša u sustavu Windows 10 vrlo su važni aspekti operativnog sustava. To se može reći i za druge operativne sustave, tako da u is...
Besplatni i otvoreni kodni pokretački programi za razvoj Linux igara
Ovaj će članak pokriti popis besplatnih i open source pokretačkih igara koje se mogu koristiti za razvoj 2D i 3D igara na Linuxu. Brojni su takvi moto...
Vodič za Shadow of the Tomb Raider za Linux
Shadow of the Tomb Raider dvanaesti je dodatak seriji Tomb Raider - franšizi u akcijsko-avanturističkoj igri koju je stvorio Eidos Montreal. I kritiča...