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 näytämme, miten 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 16.04-palvelimen kanssa ei-root-käyttäjä 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 16.04 opas.

kun Ubuntu-palvelin on käytössä, olet valmis aloittamaan.,

Vaihe 1 — Asentaa vsftpd

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

  • sudo apt-get update
  • sudo apt-get install vsftpd

Kun asennus on valmis, me kopioida asetustiedosto, jotta voimme aloittaa tyhjä kokoonpano, säästää alkuperäinen varmuuskopio.

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

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

Vaihe 2 — palomuurin avaaminen

tarkistamme palomuurin tilan nähdäksemme, onko se käytössä., Jos näin on, varmistamme, että FTP-liikenne on sallittua, joten et törmää palomuurisääntöihin, jotka estävät sinua, kun on aika testata.

  • 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ä.,

– Meidän täytyy avata portit 20 ja 21 FTP-porttia 990 myöhemmin, kun me TLS, ja portit 40000-50000 välillä 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

– Nyt meidän palomuuri säännöt näyttää tältä:

vsftpd asennettu ja tarvittavat portit auki, olemme valmiita jatkamaan seuraavaan vaiheeseen.

Vaihe 3 — Valmistelu Käyttäjän Hakemistoon

tämä opetusohjelma, aiomme luoda käyttäjä, mutta sinulla saattaa jo olla käyttäjän tarvitsee FTP-yhteys., Pidämme huolen siitä, että olemassa oleva käyttäjä pääsee käsiksi tietoihinsa seuraavissa ohjeissa. Tästä huolimatta suosittelemme, että aloitat uudella käyttäjällä, kunnes olet määrittänyt ja testannut asetuksesi.

Ensimmäinen, lisäämme testin käyttäjä:

  • sudo adduser sammy

Anna salasana, kun sitä pyydetään ja rohkeasti paina ”ENTER” läpi muita ohjeita.

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 he myös shell access.,

tässä esimerkki, pikemminkin kuin poistamalla kirjoitusoikeudet home-hakemistoon, emme luo ftp hakemisto palvelemaan chroot ja kirjoitettava files hakemisto pitää itse tiedostoja.,33″>

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 ..

Seuraavaksi meidän täytyy luoda hakemiston, jossa tiedostot voidaan ladata 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 files hakemisto pitäisi palauttaa seuraavat:

  • sudo ls -la /home/sammy/ftp

Lopuksi, me lisäämme test.txt tiedosto käyttää, kun testaamme myöhemmin:

  • 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 hakemistoon, meidän täytyy kääntää huomiomme 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

Next we ’ ll need to change some values in the file. Jotta käyttäjä voi ladata tiedostoja, me kommenttimerkki write_enable asetukset niin, että meillä on:

/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. . .

lisää user_sub_token jotta aseta käyttäjätunnus meidän local_root directory polku niin, meidän kokoonpano toimii käyttäjän ja tulevia käyttäjiä, jotka saattavat lisätä.

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

otamme 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

Huom: Emme ennalta avasi portit, jotka asetimme täällä passiivinen satama-alue. Jos muutat arvoja, muista päivittää palomuurin asetukset.

Koska olemme vain aikoo sallia FTP-yhteys tapaus tapaukselta perusteella, me määrittää asetuksia, niin että pääsy on antanut käyttäjälle 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 ”Kyllä”, listan käyttäjiltä evätään FTP-pääsy. Kun se on asetettu ”ei”, vain käyttäjät luettelossa ovat sallittuja. Kun olet tehnyt muutoksen, Tallenna ja poistu tiedostosta.

lopulta luomme ja lisäämme käyttäjämme tiedostoon., Käytämme -a lippu liittää tiedoston:

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

Double-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

Nyt olet valmis testausta varten.

Vaihe 5 — Testaus FTP-Yhteys

Olemme konfiguroitu palvelin, jotta vain käyttäjä sammy yhteyden kautta FTP. Varmistetaan, että näin on.

anonyymien käyttäjien ei pitäisi muodostaa yhteyttä: estimme anonyymin pääsyn., Tässä testaamme sitä yrittämällä yhdistää anonyymisti. Jos se on tehty oikein, anonyymit käyttäjät olisi evättävä lupa:

  • ftp -p 203.0.113.0

Sulje yhteys:

  • bye

muut Käyttäjät kuin sammy pitäisi epäonnistua yhdistää: Seuraavaksi yritämme yhdistää meidän sudo käyttäjä. Niiltäkin pitäisi evätä pääsy, ja sen pitäisi tapahtua ennen kuin he saavat syöttää salasanansa.,ja kirjoittaa tiedostoja: Täällä, me varmista, että meidän nimetty käyttäjä canconnect:

  • ftp -p 203.0.113.0

muuttua files hakemistoon, ja sitten käyttää get komento siirtää testi tiedosto loimme aiemmin meidän paikallinen kone:

  • cd files
  • get test.txt

käänny oikealle takaisin noin ja yritä ladata tiedosto uudella nimellä testata kirjoitusoikeudet:

  • put test.txt upload.txt

Sulje yhteys:

  • bye

Nyt kun olemme testanneet kokoonpano, otamme askeleen edelleen turvata palvelimelle.,

Vaihe 6 — Turvaaminen Tapahtumat

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

käytämme 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., Sitten asettamalla molemmat -keyout ja -out liput samaan arvoon, yksityinen avain ja varmenne tulee sijaita samassa tiedostossa.

Voimme tehdä sen seuraavalla komennolla:

  • 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 alla oleviin kysymyksiin:

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, sinun pitäisi kaksi riviä, jotka alkavat rsa_. Kommentoida niitä, jotta ne näyttävät:

/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, jotta kaikki liikenne on salattu, mutta 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 voimme 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

Kun olet valmis, tallenna ja sulje tiedosto.

– Nyt meidän täytyy 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 varmistamme, 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-kuvake juuri word-tiedoston alta, ylimmän rivin vasemmanpuoleisin kuvake. Napsauta sitä:

avaa uuden ikkunan., Klikkaa ”Uusi Sivusto” – painiketta oikeassa alakulmassa:


Alla ”Omat Sivustot” uusi kuvake, jossa lukee ”Uusi sivusto” tulee näkyviin. Voit nimetä sen nyt tai palata myöhemmin ja käyttää nimeä-painiketta.

sinun täytyy täyttää ”Isäntäkenttä” nimellä tai IP-osoitteella. Valitse ”salauksen” pudotusvalikosta ”Require explicit FTP over TLS”.

For ”Logon Type”, valitse ”Kysy salasanaa”. Täytä FTP-käyttäjä luotu ”User” – kenttä:


Klikkaa ”Connect” alareunassa käyttöliittymä., Sinulta kysytään käyttäjän salasana:


Klikkaa ”OK” yhteyden. Sinun pitäisi nyt olla yhteydessä palvelimeesi TLS / SSL-salauksella.


Kun olet hyväksynyt sertifikaatin, kaksoisnapsauta files kansio ja vedä ladata.txt vasemmalle vahvistaa, että voit ladata tiedostoja.

Kun olet tehnyt, että klikkaa hiiren oikealla paikallinen kopioida, nimetä sen 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 hakemistoon:

  • sudo nano /bin/ftponly

lisää viesti kertoo käyttäjälle, miksi he eivät voi kirjautua sisään.,/p>

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

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 kuten 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 on tukea 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.

Articles

Vastaa

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