Linux

Sådan opsættes FTP-server med VSFTPD på Ubuntu 20.04

Sådan opsættes FTP-server med VSFTPD på Ubuntu 20.04

Denne artikel beskriver, hvordan du installerer og konfigurerer en FTP-server på Ubuntu 20.04, som du bruger til at dele filer mellem dine enheder.

FTP (File Transfer Protocol) er en standard netværksprotokol, der bruges til at overføre filer til og fra et fjernt netværk. Der er flere open source FTP-servere tilgængelige til Linux. De mest kendte og mest udbredte er PureFTPd, ProFTPD og vsftpd . Vi installerer vsftpd (Very Secure Ftp Daemon), en stabil, sikker og hurtig FTP-server. Vi viser dig også, hvordan du konfigurerer serveren til at begrænse brugerne til deres hjemmekatalog og kryptere hele transmissionen med SSL / TLS.

Selvom FTP er en meget populær protokol, skal du bruge SCP eller SFTP for mere sikker og hurtigere dataoverførsel .

Installation af vsftpd på Ubuntu 20.04 #

VSftpd-pakken er tilgængelig i Ubuntu-arkiverne. For at installere det skal du udføre følgende kommandoer:

sudo apt opdateringsudo apt installer vsftpd

FTP-tjenesten starter automatisk, når installationen er afsluttet. For at bekræfte det skal du udskrive servicestatus:

sudo systemctl status vsftpd

Outputtet skal vise, at vsftpd-tjenesten er aktiv og kører:

● vsftpd.service - vsftpd FTP-server Indlæst: indlæst (/ lib / systemd / system / vsftpd.service; aktiveret; forudindstilling af leverandør: aktiveret) Aktiv: aktiv (kører) siden Tir 2021-03-02 15:17:22 UTC; 3s siden… 

Konfiguration af vsftpd #

Vsftpd-serverkonfigurationen er gemt i / etc / vsftpd.konf fil.

De fleste af serverindstillingerne er veldokumenterede inde i filen. For alle tilgængelige indstillinger skal du besøge siden med vsftpd-dokumentation.

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.konf

1. FTP-adgang #

Vi giver kun adgang til FTP-serveren til de lokale brugere. Søg efter anonym_enable og local_enable direktiver og kontrollere, at din konfiguration stemmer overens med nedenstående linjer:

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

2. Aktivering af uploads #

Find og fjern kommentar til skriv_aktiver direktiv, der tillader filsystemændringer, såsom upload og fjernelse af filer:

/ etc / vsftpd.konf
write_enable = JA 

3. Chroot fængsel #

For at forhindre lokale FTP-brugere i at få adgang til filer uden for deres hjemmekataloger skal du fjerne kommentar fra lne startende med chroot_local_user:

/ etc / vsftpd.konf
chroot_local_user = JA 

Af sikkerhedsmæssige årsager vil vsftpd af sikkerhedsmæssige årsager nægte at uploade filer, hvis det bibliotek, som brugerne er låst i, kan skrives.

Brug en af ​​nedenstående løsninger til at tillade uploads, når chroot er aktiveret:

4. Passive FTP-forbindelser #

Som standard bruger vsftpd aktiv tilstand. For at bruge passiv tilstand skal du indstille minimums- og maksimumområdet for porte:

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

Du kan bruge enhver port til passive FTP-forbindelser. Når den passive tilstand er aktiveret, åbner FTP-klienten en forbindelse til serveren på en tilfældig port i det valgte område.

5. Begrænsning af bruger login #

Du kan konfigurere vsftpd, så kun bestemte brugere kan logge ind. For at gøre det skal du tilføje følgende linjer i slutningen af ​​filen:

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

Når denne indstilling er aktiveret, skal du eksplicit angive, hvilke brugere der kan logge på ved at føje brugernavne til / etc / vsftpd.bruger_liste fil (en bruger pr. linje).

6. Sikring af transmissioner med SSL / TLS #

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

