Miten perustaa vsftpd Käyttäjälle's Hakemistoon Ubuntu 18.04

Johdanto

FTP lyhenne sanoista File Transfer Protocol, on protokolla, joka oli kerran laajalti käytetty siirtää tiedostoja asiakkaan ja palvelimen välillä. Se on sittemmin korvattu nopeammilla, turvallisemmilla ja kätevämmillä tavoilla toimittaa tiedostoja. Monet rento Internetin käyttäjät odottavat ladata suoraan heidän web-selain, jossa https, ja command-line-käyttäjät ovat todennäköisesti käyttää turvallisia protokollia, kuten scp tai SFTP.,

FTP käytetään edelleen tukemaan vanhoja sovelluksia ja työnkulkuja, joilla on erikoistarpeita. Jos sinulla on mahdollisuus valita, mitä protokollaa käyttää, harkitse uudenaikaisempien vaihtoehtojen tutkimista. Kun tarvitset FTP, kuitenkin, vsftpd on erinomainen valinta. Optimoitu tietoturvaa, suorituskykyä ja vakautta, vsftpd tarjoaa vahvan suojan monia turvallisuusongelmia löytynyt muut FTP-palvelimia ja on oletus monet Linux-jakelut.,

tässä opetusohjelmassa, voit määrittää vsftpd mahdollistaa käyttäjän ladata tiedostoja, hänen tai hänen koti hakemistoon FTP kirjautumistiedot suojattu SSL/TLS.

Esitiedot

seurata yhdessä tämä opetusohjelma, sinun tulee:

  • Ubuntu 18.04-palvelin, ja ei-root-käyttäjän kanssa sudo oikeudet: Voit oppia lisää siitä, miten voit määrittää käyttäjä, jolla on nämä oikeudet meidän Alkuperäisen Palvelimen Asennus Ubuntu 18.04 opas.,

Vaihe 1 — Asentaa vsftpd

aloitetaan päivittämällä meidän paketti lista ja asentaminen vsftpd daemon:

  • sudo apt update
  • sudo apt install vsftpd

Kun asennus on valmis, anna kopioida asetustiedosto, jotta voimme aloittaa tyhjä kokoonpano, säästää alkuperäisen varmuuskopio:

  • sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig

backup kokoonpano paikallaan, olemme valmiita määritä palomuuri.

Vaihe 2 — palomuurin avaaminen

tarkistetaan palomuurin tila nähdäksesi onko se käytössä., Jos se on, varmistamme, että FTP-liikenne on sallittua, joten palomuurin säännöt eivät estä testejämme.

Tarkista palomuurin tila:

  • sudo ufw status

tässä tapauksessa vain SSH on sallittu kautta:

Output
Status: activeTo Action From-- ------ ----OpenSSH ALLOW AnywhereOpenSSH (v6) ALLOW Anywhere (v6)

Sinulla voi olla muita sääntöjä, tai ei palomuuri sääntöjä ollenkaan. Koska vain SSH liikenne on sallittua tässä tapauksessa, meidän täytyy lisätä sääntöjä FTP liikennettä.,

katsotaanpa avata portit 20 ja 21 FTP -, satama – 990 kun me TLS, ja portit 40000-50000 erilaisia passiivinen portit aiomme asettaa asetustiedostoon:

  • sudo ufw allow 20/tcp
  • sudo ufw allow 21/tcp
  • sudo ufw allow 990/tcp
  • sudo ufw allow 40000:50000/tcp
  • sudo ufw status

– Meidän palomuurin sääntöjä pitäisi nyt näyttää tältä:

vsftpd asennettu ja tarvittavat portit auki, siirrytään luoda oma FTP-käyttäjä.,

Vaihe 3 — Käyttäjähakemiston valmistelu

luomme oman FTP-käyttäjän, mutta sinulla saattaa olla jo FTP-yhteyden tarpeessa oleva käyttäjä. Pidämme huolen siitä, että olemassa oleva käyttäjä pääsee käsiksi tietoihinsa seuraavissa ohjeissa. Suosittelemme kuitenkin, että aloitat uudella käyttäjällä, kunnes olet määrittänyt ja testannut asetuksesi.

ensin lisätään testikäyttäjä:

  • sudo adduser sammy

Anna pyydettäessä salasana. Paina vapaasti ENTER muiden kehotteiden kautta.,

FTP on yleensä turvallisempi, kun käyttäjät on rajoitettu tiettyyn hakemistoon. vsftpd tekee tämän kanssa chroot vankiloissa. Kun chroot on käytössä paikallisille käyttäjille, ne rajoittuvat oletusarvoisesti kotikansioonsa. Koska vsftpd turvaa hakemiston, se ei saa kuitenkaan olla käyttäjän kirjoitettavissa. Tämä sopii uudelle käyttäjälle, jonka pitäisi muodostaa yhteys vain FTP: n kautta, mutta jo olemassa oleva käyttäjä voi joutua kirjoittamaan kotikansioonsa, jos heillä on myös shell-yhteys.,

tässä esimerkki, pikemminkin kuin poistamalla kirjoitusoikeudet home-hakemistoon, anna on luoda ftp hakemisto palvelemaan chroot ja kirjoitettava files hakemisto pitää itse tiedostoja.,tehtäviä:

  • sudo ls -la /home/sammy/ftp
Output
total 84 dr-xr-xr-x 2 nobody nogroup 4096 Aug 24 21:29 .4 drwxr-xr-x 3 sammy sammy 4096 Aug 24 21:29 ..

Seuraava, katsotaanpa luoda hakemiston tiedoston kuvat ja määrittää omistus käyttäjä:

  • sudo mkdir /home/sammy/ftp/files
  • sudo chown sammy:sammy /home/sammy/ftp/files

käyttöoikeudet tarkistaa ftp hakemisto pitäisi palauttaa seuraavat:

  • sudo ls -la /home/sammy/ftp

Lopuksi, nyt lisää test.txt tiedosto käyttää, kun olemme testi:

  • echo "vsftpd test file" | sudo tee /home/sammy/ftp/files/test.txt

Nyt, että olemme turvanneet ftp – hakemistoon ja annetaan käyttäjälle pääsy files hakemisto, katsotaanpa muokata meidän kokoonpano.,

Vaihe 4 — Konfigurointi FTP-Yhteys

– Olemme suunnitelleet, jotta yksittäinen käyttäjä, jolla on paikallinen shell-tilin yhteyden FTP. Kaksi keskeistä asetukset on jo asetettu vsftpd.conf. Aloita avaamalla config-tiedoston, tarkista, että asetukset asetukset vastaavat alla:

  • sudo nano /etc/vsftpd.conf
/etc/vsftpd.conf

Seuraava, katsotaanpa antaa käyttäjän ladata tiedostoja uncommenting write_enable asetukset:

/etc/vsftpd.,conf
. . .write_enable=YES. . .

otamme myös kommenttimerkki chroot estää FTP-yhteydessä käyttäjää käyttämästä mitään tiedostoja tai komentoja, jotka eivät sisälly hakemistoon puu:

/etc/vsftpd.conf
. . .chroot_local_user=YES. . .

– Anna on myös lisätä user_sub_token aseta käyttäjätunnus meidän local_root directory polku niin, meidän kokoonpano toimii käyttäjän ja muita tulevia käyttäjiä. Lisää nämä asetukset missä tahansa tiedostossa:

/etc / vsftpd.,conf
. . .user_sub_token=$USERlocal_root=/home/$USER/ftp

– Anna on myös raja-valikoiman portit voidaan käyttää passiivista FTP-varmista, että tarpeeksi yhteydet ovat käytettävissä:

/etc/vsftpd.conf
. . .pasv_min_port=40000pasv_max_port=50000

Huomautus: vaiheessa 2, avasimme portit, jotka asetimme täällä passiivinen satama-alue. Jos muutat arvoja, muista päivittää palomuurin asetukset.

sallia FTP-yhteys tapaus tapaukselta perusteella, katsotaanpa asettaa kokoonpano niin, että käyttäjillä on pääsy vain silloin, kun ne ovat nimenomaisesti lisätä luetteloon, eikä oletus:

/etc/vsftpd.,conf
. . .userlist_enable=YESuserlist_file=/etc/vsftpd.userlistuserlist_deny=NO

userlist_deny vaihtaa logiikka: Kun se on asetettu YES käyttäjät listalla on evätty pääsy FTP-yhteys. Kun se on asetettu NO, vain luettelossa olevat käyttäjät saavat käyttää sitä.

Kun olet tehnyt muutokset, tallenna tiedosto ja poistu editorista.

vihdoin, lisätään käyttäjämme /etc/vsftpd.userlist., Käyttää -a lippu liittää tiedoston:

  • echo "sammy" | sudo tee -a /etc/vsftpd.userlist

Tarkista, että se oli lisätty kuin sinun odotetaan:

  • cat /etc/vsftpd.userlist
Output
sammy

Käynnistä daemon ladata kokoonpanon muutokset:

  • sudo systemctl restart vsftpd

kokoonpano paikallaan, siirrytään testaus FTP-yhteys.

Vaihe 5 — Testaus FTP-Yhteys

Olemme konfiguroitu palvelin, jotta vain käyttäjä sammy yhteyden kautta FTP. Varmistetaan, että tämä toimii odotetusti.,

anonyymien käyttäjien ei pitäisi muodostaa yhteyttä: olemme estäneet anonyymin pääsyn. Kokeillaan sitä yrittämällä yhdistää anonyymisti. Jos konfiguraatiomme on perustettu oikein, nimettömiltä käyttäjiltä on evättävä lupa. Avaa toinen pääteikkuna ja suorita seuraava komento. Muista korvata 203.0.113.0 oman palvelimen julkinen IP-osoite:

  • ftp -p 203.0.113.0

Sulje yhteys:

  • bye

muut Käyttäjät kuin sammy pitäisi epäonnistua yhdistää: Seuraavaksi kokeillaan yhdistää meidän sudo-käyttäjä.,> olisi voitava liittää, lukea ja kirjoittaa tiedostoja: katsotaanpa varmista, että meidän nimetty käyttäjä voi liittää:

  • ftp -p 203.0.113.0

muutetaan osaksi files hakemisto ja käyttää get komento siirtää testi tiedosto loimme aiemmin meidän paikallinen kone:

  • cd files
  • get test.txt

Seuraava, katsotaanpa ladata tiedoston uudella nimellä testata kirjoitusoikeudet:

  • put test.txt upload.txt

Sulje yhteys:

  • bye

Nyt kun olemme testanneet kokoonpano, otetaan toimiin edelleen turvallista palvelimelle.,

Vaihe 6 — Turvaaminen Tapahtumat

Koska FTP ei salata mitään tietoja kauttakulkua, mukaan lukien käyttäjätiedot, me TLS/SSL säätää, että salaus. Ensimmäinen vaihe on luoda SSL-varmenteet käytettäväksi vsftpd.

käytetään openssl voit luoda uuden varmenteen ja käyttää -days lippu, jotta se on voimassa yhden vuoden. Samassa komennossa lisätään yksityinen 2048-bittinen RSA-avain., Asettamalla molemmat -keyout ja -out liput samaan arvoon, yksityinen avain ja varmenne tulee sijaita samassa tiedostossa:

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

Sinua pyydetään antamaan osoitetiedot todistus., Korvata oman tiedot esiin arvot alla:

tarkempia tietoja todistuksen lippuja, katso OpenSSL Essentials: Työskentely SSL Todistukset, Yksityisten Avainten ja maakohtaisten suositusten

Kun olet luonut sen todistukset, avaa vsftpd configuration-tiedoston uudelleen:

  • sudo nano /etc/vsftpd.conf

Kohti pohjaa tiedoston, näet kaksi riviä, jotka alkavat rsa_. Kommentoida niitä, jotta ne näyttävät tältä:

/etc/vsftpd.,conf
. . .# rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem# rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key. . .

Alla, lisää seuraavat rivit, jotka viittaavat varmenne ja yksityinen avain, me juuri luonut:

/etc/vsftpd.conf
. . .rsa_cert_file=/etc/ssl/private/vsftpd.pemrsa_private_key_file=/etc/ssl/private/vsftpd.pem. . .

sen Jälkeen, meillä on voima käyttää SSL-suojausta, joka estää asiakkaita, jotka eivät voi käsitellä TLS-yhteyden. Tämä on tarpeen sen varmistamiseksi, että kaikki liikenne on salattu, mutta se voi pakottaa FTP-käyttäjän vaihtamaan asiakkaita. Vaihda ssl_enable ja YES:

/etc/vsftpd.,conf
. . .ssl_enable=YES. . .

sen Jälkeen, lisää seuraavat rivit nimenomaisesti kieltää anonyymit yhteydet SSL ja vaatia SSL-sekä tiedonsiirron ja käyttäjätunnukset:

/etc/vsftpd.conf
. . .allow_anon_ssl=NOforce_local_data_ssl=YESforce_local_logins_ssl=YES. . .

tämän Jälkeen, määrittää palvelimen käyttämään TLS, edullinen seuraaja SSL, lisäämällä seuraavat rivit:

/etc/vsftpd.conf
. . .ssl_tlsv1=YESssl_sslv2=NOssl_sslv3=NO. . .

lopuksi lisätään vielä kaksi vaihtoehtoa. Ensinnäkin emme vaadi SSL-uudelleenkäyttöä, koska se voi rikkoa monia FTP-asiakkaita., Tarvitsemme ”korkean” salauksen cipher suites, joka tarkoittaa tällä hetkellä avainten pituuksia, jotka ovat vähintään 128 bittiä:

/etc/vsftpd.conf
. . .require_ssl_reuse=NOssl_ciphers=HIGH. . .

valmiin tiedoston kohta pitäisi näyttää tältä:

/etc/vsftpd.conf

Kun olet valmis, tallenna ja sulje tiedosto.

Käynnistä palvelin uudelleen, jotta muutokset tulevat voimaan:

  • sudo systemctl restart vsftpd

tässä vaiheessa, emme enää voi yhdistää epävarma command-line client., Jos yritimme, näkisimme jotain:

seuraavaksi, varmistetaanpa, että voimme muodostaa yhteyden TLS: ää tukevalla asiakkaalla.

Vaihe 7 — testaus TLS FileZilla

useimmat nykyaikaiset FTP-asiakkaat voidaan konfiguroida käyttämään TLS-salausta. Osoitamme, miten yhteyden FileZilla koska sen cross-platform tuki. Tutustu muiden asiakkaiden asiakirjoihin.

Kun avaat FileZillan ensimmäisen kerran, Etsi sivuston hallinta-ikoni juuri sananjuontajan yläpuolella, ylimmän rivin vasemmanpuoleisin kuvake. Napsauta sitä:

avaa uuden ikkunan., Napsauta Uusi Sivusto-painiketta oikeassa alakulmassa:


Minun Sivustoja, uusi kuvake, jossa on sanat Uusi sivusto ilmestyy. Voit nimetä sen nyt tai palata myöhemmin ja käyttää nimeä-painiketta.

täytä Isäntäkenttä nimellä tai IP-osoitteella. Valitse salauksen pudotusvalikosta Require explicit FTP over TLS.

Kirjautumistyypin kohdalla valitse kysy salasanaa. Täytä FTP-käyttäjä-Käyttäjä-kenttä:

Napsauta Yhdistä alareunassa käyttöliittymä., Sinulta kysytään käyttäjän salasana:

Klikkaa OK. Sinun pitäisi nyt olla yhteydessä palvelimeesi TLS / SSL-salauksella.,ficate, joka näyttää tältä:

Kun olet hyväksynyt sertifikaatin, kaksoisnapsauta files kansio ja vedä upload.txt vasemmalle vahvistaa, että et voi ladata tiedostoja:

Kun olet tehnyt, että klikkaa hiiren oikealla paikallinen kopio, nimeä se uudelleen nimellä upload-tls.txt ja vedä se takaisin palvelimelle vahvistaa, että voit ladata tiedostoja:

Olet nyt vahvisti, että voit turvallisesti ja onnistuneesti siirtää tiedostoja SSL/TLS käytössä.,

Vaihe 8 — Käytöstä Shell-Yhteys (Valinnainen)

Jos et pysty käyttämään TLS, koska asiakkaan vaatimukset, voit saada joitakin turvallisuutta poistamalla FTP-käyttäjä on kyky kirjautua muulla tavalla. Yksi suhteellisen suoraviivainen tapa estää se on luomalla mukautetun kuoren. Tämä ei tarjoa mitään salausta, mutta se rajoittaa pääsyn vaarantunut tili tiedostoja, pääsy FTP.,

Ensimmäinen, avaa tiedosto nimeltä ftponly bin hakemisto:

  • sudo nano /bin/ftponly

Lisää viesti kertoo käyttäjälle, miksi he eivät voi kirjautua sisään:

/bin/ftponly
#!/bin/shecho "This account is limited to FTP access only."

Tallenna tiedosto ja poistu editorista.,Muuttaa käyttöoikeuksia, tee tiedosto suoritettavan:

  • sudo chmod a+x /bin/ftponly

Avaa luettelo voimassa kuoret:

  • sudo nano /etc/shells

alareunassa lisää:

/etc/shells
. . ./bin/ftponly

Päivitys käyttäjän shell komennolla:

  • sudo usermod sammy -s /bin/ftponly

Nyt kokeilla kirjautumalla palvelimelle kuin sammy:

Sinun pitäisi nähdä jotain:

Output
This account is limited to FTP access only.Connection to 203.0.113.0 closed.

Tämä vahvistaa sen, että käyttäjä ei voi enää ssh palvelimeen ja on rajoitettu FTP-yhteys vain.,

johtopäätös

tässä opetusohjelmassa käsittelimme FTP: n perustamista käyttäjille paikallisella tilillä. Jos haluat käyttää ulkoista autentikointi lähde, saatat haluta tutkia vsftpd’s tuki virtuaalisia käyttäjiä. Tämä tarjoaa runsaasti erilaisia vaihtoehtoja käyttämällä PAM: n Pluggable Authentication Modules, ja on hyvä valinta, jos et hallitse käyttäjiä toiseen järjestelmään, kuten LDAP tai Kerberos.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *