Linux

Hoe FTP-server in te stellen met VSFTPD op Ubuntu 20.04

Hoe FTP-server in te stellen met VSFTPD op Ubuntu 20.04

Dit artikel beschrijft hoe u een FTP-server installeert en configureert op Ubuntu 20.04 die u gebruikt om bestanden te delen tussen uw apparaten.

FTP (File Transfer Protocol) is een standaard netwerkprotocol dat wordt gebruikt om bestanden van en naar een extern netwerk over te brengen. Er zijn verschillende open-source FTP-servers beschikbaar voor Linux. De meest bekende en meest gebruikte zijn PureFTPd , ProFTPD en vsftpd . We gaan vsftpd (Very Secure Ftp Daemon) installeren, een stabiele, veilige en snelle FTP-server. We zullen u ook laten zien hoe u de server configureert om gebruikers te beperken tot hun thuismap en de volledige verzending te coderen met SSL/TLS.

Hoewel FTP een zeer populair protocol is, moet u voor veiligere en snellere gegevensoverdracht SCP of SFTP gebruiken .

vsftpd installeren op Ubuntu 20.04 #

Het vsftpd-pakket is beschikbaar in de Ubuntu-repositories. Voer de volgende opdrachten uit om het te installeren:

sudo apt updatesudo apt install vsftpd

De ftp-service start automatisch zodra het installatieproces is voltooid. Om dit te verifiëren, drukt u de servicestatus af:

sudo systemctl status vsftpd

De uitvoer moet laten zien dat de vsftpd-service actief en actief is:

● vsftpd.service - vsftpd FTP-server Geladen: geladen (/lib/systemd/system/vsftpd.onderhoud; ingeschakeld; vooraf ingestelde leverancier: ingeschakeld) Actief: actief (actief) sinds di 2021-03-02 15:17:22 UTC; 3s geleden… 

vsftpd configureren #

De vsftpd-serverconfiguratie wordt opgeslagen in de /etc/vsftpd.conf het dossier.

De meeste serverinstellingen zijn goed gedocumenteerd in het bestand. Ga voor alle beschikbare opties naar de vsftpd-documentatiepagina.

In de volgende secties zullen we enkele belangrijke instellingen bespreken die nodig zijn om een ​​veilige vsftpd-installatie te configureren configure.

Begin met het openen van het vsftpd-configuratiebestand:

sudo nano /etc/vsftpd.conf

1. FTP-toegang #

We geven alleen de lokale gebruikers toegang tot de FTP-server. Zoek naar de anoniem_inschakelen en local_enable richtlijnen en controleer of uw configuratie overeenkomt met onderstaande regels:

/etc/vsftpd.conf
anoniem_enable=NEE local_enable=JA 

2. Uploaden inschakelen #

Zoek en verwijder commentaar op de write_enable richtlijn om wijzigingen in het bestandssysteem toe te staan, zoals het uploaden en verwijderen van bestanden:

/etc/vsftpd.conf
write_enable=JA 

3. Chroot-gevangenis #

Om te voorkomen dat lokale FTP-gebruikers toegang krijgen tot bestanden buiten hun homedirectory's, verwijdert u het commentaar van de lne die begint met chroot_local_user:

/etc/vsftpd.conf
chroot_local_user=JA 

Standaard, om veiligheidsredenen, wanneer chroot is ingeschakeld, zal vsftpd weigeren om bestanden te uploaden als de map waarin de gebruikers zijn vergrendeld schrijfbaar is.

Gebruik een van de onderstaande oplossingen om uploads toe te staan ​​wanneer chroot is ingeschakeld:

4. Passieve FTP-verbindingen #

Standaard gebruikt vsftpd de actieve modus. Stel het minimum- en maximumbereik van poorten in om de passieve modus te gebruiken:

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

U kunt elke poort gebruiken voor passieve FTP-verbindingen. Wanneer de passieve modus is ingeschakeld, opent de FTP-client een verbinding met de server op een willekeurige poort in het bereik dat u hebt gekozen.

5. Gebruikerslogin # beperken

U kunt vsftpd zo configureren dat alleen bepaalde gebruikers kunnen inloggen. Voeg hiervoor de volgende regels toe aan het einde van het bestand:

/etc/vsftpd.conf
userlist_enable=JA userlist_file=/etc/vsftpd.user_list userlist_deny=NEE 

Als deze optie is ingeschakeld, moet u expliciet specificeren welke gebruikers kunnen inloggen door de gebruikersnamen toe te voegen aan de /etc/vsftpd.gebruikers lijst bestand (één gebruiker per regel).

6. Verzendingen beveiligen met SSL/TLS #

Om de FTP-transmissies met SSL/TLS te versleutelen, moet u een SSL-certificaat hebben en de FTP-server configureren om het te gebruiken.

U kunt een bestaand SSL-certificaat gebruiken dat is ondertekend door een vertrouwde certificeringsinstantie of een zelfondertekend certificaat maken.

Als u een domein of subdomein heeft dat verwijst naar het IP-adres van de FTP-server, kunt u snel een gratis Let's Encrypt SSL-certificaat genereren.

We zullen een 2048-bits privésleutel en een zelfondertekend SSL-certificaat genereren dat tien jaar geldig is:

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

Zowel de privésleutel als het certificaat worden in hetzelfde bestand opgeslagen.

Zodra het SSL-certificaat is aangemaakt, opent u het vsftpd-configuratiebestand:

sudo nano /etc/vsftpd.conf

Vind de rsa_cert_file en rsa_private_key_file richtlijnen, verander hun waarden in de pam bestandspad en stel de ssl_enable richtlijn om JA:

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

Indien niet anders gespecificeerd, gebruikt de FTP-server alleen TLS om beveiligde verbindingen te maken.

Start de vsftpd-service opnieuw #

Als je klaar bent met bewerken, zou het vsftpd-configuratiebestand (exclusief opmerkingen) er ongeveer zo uit moeten zien:

/etc/vsftpd.conf
listen=GEEN listen_ipv6=JA anoniem_enable=GEEN 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/vsftpdet_vsftpdet_nl privé/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem ssl_enable=JA user_sub_token=$USER local_root=/home/$USER/ftp pasv_min_port=30000 pasv_max_port=31000 userlist_enable=JA userlist_file=/etc/vsftpd.user_list userlist_deny=NEE 

Sla het bestand op en start de vsftpd-service opnieuw om de wijzigingen door te voeren:

sudo systemctl herstart vsftpd

De firewall openen #

Als u een UFW-firewall gebruikt, moet u FTP-verkeer toestaan.

Poort openen 21 (FTP-opdrachtpoort), poort 20 (FTP-gegevenspoort), en 30000-31000 (Passief poortbereik), voer de volgende opdrachten uit:

sudo ufw toestaan ​​20:21/tcpsudo ufw 30000:31000/tcp toestaan

Zorg ervoor dat poort 22 is geopend:

sudo ufw laat OpenSSH toe

Laad de UFW-regels opnieuw door UFW uit en weer in te schakelen:

sudo ufw uitschakelensudo ufw inschakelen

Om te controleren of de wijzigingen worden uitgevoerd:

sudo ufw-status
Status: actief Tot actie Van -- ------ ---- 20:21/tcp Overal TOESTAAN 30000:31000/tcp Overal TOESTAAN OpenSSH Overal TOESTAAN 20:21/tcp (v6) Overal TOESTAAN (v6) 30000: 31000/tcp (v6) Overal TOESTAAN (v6) OpenSSH (v6) Overal TOESTAAN (v6) 

FTP-gebruiker maken #

Om de FTP-server te testen, zullen we een nieuwe gebruiker maken.

  1. Maak een nieuwe gebruiker met de naam newftpuser:

    sudo adduser newftpuser
  2. Voeg de gebruiker toe aan de lijst met toegestane FTP-gebruikers:

    echo "newftpuser" | sudo tee -a /etc/vsftpd.gebruikers lijst
  3. Maak de FTP-mapstructuur en stel de juiste machtigingen in:

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

    Zoals besproken in de vorige sectie, kan de gebruiker zijn bestanden uploaden naar de ftp/upload map.

Op dit moment is uw FTP-server volledig functioneel. U moet verbinding kunnen maken met de server met behulp van elke FTP-client die kan worden geconfigureerd om TLS-codering te gebruiken, zoals FileZilla .

Shell-toegang uitschakelen #

Standaard heeft de gebruiker bij het maken van een gebruiker, indien niet expliciet gespecificeerd, SSH-toegang tot de server. Om shell-toegang uit te schakelen, maakt u een nieuwe shell die een bericht afdrukt dat de gebruiker vertelt dat zijn account beperkt is tot alleen FTP-toegang.

Voer de volgende opdrachten uit om de . te maken /bin/ftponly bestand en maak het uitvoerbaar:

echo -e '#!/bin/sh\necho "Dit account is alleen beperkt tot FTP-toegang."' | sudo tee -a /bin/ftponlysudo chmod a+x /bin/ftponly

Voeg de nieuwe shell toe aan de lijst met geldige shells in de /etc/schelpen het dossier:

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

Verander de gebruikersshell in /bin/ftponly:

sudo usermod newftpuser -s /bin/ftponly

U kunt dezelfde opdracht gebruiken om de shell te wijzigen van alle gebruikers die u alleen FTP-toegang wilt geven.

Conclusie #

We hebben je laten zien hoe je een veilige en snelle FTP-server installeert en configureert op je Ubuntu 20.04 systeem.

Als je vragen of feedback hebt, laat dan gerust een reactie achter.

Top 5 Game Capture-kaarten
We hebben allemaal gezien en genoten van streaming gameplays op YouTube. PewDiePie, Jakesepticye en Markiplier zijn slechts enkele van de beste gamers...
Hoe een spel op Linux te ontwikkelen
Tien jaar geleden zouden niet veel Linux-gebruikers voorspellen dat hun favoriete besturingssysteem ooit een populair spelplatform voor commerciële vi...
Open source-poorten van commerciële game-engines
Gratis, open source en platformonafhankelijke game-engine-recreaties kunnen worden gebruikt om zowel oude als enkele van de vrij recente gametitels te...