Ubuntu FTP-server:
installatie en configuratie

Server aanbiedingen bekijken
ubuntu ftp-server tutorial

Volg de stappen in onze handige Ubuntu FTP-server tutorial

Om bestanden op een server op te slaan en daar ook weer te openen, werd in 1985 het op TCP/IP gebaseerde transportprotocol FTP (File Transfer Protocol) gedefinieerd in RFC 959. Het protocol staat op een applicatielaag en maakt het mogelijk om bestanden via de poorten 20 (clients) en 21 (server) uit te wisselen en te bewerken, en mappen aan te leggen, te bewerken en te lezen. Om deze client-server-structuur te gebruiken, dien je enkel in te loggen op een speciaal gebruikersaccount op de server.

Vooral voor webhosting zijn (beveiligde) FTP-servers daarom enorm populair. Met behulp van het transportprotocol en de passende client-software kun je de content van je project moeiteloos online uploaden en mapstructuren aanmaken. Als je je website bij een aanbieder host, stelt deze over het algemeen de benodigde serverapplicatie, inclusief inloggegevens, ter beschikking. Als je zelf verantwoordelijk bent voor webhosting en datatransfer, dan moet je zelf voor de passende hardware- en softwarestructuren zorgen. Wij leggen daarom in deze tutorial uit hoe je een eigen Ubuntu FTP-server opzet en waar je op moet letten.


Een Ubuntu FTP-server installeren

Voordat je begint met de setup van je eigen FTP-server met Ubuntu, moet je de passende software vinden. Hiervoor beschikken Ubuntu-systemen over vsftpd – een eigen oplossing om pakketten te beheren die je alleen nog moet installeren. De open source-applicatie voor Unix-achtige systemen is gebaseerd op modules en componenten waarvan de compacte programmering kenmerkend is. Op deze manier waarborgt de Ubuntu vsftpd-server zelfs bij een groot aantal clients een uitstekend niveau van veiligheid en een stabiel prestatievermogen. Open de terminal om de applicatie te installeren en gebruik onderstaand commando:

sudo apt-get install vsftpd

in Ubuntu de FTP-server installatie beginnen
Via de terminal start je de installatie van de FTP-server-applicatie met behulp van het bijbehorende commando. Hiervoor heb je root- of beheerderrechten nodig (sudo)

Ubuntu FTP-server tutorial: configuratie

Nadat je de software hebt geïnstalleerd, kun je de terminal sluiten en met de configuratie van de Ubuntu FTP-server beginnen. Hiervoor open je het configuratiebestand vsftpd.conf dat standaard in de map ‘etc’ te vinden is.

Map etc met configuratie en informatiebestanden
In het bestandssysteem is de map ‘etc’ te vinden, met diverse configuratie- en informatiebestanden, waaronder vsftpd.conf

Je hebt een eenvoudige teksteditor nodig om het configuratiebestand van de FTP-server te kunnen openen en bewerken. Hiervoor beschikt Ubuntu over het programma gedit(GNOME-editor) dat al is geïnstalleerd, zodat je niet per se op zoek hoeft te gaan naar een eigen oplossing. De tekstinhoud kun je in twee soorten verdelen. Een regel die met een hekje (#) begint, wordt slechts als commentaar gezien en zal door de vsftpd-server worden genegeerd. Deze commentaren zijn ofwel verschillende instellingsmogelijkheden, ofwel gedeactiveerde functies. Regels die niet met een hekje beginnen, bevatten informatie die later door de server wordt geïnterpreteerd.

Gebruik hekjes voor beter begrip en leesbaarheid
Hekjes zijn niet alleen signalen voor de vsftpd-server, maar verbeteren ook het begrip en optimaliseren de leesbaarheid

Er zijn geen algemene richtlijnen voor de manier waarop je de FTP-server verder opzet; de setup is afhankelijk van wat je als gebruiker verwacht van de FTP-server. Hierbij is het belangrijk dat je eerst naar de verschillende mogelijkheden kijkt. In de volgende alinea’s van deze Ubuntu FTP-server tutorial is daarom informatie te vinden over de verschillende configuratiemogelijkheden en functies.

FEIT!
Om aanpassingen in vsftpd.conf op te slaan, heb je root-rechten nodig.
Anders kun je het configuratiebestand alleen lezen.

Anonieme toegang toestaan

Standaard is vsftpd zo geconfigureerd dat gebruikers zich alleen met een bepaald account kunnen aanmelden op de FTP-server. Je kunt echter ook als anonieme gebruiker inloggen, zonder je persoonlijke gegevens te moeten doorgeven. Zoek de regel ‘anonymous_enable=NO’ en vervang de parameter ‘NO’ door ‘YES’ om deze ongespecificeerde toegang te activeren:

anonymous_enable=YES

De anonieme login is niet geactiveerd
De regel “anonymous enable=NO” geeft weer dat de anonieme login niet is geactiveerd

Rechten van anonieme gebruikers uitbreiden

Bij standaardinstellingen zijn de rechten enorm beperkt als een gebruiker anoniem op een Ubuntu FTP-server inlogt. Het is bijvoorbeeld alleen mogelijk om bestanden te downloaden die alle gebruikers kunnen lezen (anon_world_readable_only=YES). Als je de parameter ‘YES’ door ‘NO’ vervangt, is het ook mogelijk andere bestanden te downloaden. Verder zijn onderstaande opties beschikbaar:

  • anon_mkdir_write_enable: anonieme gebruikers kunnen nieuwe mappen aanmaken, als je de parameter ‘YES’ gebruikt. Hiervoor is het noodzakelijk dat ook write_enable is geactiveerd (zie alinea ‘Aanpassingen aan het systeem toestaan’). Standaard: ‘NO’ of gedeactiveerd (#) ‘YES’
  • anon_other_write_enable: als deze regel is geactiveerd, kunnen bestanden en mappen op de FTP-server ook worden hernoemd of verwijderd door gebruikers met een onpersoonlijke toegang. Standaard: ‘NO’ of gedeactiveerd (#) ‘YES’
  • anon_upload_enable: met deze regel wordt het anonieme uploaden van bestanden geactiveerd. Hiervoor moet je write_enable activeren en een afzonderlijke upload-map creëren, omdat anonieme gebruikers niet direct in de home-map kunnen schrijven. Standaard: ‘NO’ of gedeactiveerd (#) ‘YES’

Als de FTP-server met het internet is verbonden, wordt het niet aangeraden om de rechten van anonieme gebruikers in dergelijke mate uit te breiden. Je riskeert daarmee namelijk dat je server door derden voor verkeerde doeleinden wordt gebruikt.

Toegangsrechten voor anonieme gebruikers activeren
Toegangsrechten voor anonieme gebruikers kun je activeren door o.a. het hekje te verwijderen

Toegang van lokale gebruikers beperken

Als je wilt dat lokale gebruikers alleen toegang hebben tot de eigen home-map /home/username, kun je dit ook in vsftpd.conf vastleggen. De hiervoor benodigde regel is ‘chroot_local_user’, die standaard op ‘NO’ staat. Verander de regel zoals in onderstaand voorbeeld, zodat lokale gebruikers andere mappen niet kunnen openen:

chroot_local_user=YES

Login van lokale gebruikers deactiveren

Om lokale gebruikers toegang te geven tot de FTP-server moet de regel ‘local-enable=YES’ geactiveerd zijn. Dit is standaard het geval. Als je niet wilt toestaan dat lokale gebruikers toegang hebben tot de Ubuntu FTP-server, moet je er enkel voor zorgen dat de regel als commentaar wordt gezien door een hekje aan het begin toe te voegen:

#local_enable=YES

Voorafgaande commentaren in ubuntu
Voorafgaande commentaren verduidelijken mogelijke opties (in dit voorbeeld: local_enable)

Aanpassingen aan het systeem toestaan

Bij de standaardconfiguratie is gedefinieerd dat lokale en anonieme gebruikers FTP-commando’s niet kunnen gebruiken. De regel voor het globale schrijven ‘#write_enable=YES’ is namelijk gedeactiveerd. Als je wilt toestaan dat ingelogde gebruikers het systeem van de vsftpd-server kunnen aanpassen, moet je ervoor zorgen dat de instructie niet als commentaar wordt gezien:

write_enable=YES

Ubuntu FTP-server opzetten: parameter write_enable=yes
Ubuntu FTP-server opzetten: Nadat de parameter ‘write_enable=YES’ is geactiveerd, hebben ingelogde gebruikers schrijfrechten

FTP-toegang beperken tot bepaalde gebruikers

In sommige situaties kan het nuttig zijn om bepaalde gebruikers geen toegang tot de FTP-server te geven of duidelijk te definiëren welke gebruikers zich kunnen aanmelden. Voor de eerste oplossing moet je aan het einde van het configuratiebestand onderstaande regel invoegen:

userlist_deny=YES

userlist_enable=YES

userlist_file=/etc/vsftpd.user_list

Met deze parameters krijgt de vsftpd-server de instructie om gebruikers die in het externe bestand vsftpd.user_list staan geen toegang te geven. Alle andere gebruikers kunnen zich in dit geval wel gewoon aanmelden.

Bij de tweede oplossing voeg je ‘NO’ toe aan de parameter ‘userlist_deny’. In dit geval kunnen alleen de gebruikers die in het bestand vsftpd.user_list staan zich aanmelden:

userlist_deny=NO

userlist_enable=YES

userlist_file=/etc/vsftpd.user_list

Bij alle twee de opties moet je een extern tekstbestand aanmaken en de betreffende gebruikers handmatig op de lijst zetten.


Overzicht van andere opties

Optie Standaard Beschrijving
download_enable YES laat zien of downloads via de Ubuntu FTP-server mogelijk zijn
ssl_enable NO biedt de mogelijkheid om een SSL-versleuteling voor de FTP-toegang te activeren
anon_max_rate bepaalt de maximale snelheid (in byte per seconde) voor anonieme gebruikers; 0 betekent dat er geen beperkingen zijn
local_max_rate bepaalt de maximale snelheid (in byte per seconde) voor lokale gebruikers; 0 betekent dat er geen beperkingen zijn
max_clients bepaalt het maximale aantal clients dat zich tegelijkertijd op de FTP-server kan aanmelden; 0 betekent dat er geen beperkingen zijn
anon_root /home/ftp map waar anonieme gebruikers automatisch naartoe worden verwezen
log_ftp_protocol NO protocolleert alle FTP-aanvragen en FTP-antwoorden
connect_timeout 60 definieert in seconden hoe lang het duurt voor de verbinding tussen server en client wordt onderbroken als er geen communicatie plaatsvindt
ftpd_banner welkomsttekst
guest_enable NO maakt het mogelijk om het anonieme gebruikersprofiel te activeren dat in guest_username is gedefinieerd
guest_username ftp gebruikersnaam om anoniem in te loggen

Een volledige lijst van alle opties kun je met het onderstaande commando via de terminal openen:

man vsftpd.conf

Handleidingen Ubuntu FTP-server applicatie
In de handleidingen van de Ubuntu FTP-server applicatie vind je gedetailleerde beschrijvingen over alle beschikbare opties.

Zo gebruik je de FTP-server op Ubuntu

Heb je het configuratiebestand eenmaal naar jouw wensen aangepast, vergeet dan niet om het op te slaan. Je moet het systeem bovendien opnieuw opstarten, zodat de serverapplicatie de aanpassingen ook overneemt. Gebruik hiervoor onderstaand commando:

sudo etc/init.d/vsftpd restart

Als je de FTP-server tot nu toe nog niet hebt opgestart, kun je dit met het volgende terminal-commando doen:

sudo etc/init.d/vsftpd start

TIP!
Als je de Ubuntu FTP-server weer wilt afsluiten,
kun je in het bovengenoemde commando gewoon de parameter ‘start’ vervangen door ‘stop’.

Nadat je je Ubuntu FTP-server hebt opgezet en opgestart, heb je een gebruikersaccount nodig om je te kunnen aanmelden. Voor ons voorbeeld gebruiken wij een account met de naam ‘user’ en het wachtwoord ‘password’.

sudo useradd -m user -s/usr/sbin/nologin
sudo passwd user

Gebruikersaccount aanmaken
Gebruikersaccount aanmaken: om onbevoegde toegang tot de bash-shell te voorkomen, wordt aanbevolen om een nologin-shell te gebruiken

Vervolgens sta je een aanmelding via de nologin-shell toe, door aan het einde van het bestand /etc/shells onderstaande regel toe te voegen:

/usr/sbin/nologin

Het aangemaakte gebruikersaccount kun je nu inzetten om met een Ubuntu FTP-client verbinding te maken met de vsftpd-server. Een populaire oplossing, waarvan de pakketten standaard op Ubuntu beschikbaar zijn, is de platform-overschrijdende open source-applicatie FileZilla. Deze applicatie installeer je via de terminal:

sudo apt-get install filezilla

Open FileZilla en voeg een nieuwe verbinding met het passende bestand toe: onder ‘Host’ geef je het IP-adres van je Ubuntu FTP-server aan die – als je de instellingen niet hebt veranderd – op poort 21 op aanvragen wacht. Kies het File Transfer Protocol en zo mogelijk SFTP (Secure FTP) of FTP in plaats van TLS, omdat een eenvoudige FTP-verbinding via poort 21 onveilig kan zijn. In het veld ‘Logon Type’ kies je de mogelijkheid ‘Normal’. Voor ‘User’ en ‘Password’ heb je de login-data nodig van de eerder aangemaakte voorbeeldaccount. Door op ‘Connect’ te klikken, maak je verbinding met de server.

FileZilla client instellingsopties
De FileZilla-client biedt gedetailleerde instellingsopties om verbinding met een FTP-server te maken

500 OOPS: Veiligheidsfunctie zorgt voor problemen

Als je een Ubuntu FTP-server hebt opgezet en bepaalde instellingen functioneren niet, dan kan dat verschillende redenen hebben. Het is bijvoorbeeld mogelijk dat je bent vergeten om de FTP-server opnieuw te starten of om het configuratiebestand op te slaan. Ook gebeurt het al snel dat typefouten in vsftpd.conf komen te staan; bijvoorbeeld een spatie op de verkeerde plaats. Eén van de meest voorkomende foutmeldingen met een geheel andere oorzaak is hieronder te vinden:

500 OOPS: vsftpd: refusing to run with writable root inside chroot ()

Deze melding kan verschijnen als je probeert verbinding te maken en geeft geen foutmelding, maar een veiligheidsfunctie aan. De achtergrond is een mogelijk veiligheidsprobleem van de glibc-bibliotheek (standaardbibliotheek onder Ubuntu in programmeertaal C), die gebruikers met schrijfrechten voor hun eigen root-map kunnen misbruiken. Er zijn twee manieren om het veiligheidsprobleem op te lossen:

1. Schrijfrechten in de root-map van de gebruiker verwijderen - Je kunt de schrijfrechten voor de eigen root-map van lokale gebruikers wegnemen, zodat zij alleen nog in submappen kunnen schrijven. Deze beperking lost het probleem ‘500 OOPS’ op, maar heeft ook nadelen als bestanden noodgedwongen in de root-map moeten worden geschreven. Het terminal-commando voor deze oplossing is:

chmod a-w /home/user

2. Schrijfrechten voor de root-map in vsftpd.conf toestaan - Als je ervan uitgaat dat degenen met schrijfrechten deze in geen geval zullen misbruiken, kun je in de Ubuntu FTP-server aangeven dat deze functie uitdrukkelijk is gewenst. Hiervoor moet je onderstaande regel in het configuratiebestand toevoegen:

allow_writeable_chroot=YES

  • Gecertificeerde veiligheid

    Gecertificeerde veiligheid
  • Beste hostingbedrijf

    Beste hostingbedrijf
  • MKB Best Choice

    MKB Best Choice
  • Professionele support

    Professionele support
  • Hosted in Germany

    Hosted in Germany