Šajā rakstā ir aprakstīts, kā instalēt un konfigurēt FTP serveri Ubuntu 20.04, kuru izmantojat failu koplietošanai starp savām ierīcēm.
FTP (File Transfer Protocol) ir standarta tīkla protokols, ko izmanto failu pārsūtīšanai uz attālo tīklu un no tā. Linux ir pieejami vairāki atvērtā koda FTP serveri. Vispazīstamākie un visplašāk izmantotie ir PureFTPd, ProFTPD un vsftpd . Mēs instalēsim vsftpd (Very Secure Ftp Daemon), stabilu, drošu un ātru FTP serveri. Mēs parādīsim arī to, kā konfigurēt serveri, lai ierobežotu lietotāju piekļuvi viņu mājas direktorijai un šifrētu visu pārraidi ar SSL / TLS.
Lai gan FTP ir ļoti populārs protokols, drošākai un ātrākai datu pārsūtīšanai jums jāizmanto SCP vai SFTP .
Vsftpd instalēšana Ubuntu 20.04 #
Pakete vsftpd ir pieejama Ubuntu krātuvēs. Lai to instalētu, izpildiet šādas komandas:
sudo apt atjauninājums
sudo apt instalēt vsftpd
Pēc instalēšanas procesa pabeigšanas ftp pakalpojums tiks automātiski palaists. Lai to pārbaudītu, izdrukājiet pakalpojuma statusu:
sudo systemctl statuss vsftpd
Izvadei vajadzētu parādīt, ka vsftpd pakalpojums ir aktīvs un darbojas:
● vsftpd.serviss - vsftpd FTP serveris Ielādēts: ielādēts (/ lib / systemd / system / vsftpd.apkalpošana; iespējots; pārdevēja sākotnējais iestatījums: iespējots) Aktīvs: aktīvs (darbojas) kopš otrdienas 2021-03-02 15:17:22 UTC; Pirms 3 s ..
Konfigurējot vsftpd #
Vsftpd servera konfigurācija tiek saglabāta / etc / vsftpd.konf
failu.
Lielākā daļa servera iestatījumu failā ir labi dokumentēti. Lai uzzinātu visas pieejamās opcijas, apmeklējiet vsftpd dokumentācijas lapu.
Nākamajās sadaļās mēs apskatīsim dažus svarīgus iestatījumus, kas nepieciešami drošas vsftpd instalēšanas konfigurēšanai.
Sāciet, atverot vsftpd konfigurācijas failu:
sudo nano / etc / vsftpd.konf
1. FTP piekļuves numurs
Mēs ļausim piekļūt FTP serverim tikai vietējiem lietotājiem. Meklēt anonymous_enable
un local_enable
direktīvām un pārbaudiet, vai konfigurācija atbilst zemāk esošajām rindām:
anonymous_enable = NĒ local_enable = JĀ
2. Iespējot augšupielādes #
Atrodiet un noņemiet komentāru write_enable
direktīva, lai atļautu failu sistēmas izmaiņas, piemēram, failu augšupielādi un noņemšanu:
write_enable = JĀ
3. Chroot cietums #
Lai neļautu vietējiem FTP lietotājiem piekļūt failiem ārpus viņu mājas direktorijiem, komentējiet lne, sākot ar chroot_local_user
:
chroot_local_user = JĀ
Pēc noklusējuma drošības apsvērumu dēļ, kad chroot ir iespējots, vsftpd atteiksies augšupielādēt failus, ja direktorija, kurā lietotāji ir bloķēti, ir rakstāma.
Izmantojiet vienu no tālāk norādītajiem risinājumiem, lai atļautu augšupielādi, kad iespējota chroot:
1. metode. - Ieteicamā iespēja ir saglabāt iespējotu chroot funkciju un konfigurēt FTP direktorijus. Šajā piemērā mēs izveidosim
/ etc / vsftpd.konfftp
direktoriju lietotāja mājas iekšpusē, kas kalpos kā sakne un rakstāmsaugšupielādes
direktorijs failu augšupielādei:user_sub_token = $ USER local_root = / home / $ USER / ftp
2. metode. - Vēl viena iespēja ir iespējot
/ etc / vsftpd.konfallow_writeable_chroot
direktīva:allow_writeable_chroot = JĀ
Izmantojiet šo opciju tikai tad, ja jums jāpiešķir rakstāma piekļuve lietotājam tā mājas direktorijai.
4. Pasīvie FTP savienojumi #
Pēc noklusējuma vsftpd izmanto aktīvo režīmu. Lai izmantotu pasīvo režīmu, iestatiet minimālo un maksimālo ostu diapazonu:
/ etc / vsftpd.konfpasv_min_port = 30000 pasv_max_port = 31000
Pasīvajiem FTP savienojumiem varat izmantot jebkuru portu. Kad pasīvais režīms ir iespējots, FTP klients atver savienojumu ar serveri nejaušā portā jūsu izvēlētajā diapazonā.
5. Lietotāja pieteikšanās ierobežošana #
Jūs varat konfigurēt vsftpd, lai atļautu pieteikties tikai noteiktiem lietotājiem. Lai to izdarītu, faila beigās pievienojiet šādas rindas:
/ etc / vsftpd.konfuserlist_enable = YES userlist_file = / etc / vsftpd.user_list userlist_deny = NĒ
Kad šī opcija ir iespējota, jums skaidri jānorāda, kuri lietotāji var pieteikties, pievienojot lietotājvārdus / etc / vsftpd.user_list
fails (viens lietotājs katrā rindā).
6. Pārraides nodrošināšana ar SSL / TLS #
Lai šifrētu FTP pārraides ar SSL / TLS, jums ir jābūt SSL sertifikātam un jākonfigurē FTP serveris tā izmantošanai.
Varat izmantot esošu SSL sertifikātu, kuru parakstījusi uzticama sertifikātu iestāde, vai izveidot pašparakstītu sertifikātu.
Ja jums ir domēns vai apakšdomēns, kas norāda uz FTP servera IP adresi, varat ātri ģenerēt bezmaksas Let's Encrypt SSL sertifikātu.
Mēs ģenerēsim 2048 bitu privāto atslēgu un pašparakstītu SSL sertifikātu, kas būs derīgs desmit gadus:
sudo openssl req -x509 -nodes-dienas 3650 -newkey rsa: 2048 -keyout / etc / ssl / private / vsftpd.pem -out / etc / ssl / private / vsftpd.pem
Gan privātā atslēga, gan sertifikāts tiks saglabāti tajā pašā failā.
Kad SSL sertifikāts ir izveidots, atveriet vsftpd konfigurācijas failu:
sudo nano / etc / vsftpd.konf
Atrodi rsa_cert_file
un rsa_private_key_file
direktīvām, mainīt to vērtības uz pam
faila ceļu un iestatiet ssl_enable
direktīva uz JĀ
:
rsa_cert_file = / etc / ssl / private / vsftpd.pem rsa_private_key_file = / etc / ssl / private / vsftpd.pem ssl_enable = JĀ
Ja nav norādīts citādi, FTP serveris drošu savienojumu izveidošanai izmantos tikai TLS.
Restartējiet vsftpd pakalpojumu #
Kad esat pabeidzis rediģēšanu, vsftpd konfigurācijas failam (izņemot komentārus) vajadzētu izskatīties apmēram šādi:
/ etc / vsftpd.konfklausīties = NĒ klausīties_ipv6 = JĀ anonīmi_iespējot = NĒ lokāli_iespējot = JĀ rakstīt_enable = JĀ dirmessage_enable = YES use_localtime = YES xferlog_enable = YES connect_from_port_20 = YES chroot_local_user = YES secure_chroot_dir_p = / var / palaist / paketē / paketē / paketē / palīgs / palīgs / palīgs / palīgs / palīgs / palīgs / palīgs / palaist / palaist / palaist / palaist / pakārtot / pakārtot / palaist / palaist / palaist / palaist / etc / var / palaist / etc / var / palaist / etc / serv / palaist / palaist / palaist / palaist / palaist / palaist / palaist / palaist / palaist / palaist / palaist / palaist / palaist / palaist / privāts / vsftpd.pem rsa_private_key_file = / etc / ssl / private / vsftpd.pem ssl_enable = JĀ user_sub_token = $ USER local_root = / home / $ USER / ftp pasv_min_port = 30000 pasv_max_port = 31000 userlist_enable = YES userlist_file = / etc / vsftpd.user_list userlist_deny = NĒ
Saglabājiet failu un restartējiet pakalpojumu vsftpd, lai izmaiņas stātos spēkā:
sudo systemctl restartējiet vsftpd
Ugunsmūra atvēršana #
Ja izmantojat UFW ugunsmūri, jums būs jāatļauj FTP trafika.
Lai atvērtu ostu 21
(FTP komandu ports), ports 20
(FTP datu ports) un 30000-31000
(Pasīvo portu diapazons), izpildiet šādas komandas:
sudo ufw atļaut 20: 21 / tcp
sudo ufw atļaut 30000: 31000 / tcp
Lai izvairītos no bloķēšanas, pārliecinieties, vai ir pieslēgvieta 22
ir atvērts:
sudo ufw atļaut OpenSSH
Pārlādējiet UFW kārtulas, atspējojot un atkārtoti iespējojot UFW:
sudo ufw atspējot
sudo ufw iespējot
Lai pārbaudītu veiktās izmaiņas:
sudo ufw statuss
Statuss: aktīvs Darbībai no - ------ ---- 20: 21 / tcp ALLOW Anywhere 30000: 31000 / tcp ALLOW Anywhere OpenSSH ALLOW Anywhere 20: 21 / tcp (v6) ALLOW Anywhere (v6) 30000: 31000 / tcp (v6) ALLOW Anywhere (v6) OpenSSH (v6) ALLOW Anywhere (v6)
Izveido FTP lietotāju #
Lai pārbaudītu FTP serveri, mēs izveidosim jaunu lietotāju.
- Ja lietotājs, kuram vēlaties piešķirt piekļuvi FTP, jau pastāv, izlaidiet 1. darbību.
- Ja iestatāt
allow_writeable_chroot = JĀ
konfigurācijas failā izlaidiet 3. darbību.
Izveidojiet jaunu lietotāju ar nosaukumu
newftpuser
:sudo adduser newftpuser
Pievienojiet lietotāju atļauto FTP lietotāju sarakstam:
atbalss "newftpuser" | sudo tee -a / etc / vsftpd.user_list
Izveidojiet FTP direktoriju koku un iestatiet pareizās atļaujas:
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
Kā jau tika apspriests iepriekšējā sadaļā, lietotājs varēs augšupielādēt savus failus
ftp / augšupielādēt
direktorijā.
Šajā brīdī jūsu FTP serveris ir pilnībā funkcionāls. Jums vajadzētu būt iespējai izveidot savienojumu ar serveri, izmantojot jebkuru FTP klientu, kuru var konfigurēt TLS šifrēšanas izmantošanai, piemēram, FileZilla .
Shell piekļuves atspējošana #
Pēc noklusējuma, veidojot lietotāju, ja tas nav skaidri norādīts, lietotājam būs SSH piekļuve serverim. Lai atspējotu piekļuvi čaulai, izveidojiet jaunu čaulu, kas izdrukās ziņojumu, kurā lietotājam tiek paziņots, ka viņa konts ir ierobežots tikai ar FTP piekļuvi.
Izpildiet šīs komandas, lai izveidotu / bin / ftponly
failu un padariet to izpildāmu:
atbalss -e '#!/ bin / sh \ necho "Šis konts ir atļauts tikai FTP piekļuvei."'| sudo tee -a / bin / ftponly
sudo chmod a + x / bin / ftponly
Pievienojiet jauno čaulu derīgo čaulu sarakstam / etc / čaulas
fails:
atbalss "/ bin / ftponly" | sudo tee -a / etc / čaulas
Mainiet lietotāja apvalku uz / bin / ftponly
:
sudo usermod newftpuser -s / bin / ftponly
Jūs varat izmantot to pašu komandu, lai mainītu visu lietotāju čaumalu, kuriem vēlaties piešķirt tikai FTP piekļuvi.
Secinājums Nr
Mēs esam parādījuši, kā instalēt un konfigurēt drošu un ātru FTP serveri savā Ubuntu 20.04 sistēma.
Ja jums ir kādi jautājumi vai atsauksmes, droši atstājiet komentāru.