Home FTP Server – Introductie, Basis en Handleiding

Der Artikel rund um FTP beschreibt Grundlagen, Betrieb eines eigenen FTP-Servers, FTP-Clients sowie Tipps und Tricks zur Fehlersuche.

Home FTP Server – Introductie, Basis en Handleiding

FTP-Programm
  1. Tijdschrift
  2. »
  3. Artikel
  4. »
  5. Windows
  6. »
  7. Home FTP Server – Introductie, Basis en Handleiding

In deze tutorial bekijken we het functionele principe met de basisprincipes van een FTP-server, leggen we uit hoe u uw eigen FTP-server kunt bedienen met behulp van verschillende gratis en shareware oplossingen en behandelen we aan het eind het oplossen van problemen en problemen zoals “FTP-server achter router” en “FTP-server en firewall”.

  • Leren wat een FTP-server is en hoe hij werkt.
  • Leer in deze gids hoe u uw eigen FTP-server kunt opzetten.
  • Tips en trucs voor uw eigen FTP-server ronden deze handleiding af.

FTP basics, aanbevolen programma’s

In het eerste deel leren we u de basis van FTP en introduceren we enkele programma’s voor FTP-servers en FTP-clients.

Wat is een FTP-server

Met een eigen FTP-server kunt u bestanden beschikbaar stellen aan andere gebruikers om te downloaden en gebruikers bestanden laten uploaden naar uw eigen server.

Functioneel principe

FTP staat voor File Transfer Protocol en is een protocol voor gegevensoverdracht. Het werd geïntroduceerd in 1970 en is een van de oudste protocollen op het internet. Het FTP-protocol is gebaseerd op het bekende TCP-protocol en werkt volgens het client-serverprincipe. Er worden twee verbindingen tot stand gebracht.

Eerst wordt een controleverbinding (commandokanaal) tot stand gebracht. Zoals de naam al aangeeft, wordt deze gebruikt voor de communicatie tussen server en cliënt. Dit gebeurt met een bepaalde reeks commando’s. We zullen later bij de introductie van de FTP-cliënten enkele commando’s zien bij het tot stand brengen van de verbinding. Nadat de verbinding via het controlekanaal tot stand is gebracht, kan een gegevensoverdracht worden gestart, die plaatsvindt via het gegevenskanaal.

Schematische voorstelling van het principe van een FTP-overdracht:

FTP-Server
FTP-server

Invoegen: kleine poort klant

Poorten zijn interfaces waarmee meerdere logische verbindingen kunnen worden gemaakt bij een fysieke verbinding met een netwerk (inclusief internet). Poorten zijn genummerd van 0 tot 65535 en kunnen worden gebruikt door processen of programma’s.
De poorten 0 tot 1023 behoren tot de groep “bekende poorten” en worden toegewezen door de IANA. Elk systeem weet welke protocollen in dit poortbereik werken.
De poorten 1024 tot 49151 behoren tot de groep “geregistreerde poorten”, die door processen en toepassingen worden gebruikt en door toepassingsontwikkelaars kunnen worden geregistreerd voor hun eigen protocollen.
De poorten 49152 tot en met 65535 behoren tot de groep “dynamische en/of privé-poorten”. Zoals de naam al aangeeft, worden ze dynamisch toegewezen door de host op verzoek van processen en zijn ze niet direct toegewezen aan een toepassing.

Actieve en passieve verbindingsmodus

Er zijn 2 verschillende benaderingen om een overdracht van een cliënt te initialiseren: de actieve en de passieve verbindingsmodus. Beide hebben gemeen dat eerst een controleverbinding wordt opgezet (1e pijl), via welke FTP-commando’s worden verzonden, en vervolgens een gegevensverbinding wordt opgezet voor gegevensoverdracht (2e pijl). Het verschil tussen de twee verbindingsmodi ligt in wie deze verbindingen tot stand brengt – client of server. In detail werkt het zo:

Actieve verbindingsmodus

Aktiver FTP-Modus
Actieve FTP modus

Procedure: De client reserveert 2 TCP-poorten uit het poortbereik 1024-65535 voor eigen gebruik, maakt via de eerste poort de controleverbinding met poort 21 van de server en informeert de server over het 2e poortnummer waarop de client de gegevens verwacht.

Opmerking: Slecht voor de client, omdat een gegevensoverdracht mogelijk wordt verhinderd door een poortfilter, aangezien in principe alle poorten >1024 zouden moeten worden geopend. Goed voor de serverbeheerder, omdat hij slechts 2 poorten hoeft vrij te geven.

Passieve verbindingsmodus

Passiver FTP-Modus
Passieve FTP modus

Procedure: De client reserveert 2 TCP-poorten uit het poortbereik 1024-65535 voor eigen gebruik en maakt via de eerste poort de controleverbinding met poort 21 van de server. Omdat een passieve verbinding gewenst is, zendt de cliënt het commando PASV uit de geadresseerde FTP-commandoset. Dit laat de server weten: Een passieve verbinding is gewenst, waarna hij een TCP-poort uit het bereik 1024-65535 reserveert voor de gegevensoverdracht en de cliënt deze poort meedeelt. De gegevensoverdracht kan nu beginnen, omdat over de poort voor de gegevensoverdracht is onderhandeld.

Opmerking: Goed voor de client, omdat beide verbindingen vanaf de client tot stand worden gebracht, zodat de poorten alleen worden geopend wanneer dat nodig is, slecht voor de serverbeheerder, omdat hij ofwel een verbinding met alle poorten van de server moet toestaan, ofwel een gateway op applicatieniveau nodig heeft die de communicatie tussen server en client kan volgen en de geselecteerde poort opent wanneer dat nodig is.

Overdrachtsmodi

Het FTP-protocol kent 2 overdrachtsmodi: ASCII en binair. De ASCII-modus kan en moet worden gebruikt voor de overdracht van tekstbestanden (TXT, HTML, enz.). Onder andere de regeleinden worden aangepast aan het doel-besturingssysteem. Deze transportmodus is tijdrovender vanwege het hercoderen, maar garandeert een correcte weergave van de inhoud op alle systemen. In de binaire modus worden de gegevens per byte overgebracht zoals ze zijn, d.w.z. dat de inhoud niet wordt gewijzigd. Alle andere bestanden die geen tekst bevatten, moeten in binaire modus worden overgebracht, bijvoorbeeld archieven of afbeeldingen. In de FTP-cliënt moet men zoeken naar een autodial-functie, die meestal ook standaard actief is.

Authenticatie

Elke gebruiker moet zich bij een FTP-server authentiseren met een gebruikersnaam en een wachtwoord. Er is ook de mogelijkheid van een anonieme login, meestal zonder wachtwoord of met een admin mail adres als wachtwoord. Het gebruik van deze standaard account geeft gemakkelijk toegang tot de FTP-server, maar moet met voorzichtigheid worden gebruikt op een FTP-server thuis, omdat iedereen op de server kan inloggen. Toegangsrechten en toegangsgebieden moeten zorgvuldig worden gekozen. Openbare FTP-servers bieden deze toegang meestal aan.

Beveiliging

Bedenk dat FTP volledig onversleuteld verloopt en dus vatbaar is voor afluisteren. Alternatieven worden verderop in deze serie artikelen getoond met SFTP (gebruikt SSH) en FTPS (gebruikt SSL/TLS). Een andere optie is om, indien mogelijk, vooraf een versleutelde VPN-tunnel naar het doelsysteem op te zetten.

Wat is SSL?

SSL staat voor Secure Sockets Layer en is een hybride versleutelingsprotocol voor veilige gegevensoverdracht op het internet en wordt voornamelijk gebruikt voor het versleutelen van beveiligde webverbindingen via https.

Eigen DNS-servernaam voor de FTP-server

Allereerst is er een fundamenteel probleem (althans voor bijna alle gebruikers): Een FTP-server is alleen bereikbaar via een IP-adres. Maar na elke keer dat de internetverbinding tot stand komt en wordt verbroken, wijst de provider meestal een nieuw IP-adres toe (dynamisch IP-adres). Het probleem: FTP-clients kunnen de FTP-server onder het oude IP-adres niet meer vinden.

Om dit probleem op te lossen zijn er providers waar u een vaste naam kunt reserveren. Deze naam verwijst dan naar je eigen IP-adres als het wordt aangeroepen. De bekendste dienst heet DynDNS en is hier te vinden: http://www.dyndns.org. Als u een FTP-server op uw eigen computer wilt gebruiken, hebt u een update-client nodig om de DynDNS-dienst het huidige IP-adres mee te delen.

Opmerking: De meeste bezitters van routers kunnen afzien van de update-client, aangezien deze functionaliteit tegenwoordig in de meeste routers is ingebouwd. Afhankelijk van het routermodel kunnen één of meer DynDNS-accounts worden beheerd. De eenvoudigste manier om dit te doen is te kijken in de handleiding van de router. Met de Fritz!Box is een DynDNS-functie al mogelijk via MyFRITZ! en is er geen software of dienst van derden nodig.

