Linux

Hvordan sette opp FTP-server med VSFTPD på Ubuntu 20.04

Hvordan sette opp FTP-server med VSFTPD på Ubuntu 20.04

Denne artikkelen beskriver hvordan du installerer og konfigurerer en FTP-server på Ubuntu 20.04 som du bruker til å dele filer mellom enhetene dine.

FTP (File Transfer Protocol) er en standard nettverksprotokoll som brukes til å overføre filer til og fra et eksternt nettverk. Det er flere åpen kildekode FTP-servere tilgjengelig for Linux. De mest kjente og mest brukte er PureFTPd, ProFTPD og vsftpd . Vi installerer vsftpd (Very Secure Ftp Daemon), en stabil, sikker og rask FTP-server. Vi vil også vise deg hvordan du konfigurerer serveren for å begrense brukere til hjemmekatalogen og kryptere hele overføringen med SSL / TLS.

Selv om FTP er en veldig populær protokoll, bør du bruke SCP eller SFTP for mer sikker og raskere dataoverføring .

Installere vsftpd på Ubuntu 20.04 #

Vsftpd-pakken er tilgjengelig i Ubuntu-repositoriene. For å installere det, utfør følgende kommandoer:

sudo apt oppdateringsudo apt installere vsftpd

FTP-tjenesten starter automatisk når installasjonsprosessen er fullført. For å bekrefte det, skriv ut tjenestestatus:

sudo systemctl status vsftpd

Utgangen skal vise at vsftpd-tjenesten er aktiv og kjører:

● vsftpd.tjeneste - vsftpd FTP-server Lastet: lastet (/ lib / systemd / system / vsftpd.service; aktivert; leverandørinnstilling: aktivert) Aktiv: aktiv (kjører) siden ti 2021-03-02 15:17:22 UTC; For 3 sekunder siden .. 

Konfigurere vsftpd #

Vsftpd-serverkonfigurasjonen er lagret i / etc / vsftpd.konf fil.

De fleste serverinnstillingene er godt dokumentert inne i filen. For alle tilgjengelige alternativer, besøk vsftpd-dokumentasjonssiden.

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

Start med å åpne vsftpd-konfigurasjonsfilen:

sudo nano / etc / vsftpd.konf

1. FTP-tilgang #

Vi tillater tilgang til FTP-serveren bare til de lokale brukerne. Søk etter anonym_enable og local_enable retningslinjer og bekrefte at konfigurasjonen samsvarer med linjene nedenfor:

/ etc / vsftpd.konf
anonymous_enable = NO local_enable = JA 

2. Aktiverer opplasting #

Finn og fjern merking av skriv_aktivere direktivet for å tillate filsystemendringer, for eksempel å laste opp og fjerne filer:

/ etc / vsftpd.konf
write_enable = JA 

3. Chroot fengsel #

For å forhindre lokale FTP-brukere å få tilgang til filer utenfor hjemmekatalogene, må du fjerne kommentarene fra begynnelsen av chroot_local_user:

/ etc / vsftpd.konf
chroot_local_user = JA 

Av sikkerhetsgrunner vil chft vsftpd av sikkerhetsgrunner nekte å laste opp filer hvis katalogen som brukerne er låst i er skrivbar.

Bruk en av løsningene nedenfor for å tillate opplasting når chroot er aktivert:

4. Passive FTP-tilkoblinger #

Som standard bruker vsftpd aktiv modus. For å bruke passiv modus, angi minimums- og maksimumsområde for porter:

/ etc / vsftpd.konf
pasv_min_port = 30000 pasv_max_port = 31000 

Du kan bruke hvilken som helst port for passive FTP-tilkoblinger. Når passiv modus er aktivert, åpner FTP-klienten en forbindelse til serveren på en tilfeldig port i det området du har valgt.

5. Begrensning av brukerinnlogging #

Du kan konfigurere vsftpd slik at bare bestemte brukere kan logge på. For å gjøre det, legg til følgende linjer på slutten av filen:

/ etc / vsftpd.konf
userlist_enable = JA userlist_file = / etc / vsftpd.user_list userlist_deny = NEI 

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

6. Sikre overføringer med SSL / TLS #

For å kryptere FTP-overføringene med SSL / TLS, må du ha et SSL-sertifikat og konfigurere FTP-serveren for å bruke det.

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

Hvis du har et domene eller underdomenet som peker på FTP-serverens IP-adresse, kan du raskt generere et gratis Let's Encrypt SSL-sertifikat.

Vi genererer en 2048-bit privat nøkkel og selvsignert SSL-sertifikat som vil være gyldig i ti år:

sudo openssl req -x509 -noder -dager 3650 -nøkkel rsa: 2048 -keyout / etc / ssl / private / vsftpd.pem -out / etc / ssl / private / vsftpd.pem

Både den private nøkkelen og sertifikatet lagres i samme fil.

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

sudo nano / etc / vsftpd.konf

Finn rsa_cert_file og rsa_private_key_file direktiver, endre verdiene til pam filbane og sett inn ssl_enable direktiv til JA:

/ etc / vsftpd.konf
rsa_cert_file = / etc / ssl / private / vsftpd.pem rsa_private_key_file = / etc / ssl / private / vsftpd.pem ssl_enable = JA 

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

Start vsftpd-tjenesten på nytt

Når du er ferdig med å redigere, bør vsftpd-konfigurasjonsfilen (unntatt kommentarer) se slik ut:

/ etc / vsftpd.konf
listen = NO listen_ipv6 = JA anonym_enable = NEI local_enable = JA write_enable = JA dirmessage_enable = JA use_localtime = JA xferlog_enable = JA connect_from_port_20 = JA chroot_local_user = JA secure_chroot_dir = / var / run / vsftpd / service privat / 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 = NEI 

Lagre filen og start vsftpd-tjenesten for at endringene skal tre i kraft:

sudo systemctl starter vsftpd på nytt

Åpne brannmuren #

Hvis du kjører en UFW-brannmur, må du tillate FTP-trafikk.

Åpne port 21 (FTP-kommandoport), port 20 (FTP-dataport), og 30000-31000 (Passive ports range), kjør følgende kommandoer:

sudo ufw tillate 20: 21 / tcpsudo ufw tillate 30000: 31000 / tcp

For å unngå å bli låst ut, må du sørge for at porten er 22 er åpen:

sudo ufw tillate OpenSSH

Last UFW-reglene på nytt ved å deaktivere og aktivere UFW:

sudo ufw deaktiveresudo ufw aktivere

Slik verifiserer du endringene:

sudo ufw status
Status: aktiv til handling Fra - ------ ---- 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) 

Opprette FTP bruker #

For å teste FTP-serveren, oppretter vi en ny bruker.

  1. Opprett en ny bruker som heter newftpuser:

    sudo adduser newftpuser
  2. Legg til brukeren i den tillatte FTP-brukerlisten:

    ekko "newftpuser" | sudo tee -a / etc / vsftpd.brukerliste
  3. Opprett FTP-katalogtreet og angi riktige tillatelser:

    sudo mkdir -p / home / newftpuser / ftp / uploadsudo chmod 550 / home / newftpuser / ftpsudo chmod 750 / home / newftpuser / ftp / uploadsudo chown -R newftpuser: / home / newftpuser / ftp

    Som diskutert i forrige avsnitt, vil brukeren kunne laste opp filene til ftp / opplasting katalog.

På dette tidspunktet er FTP-serveren din fullt funksjonell. Du skal kunne koble til serveren ved hjelp av hvilken som helst FTP-klient som kan konfigureres til å bruke TLS-kryptering, for eksempel FileZilla .

Deaktivering av Shell Access #

Som standard vil brukeren ha SSH-tilgang til serveren når den oppretter en bruker, hvis ikke eksplisitt spesifisert. For å deaktivere skalltilgang, opprett et nytt skall som skriver ut en melding som forteller brukeren at kontoen deres er begrenset til FTP-tilgang.

Kjør følgende kommandoer for å opprette / bin / ftponly fil og gjør den kjørbar:

ekko -e '#!/ bin / sh \ necho "Denne kontoen er begrenset til FTP-tilgang."'| sudo tee -a / bin / ftponlysudo chmod a + x / bin / ftponly

Legg det nye skallet til listen over gyldige skall i / etc / skjell fil:

ekko "/ bin / ftponly" | sudo tee -a / etc / skjell

Endre brukerskallet til / bin / ftponly:

sudo usermod newftpuser -s / bin / ftponly

Du kan bruke den samme kommandoen til å endre skallet til alle brukere du bare vil gi FTP-tilgang.

Konklusjon #

Vi har vist deg hvordan du installerer og konfigurerer en sikker og rask FTP-server på Ubuntu 20.04-systemet.

Hvis du har spørsmål eller tilbakemeldinger, er du velkommen til å legge igjen en kommentar.

Mus Hvordan reversere rulle retning for mus og styreplater i Windows 10
Hvordan reversere rulle retning for mus og styreplater i Windows 10
Mus og Pekeplates gjør ikke bare databehandling enkelt, men mer effektivt og mindre tidkrevende. Vi kan ikke forestille oss et liv uten disse enhetene...
Mus Hvordan endre musepekeren og markørstørrelse, farge og skjema på Windows 10
Hvordan endre musepekeren og markørstørrelse, farge og skjema på Windows 10
Musepekeren og markøren i Windows 10 er veldig viktige aspekter ved operativsystemet. Dette kan sies også for andre operativsystemer, så i sannhet er ...
Gratis og åpen kildekode-spillmotorer for utvikling av Linux-spill
Denne artikkelen vil dekke en liste over gratis og open source-spillmotorer som kan brukes til å utvikle 2D- og 3D-spill på Linux. Det er mange slike ...