Een FTP-server (vsftpd) installeren op Ubuntu 18.04 / 18.10 / 19.04 / 19.10

geplaatst in: Articles | 0

voordat u begint …

Het is verrassend hoeveel webontwikkelaars nog steeds niet op de hoogte zijn van SFTP en de voordelen ten opzichte van FTP / FTPS. SFTP wordt geleverd met Linux Server voorgeïnstalleerd en werkt net als normale FTP, maar is veiliger en minder gedoe om op te zetten. Als uw FTP client SFTP ondersteunt, moet u het gebruiken!

  • SFTP configureren voor een webserver document root

installeer vsftpd

laten we beginnen met het bijwerken van de pakketlijsten en het installeren van vsftpd op Ubuntu 18.04 / 18.10 / 19.04 / 19.10.,

hieronder hebben we twee commando ‘ s gescheiden door &&. Het eerste commando zal de pakketlijsten bijwerken om er zeker van te zijn dat je de laatste versie en afhankelijkheden voor vsftpd krijgt. Het tweede commando zal dan vsftpd downloaden en installeren. Druk op y en ENTER wanneer gevraagd wordt door te gaan.

sudo apt update && sudo apt install vsftpd

eenmaal geïnstalleerd, controleer de status van vsftpd

sudo service vsftpd status

hierboven kunnen we zien dat onze FTP-server nu actief is.,

Firewall configureren

Als u dit nog niet hebt gedaan, wordt aanbevolen dat u de ufw firewall voor Ubuntu inschakelt 18.04 / 18.10 / 19.04 / 19.10. Voordat u ufw firewall inschakelt, moet u ervoor zorgen dat u een regel voor SSH toevoegt, anders kunt u buitengesloten worden van uw server als u op afstand verbonden bent. Als u geen firewall wilt instellen, ga dan naar stap 3.

sudo ufw allow OpenSSH

laten we poorten 20 en 21 openen voor FTP, en poorten 40000-50000 voor passieve FTP. We openen ook poort 990 voor TLS, die we later zullen opzetten.,

sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 40000:50000/tcp
sudo ufw allow 990/tcp

activeer nu de firewall als deze nog niet aanwezig is. Druk op y en ENTER indien gewaarschuwd wordt voor het verstoren van de SSH-verbinding.

sudo ufw enable

om de status van de firewall te controleren, voer je uit:

sudo ufw status

als de firewall draait, zie je Status: active en de firewallregels die we zojuist hebben toegevoegd.

maak FTP gebruiker

We zullen nu een nieuwe gebruiker maken die we zullen gebruiken om in te loggen op FTP., In dit voorbeeld zullen we een nieuwe gebruiker aanmaken met de naam ftpuser.

sudo adduser ftpuser

Genereer een sterk wachtwoord en houd het veilig.

u kan ook gevraagd worden om een aantal contactgegevens in te voeren. U kunt gewoon op ENTER drukken op elk van deze.

Als u alleen wilt dat ftpuser via FTP inlogt, moet u hun SSH-toegang uitschakelen door hun gebruikersnaam op een zwarte lijst te zetten in het SSH-configuratiebestand. Ga anders naar stap 4.

Open de SSH-configuratie in nano.,

sudo nano /etc/ssh/sshd_config

voeg het volgende toe aan de onderkant van het bestand ter vervanging van ftpuser met de gebruiker die u SSH en SFTP toegang wilt weigeren. U kunt hier meerdere gebruikers toevoegen, gescheiden door een enkele spatie. (Om in nano te plakken, drukt u op de rechter muisknop).

/etc/ssh/sshd_config
DenyUsers ftpuser

om bestand op te slaan en af te sluiten, drukt u op CTRL + X, drukt u op Y en drukt u vervolgens op ENTER.

Herstart de SSH-service.,

sudo service sshd restart

mapmachtigingen

u moet nu beslissen waar deze nieuwe FTP-gebruiker bestanden mag bekijken en uploaden.

vsftpd gebruikt chroot jails om gebruikers te beperken tot hun persoonlijke mappen en vereist dat de persoonlijke map niet beschrijfbaar is. Om die reden moeten we een aantal mappen en machtigingen instellen.

Als u van plan bent dit FTP gebruikersaccount te gebruiken om bestanden naar een webserver te uploaden, ga dan verder met stap 4.1. Als je alleen maar wilt uploaden naar een persoonlijke map, ga dan naar stap 4.2.

4.1., Upload naar een webserver

in veel gevallen wilt u bestanden kunnen uploaden naar de hoofdmap van het document op de webserver.

Als u hier een vorige gids hebt gevolgd voor het instellen van meerdere domeinen, kan uw document root zich ergens bevinden als /var/www/test1.com/public_html – in dat geval moet u de persoonlijke map instellen voor ftpuser naar de map boven het document root: /var/www/test1.com (vervang test1.com voor uw eigen domein).,

als u niet meerdere domeinen gebruikt, nemen we aan dat u de standaard document root /var/www/html gebruikt voor zowel Apache als Nginx in Ubuntu 18.04 / 18.10 / 19.04 / 19.10. In dit scenario moeten we /var/www/ de home directory maken voor onze gebruiker ftpuser.

laten we de map boven de hoofdmap van het document instellen als de persoonlijke map voor ftpuser.

sudo usermod -d /var/www ftpuser

Hiermee kan onze FTP-gebruiker bestanden schrijven en wijzigen in de hoofdmap van het document.,

sudo chown ftpuser:ftpuser /var/www/html

ga nu naar stap 5 om vsftpd te configureren.

4.2 Upload naar een persoonlijke map

Als u in plaats daarvan wilt dat deze gebruiker bestanden uploadt naar de persoonlijke map, maak dan een nieuwe map met de naam ftp in de persoonlijke map van de gebruiker en een andere binnen de naam files. In dit voorbeeld hieronder wordt onze gebruiker ftpusergenoemd.

sudo mkdir /home/ftpuser/ftp

Stel de eigendom van de ftp map in op no nobody:nogroup.,

sudo chown nobody:nogroup /home/ftpuser/ftp

stel rechten in voor de ftp map met behulp van chmod zodat het voor niemand beschrijfbaar is, anders zal vsftpd u niet toestaan om in te loggen. a-w betekent a = all/everyone - = remove w = schrijfrechten, dus verwijder schrijfrechten voor iedereen.

sudo chmod a-w /home/ftpuser/ftp

vervolgens maken we een nieuwe map aan binnen /ftp waar de gebruiker bestanden kan bekijken en uploaden.,

sudo mkdir /home/ftpuser/ftp/files

wijs het eigendom van deze map toe aan onze nieuwe FTP-gebruiker anders zullen ze er niet naar kunnen schrijven.

sudo chown ftpuser:ftpuser /home/ftpuser/ftp/files

Configure vsftpd

Er zijn een paar wijzigingen die we moeten aanbrengen in het vsftpd configuratiebestand voordat u FTP op Ubuntu kunt gebruiken 18.04 / 18.10 / 19.04 / 19.10.

Maak een back-up voordat u het configuratiebestand bewerkt.

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak

open nu het configuratiebestand in nano editor.,

sudo nano /etc/vsftpd.conf

Dit is een vrij groot bestand, maar het is meestal gevuld met opmerkingen om je verder te helpen.

u moet het bestand omlaag gaan en ervoor zorgen dat de Instellingen overeenkomen met die hieronder. Opmerking: U kunt in nano zoeken met CTRL +

zoeken naar #write_enable=YES en het commentaar verwijderen door het # – teken te verwijderen. Hierdoor kunnen FTP-gebruikers bestanden naar de server schrijven.

etc / vsftpd.,conf
write_enable=YES

zoek naar #chroot_local_user=YES en verwijder commentaar door het # – teken te verwijderen. Dit voorkomt dat FTP-gebruikers buiten hun eigen map kunnen browsen.

etc / vsftpd.conf
chroot_local_user=YES

zoek naar #local_umask=022 en verwijder het commentaar door het # – teken te verwijderen. Dit geeft geüploade bestanden en mappen de juiste rechten.

etc / vsftpd.conf
local_umask=022

We moeten nu enkele richtlijnen toevoegen die niet in het bestand bestaan.,

omdat Linux geen bestanden toont die beginnen met een punt, zullen bestanden als .htaccess niet zichtbaar zijn in FTP. Dit kan een probleem zijn als u Apache wilt gebruiken en wilt werken met .htaccess.

om vsftpd te dwingen om bestandsnamen te tonen die beginnen met een punt, plakt u het volgende onderaan het bestand. (Om in nano te plakken, druk je op de rechter muisknop)

etc / vsftpd.conf
force_dot_files=YES

ten slotte, laten we enkele poortbereiken toevoegen voor passieve FTP om er zeker van te zijn dat er voldoende verbindingen beschikbaar zijn. Plak het volgende onderaan het bestand., (Om in nano te plakken, druk je op de rechter muisknop)

