Android

Slik konfigurerer du ftp-server med vsftpd på centos 7

Install and Configure FTP Server with User based Authentication in Centos 7 / Redhat 7,8 / Fedora

Install and Configure FTP Server with User based Authentication in Centos 7 / Redhat 7,8 / Fedora

Innholdsfortegnelse:

Anonim

FTP (File Transfer Protocol) er en standard klient-server nettverksprotokoll som lar brukere overføre filer til og fra et eksternt nettverk.

Det er flere åpen kildekode FTP-servere tilgjengelig for Linux. De mest populære og mest brukte er PureFTPd, ProFTPD og vsftpd.

I denne opplæringen installerer vi vsftpd (Very Secure Ftp Daemon) på CentOS 7. Det er en stabil, sikker og rask FTP-server. Vi vil også vise deg hvordan du konfigurerer vsftpd for å begrense brukere til deres hjemmekatalog og kryptere hele overføringen med SSL / TLS.

Bruk SCP eller SFTP for sikrere og raskere dataoverføringer.

Forutsetninger

Før du fortsetter med denne opplæringen, må du sørge for at du er logget inn som en bruker med sudo-rettigheter.

Installerer vsftpd på CentOS 7

Vsftpd-pakken er tilgjengelig i standard CentOS-lagringene. For å installere den, utgiv følgende kommando:

sudo yum install vsftpd

Når pakken er installert, start vsftpd-demonet og aktiver den automatisk å starte ved oppstarttid:

sudo systemctl start vsftpd sudo systemctl enable vsftpd

Du kan bekrefte at vsftpd-tjenesten kjører ved å skrive ut statusen:

sudo systemctl status vsftpd

Produksjonen vil se noe slik ut nedenfor, og viser at vsftpd-tjenesten er aktiv og kjører:

● 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

Konfigurere vsftpd

Konfigurering av vsftpd-tjenesten innebærer redigering av /etc/vsftpd/vsftpd.conf . De fleste av innstillingene er godt dokumentert i konfigurasjonsfilen. For alle tilgjengelige alternativer, besøk den offisielle vsftpd-siden.

I de følgende seksjoner vil vi gå over noen viktige innstillinger som kreves for å konfigurere en sikker vsftpd-installasjon.

Start med å åpne vsftpd konfigurasjonsfil:

sudo nano /etc/vsftpd/vsftpd.conf

1. FTP-tilgang

Vi tillater tilgang til FTP-serveren bare de lokale brukerne, finner de local_enable og local_enable direktiver og verifiserer konfigurasjonens samsvar med linjene nedenfor:

/etc/vsftpd/vsftpd.conf

anonymous_enable=NO local_enable=YES

2. Aktivering av opplastinger

Fjern write_enable innstillingen write_enable for å tillate endringer i filsystemet, for eksempel å laste opp og slette filer.

/etc/vsftpd/vsftpd.conf

write_enable=YES

3. Chroot fengsel

Hindre FTP-brukere å få tilgang til filer utenfor hjemmekatalogene sine ved å fjerne komplettering av chroot direktivet.

/etc/vsftpd/vsftpd.conf

chroot_local_user=YES

Når chroot er aktivert, vil vsftpd som standard nekte å laste opp filer hvis katalogen som brukerne er låst i, kan skrives. Dette er for å forhindre et sikkerhetsproblem.

Bruk en av metodene nedenfor for å tillate opplasting når chroot er aktivert.

  • Metode 1. - Den anbefalte metoden for å tillate opplasting er å holde chroot aktivert og konfigurere FTP-kataloger. I denne opplæringen vil vi opprette en ftp katalog inne i brukerhjemmet som vil fungere som chroot og en skrivbar uploads for å laste opp filer.

    /etc/vsftpd/vsftpd.conf

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

    Metode 2. - Et annet alternativ er å legge til følgende direktiv i konfigurasjonsfilen vsftpd. Bruk dette alternativet hvis du må for å gi skrivbar tilgang til brukeren til hjemmekatalogen.

    /etc/vsftpd/vsftpd.conf

    allow_writeable_chroot=YES

4. Passive FTP-tilkoblinger

vsftpd kan bruke hvilken som helst port for passive FTP-tilkoblinger. Vi vil spesifisere minimums- og maksimumsområdet for porter og senere åpne området i brannmuren vår.

