Android

Kuinka asentaa ftp-palvelin vsftpd: n kanssa centos 7: ssä

FTP palvelin / FTP server

FTP palvelin / FTP server

Sisällysluettelo:

Anonim

FTP (File Transfer Protocol) on tavanomainen asiakas-palvelin-verkkoprotokolla, jonka avulla käyttäjät voivat siirtää tiedostoja etäverkkoon ja siitä.

Linuxille on saatavana useita avoimen lähdekoodin FTP-palvelimia. Suosituimpia ja eniten käytettyjä ovat PureFTPd, ProFTPD ja vsftpd.

Asennamme tässä opetusohjelmassa vsftpd (Very Secure Ftp Daemon) CentOS 7: een. Se on vakaa, turvallinen ja nopea FTP-palvelin. Osoitamme sinulle myös kuinka määrittää vsftpd rajoittamaan käyttäjiä kotihakemistoonsa ja salaamaan koko lähetyksen SSL / TLS: llä.

Käytä SCP: tä tai SFTP: tä varmistaaksesi turvallisemman ja nopeamman tiedonsiirron.

edellytykset

Ennen kuin jatkat tätä opetusohjelmaa, varmista, että olet kirjautunut sisään käyttäjänä, jolla on sudo-oikeudet.

Vsftpd: n asentaminen CentOS 7: een

Vsftpd-paketti on saatavana oletus CentOS-arkistoissa. Asenna se antamalla seuraava komento:

sudo yum install vsftpd

Kun paketti on asennettu, käynnistä vsftpd-demoni ja anna sen käynnistyä automaattisesti käynnistyksen yhteydessä:

sudo systemctl start vsftpd sudo systemctl enable vsftpd

Voit varmistaa, että vsftpd-palvelu on käynnissä tulostamalla sen tila:

sudo systemctl status vsftpd

Tulos näyttää alla olevalta, mikä osoittaa, että vsftpd-palvelu on aktiivinen ja käynnissä:

● vsftpd.service - Vsftpd ftp daemon Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2018-11-22 09:42:37 UTC; 6s ago Main PID: 29612 (vsftpd) CGroup: /system.slice/vsftpd.service └─29612 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

Konfigurointi vsftpd

Vsftpd-palvelun määrittäminen edellyttää /etc/vsftpd/vsftpd.conf-asetustiedoston muokkaamista. Suurin osa asetuksista on dokumentoitu hyvin asetustiedoston sisällä. Kaikkia käytettävissä olevia vaihtoehtoja saat viralliselta vsftpd-sivulta.

Seuraavissa osissa käsittelemme joitain tärkeitä asetuksia, joita tarvitaan suojatun vsftpd-asennuksen määrittämiseen.

Aloita avaamalla vsftpd-asetustiedosto:

sudo nano /etc/vsftpd/vsftpd.conf

1. FTP-käyttö

Sallimme pääsyn FTP-palvelimelle vain paikallisille käyttäjille, löydämme anonymous_enable ja local_enable direktiivit ja tarkistamme kokoonpanon vastaavan alla oleviin riveihin:

/etc/vsftpd/vsftpd.conf

anonymous_enable=NO local_enable=YES

2. Latausten salliminen

write_enable , jotta tiedostojärjestelmään voidaan tehdä muutoksia, kuten tiedostojen lähettäminen ja poistaminen.

/etc/vsftpd/vsftpd.conf

write_enable=YES

3. Chroot-vankila

Estää FTP-käyttäjiä pääsemästä tiedostoihin kotihakemistonsa ulkopuolella kommentoimalla chroot direktiiviä.

/etc/vsftpd/vsftpd.conf

chroot_local_user=YES

Oletuksena, kun chroot on käytössä, vsftpd kieltäytyy lähettämästä tiedostoja, jos hakemisto, johon käyttäjät on lukittu, on kirjoitettavissa. Tämän tarkoituksena on estää tietoturvahaavoittuvuus.

Käytä yhtä alla olevista tavoista sallia lataukset, kun chroot on käytössä.

  • Tapa 1. - Suositeltu menetelmä lataamisen sallimiseksi on pitää chroot käytössä ja määrittää FTP-hakemistot. Tässä opetusohjelmassa luomme käyttäjän kotona ftp hakemiston, joka toimii chroot- ja kirjoitettavien lähetyshakemistojen tiedostojen lähettämistä varten.

    /etc/vsftpd/vsftpd.conf

    user_sub_token=$USER local_root=/home/$USER/ftp

    Tapa 2 - Toinen vaihtoehto on lisätä seuraava direktiivi vsftpd-määritystiedostoon. Käytä tätä vaihtoehtoa, jos käyttäjän on sallittava kirjoitettava käyttöoikeus käyttäjän kotihakemistoon.

    /etc/vsftpd/vsftpd.conf

    allow_writeable_chroot=YES

4. Passiiviset FTP-yhteydet

vsftpd voi käyttää mitä tahansa porttia passiivisiin FTP-yhteyksiin. Määritämme porttien vähimmäis- ja enimmäisalueet ja avaa myöhemmin alue palomuurissamme.

Lisää seuraavat rivit asetustiedostoon:

/etc/vsftpd/vsftpd.conf

pasv_min_port=30000 pasv_max_port=31000

5. Käyttäjän sisäänkirjautumisen rajoittaminen

Lisää vain tietyt käyttäjät kirjautua FTP-palvelimeen lisäämällä seuraavat rivit userlist_enable=YES rivin jälkeen:

/etc/vsftpd/vsftpd.conf

userlist_file=/etc/vsftpd/user_list userlist_deny=NO

Kun tämä vaihtoehto on käytössä, sinun on määritettävä nimenomaisesti, mitkä käyttäjät voivat kirjautua sisään lisäämällä käyttäjätunnukset tiedostoon /etc/vsftpd/user_list (yksi käyttäjä rivillä).

6. Lähetysten turvaaminen SSL / TLS: llä

FTP-lähetysten salaamiseksi SSL / TLS: llä sinulla on oltava SSL-varmenne ja määritettävä FTP-palvelin käyttämään sitä.

Voit käyttää olemassa olevaa luotettavan varmentajan allekirjoittamaa SSL-varmennetta tai luoda itse allekirjoitetun varmenteen.

Tässä opetusohjelmassa luomme itse allekirjoitetun SSL-varmenteen käyttämällä openssl komentoa.

Seuraava komento luo 2048-bittisen yksityisen avaimen ja itse allekirjoitetun varmenteen, joka on voimassa 10 vuotta. Sekä yksityinen avain että varmenne tallennetaan samaan tiedostoon:

sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem

Kun SSL-varmenne on luotu, avaa vsftpd-asetustiedosto:

sudo nano /etc/vsftpd/vsftpd.conf

Etsi rsa_cert_file ja rsa_private_key_file -direktiivit, vaihda niiden arvot pam tiedostopolkuun ja aseta ssl_enable arvoksi YES :

/etc/vsftpd/vsftpd.conf

rsa_cert_file=/etc/vsftpd/vsftpd.pem rsa_private_key_file=/etc/vsftpd/vsftpd.pem ssl_enable=YES

Ellei toisin määritetä, FTP-palvelin käyttää suojattujen yhteyksien luomiseen vain TLS: ää.

Käynnistä vsftpd-palvelu uudelleen

Kun muokkaaminen on valmis, vsftpd-asetustiedoston (pois lukien kommentit) pitäisi näyttää noin:

/etc/vsftpd/vsftpd.conf

anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES chroot_local_user=YES listen=NO listen_ipv6=YES pam_service_name=vsftpd userlist_enable=YES userlist_file=/etc/vsftpd/user_list userlist_deny=NO tcp_wrappers=YES user_sub_token=$USER local_root=/home/$USER/ftp pasv_min_port=30000 pasv_max_port=31000 rsa_cert_file=/etc/vsftpd/vsftpd.pem rsa_private_key_file=/etc/vsftpd/vsftpd.pem ssl_enable=YES

Tallenna tiedosto ja käynnistä vsftpd-palvelu uudelleen, jotta muutokset tulevat voimaan:

sudo systemctl restart vsftpd

Palomuurin avaaminen

Portin 21 (FTP-komentoportti), portin 20 (FTP-dataportti) ja 30000-31000 (passiivisten porttien alue) 30000-31000 anna seuraavat komennot:

sudo firewall-cmd --permanent --add-port=20-21/tcp sudo firewall-cmd --permanent --add-port=30000-31000/tcp

Lataa palomuurisäännöt uudelleen kirjoittamalla:

firewall-cmd --reload

FTP-käyttäjän luominen

FTP-palvelimen testaamiseksi luomme uuden käyttäjän.

  • Jos sinulla on jo käyttäjä, jonka haluat myöntää FTP-käyttöoikeuden, ohita ensimmäinen vaihe. Jos asetat allow_writeable_chroot=YES , ohita kolmas vaihe.
  1. Luo uusi käyttäjä nimeltä newftpuser :

    sudo adduser newftpuser

    Seuraavaksi sinun on asetettava käyttäjän salasana:

    sudo passwd newftpuser

    Lisää käyttäjä sallittujen FTP-käyttäjien luetteloon:

    echo "newftpuser" | sudo tee -a /etc/vsftpd/user_list

    Luo FTP-hakemistopuu ja aseta oikeat käyttöoikeudet:

    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

    Kuten edellisessä osassa kerrottiin, käyttäjä voi lähettää tiedostot ftp/upload hakemistoon.

Tässä vaiheessa FTP-palvelimesi on täysin toiminnallinen, ja sinun pitäisi voida muodostaa yhteys palvelimellesi millä tahansa FTP-asiakkaalla, joka voidaan määrittää käyttämään TLS-salausta, kuten FileZilla.

Poista Shell Access käytöstä

Oletuksena, jos käyttäjä luodaan, jos käyttäjällä ei ole nimenomaista määritelmää, hänellä on SSH-yhteys palvelimelle.

Kuoriyhteyden poistamiseksi käytöstä luomme uuden kuoren, joka tulostaa yksinkertaisesti viestin, joka kertoo käyttäjälle, että hänen tilinsä on rajoitettu vain FTP-käyttöoikeuksiin.

Suorita seuraavat komennot luodaksesi /bin/ftponly kuoren ja tehdä siitä suoritettava:

echo -e '#!/bin/sh\necho "This account is limited to FTP access only."' | sudo tee -a /bin/ftponly echo -e '#!/bin/sh\necho "This account is limited to FTP access only."' | sudo tee -a /bin/ftponly sudo chmod a+x /bin/ftponly

Lisää uusi kuori kelvollisten kuorien luetteloon tiedostoon /etc/shells :

echo "/bin/ftponly" | sudo tee -a /etc/shells

Muuta käyttäjän kuori muotoon /bin/ftponly :

sudo usermod newftpuser -s /bin/ftponly

Käytä samaa komentoa vaihtaaksesi kuoren muille käyttäjille, jotka haluat antaa vain FTP-pääsyn.

johtopäätös

Tässä opetusohjelmassa opit kuinka asentaa ja määrittää turvallinen ja nopea FTP-palvelin CentOS 7 -järjestelmään.

ftp centos