Selles artiklis kirjeldatakse, kuidas installida ja konfigureerida FTP-server Ubuntu 20-s.04, mida kasutate failide jagamiseks oma seadmete vahel.
FTP (File Transfer Protocol) on standardne võrguprotokoll, mida kasutatakse failide edastamiseks kaugvõrku ja kaugvõrku. Linuxi jaoks on saadaval mitu avatud lähtekoodiga FTP-serverit. Kõige tuntumad ja laialdasemalt kasutatavad on PureFTPd, ProFTPD ja vsftpd . Paigaldame stabiilse, turvalise ja kiire FTP-serveri vsftpd (väga turvaline Ftp-deemon). Samuti näitame teile, kuidas seadistada server nii, et see piiraks kasutajaid nende kodukataloogiga ja krüptiks kogu edastuse SSL / TLS abil.
Kuigi FTP on väga populaarne protokoll, peaksite turvalisema ja kiirema andmeedastuse jaoks kasutama SCP või SFTP .
Vsftpd installimine Ubuntu 20-sse.04 #
Pakett vsftpd on saadaval Ubuntu hoidlates. Selle installimiseks käivitage järgmised käsud:
sudo apt värskendus
sudo apt install vsftpd
Kui installimisprotsess on lõpule jõudnud, käivitub ftp-teenus automaatselt. Selle kinnitamiseks printige teenuse olek:
sudo systemctl olek vsftpd
Väljund peaks näitama, et vsftpd teenus on aktiivne ja töötab:
● vsftpd.teenus - vsftpd FTP-server on laaditud: laaditud (/ lib / systemd / system / vsftpd.teenus; lubatud; hankija eelseadistus: lubatud) aktiivne: aktiivne (töötab) alates teisipäevast 2021-03-02 15:17:22 UTC; 3 s tagasi ..
Vsftpd # seadistamine
Vsftpd serveri konfiguratsioon on salvestatud / etc / vsftpd.konf
faili.
Enamik serveri seadeid on failis hästi dokumenteeritud. Kõigi saadaolevate valikute leidmiseks külastage vsftpd dokumentatsiooni lehte.
Järgmistes jaotistes tutvume mõningate oluliste sätetega, mis on vajalikud vsftpd turvalise installimise konfigureerimiseks.
Alustage vsftpd konfiguratsioonifaili avamisega:
sudo nano / etc / vsftpd.konf
1. FTP juurdepääs nr
Lubame FTP-serverile juurdepääsu ainult kohalikele kasutajatele. Otsige anonüümne_enable
ja local_enable
ja kontrollige, kas teie konfiguratsioon vastab allolevatele ridadele:
anonüümne_enable = EI local_enable = JAH
2. Üleslaadimise lubamine #
Leidke ja kommenteerige kirjuta_luba
direktiiv lubada failisüsteemi muudatusi, näiteks failide üleslaadimist ja eemaldamist:
write_enable = JAH
3. Chrooti vangla #
Kui soovite, et kohalikud FTP-kasutajad ei pääseks juurde failidele väljaspool oma kodukatalooge, tühjendage lne algusega chroot_local_user
:
chroot_local_user = JAH
Kui chroot on lubatud, keeldub vsftpd turvalisuse huvides vaikimisi failide üleslaadimisest, kui kasutajate lukustatud kataloog on kirjutatav.
Kui chroot on lubatud, kasutage üleslaadimise lubamiseks ühte järgmistest lahendustest:
1. meetod. - Soovitatav variant on hoida chroot-funktsioon lubatud ja konfigureerida FTP-katalooge. Selles näites loome
/ etc / vsftpd.konfftp
kasutaja kodus asuv kataloog, mis toimib chrooti ja kirjutatavanaüleslaadimised
kataloog failide üleslaadimiseks:user_sub_token = $ USER local_root = / kodu / $ USER / ftp
2. meetod. - Teine võimalus on
/ etc / vsftpd.konfallow_writeable_chroot
direktiiv:allow_writeable_chroot = JAH
Kasutage seda suvandit ainult siis, kui peate oma kasutajale võimaldama kirjutatava juurdepääsu tema kodukataloogile.
4. Passiivsed FTP-ühendused #
Vaikimisi kasutab vsftpd aktiivset režiimi. Passiivse režiimi kasutamiseks määrake pordide minimaalne ja maksimaalne vahemik:
/ etc / vsftpd.konfpasv_min_port = 30000 pasv_max_port = 31000
Passiivsete FTP-ühenduste jaoks saate kasutada mis tahes porti. Kui passiivne režiim on lubatud, avab FTP klient ühenduse teie valitud vahemikus juhusliku pordi serveriga.
5. Kasutaja sisselogimise numbri piiramine
Saate konfigureerida vsftpd lubama sisselogimist ainult teatud kasutajatel. Selleks lisage faili lõppu järgmised read:
/ etc / vsftpd.konfuserlist_enable = JAH userlist_file = / etc / vsftpd.user_list userlist_deny = EI
Kui see valik on lubatud, peate selgesõnaliselt määrama, millised kasutajad saavad sisse logida, lisades kasutajale nimed / etc / vsftpd.kasutaja_loend
fail (üks kasutaja rea kohta).
6. Edastuste kindlustamine SSL / TLS-iga #
FTP-edastuste krüptimiseks SSL / TLS-iga peab teil olema SSL-sertifikaat ja FTP-server selle kasutamiseks konfigureerima.
Võite kasutada olemasolevat SSL-sertifikaati, millele on alla kirjutanud usaldusväärne sertifikaadiasutus, või luua ise allkirjastatud sertifikaadi.
Kui teil on domeen või alamdomeen, mis osutab FTP-serveri IP-aadressile, saate kiiresti genereerida tasuta Let's Encrypt SSL-i sertifikaadi.
Loome 2048-bitise privaatvõtme ja ise allkirjastatud SSL-sertifikaadi, mis kehtib kümme aastat:
sudo openssl req -x509 -sõlmed -päevad 3650 -newkey rsa: 2048 -keyout / etc / ssl / private / vsftpd.pem -out / etc / ssl / private / vsftpd.pem
Nii privaatne võti kui ka sertifikaat salvestatakse samasse faili.
Kui SSL-sertifikaat on loodud, avage vsftpd konfiguratsioonifail:
sudo nano / etc / vsftpd.konf
Leidke rsa_cert_file
ja rsa_private_key_file
direktiivid, muuta nende väärtused pam
faili tee ja määrake ssl_enable
direktiiv kuni JAH
:
rsa_cert_file = / etc / ssl / private / vsftpd.pem rsa_private_key_file = / etc / ssl / private / vsftpd.pem ssl_enable = JAH
Kui pole teisiti määratud, kasutab FTP-server turvaliste ühenduste loomiseks ainult TLS-i.
Taaskäivitage vsftpd teenus #
Kui olete redigeerimise lõpetanud, peaks vsftpd konfiguratsioonifail (välja arvatud kommentaarid) välja nägema umbes selline:
/ etc / vsftpd.konfkuulata = EI kuulata_ipv6 = JAH anonüümne_enable = EI kohalik_enable = JAH kirjutamine_enable = JAH dirmessage_enable = YES use_localtime = YES xferlog_enable = YES connect_from_port_20 = YES chroot_local_user = YES secure_chroot_dir_p = / var / run / vs / var / jookse / privaatne / vsftpd.pem rsa_private_key_file = / etc / ssl / private / vsftpd.pem ssl_enable = JAH 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 = EI
Muudatuste jõustumiseks salvestage fail ja taaskäivitage vsftpd-teenus:
sudo systemctl taaskäivitage vsftpd
Tulemüüri avamine #
Kui kasutate UFW tulemüüri, peate lubama FTP-liikluse.
Sadama avamiseks 21
(FTP käsuport), port 20
(FTP-andmepord) ja 30000-31000
(Passiivse pordi vahemik), käivitage järgmised käsud:
sudo ufw lubage 20: 21 / tcp
sudo ufw lubab 30000: 31000 / tcp
Lukustuse vältimiseks veenduge, et see oleks porti 22
on avatud:
sudo ufw lubab OpenSSH-d
UFW reeglite uuesti laadimine, keelates ja uuesti lubades UFW:
sudo ufw keelata
sudo ufw lubada
Muudatuste käitamise kontrollimiseks toimige järgmiselt
sudo ufw olek
Olek: aktiivne Toimingule - ------ ---- 20: 21 / tcp ALLOW Anywhere 30000: 31000 / tcp ALLOW Anywhere OpenSSH ALLOW Anywhere 20: 21 / tcp (v6) ALLOW Anywhere (v6) 30000: 31000 / tcp (v6) LUBA kõikjal (v6) OpenSSH (v6) LUBA kõikjal (v6)
FTP kasutaja nr loomine
FTP-serveri testimiseks loome uue kasutaja.
- Kui kasutaja, kellele soovite FTP-ühenduse anda, on juba olemas, jätke esimene samm vahele.
- Kui määrate
allow_writeable_chroot = JAH
jätke oma konfiguratsioonifailis kolmas etapp vahele.
Looge uus kasutaja nimega
newftpuser
:sudo adduser newftpuser
Kasutaja lisamine lubatud FTP kasutajate loendisse:
kaja "newftpuser" | sudo tee -a / etc / vsftpd.kasutaja_loend
Looge FTP kataloogipuu ja määrake õiged õigused:
sudo mkdir -p / home / newftpuser / ftp / upload
sudo chmod 550 / home / newftpuser / ftp
sudo chmod 750 / home / newftpuser / ftp / upload
sudo chown -R newftpuser: / kodu / newftpuser / ftp
Nagu eelmises osas räägiti, saab kasutaja oma failid faili üles laadida
ftp / üleslaadimine
kataloogi.
Sel hetkel on teie FTP-server täiesti töökorras. Peaksite saama serveriga ühenduse luua mis tahes FTP-kliendiga, mille saab konfigureerida TLS-krüptimise kasutamiseks, näiteks FileZilla .
Shelli juurdepääsu keelamine #
Vaikimisi on kasutaja loomisel SSH-i juurdepääs serverile, kui see pole sõnaselgelt määratletud. Shelli juurdepääsu keelamiseks looge uus kest, mis prindib sõnumi, mis ütleb kasutajale, et tema konto on piiratud ainult FTP-juurdepääsuga.
Käivitage järgmised käsud / bin / ftponly
fail ja tee see käivitatavaks:
kaja -e '#!/ bin / sh \ necho "See konto on piiratud ainult FTP-juurdepääsuga."'| sudo tee -a / bin / ftponly
sudo chmod a + x / bin / ftponly
Lisage uus kest rakenduses kehtivate kestade loendisse / etc / kestad
fail:
kaja "/ bin / ftponly" | sudo tee -a / etc / shellid
Muutke kasutaja kest väärtuseks / bin / ftponly
:
sudo usermod newftpuser -s / bin / ftponly
Sama käsu abil saate muuta kõigi kasutajate kestat, kellele soovite anda ainult FTP-juurdepääsu.
Järeldus #
Oleme teile näidanud, kuidas installida ja konfigureerida turvaline ja kiire FTP-server oma Ubuntu 20-sse.04 süsteem.
Kui teil on küsimusi või tagasisidet, jätke julgelt kommentaar.