Android

Sådan opsættes ftp-server med vsftpd på ubuntu 18.04

installering af ubuntu server 11 på dansk

installering af ubuntu server 11 på dansk

Indholdsfortegnelse:

Anonim

FTP (File Transfer Protocol) er en standard netværksprotokol, der bruges til at overføre filer til og fra et fjernnetværk. Brug SCP eller SFTP til sikrere og hurtigere dataoverførsler.

Der er mange 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). 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.

Selvom denne tutorial er skrevet til Ubuntu 18.04, gælder de samme instruktioner for Ubuntu 16.04 og enhver Debian-baseret distribution, inklusive Debian, Linux Mint og Elementary OS.

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å Ubuntu 18.04

Vsftpd-pakken er tilgængelig i Ubuntu-oplagrene. For at installere det skal du blot køre følgende kommandoer:

sudo apt update sudo apt install vsftpd

vsftpd-tjenesten starter automatisk, når installationen er afsluttet. Bekræft det ved at udskrive servicestatus:

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 server Loaded: loaded (/lib/systemd/system/vsftpd.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2018-10-15 03:38:52 PDT; 10min ago Main PID: 2616 (vsftpd) Tasks: 1 (limit: 2319) CGroup: /system.slice/vsftpd.service `-2616 /usr/sbin/vsftpd /etc/vsftpd.conf

Konfiguration af vsftpd

Vsftpd-serveren kan konfigureres ved at redigere filen /etc/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 gennemgår vi nogle vigtige indstillinger, der er nødvendige for at konfigurere en sikker vsftpd-installation.

Start med at åbne vsftpd-konfigurationsfilen:

sudo nano /etc/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.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.conf

write_enable=YES

3. Chroot-fængsel

For at forhindre FTP-brugere i at få adgang til filer uden for deres hjemmekataloger, fjerner du chroot indstillingen.

/etc/vsftpd.conf

chroot_local_user=YES

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

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.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.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.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 skal du tilføje følgende linjer i slutningen af ​​filen:

/etc/vsftpd.conf

userlist_enable=YES userlist_file=/etc/vsftpd.user_list userlist_deny=NO

Når denne indstilling er aktiveret, skal du eksplicit specificere, hvilke brugere der er i stand til at logge på 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.

Vi genererer 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/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem

Når SSL-certifikatet er oprettet, skal du åbne vsftpd-konfigurationsfilen:

sudo nano /etc/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.conf

rsa_cert_file=/etc/ssl/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/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.conf

listen=NO listen_ipv6=YES anonymous_enable=NO local_enable=YES write_enable=YES dirmessage_enable=YES use_localtime=YES xferlog_enable=YES connect_from_port_20=YES chroot_local_user=YES secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd rsa_cert_file=/etc/ssl/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem ssl_enable=YES user_sub_token=$USER local_root=/home/$USER/ftp pasv_min_port=30000 pasv_max_port=31000 userlist_enable=YES userlist_file=/etc/vsftpd.user_list userlist_deny=NO

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

sudo systemctl restart vsftpd

Åbning af firewall

For at åbne port 21 (FTP-kommandoport), port 20 (FTP-dataport) og 30000-31000 (passiv 30000-31000 ) skal du køre følgende kommandoer:

sudo ufw allow 20:21/tcp sudo ufw allow 30000:31000/tcp

Åbn port 22 at undgå at være låst:

sudo ufw allow OpenSSH

Genindlæs UFW-reglerne igen ved at deaktivere og genaktivere UFW:

sudo ufw disable sudo ufw enable

Sådan bekræftes ændringerne:

sudo ufw status

Status: active To Action From -- ------ ---- 20:21/tcp ALLOW Anywhere 30000:31000/tcp ALLOW Anywhere OpenSSH ALLOW Anywhere 20:21/tcp (v6) ALLOW Anywhere (v6) 30000:31000/tcp (v6) ALLOW Anywhere (v6) OpenSSH (v6) ALLOW Anywhere (v6)

Oprettelse af 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

    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 ved hjælp af en hvilken som helst 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.

Opret shell /bin/ftponly shell og gør 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 alle 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 Ubuntu 18.04-system.

ftp ubuntu