FTP (Failiedastusprotokoll) on suhteliselt vana ja enim kasutatud standardne võrguprotokoll, mida kasutatakse failide üles-/allalaadimiseks kahe arvuti vahel võrgu kaudu. Kuid, FTP algselt ebaturvaline, kuna see edastab andmeid koos kasutaja mandaadiga (kasutajanimi ja parool) ilma krüpteerimiseta.
Hoiatus: Kui plaanite kasutada FTPkaaluge FTP -ühenduse seadistamist SSL/TLS (seda käsitletakse järgmises artiklis). Vastasel juhul on alati parem kasutada turvalist FTP -d, näiteks SFTP.
Soovitatav lugemine:Kuidas installida ja kaitsta FTP -serverit CentOS 7 -s
Selles õpetuses näitame, kuidas installida, konfigureerida ja turvata FTP server (VSFTPD täielikult "Väga turvaline FTP deemon“) Sisse Ubuntu omada tugevat turvalisust FTP turvaaukude vastu.
1. Esiteks peame värskendama süsteemipaketi allikate loendit ja seejärel installima VSFTPD binaarpakett järgmiselt:
$ sudo apt-get update. $ sudo apt-get install vsftpd.
2. Kui installimine on lõpule viidud, on teenus esialgu keelatud, seetõttu peame selle vahepeal käsitsi käivitama ja võimaldama ka selle automaatse käivitamise järgmisest süsteemi käivitamisest:
SystemD -s # systemctl start vsftpd. # systemctl lubage vsftpd SysVIniti kaudu # teenuse vsftpd algus. # chkconfig -tase 35 vsftpd sisse.
3. Järgmisena, kui teil on UFW tulemüür serveris lubatud (see pole vaikimisi lubatud), peate avama pordid 21 ja 20 kus FTP deemonid kuulavad, et võimaldada juurdepääs FTP teenustele kaugmasinatest, lisage uued tulemüüri reeglid järgmiselt.
$ sudo ufw lubab 20/tcp. $ sudo ufw lubab 21/tcp. $ sudo ufw olek.
4. Teeme nüüd mõned konfiguratsioonid oma FTP -serveri seadistamiseks ja turvamiseks, kõigepealt loome varukoopia algsest konfiguratsioonifailist /etc/vsftpd/vsftpd.conf niimoodi:
$ sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig.
Järgmisena avame vsftpd konfiguratsioonifail.
$ sudo vi /etc/vsftpd.conf. VÕI. $ sudo nano /etc/vsftpd.conf.
Lisage/muutke nende väärtustega järgmisi valikuid:
anonymous_enable = EI # keela anonüümne sisselogimine. local_enable = JAH # luba kohalikud sisselogimised. write_enable = JAH # lubage failisüsteemi muutvad FTP -käsud. local_umask = 022 # umaski väärtus kohalikele kasutajatele failide loomiseks. dirmessage_enable = JAH # lubab sõnumite kuvamise, kui kasutajad sisenevad esmakordselt uude kataloogi. xferlog_enable = JAH # logifaili säilitatakse üksikasjalikult üles- ja allalaadimistega. connect_from_port_20 = JAH # kasutage PORT-tüüpi ühenduste jaoks serverimasina porti 20 (ftp-data). xferlog_std_format = JAH # säilita standardne logifaili vorming. kuula = EI # takista vsftpd töötamist eraldiseisvas režiimis. listen_ipv6 = JAH # vsftpd kuulab IPv6 pesa asemel IPv4 pesa. pam_service_name = vsftpd kasutab PAM -teenuse # nime vsftpd. userlist_enable = JAH # lubage kasutajanimede loendi laadimiseks vsftpd. tcp_wrappers = JAH # lülitage tcp ümbrised sisse.
5. Nüüd seadistage VSFTPD lubada/keelata FTP -juurdepääs kasutajatele kasutajaloendi faili alusel /etc/vsftpd.userlist.
Pange tähele, et vaikimisi on kasutajad loetletud userlist_file =/etc/vsftpd.userlist on keelatud sisse logida userlist_deny = JAH
variant, kui userlist_enable = JAH
.
Aga, variant userlist_deny = EI
väänab vaikeseade tähendust, nii et ainult kasutajad, kelle kasutajanimi on selgesõnaliselt loetletud userlist_file =/etc/vsftpd.userlist lubatakse FTP -serverisse sisse logida.
userlist_enable = JAH # vsftpd laadib kasutajanimede loendi kasutajaloendi_fail antud failinimest. userlist_file =/etc/vsftpd.userlist # salvestab kasutajanimed. userlist_deny = EI
Oluline: Kui kasutajad FTP -serverisse sisse logivad, paigutatakse nad vanglasse, see on kohalik juurkataloog, mis toimib ainult nende kodukataloogina ainult FTP -seansi jaoks.
Järgmisena vaatame kahte võimalikku stsenaariumi, kuidas määrata chrooted jail (kohalik juur) kataloog, nagu allpool selgitatud.
6. Siinkohal lisage/muutke/tühistage need kaks järgmist valikut piirata FTP kasutajaid oma kodukataloogidega.
chroot_local_user = JAH. allow_writeable_chroot = JAH.
Valik chroot_local_user = JAH
Oluline on see, et kohalikud kasutajad paigutatakse pärast sisselogimist vaikimisi nende kodukataloogi.
Samuti peame mõistma, et VSFTPD ei luba chroot jail kataloogi kirjutada, vaikimisi turvalisuse huvides, kuid me saame seda võimalust kasutada allow_writeable_chroot = JAH selle seade keelamiseks.
Salvestage fail ja sulgege see. Seejärel peame ülaltoodud muudatuste jõustumiseks VSFTPD teenused taaskäivitama:
SystemD -s # systemctl taaskäivitage vsftpd SysVIniti kaudu # teenus vsftpd taaskäivitamine.
7. Nüüd testime FTP -serverit, luues sellega FTP -kasutaja käsk useradd järgnevalt:
$ sudo useradd -m -c "Aaron Kili, Contributor" -s /bin /bash aaronkilik. $ sudo passwd aaronkilik.
Seejärel peame kasutaja selgesõnaliselt loetlema aaronkilik failis /etc/vsftpd.userlist koos kaja käsk ja tee käsk nagu allpool:
$ echo "aaronkilik" | sudo tee -a /etc/vsftpd.userlist. $ cat /etc/vsftpd.userlist.
8. Nüüd on aeg testida, kas meie ülaltoodud konfiguratsioonid toimivad vastavalt vajadusele. Alustuseks testime anonüümseid sisselogimisi; alltoodud väljundist näeme selgelt, et anonüümsed sisselogimised pole FTP -serveris lubatud:
# ftp 192.168.56.102 Ühendatud 192.168.56.102 (192.168.56.102). 220 Tere tulemast TecMint.com FTP -teenusesse. Nimi (192.168.56.102:aaronkilik): anonüümne. 530 Luba tagasi lükatud. Sisselogimine ebaõnnestus. ftp> hüvasti. 221 Hüvasti.
9. Järgmisena testime, kas kasutaja pole failis loetletud /etc/vsftpd.userlist antakse sisselogimisluba, mis ei vasta järgmisele väljundile:
# ftp 192.168.56.102 Ühendatud 192.168.56.102 (192.168.56.102). 220 Tere tulemast TecMint.com FTP -teenusesse. Nimi (192.168.56.10: juur): kasutaja1. 530 Luba tagasi lükatud. Sisselogimine ebaõnnestus. ftp> hüvasti. 221 Hüvasti.
10. Nüüd viime läbi viimase testi, et teha kindlaks, kas failis loetletud kasutaja /etc/vsftpd.userlist, paigutatakse tegelikult pärast sisselogimist oma kodukataloogi. Ja see kehtib alloleva väljundi kohta:
# ftp 192.168.56.102 Ühendatud 192.168.56.102 (192.168.56.102). 220 Tere tulemast TecMint.com FTP -teenusesse. Nimi (192.168.56.102:aaronkilik): aaronkilik. 331 Palun täpsustage parool. Parool: 230 Sisselogimine õnnestus. Kaugsüsteemi tüüp on UNIX. Failide edastamiseks binaarrežiimi kasutamine. ftp> ls
Hoiatus: Valiku seadistamine allow_writeable_chroot = JAH
võib olla nii ohtlik, sellel on võimalikud tagajärjed turvalisusele, eriti kui kasutajatel on üleslaadimisluba või veelgi enam juurdepääs kestale. Kasutage seda ainult siis, kui teate täpselt, mida teete.
Peame märkima, et need turvamõjud ei ole spetsiifilised VSFTPD -le, need võivad mõjutada ka kõiki teisi FTP -deemoneid, mis pakuvad kohalikke kasutajaid chrooti vanglasse.
Sel põhjusel selgitame allolevas jaotises turvalisemat meetodit, kuidas määrata kasutajale teistsugune mittekirjutatav kohalik juurkataloog.
11. Nüüd avage veel kord VSFTPD konfiguratsioonifail.
$ sudo vi /etc/vsftpd.conf. VÕI. $ sudo nano /etc/vsftpd.conf.
ja kommenteerige ebaturvalist valikut, kasutades #
märk, nagu allpool näidatud:
#allow_writeable_chroot = JAH.
Seejärel looge kasutajale alternatiivne kohalik juurkataloog (aaronkilik, teie oma ei pruugi olla sama) ja määrake vajalikud õigused, keelates kõigi teiste selle kataloogi kasutajate kirjutamisõigused:
$ sudo mkdir/home/aaronkilik/ftp. $ sudo chown nobody: nogroup/home/aaronkilik/ftp. $ sudo chmod a-w/home/aaronkilik/ftp.
12. Seejärel looge kataloog kohaliku juure alla sobivate õigustega, kuhu kasutaja oma failid salvestab:
$ sudo mkdir/home/aaronkilik/ftp/files. $ sudo chown -R aaronkilk: aaronkilik/home/aaronkilik/ftp/files. $ sudo chmod -R 0770/home/aaronkilik/ftp/files/
Seejärel lisage/muutke VSFTPD konfiguratsioonifailis allolevaid valikuid koos nende vastavate väärtustega:
user_sub_token = $ USER # lisab kasutajanime kohalikku juurkataloogi local_root =/home/$ USER/ftp # määratleb kasutajate kohaliku juurkataloogi.
Salvestage fail ja sulgege see. Ja taaskäivitage VSFTPD teenused värskete sätetega:
SystemD -s # systemctl taaskäivitage vsftpd SysVIniti kaudu # teenus vsftpd taaskäivitamine.
13. Nüüd teeme lõpliku kontrolli ja veendume, et kasutaja kohalik juurkataloog on FTP -kataloog, mille lõime tema kodukataloogi.
# ftp 192.168.56.102 Ühendatud 192.168.56.102 (192.168.56.102). 220 Tere tulemast TecMint.com FTP -teenusesse. Nimi (192.168.56.10:aaronkilik): aaronkilik. 331 Palun täpsustage parool. Parool: 230 Sisselogimine õnnestus. Kaugsüsteemi tüüp on UNIX. Failide edastamiseks binaarrežiimi kasutamine. ftp> ls
See on kõik! Ärge unustage jagada oma arvamust selle juhendi kohta allpool oleva kommentaarivormi kaudu või anda meile selle teema kohta olulist teavet.
Viimaseks, kuid mitte vähem tähtsaks, ärge jätke tähelepanuta meie järgmist artiklit, kus kirjeldame, kuidas seda teha turvata FTP -server SSL/TLS -i abil ühendused Ubuntu 16.04/16.10 -s, jääge seni TecMinti juurde.