Zie voor meer informatie over het instellen van DynDNS ons artikel Dynamische DNS update voor de lokale homepage.

Het DNS-serveradres moet nu vanaf het internet te pingen zijn. Als dit niet werkt, zal de FTP-server ook niet bereikbaar zijn.

FTP-server

Een servernaam alleen is niet voldoende, want de FTP-server zelf ontbreekt nog.

Als voorbeeld worden hieronder 2 server-softwarepakketten beschreven. U kunt het beste zelf beslissen welke het beste bij uw behoeften past. De bediening en de mogelijkheden bepalen uiteindelijk de keuze. FileZilla Server is uitgebreid, maar Engelstalig, Quick ’n Easy FTP Server is kleiner, maar gemakkelijker toegankelijk, vooral voor Windows-gebruikers, en ook beschikbaar in het Duits. In ons software archief in de FTP server sectie vindt u meer gratis en betaalde FTP servers.

Maar eerst een paar basisprincipes:

Virtuele paden

Helaas worden gegevens niet altijd op de harde schijf opgeslagen in de structuur die men een gebruiker zou willen aanbieden. De uitweg is het gebruik van virtuele paden. Het systeem hierachter is eenvoudig en ingenieus tegelijk. Je definieert een tweede pad, geeft het een naam en laat het weergeven in een ander pad. De volgende illustratie moet het principe verduidelijken:

Virtuelle Pfade
Virtuele paden

Uploaden versus downloaden

Binnen de vier muren van je huis bereik je met een FTP-server al snel de grenzen van je internetverbinding. Wat de downloadsnelheid van de client is, is de uploadsnelheid van je eigen lijn. Aangezien de meeste lijnen niet synchroon lopen en de download- en uploadsnelheid verschillen, moet u zich altijd oriënteren op uw uploadsnelheid. Voor gebruikers van DSL 16000 is dat meestal slechts 1,024 kbit/s tot 2,400 kbit/s, afhankelijk van de provider.

Idealiter biedt een server dus 128 kbit/s tot 256 kbit/s; gelijktijdig surfen op internet is dan uitgesloten. Een limiet van 100 KByte/s is bij deze uploadsnelheid nuttig gebleken. Indien meerdere gebruikers moeten worden beheerd, is het zinvoller de limiet in te stellen in de groepsopties. Dan heeft het ook zin de maximale gelijktijdige verbindingen te beperken, omdat de gebruikers bij een gelijktijdige verbinding met de server de bandbreedte moeten delen.

Autostart

Ik raad af om een link naar de FTP-server in de autostart te zetten, omdat je zo altijd poort 21 van je computer openhoudt. De serversoftware moet met voorzichtigheid worden gebruikt en worden gestart wanneer dat nodig is. Een alternatief zou zijn om een server-pc in te stellen die niet als werkstation-pc wordt gebruikt, met zeer beperkte rechten op alle gebieden.

FileZilla-server

U vindt FileZilla Server in het WinTotal software-archief.

Bij de installatie van dit serverpakket moet u niet blindelings doorklikken, omdat belangrijke opties al in het installatieprogramma zijn opgenomen. Op dit punt moet u het starttype van de server instellen (als een met Windows startende service, als een handmatig te starten service of de autostart-variant als een normale applicatie). Bovendien moet de poort worden geselecteerd waarmee de Config-interface later verbinding maakt met de server.

FileZilla Server
FileZilla Server

Het volgende scherm vraagt wanneer de serverinterface moet starten. Na de installatie wordt een lokale verbinding met de server tot stand gebracht. De interface lijkt eerst spartaans, maar toont het logbestand en zal snel vol raken. Het menu-item “Bewerken” bevat de instellingen. De items zijn ook toegankelijk via knoppen in de menubalk. Eerst maak ik een groep aan.

FileZilla Server
FileZilla Server

Op dit punt kunt u al verschillende beperkingen (bijvoorbeeld bandbreedtebeperkingen) en directorytoegang definiëren. De thuismap is gemarkeerd met een “H” voor het pad. Let er bij het delen van mappen op dat u geen onnodige toegang verleent. De standaard attributen Read en List zijn voorlopig voldoende. Verdere paden kunnen worden toegevoegd, virtuele paden kunnen alleen achteraf worden gedefinieerd via het contextmenu voor het pad met het item “Aliassen bewerken”. De syntax is enigszins anders dan bij andere FTP-servers, maar biedt meer flexibiliteit. De alias bestaat uit het doelpad + de eigenlijke alias, in mijn geval “C:WINDOWSWebWallpaperother pictures”.

FileZilla Server – Verzeichnisse
FileZilla Server – directories

Nu moet een gebruiker worden aangemaakt. Een wachtwoord kan pas worden geactiveerd en gedefinieerd nadat een gebruiker is aangemaakt.

FileZilla Server – Benutzer anlegen
FileZilla Server – gebruiker aanmaken

Eerder heb ik een groep aangemaakt en daar al paden gedefinieerd. Hier stel ik alleen het groepslidmaatschap “testgroep” in en een login is al mogelijk. Op deze manier kunnen echter meerdere gebruikers centraal worden beheerd, omdat de FileZilla Server de placeholder “:u” aanbiedt voor de gebruikersnaam.

Een ander interessant geval is het beschikbaar stellen van een upload-map, d.w.z. een map waarin een FTP-gebruiker iets kan uploaden. Het is zinvol om een eigen map beschikbaar te stellen, aangezien schrijfrechten zorgvuldig moeten worden gekozen om de eigen mappenstructuur niet uit het oog te verliezen.

FileZilla Server – Upload-Ordner bereitstellen
FileZilla Server – Een uploadmap voorzien

In dit voorbeeld wordt de map “C:Upload” weergegeven als een virtuele map in de startmap van de FTP-gebruiker met de naam “Upload”. Hiervoor krijgt hij schrijfrechten (Write), aanmaakrechten (Create) en append-rechten (Append). Deze laatste rechten worden ook gebruikt om een upload voort te zetten. De instellingen voor deze map worden geërfd door submappen (+ subdirs). Zo ziet het resultaat er aan de clientzijde uit:

Virtueller Ordner mit Subdirs
Virtuele map met subdirs

In het menu “Instellingen” vindt u server-specifieke instellingen, poortbereik voor passieve verbindingen, serverpoort, time-outs, opstartgedrag, compressie, enz. De SSL/TLS-ondersteuning moet hier nader worden vermeld (Secure-FTP). Met behulp van de wizard kunt u uw eigen certificaat aanmaken of een bestaand certificaat integreren. Dit maakt veilige authenticatie mogelijk. Later in dit artikel komt u meer te weten over deze procedure.

FileZilla Server – Settings
FileZilla Server – Instellingen

Quick’n Easy FTP-server

Een andere FTP-server die zeer eenvoudig te gebruiken is komt uit Nederland en heet Quick’n Easy FTP Server. U kunt Quick’n Easy FTP Server vinden in het WinTotal software archief.

De interface is zeer Windows-achtig, wat de navigatie gemakkelijk maakt, vooral voor beginners. Installatie is niet nodig, de instellingen worden opgeslagen in een XML-bestand. De server kan dus vanaf vrijwel elke locatie op de harde schijf worden gestart. Dus gewoon uitpakken en aan de slag. Als je de server voor de eerste keer start, word je begroet door een wizard die vraagt om de gebruikersnaam, het wachtwoord, de homedirectory van de nieuwe gebruiker en de toegangsrechten daartoe. Daarna is de server klaar om te starten.

De eerste stap is om naar het gebruikersbeheer te gaan, dat u links in het taakgebied onder “Gebruikersaccounts” kunt bereiken. Klik vervolgens op de nieuwe gebruiker en de bijbehorende opties worden weergegeven.

Quick’n Easy FTP Server
Quick’n Easy FTP Server

Het is het taakvenster links dat het beheer zo gemakkelijk maakt. Rechtsonder worden de virtuele paden weergegeven. Nieuwe paden kunnen worden gedefinieerd via het contextmenu of het taakgebied (onder “Virtuele mappen”). Zo ziet het eruit:

Quick’n Easy FTP Server – Virtuelle Pfade
Quick’n Easy FTP Server – Virtuele paden

De screenshot laat ook zien dat de downloadlimiet is ingesteld op 10 (KB/s).

Serverbrede instellingen zijn toegankelijk door te klikken op “Configuratie” in het taakgebied. Hier kunnen bijvoorbeeld het opstartgedrag, de serverberichten en de standaard homedirectory worden gedefinieerd. Met een klik op de grote groene “Start”-knop linksboven wordt de server online geschakeld.

Meer FTP-servers

Een zuiver Duitstalige server zou Personal FTP Server zijn. In de gratis versie zijn de functies beperkt. Andere alternatieven voor de gepresenteerde servers zijn CesarFTP en TYPSoft FTP Server, maar deze laatste biedt geen bandbreedtebeperking. Zodra iemand iets downloadt, wordt zijn eigen lijn grotendeels geblokkeerd. Wie zijn computer zowel als web- en als FTP-server wil gebruiken, moet eens kijken naar het pakket XAMPP for Windows, waarin de FileZilla-server is opgenomen.

Voor hogere eisen heeft de PSFTP-server uit Duitsland zich bewezen, die in verschillende edities wordt aangeboden.

Een goed overzicht, zij het in het Engels, van de 20 beste en gratis FTP-servers voor Windows is ook te vinden in het artikel van comparitech.com.

FTP-clients

Met een FTP-cliënt kunt u verbinding maken met een FTP-server en gegevens downloaden en uploaden.

FileZilla

FileZilla is niet alleen beschikbaar als FTP-server, maar ook als FTP-cliënt, die een doorslaggevend voordeel heeft ten opzichte van vele andere: U kunt het installeren of kiezen voor een verpakte variant die draait zonder installatie. De verpakte versie, portable genoemd, kan dan op een USB-stick worden ingepakt of op een CD worden gebrand (wijzigingen aan de favorieten of instellingen zijn dan uiteraard niet mogelijk). De download voor de FTP-cliënt (ook portable) is hier beschikbaar.

Onder Bewerken – Instellingen – Interface Instellingen – Taal kunt u de taal wijzigen in Duits. “Interface Instellingen” heet nu “Interface Instellingen”. Klik erop en vink “Server Folder View” aan. Zo kunt u ook aan de serverzijde snel door substructuren navigeren.

FileZilla
FileZilla

De programma-interface van boven naar beneden: Eerst komt de werkbalk. Het pictogram uiterst links leidt naar de servermanager, vergelijkbaar met de favorieten/bookmarks in de browser. De symbolen uiterst rechts voor het vraagteken vergemakkelijken de communicatie met de FTP-server. Ze worden gebruikt om een actie te annuleren en om de verbinding met de server te verbreken en weer te herstellen. De symbolen daartussen dienen voor de visuele weergave van de cliënt.

Daaronder staat een balk die een snelle verbinding mogelijk maakt. Je hebt het adres van de server, de gebruikersnaam en het wachtwoord nodig. De poort hoef je niet in te voeren, alleen als die afwijkt van de standaard.

Het gebied eronder wordt gebruikt om de statuscommando’s weer te geven bij het verbinden met de server. Dit venster is vooral belangrijk als er een fout optreedt. In het middelste gebied worden de mappenbomen/inhoud van client (links) en server (rechts) weergegeven. In het onderste venster worden lopende overdrachten weergegeven.

Nu kan de FTP-server worden getest. Start daartoe een FTP-cliënt – in dit geval FileZilla – op de computer waarop de FTP-server draait. Dit zou in ieder geval moeten werken, omdat geen enkel onderdeel tussen server en client de communicatie kan verstoren. Voer “localhost” in als adres. Mijn gebruiker heet “Test”, hij heeft ook een wachtwoord, zodat de verbinding kan worden gestart. Hier is het resultaat van een succesvolle verbinding:

FileZilla – Verbindungsaufbau
FileZilla – een verbinding opzetten

Vanaf uw eigen computer kunt u verbinding maken met de server met “localhost” of “127.0.0.1”. Vanaf een andere computer binnen uw eigen netwerk kunt u de FTP-server bereiken via het IP-adres, de NETBIOS-naam of, als het DynDNS-updater op de computer draait, ook via de servernaam (uit het DynDNS-artikel). Vanaf het internet moet u de geregistreerde servernaam gebruiken, ongeacht of de DynDNS-client op de computer of in een eventueel aanwezige router draait.

SmartFTP

SmartFTP is een van de beste FTP-clients en is beschikbaar voor een proefperiode van 30 dagen. Na 30 dagen wordt alleen een zeurscherm getoond om de looptijd van het programma aan te geven. SmartFTP is meertalig en kan worden gedownload uit ons WinTotal software-archief.

De interface ziet er dan als volgt uit:

SmartFTP
SmartFTP

De structuur van de interface is hetzelfde als bij FileZilla: werkbalk, snelle verbindingsbalk en de overdrachtswachtrij onderaan. Het grijze gebied toont de directoryboom/inhoud bij het verbinden met een server. De weergave kan worden gevarieerd via de menu-items Beeld en Venster. Na het inloggen kan het er als volgt uitzien:

SmartFTP – Verbunden

Net als FileZilla biedt SmartFTP ook een favorietenbeheer waarin vaak bezochte FTP-servers kunnen worden georganiseerd. Het is de moeite waard de mogelijkheden van het programma te verkennen, waarvan de reikwijdte het bestek van dit artikel te buiten zou gaan. Beide FTP-clients hebben een eenvoudige bediening gemeen. Om gegevens te transporteren, hoeft men slechts de desbetreffende bestanden en mappen van de lokale kant naar de serverkant te slepen op een Windows Explorer-achtige manier.

Andere FTP clients

Andere echt interessante gratis clients zijn schaars, omdat het vaak light versies zijn van shareware FTP clients. In een volgend artikel zul je meer mogelijkheden te zien krijgen, waar ik hier niet op vooruit wil lopen. LeechFTP is het vermelden waard, maar de ontwikkeling ervan is stopgezet (of er verschijnt een koopbare versie onder een andere naam), evenals Staff-FTP.

Een goede keuze onder de betaalde FTP-clients is PSFtp uit Duitsland.

Web browser als FTP client: Het is ook mogelijk om een FTP server te benaderen met een browser. De syntaxislautet:ftp://benutzername:passwort@hostname.domain
Bijvoorbeeld: ftp://jemand:test@nobodys.homeftp.net. Merk echter op dat browsers niet geschikt zijn voor toegang tot een FTP-server. Ze bieden nauwelijks FTP-functies, zijn traag en loggen niet af van de FTP-server als de pagina wordt gesloten. Als de maximale verbindingen per IP of gebruiker in de FTP-server zijn vastgelegd, kan het zelfs gebeuren dat u niet meer zo snel kunt inloggen als u het adres meerdere malen in de browser invoert. Alleen in het geval van individuele downloads via een directe link is het verstandig om browser-toegang te gebruiken.

Gedachten over een eigen FTP-server

Als u in uw eigen huis een FTP-server wilt opzetten, moet u een aantal zaken op orde hebben. Zo moet je eigen internetverbinding open zijn zodat andere gebruikers de server kunnen bereiken. Uw eigen upload moet ook groot genoeg zijn, want wat voor uw eigen computer upload is, is voor de andere gebruikers download. Een virusscanner is een absolute must, zeker als gebruikers bestanden mogen uploaden naar hun eigen computer.

Bedenk dat FTP in principe een ongecodeerde bestandsoverdrachtmethode is. Kies uw FTP-server dus naargelang de omstandigheden. Voor FTP-servers die langere tijd en op het internet beschikbaar zijn, mag een versleutelde variant niet achterwege blijven.

Inside FTP – Encryptie en verdieping van informatie

In dit deel worden alternatieven gepresenteerd voor clients en serverpakketten. Daarnaast wordt veilige versleutelde bestandsoverdracht besproken en wordt FXP-overdracht uitgelegd. Dit artikel verdiept de kennis over FTP.

Uitleg van de termen SSH, SCP, SFTP, Secure FTP en FTPS

In dit deel behandel ik versleutelingstechnieken voor gegevensoverdracht, dus leg ik eerst de termen SSH, SCP, SFTP, Secure FTP en FTPS uit.

  • SSH staat voor Secure Shell en is zowel een protocol (TCP poort 22) als een programma. SSH maakt een veilige versleutelde gegevensverbinding mogelijk tussen 2 computers.
  • SCP staat voor Secure Copy en is net als SSH zowel een protocol als een programma. Het wordt gebruikt om gegevens te kopiëren tussen server en client via een veilige en versleutelde verbinding via SSH.
  • SFTP staat voor SSH File Transfer Protocol, is de logische voortzetting van het SCP-idee en biedt de gebruiker een reeks commando’s om tussen twee computers te communiceren en acties uit te voeren. SFTP gebruikt SSH om authenticatie, communicatie en gegevensoverdracht tussen twee computers te coderen. Het gebruik lijkt op FTP, maar SFTP is een volledig apart protocol dat ook anders werkt. Er is slechts één verbinding (d.w.z. geen afzonderlijk controle- en gegevenskanaal) en er wordt slechts één poort gebruikt (standaard: poort 22). Slechts enkele cliënten en servers ondersteunen momenteel SFTP.
  • Er is ook Secure FTP, dat weer gebaseerd is op FTP. Hier worden authenticatie en directorywijzigingen versleuteld via een SSH-tunnel, de rest van de communicatie inclusief de gegevensoverdracht is onversleuteld. Dit heeft het voordeel dat de betrokken computers niet zo zwaar door de versleuteling worden belast als bij volledige versleuteling van de communicatie het geval is. Er wordt onderscheid gemaakt tussen expliciete en impliciete Secure FTP. Bij impliciete Secure FTP is encryptie via SSL/TLS verplicht bij het inloggen op een domein; bij expliciete Secure FTP is onversleuteld inloggen op een domein ook mogelijk, maar kan encryptie door de FTP-cliënt worden geïnitialiseerd via het AUTH-signaal. De standaardpoort voor Secure FTP is poort 990.
  • Net als HTTPS bestaat ook FTPS, een met SSL/TLS beveiligde FTP-verbinding, waarmee versleutelde gegevensoverdracht mogelijk is. In combinatie met Secure FTP is beveiligde communicatie tussen 2 computers mogelijk.

In het algemeen ondersteunen slechts relatief weinig servers en cliënten de beveiligde verbindingsopties, en niet allemaal versleutelen ze zowel het controle- als het gegevenskanaal in de met SSL/TLS beveiligde variant.

FTP-server – deel 2

Serv-U

Serv-U is een groter FTP-server pakket. Het biedt veel mogelijkheden die de gratis pakketten niet hebben: meerdere domeinen, poortbereik in passieve modus, integratie van SSL-certificaten, ODBC-database-interface en onderhoud op afstand. Er zijn verschillende licentietypen en bijbehorende prijsniveaus. De verschillen zijn hier te zien: http://www.serv-u.info/produktinfo/editionen.htm. De shareware-versie zal volstaan voor een eerste blik in dit artikel, aangezien deze 30 dagen loopt als bedrijfsversie.

U kunt hem hier downloaden: http://www.serv-u.info/produktinfo/download.php. De Engelse versie is te vinden op http://www.serv-u.com/.
Na de installatie van Serv-U vraagt de initiële wizard om de gegevens voor het eerste FTP-domein en of de server als een systeemdienst moet draaien. Vervolgens kan de FTP server geconfigureerd worden. Er is al gevraagd of admin rechten moeten worden toegekend. Wees voorzichtig en omzichtig met dergelijke instellingen en stel de rechten zo beperkt mogelijk in.

Onder “Local Server” kunt u de server volledig starten en stoppen en het starttype configureren als een systeemdienst. Klik op Licentie om de runtime te zien totdat het programma terugschakelt naar de Personal Edition. Verwijderen en opnieuw installeren helpt hier niet.

Direct daaronder vindt u globale instellingen. In het tabblad “Algemeen” kan de toegang tot verschillende domeinen worden beperkt. De snelheidsopties moeten worden geselecteerd in relatie tot de bandbreedte van de internetverbinding. “Permanente verbindingen uitschakelen” is nuttig voor frequente toegang via webbrowser en gelijktijdige beperking van het maximum aantal gebruikers dat tegelijkertijd op de server is ingelogd.

Serv-U Administrator

Het SSL-certificaat maakt FTP via TLS/SLL (FTPS) mogelijk, d.w.z. de authenticatie en het controlekanaal zijn versleuteld, de gegevensoverdracht niet. U moet zelf een certificaat aanmaken. De gedetailleerde geïntegreerde hulp zal u daarbij helpen (trefwoord: SSL-certificaat). Het gegenereerde certificaat is ondertekend door Serv-U zelf, dus niet afkomstig van een certificeringsinstantie zoals VeriSign. Certificeringsautoriteiten zijn betrouwbare instanties die certificaten uitgeven die garanderen dat een publieke sleutel toebehoort aan een specifieke persoon. Op het certificaat staat een digitale handtekening die gebruikt kan worden om de integriteit en authenticiteit van het certificaat te bewijzen.

Onder “Geavanceerd” vindt u bijvoorbeeld de instelling voor een poortbereik als u de server in passieve modus wilt laten werken.

De globale activiteit vindt u onder de globale instellingen. Als iemand is ingelogd en/of iets aan het downloaden is, kun je dat hier zien. Interessant is het vinkje linksboven voor het automatisch bijwerken, zodat je altijd de actuele status in één oogopslag hebt. Het tabblad Domain Log toont het globale logbestand. Alle globale functies dienen voor de hele FTP-server. Serv-U kan meerdere domeinen beheren, d.w.z. er kunnen meerdere virtuele hosts worden beheerd. Elke host – of elk domein – heeft zijn eigen naam en zijn eigen instellingen, logbestanden, gebruikers, groepen, etc.

Als u op een domein klikt, kunt u instellingen instellen die het domein zelf betreffen. Deze omvatten bijvoorbeeld het poortnummer waarop de server luistert en of beveiligde toegang mogelijk is.

Serv-U Administrator
Serv-U Administrator

In de “General” tab kunnen virtuele paden worden gedefinieerd, die hierboven al in detail zijn beschreven.

Nu kun je je aandacht richten op het gebruikersbeheer. Om “anoniem inloggen” toe te staan, maakt u eenvoudigweg de gebruiker “anoniem” aan (rechtsklik op Gebruiker – Nieuwe Gebruiker, volg de instructies). Zodra een nieuwe gebruiker is gedefinieerd, wachten vele instellingen om te worden geconfigureerd. Klik op een gebruiker. In het tabblad “Account” ziet u de meeste instellingen die zijn gemaakt bij het aanmaken van een nieuwe gebruiker. Hier kunt u ook een account deactiveren of een vervaltijd instellen. Als u gebruikersgroepen hebt gedefinieerd, kunt u de gebruiker hier toevoegen aan een of meer groepen. Het systeem is bijvoorbeeld bekend vanuit de Active Directory, maar helaas zijn de leden van een groep in de huidige versie nergens te zien.

Serv-U Administrator
Serv-U Administrator

Het “Algemeen” tabblad bevat belangrijke instellingen voor connectiviteit. Neem de tijd voor deze instellingen. Minstens zo belangrijk is de “Directory access”. De root directory is al voorgeconfigureerd. Rechts staan de rechten op bestanden en mappen en of deze rechten moeten worden overgenomen door submappen. Het is geen probleem om bijvoorbeeld ook een CD-ROM station te delen. Door het toevoegen van paden in dit tabblad verschijnen de mappen nog niet in de gebruikerslogin. De in de domeininstellingen geconfigureerde virtuele paden worden hier gebruikt.

Ik zal de procedure als voorbeeld schetsen. Eerst definieer ik de map “Mijn afbeeldingen” als startmap voor een gebruiker. Daarnaast voeg ik in het tabblad “Directory Access” nog een map toe, de map “My Music”.

Serv-U Administrator
Serv-U Administrator

Een test login laat zien dat “alleen” de inhoud van de “Mijn afbeeldingen” directory wordt weergegeven. De “My Music” directory is niet toegankelijk. Nu ga ik in de domein instellingen naar de “General” tab en voeg een nieuw virtueel pad toe. Het pad op de harde schijf is “C:Documents and Settings%USERNAME%Own FilesOwn Music”, het virtuele pad is “C:Documents and Settings%USERNAME%Own FilesOwn Pictures”. De map “My Music” wordt dus weergegeven in de hoofdmap (My Pictures) na aanmelding. Tenslotte wordt de weergavenaam gedefinieerd. Het systeem van virtuele mappen is reeds in detail uitgelegd aan het begin van dit artikel.

Virtuelle Pfade
Virtuele paden

Na opnieuw inloggen via de FTP-client wordt nu een map “Programma” weergegeven in de Windows directory root.

Als je een “Ratio” instelling zoekt, vind je die onder “UL/DL Ratio”. Met deze functie kunnen upload- en downloadratio’s worden gedefinieerd. Om te voorkomen dat de harde schijf vol raakt, kunt u ook een geheugenlimiet instellen.

Heeft u problemen of vragen over dit programma, aarzel dan niet om de geïntegreerde gedetailleerde help te gebruiken. Er is ook een kennisbank voor Serv-U die veel vragen kan beantwoorden.

FTP-server met Windows on-board tools

Windows XP Professional wordt ook geleverd met een FTP-server. Deze maakt deel uit van de “Internet Information Services (IIS)” – hier versie 5.0 – en moet eerst geïnstalleerd worden. U kunt deze in uw Windows-installatie installeren via Configuratiescherm – Software – “Windows-onderdelen toevoegen/verwijderen” – “Internet Information Services”. Selecteer de componenten “FTP Service (File Transfer Protocol)”, “Shared Files” en “Snap-In Internet Information Services” en laat ze installeren. Mogelijk heeft u uw Windows CD nodig. Merk op dat deze functie ontbreekt in de Home-editie. In de Professional Edition is slechts één FTP-site toegestaan. Bovendien is het aantal verbindingen beperkt tot 10. Dit zijn de verschillen met de serverversies van Windows 2000 (IIS 5.0) en 2003 (IIS 6.0).

Daarna volgt de configuratie, die niet uitgebreid is. U vindt de MMC snap-in “Internet Information Services” onder Control Panel – Administrative Tools. Onder de “FTP Sites” staat aanvankelijk een “Standard FTP Site”. Ga via het contextmenu naar de eigenschappen voor de configuratie. In het tabblad “FTP site” kunt u als beschrijving het beste de DynDNS-naam of een passende naam op basis van de hoofddirectory invoeren.

IIS / FTP-Site festlegen
IIS / FTP-Site

