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:
OutputStatus: 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″>
Outputtotal 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
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:
. . .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.
. . .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ä.
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ä:
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:
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
Outputsammy
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:
# 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:
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
:
ssl_enable=YES
sen Jälkeen, lisää seuraavat rivit nimenomaisesti kieltää anonyymit yhteydet SSL ja vaatia SSL-sekä tiedonsiirron ja käyttäjätunnukset:
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:
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ä:
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ää:
. . ./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:
OutputThis 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.