Šioje pamokoje paaiškinta, kaip įdiegti ir konfigūruoti „Raspberry Pi“ FTP serverį, kurį naudojate dalydamiesi failais tarp savo įrenginių. Mes naudosime „vsftpd“, kuris yra stabilus, saugus ir greitas FTP serveris. Mes taip pat parodysime, kaip sukonfigūruoti „vsftpd“, kad vartotojai būtų apriboti savo namų katalogu ir užšifruotų visą perdavimą SSL / TLS.
Šiame projekte jūs turite turėti „Raspbian Pi“ įdiegtą . Norint paleisti FTP serverį, nereikia grafinės sąsajos, todėl rekomenduojame naudoti „Raspbian Lite“ vaizdą ir įgalinti SSH .
„Vsftpd“ diegimas „Raspberry Pi“ #
„Vsftpd“ paketą galima įsigyti standartinėse „Raspbian“ saugyklose. Norėdami jį įdiegti, vykdykite šias komandas:
sudo apt atnaujinimas
sudo apt install vsftpd
FTP paslauga bus automatiškai paleista baigus diegimo procesą. Norėdami tai patikrinti, atsispausdinkite paslaugos būseną:
sudo systemctl status vsftpd
Išvestis atrodys panašiai kaip žemiau, rodant, kad „vsftpd“ paslauga yra aktyvi ir veikia:
● vsftpd.tarnyba - vsftpd FTP serveris Įkelta: pakrauta (/ lib / systemd / system / vsftpd.aptarnavimas; įjungtas; išankstinis pardavėjo nustatymas: įjungtas) Aktyvus: aktyvus (veikia) nuo 2020-10-21, trečiadienio 19:00:41 BST; Prieš 9s ..
Konfigūruojamas vsftpd #
„Vsftpd“ serverį galima sukonfigūruoti redaguojant / etc / vsftpd.konf
failą.
Dauguma nustatymų yra gerai dokumentuoti konfigūracijos faile. Norėdami sužinoti apie visas galimas parinktis, apsilankykite oficialiame „vsftpd“ puslapyje.
Pradėkite atidarydami vsftpd konfigūracijos failą:
sudo nano / etc / vsftpd.konf
1. FTP prieigos Nr
Norėdami užtikrinti, kad tik vietiniai vartotojai galėtų pasiekti FTP serverį, ieškokite anonimas_įgalinamas
ir local_enable
direktyvas ir patikrinkite, ar jūsų konfigūracija atitinka toliau pateiktas eilutes:
anonymous_enable = NE local_enable = TAIP
2. Įgalinamas įkėlimas #
Suraskite ir atžymėkite rašyti_įgalinti
direktyvą, leidžiančią keisti failų sistemą, pavyzdžiui, įkelti ir pašalinti failus.
write_enable = TAIP
3. Chroot kalėjimas #
Norėdami, kad FTP vartotojai negalėtų pasiekti failų ne savo namų kataloguose, nekomentuokite chroot
direktyvą.
chroot_local_user = TAIP
Kai „chroot“ funkcija yra aktyvi, „vsftpd“ atsisakys įkelti failus, jei katalogas, kuriame vartotojai yra užrakinti, yra įrašomas.
Norėdami padaryti „chroot“ aplinką rašomą, naudokite vieną iš toliau pateiktų sprendimų
1 metodas. - Rekomenduojama parinktis leisti įkelti yra išlaikyti įjungtą chroot ir konfigūruoti FTP katalogus. Šiame pavyzdyje sukursime
/ etc / vsftpd.konfftp
katalogas vartotojo namuose, kuris bus naudojamas kaip įrašas ir įrašomasis elementasįkėlimai
katalogas failams įkelti.user_sub_token = $ USER local_root = / home / $ USER / ftp
2 metodas. - Kita galimybė yra pridėti šią direktyvą į vsftpd konfigūracijos failą. Naudokite šią parinktį, jei turite suteikti vartotojui rašytinę prieigą prie jo namų katalogo.
/ etc / vsftpd.konfallow_writeable_chroot = TAIP
4. Pasyvios FTP jungtys
Pagal numatytuosius nustatymus „vsftpd“ naudoja aktyvųjį režimą. Norėdami naudoti pasyvųjį režimą, nustatykite mažiausią ir didžiausią prievadų diapazoną:
/ etc / vsftpd.konfpasv_min_port = 30000 pasv_max_port = 31000
vsftpd gali naudoti bet kurį prievadą pasyviems FTP ryšiams. Kai įjungtas pasyvusis režimas, FTP klientas atidaro ryšį su serveriu atsitiktiniame jūsų pasirinkto diapazono prievade.
5. Vartotojo prisijungimo apribojimas #
Galite sukonfigūruoti vsftpd, kad tik tam tikri vartotojai galėtų prisijungti. Norėdami tai padaryti, failo pabaigoje pridėkite šias eilutes:
/ etc / vsftpd.konfuserlist_enable = TAIP userlist_file = / etc / vsftpd.user_list userlist_deny = NE
Kai ši funkcija įgalinta, turite aiškiai nurodyti, kurie vartotojai gali prisijungti, pridėdami vartotojo vardus prie / etc / vsftpd.user_list
failas (po vieną vartotoją kiekvienoje eilutėje).
6. Perdavimo užtikrinimas naudojant SSL / TLS #
Norėdami užšifruoti FTP perdavimus naudodami SSL / TLS, turite turėti SSL sertifikatą ir sukonfigūruoti FTP serverį, kad jį naudotumėte.
Galite naudoti esamą SSL sertifikatą, pasirašytą patikimos sertifikato institucijos, arba sukurti savarankiškai pasirašytą sertifikatą.
Jei turite domeną ar padomenį, nukreipiantį į FTP serverio IP adresą, galite lengvai sugeneruoti nemokamą „Let's Encrypt SSL“ sertifikatą.
Šioje pamokoje sugeneruosime savarankiškai pasirašytą SSL sertifikatą naudodami openssl
komandą.
Paleiskite šią komandą, kad sukurtumėte 2048 bitų privatų raktą ir 10 metų galiojantį savarankiškai pasirašytą sertifikatą. Tiek privatus raktas, tiek sertifikatas bus išsaugoti tame pačiame faile:
sudo openssl req -x509 -nodes -days 3650 -newkey rsa: 2048 -keyout / etc / ssl / private / vsftpd.pem -out / etc / ssl / private / vsftpd.pem
Kai failai bus sukurti, atidarykite konfigūracijos failą:
sudo nano / etc / vsftpd.konf
Surask rsa_cert_file
ir rsa_private_key_file
pakeisti jų vertybes į pam
failo kelią ir nustatykite ssl_enable
direktyva TAIP
:
rsa_cert_file = / etc / ssl / private / vsftpd.pem rsa_private_key_file = / etc / ssl / private / vsftpd.pem ssl_enable = TAIP
Jei nenurodyta kitaip, FTP serveris naudos tik TLS saugiems ryšiams užmegzti.
Iš naujo paleiskite „vsftpd“ paslaugą #
Baigę konfigūruoti serverį, vsftpd konfigūracijos failas (išskyrus komentarus) turėtų atrodyti maždaug taip:
/ etc / vsftpd.konfklausytis = NE klausytis_ipv6 = TAIP anonimas_įgalinti = NĖRA vietinis_įgalėti = TAIP rašyti_įgalėti = TAIP dirmessage_enable = YES use_localtime = YES xferlog_enable = YES connect_from_port_20 = YES chroot_local_user = YES allow_writeable_wall = YES______ = = YES pasas = YES.user_list userlist_deny = NE saugaus_chroot_dir = / var / run / vsftpd / tuščias pam_service_name = vsftpd rsa_cert_file = / etc / ssl / private / vsftpd.pem rsa_private_key_file = / etc / ssl / private / vsftpd.pem ssl_enable = TAIP
Išsaugokite failą ir iš naujo paleiskite vsftpd paslaugą, kad pakeitimai įsigaliotų:
sudo systemctl paleiskite iš naujo vsftpd
Ugniasienės atidarymas #
Jei naudojate UFW užkardą, turėsite leisti FTP srautą.
Norėdami atidaryti uostą 21
(FTP komandų prievadas), prievadas 20
(FTP duomenų prievadas) ir 30000-31000
(Pasyviųjų prievadų diapazonas), vykdykite šias komandas:
sudo ufw leisti 20: 21 / tcp
sudo ufw leisti 30000: 31000 / tcp
Perkraukite UFW taisykles išjungdami ir iš naujo įgalindami UFW:
sudo ufw išjungti
sudo ufw įjungti
Kuriamas FTP vartotojas #
Norėdami išbandyti FTP serverį, sukursime naują vartotoją.
- Jei jau turite vartotoją, kuriam norite suteikti FTP prieigą, praleiskite pirmąjį veiksmą.
- Jei nustatysite
allow_writeable_chroot = TAIP
konfigūracijos faile praleiskite 3 veiksmą.
Sukurkite naują vartotoją pavadinimu
naujokas
:sudo adduser newftpuser
Kai būsite paraginti, nustatykite vartotojo slaptažodį.
Pridėkite vartotoją prie leidžiamų FTP vartotojų sąrašo:
aidas "newftpuser" | sudo tee -a / etc / vsftpd.user_list
Sukurkite FTP katalogo medį ir nustatykite teisingus leidimus:
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
Kaip buvo aptarta ankstesniame skyriuje, vartotojas galės įkelti failus į
ftp / įkelti
kataloge.
Šiuo metu jūsų FTP serveris yra visiškai veikiantis ir turėtumėte sugebėti prisijungti prie savo serverio naudodami bet kurią FTP klientą, pvz., „FileZilla“ .
„Shell“ prieigos išjungimas #
Pagal numatytuosius nustatymus, kurdamas vartotoją, jei jis nėra aiškiai nurodytas, vartotojas turės SSH prieigą prie įrenginio. Norėdami išjungti prieigą prie apvalkalo, sukurkite naują apvalkalą, kuris tiesiog atspausdins pranešimą, kuriame vartotojui bus pranešta, kad jo paskyra ribojama tik FTP prieiga.
Sukurkite / bin / ftponly
apvalkalą ir padaryti jį vykdomą:
aidas -e '#!/ bin / sh \ necho "Ši paskyra ribojama tik FTP prieiga."'| sudo tee -a / bin / ftponly
sudo chmod a + x / bin / ftponly
Pridėkite naują apvalkalą prie galiojančių apvalkalų sąrašo / etc / lukštai
failas:
aidas "/ bin / ftponly" | sudo tee -a / etc / lukštai
Pakeiskite vartotojo apvalkalą į / bin / ftponly
:
sudo usermod newftpuser -s / bin / ftponly
Ta pačia komanda pakeiskite visų vartotojų, kuriems norite suteikti tik FTP prieigą, apvalkalą.
Išvada Nr
Parodėme, kaip įdiegti ir sukonfigūruoti saugų ir greitą FTP serverį „Raspberry Pi“ sistemoje.
Jei turite klausimų ar atsiliepimų, palikite komentarą.