Linux

Kako nastaviti strežnik FTP z VSFTPD na Ubuntu 20.04

Kako nastaviti strežnik FTP z VSFTPD na Ubuntu 20.04

Ta članek opisuje, kako namestiti in konfigurirati strežnik FTP v Ubuntu 20.04, ki ga uporabljate za skupno rabo datotek med napravami.

FTP (File Transfer Protocol) je standardni omrežni protokol, ki se uporablja za prenos datotek v oddaljeno omrežje in iz njega. Za Linux je na voljo več odprtokodnih FTP strežnikov. Najbolj znani in najpogosteje uporabljeni so PureFTPd, ProFTPD in vsftpd . Namestili bomo vsftpd (Very Secure Ftp Daemon), stabilen, varen in hiter FTP strežnik. Pokazali vam bomo tudi, kako konfigurirati strežnik tako, da uporabnike omeji na njihov domači imenik in šifrira celoten prenos s SSL / TLS.

Čeprav je FTP zelo priljubljen protokol, za varnejši in hitrejši prenos podatkov uporabite SCP ali SFTP .

Namestitev vsftpd na Ubuntu 20.04 #

Paket vsftpd je na voljo v skladiščih Ubuntu. Če ga želite namestiti, izvedite naslednje ukaze:

posodobitev sudo aptsudo apt namestitev vsftpd

Storitev ftp se bo samodejno zagnala, ko bo postopek namestitve končan. Če ga želite preveriti, natisnite stanje storitve:

sudo systemctl status vsftpd

Rezultat mora pokazati, da je storitev vsftpd aktivna in deluje:

● vsftpd.storitev - vsftpd FTP strežnik Naloženo: naloženo (/ lib / systemd / system / vsftpd.storitev; omogočeno; prednastavitev prodajalca: omogočeno) Aktivno: aktivno (v teku) od torka 2021-03-02 15:17:22 UTC; Pred 3 leti… 

Konfiguriranje vsftpd #

Konfiguracija strežnika vsftpd je shranjena v / etc / vsftpd.conf mapa.

Večina nastavitev strežnika je dobro dokumentirana znotraj datoteke. Za vse razpoložljive možnosti obiščite stran z dokumentacijo vsftpd.

V naslednjih razdelkih bomo preučili nekaj pomembnih nastavitev, potrebnih za konfiguriranje varne namestitve vsftpd.

Začnite z odpiranjem konfiguracijske datoteke vsftpd:

sudo nano / etc / vsftpd.conf

1. FTP dostop št

Dostop do strežnika FTP bomo dovolili samo lokalnim uporabnikom. Poiščite anonimno_ omogočeno in local_enable direktiv in preverite, ali se vaša konfiguracija ujema s spodnjimi vrsticami:

/ etc / vsftpd.conf
anonymous_enable = NO local_enable = DA 

2. Omogočanje prenosov #

Poiščite in razkomentirajte write_enable direktivo, ki omogoča spremembe datotečnega sistema, na primer nalaganje in odstranjevanje datotek:

/ etc / vsftpd.conf
write_enable = DA 

3. Chroot zapor #

Če želite lokalnim uporabnikom FTP preprečiti dostop do datotek zunaj domačih imenikov, prekomentirajte lne, začenši z chroot_local_user:

/ etc / vsftpd.conf
chroot_local_user = DA 

Če je omogočen chroot, vsftpd privzeto iz varnostnih razlogov zavrne nalaganje datotek, če je v imenik, v katerega so uporabniki zaklenjeni, mogoče pisati.

Uporabite eno od spodnjih rešitev, da dovolite nalaganje, ko je omogočen chroot:

4. Pasivne povezave FTP #

Privzeto vsftpd uporablja aktivni način. Če želite uporabiti pasivni način, nastavite najmanjši in največji obseg vrat:

/ etc / vsftpd.conf
pasv_min_port = 30000 pasv_max_port = 31000 

Za pasivne povezave FTP lahko uporabite katera koli vrata. Ko je pasivni način omogočen, odjemalec FTP odpre povezavo s strežnikom na naključnih vratih v obsegu, ki ste ga izbrali.

5. Omejitev uporabniške prijave št

Vsftpd lahko konfigurirate tako, da se prijavi samo določenim uporabnikom. Če želite to narediti, dodajte naslednje vrstice na konec datoteke:

/ etc / vsftpd.conf
userlist_enable = DA userlist_file = / etc / vsftpd.user_list userlist_deny = NE 

Ko je ta možnost omogočena, morate izrecno navesti, kateri uporabniki se lahko prijavijo, tako da v / etc / vsftpd.user_list datoteka (en uporabnik na vrstico).

6. Zaščita prenosov s SSL / TLS #

Če želite šifrirati prenose FTP s SSL / TLS, boste morali imeti potrdilo SSL in konfigurirati strežnik FTP, da ga bo uporabljal.

Uporabite lahko obstoječe potrdilo SSL, ki ga je podpisal zaupanja vreden overitelj potrdil, ali ustvarite samopodpisano potrdilo.

Če imate domeno ali poddomeno, ki kaže na naslov IP strežnika FTP, lahko hitro ustvarite brezplačno potrdilo Let's Encrypt SSL.

Ustvarili bomo 2048-bitni zasebni ključ in samopodpisano potrdilo SSL, ki bo veljalo deset let:

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

Zasebni ključ in potrdilo se shranita v isti datoteki.

Ko je potrdilo SSL ustvarjeno, odprite konfiguracijsko datoteko vsftpd:

sudo nano / etc / vsftpd.conf

Poišči rsa_cert_file in rsa_private_key_file direktive, spremenite njihove vrednosti v pam pot datoteke in nastavite ssl_enable direktivo do DA:

/ etc / vsftpd.conf
rsa_cert_file = / etc / ssl / private / vsftpd.pem rsa_private_key_file = / etc / ssl / private / vsftpd.pem ssl_enable = DA 

Če ni določeno drugače, bo strežnik FTP za varne povezave uporabljal samo TLS.

Znova zaženite storitev vsftpd #

Ko končate z urejanjem, mora biti konfiguracijska datoteka vsftpd (brez komentarjev) videti nekako takole:

/ etc / vsftpd.conf
poslušaj = NE poslušaj_ipv6 = DA anonimno_enable = NE local_enable = DA write_enable = DA dirmessage_enable = DA use_localtime = DA xferlog_enable = DA connect_from_port_20 = DA chroot_local_user = DA varno_hroot_dir = / var / ime / vs_ft / vsft pam / var / name / vs_ft / vsft zasebno / vsftpd.pem rsa_private_key_file = / etc / ssl / private / vsftpd.pem ssl_enable = DA user_sub_token = $ USER local_root = / home / $ USER / ftp pasv_min_port = 30000 pasv_max_port = 31000 userlist_enable = DA userlist_file = / etc / vsftpd.user_list userlist_deny = NE 

Shranite datoteko in znova zaženite storitev vsftpd, da bodo spremembe začele veljati:

sudo systemctl znova zaženi vsftpd

Odpiranje požarnega zidu #

Če uporabljate požarni zid UFW, boste morali dovoliti promet FTP.

Odpiranje vrat 21 (Vrata ukaza FTP), vrata 20 (Podatkovna vrata FTP) in 30000-31000 (Obseg pasivnih vrat), zaženite naslednje ukaze:

sudo ufw dovoli 20: 21 / tcpsudo ufw dovoli 30000: 31000 / tcp

Prepričajte se, da je vrata zaprta 22 je odprta:

sudo ufw dovoli OpenSSH

Znova naložite pravila UFW tako, da onemogočite in znova omogočite UFW:

sudo ufw onemogočisudo ufw omogoči

Če želite preveriti zagon sprememb:

status sudo ufw
Stanje: aktivno Za ukrepanje od - ------ ---- 20: 21 / tcp DOVOLI kamor koli 30000: 31000 / tcp DOVOLI kamor koli OpenSSH DOZVOLI kjerkoli 20: 21 / tcp (v6) DOVOLI kjer koli (v6) 30000: 31000 / tcp (v6) DOVOLJITE kjer koli (v6) OpenSSH (v6) DOVOLITE kjer koli (v6) 

Ustvarjanje uporabniškega števila FTP

Za preizkus strežnika FTP bomo ustvarili novega uporabnika.

  1. Ustvari novega uporabnika z imenom newftpuser:

    sudo adduser newftpuser
  2. Uporabnika dodajte na seznam dovoljenih uporabnikov FTP:

    echo "newftpuser" | sudo tee -a / etc / vsftpd.user_list
  3. Ustvarite drevo imenikov FTP in nastavite pravilna dovoljenja:

    sudo mkdir -p / home / newftpuser / ftp / uploadsudo chmod 550 / home / newftpuser / ftpsudo chmod 750 / home / newftpuser / ftp / uploadsudo chown -R newftpuser: / home / newftpuser / ftp

    Kot smo že omenili v prejšnjem razdelku, bo lahko uporabnik svoje datoteke naložil v ftp / upload imenik.

V tem trenutku je vaš strežnik FTP popolnoma funkcionalen. S strežnikom bi se morali povezati s katerim koli odjemalcem FTP, ki ga je mogoče konfigurirati za uporabo šifriranja TLS, na primer FileZilla .

Onemogočanje dostopa do lupine

Privzeto bo imel uporabnik pri ustvarjanju uporabnika, če ni izrecno določen, SSH dostop do strežnika. Če želite onemogočiti dostop do lupine, ustvarite novo lupino, ki bo natisnila sporočilo, ki uporabniku sporoča, da je njihov račun omejen samo na dostop FTP.

Zaženite naslednje ukaze, da ustvarite / bin / ftponly datoteko in jo naredite izvedljivo:

echo -e '#!/ bin / sh \ necho "Ta račun je omejen samo na dostop FTP."'| sudo tee -a / bin / ftponlysudo chmod a + x / bin / ftponly

Novo lupino dodajte na seznam veljavnih lupin v / etc / lupine mapa:

echo "/ bin / ftponly" | sudo tee -a / etc / lupine

Spremenite uporabniško lupino v / bin / ftponly:

sudo usermod newftpuser -s / bin / ftponly

Z istim ukazom lahko spremenite lupino vseh uporabnikov, ki jim želite omogočiti samo dostop FTP.

Zaključek #

Pokazali smo vam, kako namestite in konfigurirate varen in hiter strežnik FTP na vašem Ubuntu 20.04 sistem.

Če imate kakršna koli vprašanja ali povratne informacije, vas prosimo, da pustite komentar.

Kako povečati FPS v Linuxu?
FPS pomeni Število sličic na sekundo. Naloga FPS je merjenje hitrosti sličic pri predvajanju video posnetkov ali igranih predstavah. Z enostavnimi bes...
Najboljše laboratorijske igre Oculus App
Če ste lastnik slušalk Oculus, morate biti seznanjeni s stranskim nalaganjem. Sideloading je postopek namestitve vsebine, ki ni shranjena v slušalke. ...
10 najboljših iger za igranje v Ubuntuju
Platforma Windows je bila ena izmed prevladujočih platform za igre na srečo zaradi velikega odstotka iger, ki se danes razvijajo za naravno podporo si...