Du kan bruge et eksisterende SSL-certifikat underskrevet af en betroet certifikatmyndighed eller oprette et selvsigneret certifikat.

Hvis du har et domæne eller underdomæne, der peger på FTP-serverens IP-adresse, kan du hurtigt generere et gratis Lad os kryptere SSL-certifikat.

Vi genererer en 2048-bit privat nøgle og selvsigneret SSL-certifikat, der er gyldigt i ti år:

sudo openssl req -x509 -noder -dage 3650 -nykey rsa: 2048 -keyout / etc / ssl / private / vsftpd.pem -out / etc / ssl / private / vsftpd.pem

Både den private nøgle og certifikatet gemmes i den samme fil.

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

sudo nano / etc / vsftpd.konf

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

Genstart vsftpd Service #

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

/ etc / vsftpd.konf
lyt = NEJ listen_ipv6 = JA anonym_enable = NEJ 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_dk 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 = NEJ 

Gem filen og genstart vsftpd-tjenesten for at ændringer kan træde i kraft:

sudo systemctl genstart vsftpd

Åbning af Firewall #

Hvis du kører en UFW-firewall, skal du tillade FTP-trafik.

For at åbne port 21 (FTP-kommandoport), port 20 (FTP-dataport) og 30000-31000 (Passive ports rækkevidde), kør følgende kommandoer:

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

For at undgå at blive låst ud, skal du sørge for port 22 er åben:

sudo ufw tillader OpenSSH

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

sudo ufw deaktiversudo ufw aktivere

Sådan verificeres de kørte ændringer:

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) 

Oprettelse af FTP-brugernr

For at teste FTP-serveren opretter vi en ny bruger.

  1. Opret en ny bruger med navnet newftpuser:

    sudo adduser newftpuser
  2. Føj brugeren til den tilladte FTP-brugerliste:

    ekko "newftpuser" | sudo tee -a / etc / vsftpd.bruger_liste
  3. Opret FTP-katalogtræet, og angiv de rigtige tilladelser:

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

På dette tidspunkt er din FTP-server fuldt funktionel. Du skal være i stand til at oprette forbindelse til serveren ved hjælp af enhver FTP-klient, der kan konfigureres til at bruge TLS-kryptering, såsom FileZilla .

Deaktivering af Shell Access #

Når der oprettes en bruger, hvis ikke eksplicit angivet, har brugeren som standard SSH-adgang til serveren. For at deaktivere shelladgang skal du oprette en ny shell, der udskriver en besked, der fortæller brugeren, at deres konto kun er begrænset til FTP-adgang.

Kør følgende kommandoer for at oprette / bin / ftponly fil og gør den eksekverbar:

ekko -e '#!/ bin / sh \ necho "Denne konto er kun begrænset til FTP-adgang."'| sudo tee -a / bin / ftponlysudo chmod a + x / bin / ftponly

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

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

Skift bruger shell til / bin / ftponly:

sudo usermod newftpuser -s / bin / ftponly

Du kan bruge den samme kommando til at ændre shell på alle brugere, du kun vil give FTP-adgang.

Konklusion #

Vi har vist dig, hvordan du installerer og konfigurerer en sikker og hurtig FTP-server på din Ubuntu 20.04-systemet.

Hvis du har spørgsmål eller feedback, er du velkommen til at efterlade en kommentar.

Sådan registreres og streames din gaming-session på Linux
Tidligere blev spil kun betragtet som en hobby, men med tiden oplevede spilindustrien en enorm vækst med hensyn til teknologi og antallet af spillere....
Bedste spil at spille med håndsporing
Oculus Quest introducerede for nylig den gode idé om håndsporing uden controllere. Med et stadigt stigende antal spil og aktiviteter, der udfører supp...
Sådan vises OSD-overlay i fuldskærms Linux-apps og -spil
Afspilning af fuldskærmsspil eller brug af apps i distraktionsfri fuldskærmstilstand kan afskære dig fra relevante systemoplysninger, der er synlige i...