Legg til følgende linjer i konfigurasjonsfilen:

/etc/vsftpd/vsftpd.conf

pasv_min_port=30000 pasv_max_port=31000

5. Begrense brukerpålogging

For å la enkelte brukere logge seg på FTP-serveren legger du til følgende linjer etter userlist_enable=YES linjen:

/etc/vsftpd/vsftpd.conf

userlist_file=/etc/vsftpd/user_list userlist_deny=NO

Når dette alternativet er aktivert, må du spesifikt spesifisere hvilke brukere som kan logge på ved å legge til brukernavnene til filen /etc/vsftpd/user_list (en bruker per linje).

6. Sikre overføringer med SSL / TLS

For å kryptere FTP-overføringer med SSL / TLS, må du ha et SSL-sertifikat og konfigurere FTP-serveren til å bruke den.

Du kan bruke et eksisterende SSL-sertifikat signert av en klarert Certificate Authority eller opprette et selvsignert sertifikat.

I denne opplæringen vil vi generere et selvsignert SSL-sertifikat ved å bruke kommandoen openssl .

Følgende kommando oppretter en 2048-bit privat nøkkel og selvsignert sertifikat som er gyldig i 10 år. Både den private nøkkelen og sertifikatet blir lagret i samme fil:

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

Når SSL-sertifikatet er opprettet, åpner du vsftpd-konfigurasjonsfilen:

sudo nano /etc/vsftpd/vsftpd.conf

Finn rsa_cert_file og rsa_private_key_file direktivene, endre verdiene til pam -filstien og sett ssl_enable direktivet til YES :

/etc/vsftpd/vsftpd.conf

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

Hvis ikke annet er spesifisert, vil FTP-serveren bare bruke TLS for å opprette sikre tilkoblinger.

Start vsftpd-tjenesten på nytt

Når du er ferdig med å redigere, skal konfigurasjonen av vsftpd (unntatt kommentarer) se slik ut:

/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

Lagre filen og start vsftpd-tjenesten på nytt for at endringer skal tre i kraft:

sudo systemctl restart vsftpd

Åpne brannmuren

Slik åpner du port 21 (FTP-kommandoport), port 20 (FTP-dataport) og 30000-31000 (passive porter).

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

Last brannmurreglene på nytt ved å skrive:

firewall-cmd --reload

Opprette en FTP-bruker

For å teste FTP-serveren vår vil vi opprette en ny bruker.

  • Hvis du allerede har en bruker som du vil gi FTP-tilgang, hopp over det første trinnet. Hvis du angir allow_writeable_chroot=YES i konfigurasjonsfilen, hopp over det tredje trinnet.
  1. Opprett en ny bruker som heter newftpuser :

    sudo adduser newftpuser

    Deretter må du angi brukerpassord:

    sudo passwd newftpuser

    Legg brukeren til listen over tillatte FTP-brukere:

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

    Opprett FTP-katalogtreet og angi riktige tillatelser:

    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

    Som omtalt i forrige seksjon, vil brukeren kunne laste opp filene sine til ftp/upload katalogen.

På dette tidspunktet er FTP-serveren din fullstendig funksjonell, og du bør kunne koble til serveren din med en hvilken som helst FTP-klient som kan konfigureres til å bruke TLS-kryptering, for eksempel FileZilla.

Deaktiver Shell Access

Ved opprettelse av en bruker, hvis ikke spesifikt spesifisert, vil brukeren som standard ha SSH-tilgang til serveren.

For å deaktivere skalltilgang, vil vi opprette et nytt skall som ganske enkelt vil skrive ut en melding som forteller brukeren at kontoen deres bare er begrenset til FTP-tilgang.

Kjør følgende kommandoer for å opprette /bin/ftponly shell og gjøre det kjørbart:

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

Legg det nye skallet til listen over gyldige skjell i filen /etc/shells :

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

Endre brukerskallet til /bin/ftponly :

sudo usermod newftpuser -s /bin/ftponly

Bruk den samme kommandoen for å endre skallet for andre brukere du bare vil gi FTP-tilgang.

Konklusjon

I denne opplæringen lærte du hvordan du installerer og konfigurerer en sikker og rask FTP-server på CentOS 7-systemet.

ftp centos