Onder “Session accounts” is de anonieme login geactiveerd. Als u dit wilt, kunt u alles laten zoals het is. Zo niet, verwijder dan gewoon het vinkje bovenaan. U kunt dan inloggen met gebruikersaccounts op de computer, die zijn geconfigureerd onder Configuratiescherm – Beheer – Computerbeheer – Systeem – Lokale gebruikers en groepen – “Gebruikers”. Bij de installatie van ISS wordt een account met gastrechten aangemaakt: ISUR_%COMPUTERNAME%. Elke FTP-gebruiker heeft een lokaal account nodig.

Ga verder in de eigenschappen van de FTP site: In het tabblad “Base directory” kunnen het rootpad en de bijbehorende rechten (lezen en schrijven) worden gedefinieerd. Als schrijven in de FTP-directorystructuur moet worden toegestaan, moet hier schrijftoegang worden geactiveerd. Het standaardpad staat onder %SYSTEMDRIVE%inetpubftproot en wordt ook automatisch aangemaakt bij de installatie van de IIS-server.

Nu kunt u de configuratie afsluiten. Virtuele mappen zijn ook mogelijk. Klik op een FTP-pagina en selecteer “Nieuw” – “Virtuele directory” uit het contextmenu in het vrije rechtergedeelte.

In de snap-in “Internet Information Services” kunt u de root van de snap-in selecteren en onder “Action” – “Connect” verbinding maken met een externe FTP-server op basis van IIS en deze grotendeels beheren.

Hiermee is het scala aan functies al uitgeput. IIS moet beslist op een NTFS-partitie worden geïnstalleerd om een tool voor rechtenbeheer bij de hand te hebben (“Simple file sharing” gedeactiveerd). U moet goed bekend zijn met rechtenbeheer in Windows voordat u eraan denkt een FTP-server op basis van IIS op het Internet te zetten. De tool “IIS Lockdown” helpt u ook met hardening.

SFTP/FTPS server met PSFTPd

PSFTPd is een uitgebreide FTP-server die beschikbaar is als Lite- en Corporate-versie. Deze server verwerkt FTP, FTPS (expliciet & impliciet) en SFTP (SecureFTP op SSH2), gecombineerd in een gebruiksvriendelijke interface. Een versie die als dienst in het systeem kan worden geïntegreerd is beschikbaar na registratie. De corporate versie biedt onder meer meervoudig domeinbeheer en gebruikersgroepen.

De configuratie is zeer eenvoudig, het programma maakt het echt gemakkelijk. Poorten en certificaten kunnen worden geconfigureerd door te dubbelklikken op de protocollen (zoals in het volgende screenshot).

PSFTPd
PSFTPd

Ook in de andere tabbladen zijn er geen verrassingen. In de gebruikersconfiguratie kunnen virtuele paden worden aangemaakt door middel van drag-and-drop.

De interface is erg netjes, maar dat komt ook doordat deze lite-versie niet het enorme scala aan functies biedt als bijvoorbeeld Serv-U. Daarentegen kan het wel punten scoren met de ondersteunde protocollen.

PSFTPd

SFTP-server met Cygwin

Cygwin creëert zijn eigen UNIX-omgeving op Windows. OpenSSH wordt hier geleverd als SSH-server, en het pakket bevat ook een SFTP-server. Een complete installatie van Cygwin is vrij groot, ik zal hier beschrijven hoe de benodigde componenten geïnstalleerd moeten worden. Als u wilt, kunt u ook een editor installeren (nano of vim, de categorieweergave wordt aanbevolen in het installatieprogramma, dat zo meteen nader wordt toegelicht).

Voor de volgende gids voor Cygwin heeft u beheerdersrechten nodig. Cygwin moet ook worden geïnstalleerd op een NTFS-partitie die rechtenbeheer toestaat.

Maak een directory aan op uw harde schijf (bijv. Cygwin) – het maakt niet uit waar. Sla de setup.exe van de WinTotal download daarin op en start hem vervolgens. Met behulp van het installatieprogramma kunt u de installatiebestanden rechtstreeks van internet downloaden. Selecteer “Installeren vanaf Internet” als installatiebron. Selecteer vervolgens de installatiedirectory. U kunt de directory gebruiken waarin de setup.exe zich al bevindt. UNIX” kan als standaard teksttype geselecteerd blijven. De “Local Package Directory” kan ook op het pad van het installatieprogramma blijven staan. U moet een mirror in uw omgeving gebruiken. Er zijn voldoende universitaire servers beschikbaar. Klik bij het selecteren van pakketten eenmaal op de knop Beeld om de weergave te wijzigen in “Volledig”. De pakketten zijn alfabetisch gesorteerd. Zoek naar “OpenSSH”, klik op “Overslaan” zodat er een kruisje komt te staan onder “Binair”.

Cygwin
Cygwin

Nu kan de installatie worden gestart. Er wordt nu ongeveer 40 MB gedownload. Met dit installatieprogramma kan Cygwin op elk moment worden aangepast en verwijderd.

Na de eerste start van de Cygwin Bash Shell worden enkele componenten geïnitialiseerd. Voordat de configuratie van OpenSSH daar wordt gestart, moet Windows nog worden voorbereid. Druk op [Win]+[Pauze] (of op de module “Systeem” in het configuratiescherm), ga naar het tabblad “Geavanceerd”, klik op omgevingsvariabelen, zoek in de systeemvariabelen naar de invoer PATH en bewerk deze. Voeg een puntkomma (;) toe en het pad naar de bin map in de Cygwin installatiemap. In mijn geval is het pad C:Cygwinb in.

Cygwin
Cygwin

Gebruik vervolgens de knop Nieuw om een nieuwe variabele aan te maken. Voer “CYGWIN” in als naam en “ntsec tty” als waarde. Bevestig en sluit alle open Windows vensters door op [OK] te klikken zodat de wijzigingen worden toegepast.

Ga nu verder in de Bash Shell. Voer ssh-host-config in. Een script start. Als u wordt gevraagd om “privilege seperation”, antwoord dan met “ja”. Doe hetzelfde met de vraag naar “local user sshd”. Het idee achter “privilege seperation” wordt uitgelegd in dit artikel: http://www.symlink.ch/articles/02/05/27/220210.shtml. De gebruiker “sshd” is hiervoor nodig.

Als u wilt dat de SSH-daemon bij elke Windows-start beschikbaar is en als service start, beantwoord dan ook de volgende vraag met “ja”. Dit is niet alleen nuttig voor de beoogde SFTP-server, maar kan ook worden gebruikt voor andere verbindingen, bijvoorbeeld voor de versleutelde overdracht van mailverkeer. Vervolgens wordt de systeemvariabele “CYGWIN” opgevraagd. Voer hier de eerder gedefinieerde waarde “ntsec tty” in. Nu moeten de rechten beperkter worden ingesteld. Voer hiervoor de ene na de andere in de console in:

“touch /var/log/sshd.log”
“chown -R system:system /var/log/sshd.log /var/empty /etc/ssh_h*”

Dit maakt een logbestand aan voor de SSH-daemon en stelt vervolgens de toegangsrechten voor verschillende bestanden in zodat de gebruiker “system” uit de gebruikersgroep “system” de eigenaar wordt.

Nu kan de SSH-daemon worden gestart (in de toekomst zal hij standaard starten in de lokale huidige gebruikersaccount). Voer dus “cygrunsrv –start sshd” in op de commandoregel.

Cygwin
Cygwin

Op dezelfde manier kunt u de service weer stoppen met “stop” in plaats van “start”. De Windows-opdrachtregel werkt ook: “net start sshd”. En natuurlijk kun je ook via het configuratiescherm – beheer – diensten.

Nu is een eerste testlogin mogelijk. Voer gewoon “ssh localhost” in. Het is raadzaam om onder Windows een gebruiker met de gewenste rechten aan te maken, waarmee u dan van buitenaf kunt inloggen. Voer nu in de console “ssh-user-config” in. U kunt alle vragen met “nee” beantwoorden, maar u kunt ook sleutelbestanden aanmaken. In dat geval gebruikt u encryptie onder SSH2 om in te loggen op deze SSH-server. Natuurlijk mag het wachtwoord niet gemakkelijk te raden zijn. Houd er rekening mee dat toegang vanaf het internet mogelijk is, tenzij verboden in de router of firewall (bijvoorbeeld voor exclusief gebruik in het thuisnetwerk). Nu is er een directory .ssh in de home directory van de ingelogde gebruiker. Voer “cd” in en vervolgens “ls -al” in de shell. De rechten op de map zouden er zo uit moeten zien: “rwx——“. Zo niet, voer dan het commando “chmod 700 .ssh” in.

Nu is alles klaar voor gebruik. De syntaxis voor het testen van de login via ssh is: “ssh username:serverip”. Hetzelfde geldt voor SFTP: “sftp username:serverip”. SSH en SFTP gebruiken poort 22 voor de communicatie. Configureer de software en netwerkhardware dienovereenkomstig. U kunt de poort opnieuw configureren in de map /etc in het bestand sshd_config. Procedure: Stop de server, “cd /etc”, “nano sshd_config”, verander de poort, sla op, start de server. Als de toegang wordt geweigerd, verander dan de rechten via chmod voor de tijd van de verandering. In dit bestand kunt u ook de toegang beperken tot bepaalde gebruikers (AllowUsers, zie handleiding, commando: “man sshd”).

Cygwin heeft geen eigen gebruikersbeheer, maar gebruikt gebruikersaccounts uit Windows. Er is één grote beperking met Cygwin: het is niet mogelijk om in de shell in te loggen als een andere gebruiker dan de gebruiker die op dat moment is ingelogd onder Windows. SSH werkt ook alleen onder het gebruikersaccount waaronder Cygwin is geïnstalleerd, omdat deze gebruiker is gedefinieerd in het bestand /etc/passwd. Beide kunnen worden omzeild door de regel met de gegevens van de bestaande gebruiker in dat bestand te kopiëren en de gebruikersnaam over te nemen. Voorbeeld:
test:unused_by_nt/2000/xp:0:0:PCtest,S-1-1-11-111111111-222222222-333333333-500:/home/test:/bin/bash

De 2 nummers na “by_nt/2000/xp” moeten worden veranderd in ongebruikte ID’s, ze geven de groeps- of gebruikers-ID aan. Hetzelfde groeps-ID betekent ook hetzelfde groepslidmaatschap. Hetzelfde geldt voor het gebruikers-ID. Tussen de twee achterliggende dubbele punten wordt de home directory gedefinieerd, die mogelijk vooraf moet worden aangemaakt.

(S)FTP-server onder SuSE Linux vsftpd

Bij een artikel als dit moet je natuurlijk een distributie kiezen. Ik heb gekozen voor SuSE Linux omdat dit op dit moment de meest gebruikte distributie is. Het uitgangspunt is een standaard installatie van SuSE Linux 9.2, waarin SSH al geïntegreerd is. Google vertelde me snel of er een RPM pakket van de huidige vsftpd versie bestond voor SuSE. Voor dit artikel was versie 2.0.3 actueel. Het pakket heet vsftpd-2.0.3-1.1.i586.rpm voor SuSE People, dat eenvoudig geïnstalleerd kan worden via “YAST”. vsftpd staat voor “very secure ftp daemon”, is vooral geoptimaliseerd voor beveiliging en ondersteunt ook SFTP.

Nu gaan we verder in de shell. Je hebt root-rechten nodig en bewerkt dan vsftpd.conf in de /etc directory. Voer “vi /etc/vsftpd.conf” in. Het voorafgaande commentaarkarakter (“#”) moet worden verwijderd vóór de volgende regels:

  • write_enable=YES (schrijftoegang toegestaan)
  • ftpd_banner=”Welcome message on login”.
  • local_enable=YES (lokale gebruikers mogen inloggen)
  • chroot_local_user=YES (beperking tot opgegeven root directory)

Hulp voor verdere configuratie kan gevonden worden door “man vsftpd.conf” in te voeren.

Handige vim commando’s bij het bewerken:

  • “i” – activeer invoegmodus voor het huidige karakter
  • “ESC” – invoegmodus afsluiten
  • “o” – nieuwe regel
  • “dd” – regel verwijderen
  • “:wq” – opslaan en afsluiten
  • “:q!” – verlaten zonder op te slaan

Nu kan de vsftp daemon actief worden gemaakt. Voer “vi /etc/xinetd.d/vsftpd” in, verander de regel “disable = yes” in “disable = no” en sla deze wijzigingen op. Zorg ervoor dat er geen andere FTP-server parallel draait. Dit kan op dit punt worden gecontroleerd in de commandoregel met “nmap localhost” (als FTP wordt vermeld – hiervoor moet het pakket “nmap” zijn geïnstalleerd). Nu moeten de netwerkdiensten opnieuw worden gestart. Voer hiervoor “/etc/init.d/xinetd restart” in. De FTP-server is nu actief, u kunt dit controleren met “ftp localhost”. Na het inloggen (gebruik gewoon de gebruiker die momenteel is ingelogd op het systeem), kun je controleren of de beperking tot de opgegeven root directory werkt. Om dit te doen: 1. “ls”, 2. “cd …”, 3. “ls”. In beide gevallen moet dezelfde directory-inhoud worden weergegeven.

vsftpd
vsftpd

Met “sftp localhost” zou het natuurlijk ook moeten werken.

Nieuwe gebruikers en groepen kunnen worden aangemaakt via “YAST – Beveiliging en gebruikers”. Hier is de manier via de commandoregel:
Eerst wordt een nieuwe groep aangemaakt voor het gebruikersbeheer, waarin vervolgens de virtuele FTP-gebruikers worden toegevoegd. Voer in de shell “groupadd ftpuser” in. Nu kan een nieuwe gebruiker worden aangemaakt. Voorbeeld:

useradd -d /home/tester -g ftpuser -m -s /sbin/false tester.
Het volgende is van toepassing:

  • “-d” = home directory
  • “-g” = primair groepslidmaatschap
  • “-m” = home directory wordt tegelijkertijd aangemaakt, standaard onder /home/
  • “-s” = login-shell (hier gebruikt: gebruiker kan alleen inloggen op de FTP-server, niet op het systeem)

Maak de regel met de accountnaam af. Voer dan de volgende regel in:
passwd gebruikersnaam

Dus in dit voorbeeld voer ik in: “passwd tester”. Nu kan ik het wachtwoord definiëren. Er is de parameter -p voor een wachtwoord definitie voor “useradd”, maar de login werkt er niet mee, tenminste in de hier gebruikte distributie, omdat SuSE standaard versleutelt met Blowfish, wat vsftpd niet kan decoderen. Dit geldt niet als de standaard versleutelingsmethode tijdens de installatie van SuSE is veranderd.

Het is ook mogelijk om een lijst met gebruikersnamen bij te houden die mogen inloggen op de FTP-server. Deze procedure wordt aanbevolen omdat het voorkomt dat andere accounts op het systeem inloggen, tenzij dit expliciet is toegestaan. Maak een nieuw bestand aan “/etc/vsftpd.user_list” en voer onder elkaar de gebruikersnamen in die mogen inloggen op de FTP-server. Voer aan het einde van het bestand “/etc/vsftpd.conf” de volgende regels in:

userlist_deny=NO
userlist_enable=YES
userlist_file=/etc/vsftpd.user_list

Activeer en verander de regel “chroot_list_enable” in “NO”:
chroot_list_enable=NO
“chroot” herdefinieert de directory root voor programma’s en logins. De gebruiker krijgt dus “/” te zien als het root pad in het geval van een FTP login.

FTP Cliënten – Deel 2

SFTP cliënt

Om toegang te krijgen tot een SFTP server, hebben we nu een client nodig die deze toegangsmethode aankan. WinSCP is hier een van de eerste keuzes. De naam WinSCP is misleidend, het programma beheerst ook SFTP.

WinSCP
WinSCP

En natuurlijk kan WinSCP ook SCP-verbindingen aan. Het verbindingstype kan worden geselecteerd in de verbindingsmanager.

Het gratis FTP-programma FileZilla, dat eerder werd geïntroduceerd, ondersteunt ook SFTP. De server wordt aangesproken via “sftp://” + IP of DNS naam. De poort is standaard 22.

FileZilla
FileZilla

PSFTP uit de PuTTY downloads wordt aanbevolen als command line client.

Voer open servernaam in en authenticeer. Met het commando “help” kun je de beschikbare commando’s bekijken, die voorzien zijn van een functiebeschrijving.

Voor gebruikers van Total Commander is er ook een SFTP- en FTPS-plug-in op de homepage van Total Commander. De SFTP-plug-in wordt als voorbeeld gebruikt om het gebruik ervan kort te schetsen: Na installatie wordt de plug-in automatisch geïntegreerd; zo niet, dan kan hij handmatig worden geïntegreerd in de configuratie onder Bestandssysteem plug-ins. Nu kunt u op [ALT]+[F1] drukken, “Netwerkomgeving” selecteren, daar vindt u “Veilige FTP-verbindingen” en kunt u verbindingen instellen met “Verbindingen bewerken”.

Windows opdrachtregel

De Windows opdrachtregel is ook geschikt voor FTP. Klik op Start – Uitvoeren en voer “cmd” in om de opdrachtregel te openen. Voer “ftp” in en u kunt aan de slag. De commandoset kan worden bekeken door “help” in te voeren. Het is heel gemakkelijk te gebruiken. Een sessie kan er als volgt uitzien

open ftp.servername.de (opent serververbinding, korte vorm na cmd: "ftp ftp.servername.de")
 gebruikersnaam (gebruikersnaam)
 wachtwoord (wachtwoord)
 binair (schakelt over op binaire overdrachtsmodus, omdat ik ingepakte bestanden wil overdragen)
 cd map (gaat naar de map "map")
 get "file.7z" (downloadt het bestand "file.7z")
 put "file2.7z" (uploadt het bestand "file2.7z")
 quit

Dit is bijvoorbeeld handig als u een back-up wilt uploaden naar een externe computer via FTP. Om nog minder werk te hebben, kunt u het geheel verpakken in een batchbestand. In het pad van het batchbestand kunt u dan een tekstbestand opslaan met de FTP-commando’s – in dit voorbeeld van de gebruikersnaam tot de quit in een bestand “ftptransfer.txt”. In een batch kan de opdrachtreeks er als volgt uitzien:

ftp -s:ftptransfer.txt ftp.servername.nl

Met de parameter -s worden de FTP-commando’s verwerkt in het tekstbestand.

FXP-overdracht

FXP (File Exchange Protocol) is een methode om gegevens rechtstreeks tussen 2 servers over te dragen zonder de omleidingen via een client te hoeven nemen. Beide betrokken FTP-servers mogen deze mogelijkheid echter niet verbieden.

FXP is geen speciale FTP-functie, maar maakt gebruik van de eigenaardigheden van de actieve en passieve modus. Naar een 1e server stuurt een geschikte FTP-cliënt het PASV-signaal en ontvangt de poort en het IP-adres van de server. Naar een 2e server stuurt hij de zojuist ontvangen poort + IP-adres in het PORT-signaal, waardoor een verbinding tussen de betrokken servers tot stand komt. De gegevensoverdracht kan nu worden geïnitialiseerd met het signaal STOR (1e server) of RECV (2e server).

Een cliënt die met FXP kan omgaan is Staff-FTP.

De eerste verbinding wordt normaal tot stand gebracht, voor de tweede verbinding moet de in de schermafbeelding gemarkeerde knop worden aangeklikt.

FXP mit Staff-FTP
FXP met Staff-FTP

Een alternatief hiervoor is FlashFXP.

Problemen oplossen bij het opzetten van FTP-verbindingen

Dit laatste deel gaat over troubleshooting, omdat niet altijd alles volgens plan verloopt, kortom: de verbinding van de client naar de server werkt niet. Het oplossen van problemen kan nu worden gestart aan de serverzijde en aan de clientzijde. Beide gevallen worden hieronder beschreven aan de hand van checklists.

Probleemoplossing aan de serverzijde

Flussdiagramm Fehlersuche Serverseite
Flowchart Troubleshooting server side
    1. Wordt het FTP-serverpakket uitgevoerd?
      Procedure: Kijk in het taakbeheer of de FTP-server draait. Als hij draait als een service of geminimaliseerd is in de lade (naast de systeemklok), moet je in de processen kijken.
      Oplossing: Start de FTP server.
    2. Werkt de login lokaal?
      Procedure: Log in met een FTP-client op dezelfde computer waar de FTP-server draait. Het serveradres is 127.0.0.1 – vergeet de gebruikersgegevens niet. Er moet minstens één account zijn waarmee kan worden ingelogd. Bovendien moet voor de gebruiker een startdirectory worden gedefinieerd.
      Oplossing: Maak een account aan en definieer een startmap. Het anonieme account kan worden gebruikt voor testdoeleinden. Controleer of de caps lock-toets actief is en het wachtwoord dus verkeerd is geschreven.
    3. Als er een 2e computer bestaat in een thuisnetwerk: kunt u binnen het thuisnetwerk inloggen?
      Procedure: Achterhaal het IP van de computer waarop de FTP-server draait. Open de opdrachtprompt. Ga hiervoor naar het menu Start en klik op “Uitvoeren”, voer “cmd” in en druk op Enter. De opdrachtprompt wordt geopend. Voer “ipconfig” in en druk op Enter. U krijgt nu verschillende uitgangen, waaronder uw IP-adres. Als er verschillende adapters worden weergegeven, zoek dan naar een “LAN-adapter”.
ipconfig
ipconfig

Ga nu naar de 2e computer en open opnieuw de opdrachtprompt. Zorg ervoor dat de computer waarop de FTP-server draait toegankelijk is. Voer in de commandoregel “ping ip-adresse-des-ftp-servers” in (en voer natuurlijk het IP in dat je eerder hebt bepaald). De computer zou moeten reageren en er zouden relatief korte reactietijden uit moeten komen.
Start nu een FTP-clientprogramma en voer de naam van de computer in als serveradres en voeg de gebruikersgegevens toe. Het inloggen zou ook hier moeten werken.
Oplossing: Als het niet werkt, kan een software-firewall de schuldige zijn. Deactiveer deze als test met een verbroken internetverbinding. Als het nu wel werkt, kunt u de software firewall weer activeren en moet u de poorten 20 en 21 vrijgeven en ICMP toestaan voor het PING commando. Hoe u dit doet wordt uitgelegd in het antwoord op de volgende vraag.

Tip: In een lokaal netwerk werkt naamresolutie op computernaam ook. Achterhaal de computernaam waarop de FTP-server draait. Druk hiervoor op Configuratiescherm – Systeem [Win-toets]+[Pauze], ga naar het tabblad “Computernaam” en lees het, probeer opnieuw een PING vanaf een andere computer, alleen deze keer op de computernaam. U kunt dus ook de computernaam invoeren in plaats van het IP in de FTP-client als u een FTP-server in hetzelfde netwerkgebied wilt bereiken. Het inloggen zou ook moeten werken.

Ping-Tests
Ping tests
  1. Kan een vriend inloggen op uw account?
    Procedure: De beste manier om een FTP-server van buitenaf (d.w.z. vanaf het internet) te testen is door een vriend te laten testen – idealiter bent u met hem of haar verbonden via telefoon, voice-over-IP (telefoon, Skype, Teamspeak of vergelijkbaar) of via Messenger, zodat u snel kunt reageren. Om de foutbron DynDNS uit te sluiten, moet hij uw publieke IP als serveradres gebruiken. Ga op de computer met de FTP-server naar http://www.wieistmeineip.de/ om dit te achterhalen. Uw vriend moet dit IP-adres als serveradres invoeren in de FTP-client, samen met de gebruikersgegevens.
    Oplossing: Als dit niet werkt, controleer dan het volgende:
    Gebruikt u een software firewall? Deze moet overeenkomstig worden geconfigureerd zodat de FTP-server met de buitenwereld kan communiceren. Dit geldt ook voor de Windows firewall. Bij gebruik van de Windows firewall moet de communicatie worden geopend op poort 21. Open de firewallconfiguratie in het configuratiescherm, ga naar het tabblad “Geavanceerd”, selecteer de betreffende netwerkverbinding (meestal LAN-verbinding), klik op “Instellingen” en vink het vakje FTP-server aan in het tabblad “Diensten”. Ga nu naar het tabblad “ICMP” en plaats nog een vinkje bij “Allow incoming echo request” (PING). Met 2 bevestigingen door op de OK knop te klikken zijn de instellingen geaccepteerd. De FTP-server is nu toegankelijk achter de XP firewall en de computer op de betreffende netwerkinterface kan gepingd worden.
ICMP bei der Windows-Firewall einstellen
ICMP instellen op de Windows firewall

Bij andere software firewalls wordt meestal bij de eerste toegang gevraagd of toegang moet worden toegestaan. Zo niet, dan kunt u handmatig een share aanmaken analoog aan de Windows firewall en de volgende routerconfiguratie. Aangezien natuurlijk niet elke software firewall configuratie in een artikel als dit kan worden behandeld, zal ik hier als voorbeeld de configuratie in de Kerio Personal Firewall beschrijven (standaard installatie, d.w.z. geen leermodus, d.w.z. geen vraag of toegang moet worden toegestaan). Ga in de configuratie-interface naar “Netwerkbeveiliging” en daar naar het tabblad “Voorgedefinieerd”. Als u wilt dat uw FTP-server vanaf het internet gepingd wordt, moet u “Ping en Tracert in” vanaf het internet toestaan (klik op het rode kruisje). Kerio PF werkt toepassingsgericht, daarom moet de pakketfilter worden geconfigureerd in het tabblad “Toepassingen”. Klik hiervoor op de gelijknamige knop en voeg een nieuwe regel toe analoog aan de volgende schermafbeelding:

Analoge Einstellungen bei der Kerio Firewall
Analoge instellingen voor de Kerio Firewall

Met de standaardinstellingen van deze software firewall werken inloggen en bestandsoverdracht nu wel. Andere software firewalls verbieden alle verkeer – inkomend en uitgaand. Hier moet ofwel poort 20 uitgaand en poort 21 inkomend worden toegestaan (FTP-server wordt actief aangesproken) of er moet een poortbereik worden gedefinieerd in de FTP-server en poort 21 inkomend moet worden toegestaan in de software firewall (FTP-server wordt passief aangesproken). Dit laatste is niet mogelijk met de huidige versie van GuildFTPd; in dit geval zou u bijvoorbeeld Serv-U als FTP-server nodig hebben. Als u een software firewall gebruikt, zorg er dan voor dat deze altijd geupdate wordt.
Gebruikt u een router? Ook dat kan de verbinding verhinderen. Port forwarding moet worden uitgevoerd. Hierbij worden IP-pakketten van het internet op een bepaalde poort (hier 21) doorgestuurd naar een gedefinieerde poort + IP-adres achter de router.
Roep de configuratie van uw router op. De handleiding van uw router zal u helpen bij de vraag hoe port forwarding moet worden geconfigureerd. Soms wordt dit punt ook “Virtual Server”, “NAT Setup” of iets dergelijks genoemd. Als u uw handleiding kwijt bent, kunt u die meestal als PDF downloaden van de website van de fabrikant. Over het algemeen moet u poort 21 TCP “forwarden” naar de computer waarop de FTP-server draait.
Voorbeeld voor een router model Draytek 2900G: Open de webinterface van de router – NAT Setup – Configure Port Redirection Table – Service Name: FTP – Protocol: TCP – Public Port: 21 – Private IP: 192.168.1.111 – Private Port: 21 – Check Active – Klik OK.
Verdere instructies vindt u hier: http://portforward.com/routers.htm.

Belangrijke opmerking: Neem uw computer niet op in de DMZ (Demilitarised Zone), als deze bestaat; doe dit ook niet voor testdoeleinden. U brengt de veiligheid van het hele netwerk achter de router in gevaar.

Zowel SSH als SFTP gebruiken poort 22 voor communicatie. Als u beveiligde communicatie gebruikt (deel 2), moet u analoog te werk gaan met poort 21 zoals zojuist beschreven.
Het is raadzaam vooraf vaste IP-adressen in het thuisnetwerk toe te wijzen en dus een bestaande DHCP-server in de router te deactiveren. Voorbeeld: Als de webinterface van de router wordt geopend wanneer u het IP 192.168.1.1 invoert, kunt u uw clients configureren met de IP-adressen 192.168.1.101, 192.168.1.102, enz. De standaard gateway en voorkeur DNS server is in beide gevallen uw router, in dit voorbeeld 192.168.1.1. U kunt dit configureren onder Configuratiescherm – Netwerkverbindingen – rechtsklik op LAN verbinding en selecteer Eigenschappen – Selecteer Internet Protocol (TCP/IP) – Eigenschappen. U kunt nu het toegewezen IP als bestemmingscomputer invoeren tijdens het doorsturen van de poort. Wat gebeurt er met datapakketten die aankomen op poort 21? Ze worden doorgestuurd naar de computer van bestemming.

  • Werkt de aanmelding bij gebruik van de DynDNS-naam?
    Procedure: Afhankelijk van welke DynDNS-client wordt gebruikt, zijn er twee manieren. Indien een software client (DynDNS Updater, DirectUpdate, DeeEnEs etc.) wordt gebruikt, kunt u deze zelf testen. Als men de client in een router gebruikt, vraag dan een vriend om de login met de geregistreerde DynDNS-naam uit te voeren, aangezien slechts zeer weinig routers toestaan dat de DynDNS-naam aan de interne (LAN) kant wordt bereikt.
    Oplossing: Als dit niet werkt, is de hostnaam mogelijk niet correct opgelost of wordt de DynDNS-client niet bijgewerkt. Voer het commando “nslookup” in op de Windows command prompt en bevestig met Enter. Nu kunt u een domein invoeren – hier voert u uw DynDNS-naam in en bevestigt u met Enter (u verlaat de dialoog door “exit” + Enter in te voeren). Meestal moet een van de antwoorden zijn:“Unauthorised response: Name: Your_DynDNS_Name, Address: The_associated_IP“.
nslookup
nslookup

Vergelijk het IP-adres met dat op http://www.wieistmeineip.de/. Het zou identiek moeten zijn. Zo niet, dan synchroniseert de DynDNS-client in de router of op uw computer niet goed. Controleer de configuratie, vooral de juiste spelling van de hostnaam, de gebruikersnaam en het wachtwoord. U kunt de gebruikersnaam en het wachtwoord ook controleren op http://www.dyndns.org/. De login (Sign In) staat rechtsboven. Na succesvol inloggen kunt u bovenaan ook klikken op “My Services”. Uw hostnaam wordt nu hieronder weergegeven onder “Host Level Services”. Klik op “Dynamic DNS” om het bijbehorende IP-adres en de laatste synchronisatietijd te zien. Uw huidige IP-adres wordt weergegeven onder “Nieuw IP-adres”. Als dit afwijkt van het “IP in Database/DNS”, klikt u op “Modify Host”. Het IP adres is nu bijgewerkt in de DynDNS database en uw FTP server zou toegankelijk moeten zijn via de DynDNS naam.

Problemen oplossen aan de cliëntzijde

Flussdiagramm Fehlersuche Clientseite

  1. Wat ik ook probeer, er wordt geen verbinding gemaakt met een server, er is altijd een time-out.
    Oplossing: Als u een extra software-firewall hebt geïnstalleerd, controleer dan of deze het tot stand brengen van de verbinding blokkeert. Het logbestand van het programma is hiervoor nuttig. Herconfigureer de software dienovereenkomstig, zodat de FTP-cliënt kan communiceren.
  2. Een bepaalde FTP-server op internet is niet bereikbaar, er is steeds een time-out.
    Oplossing: Controleer eerst of de servernaam, de gebruikersnaam en het wachtwoord correct zijn gespeld.
    De eerste manier om te controleren of een server bereikbaar is, is door het PING-commando te gebruiken. Dit veronderstelt natuurlijk dat ICMP niet door een firewall wordt geblokkeerd. Voer het commando “ping servernaam” in op de opdrachtregel van Windows (Start – Uitvoeren: cmd). Op basis van de antwoorden kunt u de eerste conclusies trekken.
    Als de server antwoordt en u krijgt 4 regels met millisecondenwaarden, ziet het er zo uit:

    Antwort auf PING-Anfrage
    Antwoord op PING-verzoek

    De computer is toegankelijk. Als toegang via FTP nu niet werkt, moeten firewalls aan client- en serverzijde worden gecontroleerd op correcte configuratie. Als u alle andere foutbronnen hebt uitgesloten, is de FTP-service op de server momenteel waarschijnlijk niet beschikbaar.

Krijgt u het volgende bericht…

Fehler”>
…, dan wijst dit op een probleem met de naamresolutie (DNS). Probeer in dit geval of het commando “ping www.google.de” of “ping www.t-online.de” succesvol is. Als deze test positief is, is de gewenste hostnaam van de FTP-server niet correct opgelost. Voer het commando “ipconfig /flushdns” in op de commandoregel. Dit wist de DNS-cache.
Als een correcte naamresolutie nog steeds niet mogelijk is, controleer dan de instellingen van uw internetverbinding, met name de voorkeurs-DNS-server en de IP-configuratie.
Als het antwoord “Destination host not reachable” is, is de routering naar de bestemmingshost foutief als u verder normaal op het internet kunt surfen.

Ping mit kompletter URL
Ping met complete URL

Als u over het algemeen dit antwoord krijgt, moet u de subnetmaskers van uw netwerkomgeving controleren.
Als je veel request violations krijgt, is de host tijdelijk of helemaal niet beschikbaar.

Ping mit IP
Ping met IP

Dit wijst op een niet bestaande netwerkverbinding, netwerkcongestie, ARP-resolutiefout op weg naar de server, pakketfiltering (firewall) of routeringsfout. Soms kan een eenvoudige herstart van de router (indien beschikbaar) helpen, maar ook het zoeken naar een verkeersveroorzakende worm kan soms leiden tot het opheffen van een overbelasting. U kunt hier lezen over internetverstoringen: http://www.heise.de/imonitor/.
Als u zelfs bij een “ping localhost” / “ping 127.0.0.1” foutmeldingen krijgt, moet u de TCP/IP-stack opnieuw installeren. Ga hiervoor naar Configuratiescherm – Netwerkverbindingen – rechtsklik LAN-verbinding – Eigenschappen – TCP/IP Protocol – Verwijderen – vervolgens opnieuw opstarten – ga dan terug naar dit dialoogvenster en installeer TCP/IP Protocol opnieuw.

  • Het inloggen werkt, maar ik krijg niets geüpload of gedownload.
    Oplossing: Mogelijk blokkeert een firewall het transport. Als u de actieve verbindingsmodus gebruikt, stel dan de passieve verbindingsmodus in uw FTP-cliënt in en probeer het opnieuw.
  • Bestanden worden niet volledig geüpload of gedownload.
    Oplossing: Mogelijk wordt de verkeerde overdrachtsmodus gebruikt (ASCII / Binair – welke keuze de juiste is voor welk bestandstype is uitgelegd aan het begin van deel 1 van de artikelreeks). Zoek de overeenkomstige instelling in uw FTP-cliënt en verander deze in “Automatisch”. Als de FTP-cliënt de verkeerde keuze maakt, kunt u zelf de overdrachtsmodus bepalen als een update van het FTP-programma niet helpt.
    Een andere reden voor een foutieve overdracht, die moeilijker te lokaliseren is, is de MTU-waarde. Gedetailleerde instructies over dit probleem vindt u hier: http://www.gschwarz.de/mtu-wert.htm

Gerelateerde berichten