etc / vsftpd.conf
pasv_min_port=40000pasv_max_port=50000

Als u stap 4.2 eerder hebt gevolgd en alleen wilt dat deze gebruiker bestanden uploadt naar de persoonlijke map, moeten we vsftpd vertellen dat de local_root de /ftp map is die we eerder hebben aangemaakt.

voeg deze twee regels niet toe als u wilt dat de gebruiker uploadt naar de root van het webdocument!

etc / vsftpd.conf
user_sub_token=$USERlocal_root=/home/$USER/ftp

We zijn klaar met vsftpd.conf voor het moment, maar zal terugkeren in latere stappen om beveiliging en SSL in te stellen.,

om bestand op te slaan en af te sluiten, drukt u op CTRL + X, drukt u op Y en drukt u vervolgens op ENTER.

herstart vsftpd.

sudo systemctl restart vsftpd

Test FTP

We kunnen nu vsftpd testen om te zien of we in kunnen loggen als de gebruiker die we eerder aangemaakt hebben. Wij raden FileZilla aan, die werkt op Windows, Mac en Linux.

voer het IP-adres van uw server, uw FTP-gebruikersnaam en wachtwoord in dat u eerder hebt aangemaakt en klik op Quickconnect.,

hierboven kunnen we zien dat we succesvol verbonden zijn en de web root directory html wordt weergegeven, hoewel dit op uw server anders kan zijn.

probeer mappen en bestanden te uploaden, maken en bewerken binnen de webmap om er zeker van te zijn dat de rechten correct werken.

u zult merken dat we een waarschuwing hebben in FileZilla ” Status: onveilige server, het ondersteunt geen FTP over TLS.”Het wordt ten zeerste aanbevolen dat u nu TLS zo configureert dat inloggegevens en verkeer worden versleuteld via de FTP-verbinding.,

als je problemen hebt met het inloggen op de FTP server, probeer dan het vsftpd log te controleren. Om de laatste 200 items te bekijken met tail:

sudo tail /var/log/vsftpd.log -n 200

beveiligde FTP met TLS (optioneel)

is het belangrijk om een paar dingen in gedachten te houden bij het gebruik van FTP – het is standaard niet versleuteld, wat betekent dat uw referenties en bestanden die u verzendt kwetsbaar zijn voor onderschepping. Om dit aan te pakken moet je verbinding maken met vsftpd met behulp van FTPS (FTP over SSL/TLS).

laten we beginnen met het aanmaken van een nieuw certificaat met het openssl Gereedschap.,

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

u wordt gevraagd om enkele details in te voeren, zoals land, enz. Je hoeft deze niet in te vullen. U kunt gewoon op ENTER drukken voor standaardwaarden.

nu uw persoonlijke sleutel is aangemaakt, zijn er een paar wijzigingen die we moeten aanbrengen in het vsftpd configuratie bestand.

Open het configuratiebestand in nano editor.

sudo nano /etc/vsftpd.conf

Zoek de volgende regel: (Opmerking: U kunt zoeken in nano met CTRL + )

etc/vsftpd.,conf
ssl_enable=NO

verander het in:

etc/vsftpd.conf
ssl_enable=YES

plak het volgende eronder.

etc / vsftpd.conf

Bestand Opslaan en afsluiten (druk op CTRL + X, druk op Y en druk vervolgens op ENTER).

herstart vsftpd.

sudo systemctl restart vsftpd

TLS testen met FileZilla

We kunnen nu TLS testen. Wij raden FileZilla aan, die werkt op Windows, Mac en Linux.,

voer het IP-adres van uw server, uw FTP-gebruikersnaam en wachtwoord in dat u eerder hebt aangemaakt en klik op Quickconnect.

u kunt een onbekende certificaatwaarschuwing te zien krijgen. Klik op dit certificaat altijd vertrouwen in toekomstige sessies en klik op OK.

Als u verbonden bent via TLS, zal het u vertellen in het verbindingslogboek. U ziet ook een hangslot in de rechterbenedenhoek.

u bent klaar!,

4.79 (42 stemmen)

Laat me weten of dit geholpen heeft. Volg me op Twitter, Facebook en YouTube, of 🍊 koop een smoothie voor me.

p. s. Ik verhoogde mijn AdSense-omzet met 68% met behulp van AI 🤖. Lees mijn ezoic beoordeling om uit te vinden hoe.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *