Android

Sådan konfigureres ftp-server med vsftpd på centos 7

How to Setup an FTP Server in Windows 10 - AvoidErrors

How to Setup an FTP Server in Windows 10 - AvoidErrors

Indholdsfortegnelse:

Anonim

FTP (File Transfer Protocol) er en standard klient-server netværksprotokol, der giver brugerne mulighed for at overføre filer til og fra et fjernnetværk.

Der er flere open source FTP-servere tilgængelige for Linux. De mest populære og udbredte er PureFTPd, ProFTPD og vsftpd.

I denne tutorial vil vi installere vsftpd (Very Secure Ftp Daemon) på CentOS 7. Det er en stabil, sikker og hurtig FTP-server. Vi vil også vise dig, hvordan du konfigurerer vsftpd til at begrænse brugere til deres hjemmekatalog og kryptere hele transmissionen med SSL / TLS.

Brug SCP eller SFTP til sikrere og hurtigere dataoverførsler.

Forudsætninger

Før du fortsætter med denne tutorial, skal du sørge for, at du er logget ind som bruger med sudo-privilegier.

Installation af vsftpd på CentOS 7

Vsftpd-pakken er tilgængelig i standard CentOS-oplagrene. For at installere det skal du udstede følgende kommando:

sudo yum install vsftpd

Når pakken er installeret, skal du starte vsftpd-dæmonen og aktivere den til automatisk at starte ved starttidspunktet:

sudo systemctl start vsftpd sudo systemctl enable vsftpd

Du kan bekræfte, at vsftpd-tjenesten kører ved at udskrive dens status:

sudo systemctl status vsftpd

Outputet ser ud som i det følgende og viser, at vsftpd-tjenesten er aktiv og kø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

Konfiguration af vsftpd

Konfiguration af vsftpd-tjenesten involverer redigering af /etc/vsftpd/vsftpd.conf . De fleste af indstillingerne er godt dokumenteret inde i konfigurationsfilen. Besøg den officielle vsftpd-side for alle tilgængelige indstillinger.

I de følgende afsnit vil vi gennemgå nogle vigtige indstillinger, der kræves for at konfigurere en sikker vsftpd-installation.

Start med at åbne vsftpd-konfigurationsfilen:

sudo nano /etc/vsftpd/vsftpd.conf

1. FTP-adgang

Vi tillader kun adgang til FTP-serveren de lokale brugere, finder de local_enable og local_enable direktiver og verificerer din konfiguration matcher til nedenstående linjer:

/etc/vsftpd/vsftpd.conf

anonymous_enable=NO local_enable=YES

2. Aktivering af uploads

write_enable indstillingen write_enable for at tillade ændringer i filsystemet, såsom upload og sletning af filer.

/etc/vsftpd/vsftpd.conf

write_enable=YES

3. Chroot-fængsel

Undgå FTP-brugere at få adgang til filer uden for deres hjemmekataloger ved at fjerne chroot direktivet.

/etc/vsftpd/vsftpd.conf

chroot_local_user=YES

Når chroot er aktiveret, nægter vsftpd som standard at uploade filer, hvis det bibliotek, som brugerne er låst i, kan skrives. Dette er for at forhindre en sikkerhedssårbarhed.

Brug en af ​​metoderne herunder for at tillade uploads, når chroot er aktiveret.

  • Metode 1. - Den anbefalede metode til tilladelse af upload er at holde chroot aktiveret og konfigurere FTP-mapper. I denne tutorial vil vi oprette et ftp bibliotek inde i brugerhjemmet, der fungerer som chroot og et skrivbart uploads bibliotek til uploade filer.

    /etc/vsftpd/vsftpd.conf

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

    Metode 2. - En anden mulighed er at tilføje følgende direktiv i vsftpd-konfigurationsfilen. Brug denne mulighed, hvis du skal give skrivbar adgang til din bruger til dens hjemmekatalog.

    /etc/vsftpd/vsftpd.conf

    allow_writeable_chroot=YES

4. Passive FTP-forbindelser

vsftpd kan bruge enhver port til passive FTP-forbindelser. Vi specificerer det minimale og maksimale antal havne og åbner senere området i vores firewall.

Føj følgende linjer til konfigurationsfilen:

/etc/vsftpd/vsftpd.conf

pasv_min_port=30000 pasv_max_port=31000

5. Begrænsning af bruger login

For kun at tillade bestemte brugere at logge på FTP-serveren, tilføj følgende linjer efter linjen userlist_enable=YES :

/etc/vsftpd/vsftpd.conf

userlist_file=/etc/vsftpd/user_list userlist_deny=NO

Når denne mulighed er aktiveret, skal du eksplicit specificere, hvilke brugere der er i stand til at logge ind ved at tilføje brugernavne til filen /etc/vsftpd/user_list (en bruger pr. Linje).

6. Sikring af transmissioner med SSL / TLS

For at kryptere FTP-transmissionerne med SSL / TLS, skal du have et SSL-certifikat og konfigurere FTP-serveren til at bruge det.

Du kan bruge et eksisterende SSL-certifikat signeret af en betroet certifikatautoritet eller oprette et selvsigneret certifikat.

I denne tutorial vil vi generere et selvsigneret SSL-certifikat vha. Kommandoen openssl .

Den følgende kommando opretter en 2048-bit privat nøgle og selvsigneret certifikat, der er gyldigt i 10 år. Både den private nøgle og certifikatet gemmes i en 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-certifikatet er oprettet, skal du åbne vsftpd-konfigurationsfilen:

sudo nano /etc/vsftpd/vsftpd.conf

Find rsa_cert_file og rsa_private_key_file direktiverne, ændre deres værdier til pam -filstien, og indstil 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 andet er angivet, bruger FTP-serveren kun TLS til at oprette sikre forbindelser.

Genstart vsftpd-tjenesten

Når du er færdig med at redigere, skal vsftpd-konfigurationsfilen (ekskl. Kommentarer) se sådan ud:

/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

Gem filen og genstart vsftpd-tjenesten, så ændringerne træder i kraft:

sudo systemctl restart vsftpd

Åbning af firewall

30000-31000 følgende kommandoer for at åbne port 21 (FTP-kommandoport), port 20 (FTP-dataport) og 30000-31000 (passiv 30000-31000 ):

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

Genindlæs firewallreglerne ved at skrive:

firewall-cmd --reload

Oprettelse af en FTP-bruger

For at teste vores FTP-server opretter vi en ny bruger.

  • Hvis du allerede har en bruger, som du vil give FTP-adgang, skal du springe over det 1. trin. Hvis du angiver allow_writeable_chroot=YES i din konfigurationsfil, skal du springe over det 3. trin.
  1. Opret en ny bruger ved navn newftpuser :

    sudo adduser newftpuser

    Derefter skal du indstille brugeradgangskoden:

    sudo passwd newftpuser

    Føj brugeren til listen over tilladte FTP-brugere:

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

    Opret FTP-katalogtræet, og indstil de korrekte tilladelser:

    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 det foregående afsnit vil brugeren være i stand til at uploade sine filer til ftp/upload biblioteket.

På dette tidspunkt er din FTP-server fuldt funktionsdygtig, og du skal være i stand til at oprette forbindelse til din server med enhver FTP-klient, der kan konfigureres til at bruge TLS-kryptering såsom FileZilla.

Deaktiver Shell Access

Ved oprettelse af en bruger, hvis ikke eksplicit specificeret, vil brugeren som standard have SSH-adgang til serveren.

For at deaktivere shell-adgang vil vi oprette en ny shell, der blot udskriver en meddelelse, der fortæller brugeren, at deres konto kun er begrænset til FTP-adgang.

Kør følgende kommandoer for at oprette /bin/ftponly shell og gøre det eksekverbart:

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

Føj den nye skal til listen over gyldige skaller i filen /etc/shells :

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

Skift brugerskal til /bin/ftponly :

sudo usermod newftpuser -s /bin/ftponly

Brug den samme kommando til at ændre shell for andre brugere, du kun vil give FTP-adgang.

Konklusion

I denne tutorial lærte du, hvordan du installerer og konfigurerer en sikker og hurtig FTP-server på dit CentOS 7-system.

ftp centos