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 apt
sudo 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:
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:
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
:
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:
1. metoda. - Priporočena možnost je, da funkcija chroot ostane omogočena in konfigurirate imenike FTP. V tem primeru bomo ustvarili
/ etc / vsftpd.confftp
v uporabnikovem domu, ki bo služil kot chroot in zapisljivnalaganja
imenik za nalaganje datotek:user_sub_token = $ USER local_root = / home / $ USER / ftp
2. metoda. - Druga možnost je omogočiti
/ etc / vsftpd.confallow_writeable_chroot
direktiva:allow_writeable_chroot = DA
Uporabite to možnost samo, če morate uporabniku odobriti dostop do pisanja do njegovega domačega imenika.
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.confpasv_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.confuserlist_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
:
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.confposluš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 / tcp
sudo 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či
sudo 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.
- Če uporabnik, ki mu želite odobriti FTP dostop, že obstaja, preskočite prvi korak.
- Če nastavite
allow_writeable_chroot = DA
v svoji konfiguracijski datoteki preskočite 3. korak.
Ustvari novega uporabnika z imenom
newftpuser
:sudo adduser newftpuser
Uporabnika dodajte na seznam dovoljenih uporabnikov FTP:
echo "newftpuser" | sudo tee -a / etc / vsftpd.user_list
Ustvarite drevo imenikov FTP in nastavite pravilna dovoljenja:
sudo mkdir -p / home / newftpuser / ftp / upload
sudo chmod 550 / home / newftpuser / ftp
sudo chmod 750 / home / newftpuser / ftp / upload
sudo 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 / ftponly
sudo 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.