Je privacy gegarandeerd: zo zet je een veilige SFTP-verbinding op

© PXimport

Je privacy gegarandeerd: zo zet je een veilige SFTP-verbinding op

Geplaatst: 7 juli 2023 - 08:04

Toon van Daele

FTP (File Transfer Protocol) was decennialang het protocol bij uitstek voor het versturen van bestanden. Maar omdat het geen beveiliging biedt, wordt dit protocol bijna niet meer gebruikt. SFTP is heel wat veiliger, aangezien zowel de gegevens als de authenticatie (het aanmelden) versleuteld worden.

Om een SFTP-verbinding op te kunnen zetten, hebben we een SFTP/SSH-server nodig, omdat commando’s en data via een ssh-datastream (Secure Shell) worden versleuteld. Handig is dat er in Windows 10/11 standaard al zo’n server aanwezig is, in de vorm van OpenSSH, een opensource-implementatie van SSH die in 1999 door enkele OpenBSD-ontwikkelaars werd uitgebracht. Je vindt meer informatie over dit protocol op www.openssh.com.

Je privacy gegarandeerd: zo zet je een veilige SFTP-verbinding op-56597186

Bij een SFTP-verbinding wordt data versleuteld met SSH.

OpenSSH-server

Je vindt deze OpenSSH-server in Windows als volgt: open de module Instellingen van Windows (Windows-toets+I), open het onderdeel Apps en klik op Optionele onderdelen (in Windows 10 vind je dit bij Apps en onderdelen). Wellicht zie je hier de OpenSSH-client al staan, maar wij hebben voor ons opzet ook nog de optie OpenSSH-server nodig. Staat deze niet in de lijst, klik dan op Een onderdeel toevoegen (Windows 10) of op Functies weergeven (Windows 11) en scrol tot bij OpenSSH-server. Plaats een vinkje bij dit onderdeel en klik op Installeren (Windows 10) of op Volgende / Installeren (Windows 11). Eventueel herhaal je dit voor OpenSSH-client. Herstart daarna je pc.

Je privacy gegarandeerd: zo zet je een veilige SFTP-verbinding op-56603974

OpenSSH-server is een optioneel onderdeel van Windows.

Gegevens veilig bewaren?

Bekijk usb-sticks met wachtwoordbeveiliging

Handmatige installatie

Werk je met een nog oudere eerdere Windows-versie of lukt de installatie van de OpenSSH-server onverhoopt niet, dan kan het nog handmatig. Download de recentste stabiele versie. Er zijn versies voor Windows 32 en 64 bit.

Pak het gedownloade zip-bestand uit naar de map C:\Program Files\openssh. Vervolgens klik je met rechts op Windows PowerShell in het Windows-startmenu en kies je Als administrator uitvoeren. Voer nu eerst dit commando uit (gevolgd door een druk op Enter):

cd "c:\program files\openssh"

Voer daarna het volgende commando uit:

Powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1

De sshd- en ssh-agent-services worden nu geïnstalleerd. Je kunt PowerShell nu afsluiten.

Je privacy gegarandeerd: zo zet je een veilige SFTP-verbinding op-56603979

Services

Je vindt nu ook OpenSSH-server (kortweg sshd) in de lijst met optionele onderdelen. Deze service moet natuurlijk wel operationeel zijn en dit kan vanuit het onderdeel Services. Druk op Windows-toets+R en voer services.msc uit. Scrol tot bij OpenSSH Authentication Agent (kortweg ssh-agent), selecteer deze en klik linksboven op De service starten. Zie je deze optie niet, dubbelklik dan op de service en stel het Opstarttype in op Handmatig. Na je bevestiging met OK is de optie wel beschikbaar. Om er zeker van te zijn dat deze service altijd paraat staat, stel je het Opstarttype in op Automatisch. Herhaal deze procedure voor de service OpenSSH SSH Server.

Je privacy gegarandeerd: zo zet je een veilige SFTP-verbinding op-56603981

In het onderdeel Services regel je hoe de OpenSSH-server start.

Firewall (via PowerShell)

De OpenSSH-services zijn nu geïnstalleerd en operationeel, maar mogelijk krijg je last van een spelbreker: de firewall. We gaan ervan uit dat je de ingebouwde Windows-firewall gebruikt. Die moet je duidelijk maken dat hij de aanvragen bedoeld voor de OpenSSH-server niet mag blokkeren. De snelste manier is via Windows PowerShell, dat je weer als administrator dient op te starten. Hier tik je dan de volgende commandoregel in:

New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH SSH Server' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22

Eventueel voeg je hier de parameter -Profile Private aan toe als je de regel tot dit netwerkprofiel wilt beperken.

Je privacy gegarandeerd: zo zet je een veilige SFTP-verbinding op-56603983

Met deze opdracht open je de firewall voor de server.

Firewall (via Defender)

Het kan ook stapsgewijs, vanuit het venster Windows Defender Firewall met geavanceerde beveiliging. Je opent dit venster door op Windows-toets+R te drukken, waarna je wf.msc uitvoert.

Klik in het linkerdeelvenster op Regels voor binnenkomend verkeer en in het rechterdeelvenster op Nieuwe regel. In het dialoogvenster selecteer je Poort en druk je op Volgende. Bij Specifieke lokale poorten vul je het (standaard) poortnummer 22 in. Druk op Volgende, kies De verbinding toestaan, druk nogmaals op Volgende en laat bij voorkeur alleen het vinkje staan bij Privé. Vul een naam in, bijvoorbeeld OpenSSH, en sluit af met Voltooien. De regel is toegevoegd.

Je privacy gegarandeerd: zo zet je een veilige SFTP-verbinding op-56603984

Ook via deze toegankelijkere route is de firewall in te stellen.

Je privacy gegarandeerd: zo zet je een veilige SFTP-verbinding op-56603985

Lokale test (met WinSCP)

Je OpenSSH-server is klaar voor gebruik. Dit kun je testen vanaf de pc waarop je OpenSSH-server draait, met een geschikte client zoals WinSCP of FileZilla. Eerst WinSCP: download en installeer het programma. Start het op en klik op Nieuwe Sessie. In het venster Inloggen klik je op Nieuwe Site. Bij Bestandsprotocol kies je SFTP, waarna je localhost invult bij Adres doelcomputer en 22 bij Poortnummer. Bij Gebruikersnaam en Wachtwoord vul je de inloggegevens van je Windows-account in. Klik op Opslaan en geef je verbinding een naam. Selecteer deze en klik op Inloggen. Er zal dan een melding verschijnen over een onbekende serversleutel. Aangezien het om jouw machine gaat, kun je gerust op Ja of OK klikken. De verbinding is gereed.

Je privacy gegarandeerd: zo zet je een veilige SFTP-verbinding op-56603997

Test met WinSCP of de server bereikbaar is.

Lokale test (FileZilla)

Werk je liever met FileZilla Client, dan kan dat ook. Download de software en installeer hem (pas op dat je geen ongewenste software mee-installeert). Start FileZilla Client, open Bestand / Sitebeheer. Klik op Nieuwe site en vul een naam in. Bij Protocol kies je SFTP - SSH File Transfer Protocol. Host en Poort stel je respectievelijk in op localhost en 22. En bij Gebruiker en Wachtwoord vul je je Windows-inloggegevens in.

Ook nu zal er een melding opduiken van een onbekende serversleutel. Aangezien het om jouw machine gaat, kun je gerust op Ja of OK klikken. De verbinding is gereed.

Je privacy gegarandeerd: zo zet je een veilige SFTP-verbinding op-56603999

Het testen kan ook met FileZilla, als je daar liever mee werkt.

Je bestanden overal kunnen openen? Vind een geschikte NAS 👇

0

Powered by

logo

Mobiele verbinding

Het kan ook handig zijn om via een smartphone verbinding met de OpenSSH-server te kunnen maken. We nemen een Android-toestel als voorbeeld met de gratis app Cx File Explorer, beschikbaar in de Play Store. Start de app, selecteer Network, tik op de plusknop boven New Location, kies Remote en selecteer SFTP. Bij Host vul je de hostnaam of het lokale ip-adres van je OpenSSH-server in. Je vindt dit adres door op die pc in de Opdrachtprompt het commando ipconfig uit te voeren. Laat Port ingesteld staan op 22, en vul bij Username en Password je Windows-inloggegevens in. Bevestig met OK, waarna de mappenlijst van de server tevoorschijn komt.

Je privacy gegarandeerd: zo zet je een veilige SFTP-verbinding op-56604001

Het wordt al interessanter: verbinding maken vanaf je smartphone.

Android-smartphone nodig?

Bekijk & vergelijk alle nieuwe modellen

Sleutelpaar genereren

Wanneer je de OpenSSH-server van buitenaf wilt bereiken, is het veiliger om met een zogenoemd sleutelpaar te werken, met een private en een publieke sleutel. De stappen tot en met ‘Anders verbinden’ zijn optioneel en vergen wel enige voorbereiding.

Start Opdrachtprompt als administrator op en voer het commando ssh-keygen uit, bij voorkeur vanuit je eigen profielmap (C:\Users\<accountnaam>). Dit bestand bevindt zich na de installatie van OpenSSH-server standaard in de map %windir%\system32\openssh (maar aangezien deze locatie in de path-variabele is opgenomen, vindt Opdrachtprompt dit zelf wel). Geef een bestandsnaam op en eventueel een wachtwoord (2x).

Je privacy gegarandeerd: zo zet je een veilige SFTP-verbinding op-56604002

Sleutelparen zijn veiliger dan wachtwoorden, maar moet je wel voorbereiden.

Private sleutel

De gemaakte sleutels zijn bewaard in de bestanden <je_bestandsnaam> en <je_bestandsnaam>.pub, standaard in map van waaruit je de opdracht hebt gegeven; we nemen aan op dezelfde machine als waar de OpenSSH-server draait. Volg de volgende stappen: controleer nogmaals dat de OpenSSH-services actief zijn en voer het volgende commando uit vanaf de Opdrachtprompt:

ssh-add <pad_naar_je_private_sleutel>

Dit is dus het pad naar het bestand <je_bestandsnaam>.

De OpenSSH-agentservice regelt je lokale private sleutel(s) en, nadat je het wachtwoord correct hebt ingevoerd, neemt hij deze de nieuwe sleutel in de lokale sleutelstore op.

Je privacy gegarandeerd: zo zet je een veilige SFTP-verbinding op-56604003

De OpenSSH-agentservice bewaart de nieuwe sleutel.

Publieke sleutel

Nu moet je nog je publieke sleutel aan de OpenSSH-server koppelen. Kopieer het bestand <je_bestandsnaam>.pub naar de map .ssh, een submap van je profielmap. Indien nodig maak je deze submap eerst. Hernoem het gekopieerde bestand naar authorized_keys (zonder bestandsextensie). Ben je administrator op het systeem, dan moet je dit bestand kopiëren naar de verborgen map C:\Programdata\ssh, onder de naam administrators_authyorized_keys.

Vervolgens navigeer je naar het bestand sshd_config, standaard in de map C:\Programdata\ssh. Open dit in je favoriete teksteditor (eventueel Kladblok).

Verwijder het hekje (#) bij de regels PubkeyAuthentication yes en StrictModes yes, en wijzig die laatste regel vervolgens in StrictModes no.

Je privacy gegarandeerd: zo zet je een veilige SFTP-verbinding op-56604005

Koppel de publieke sleutel aan de OpenSSH-server.

Verbinding via WinSCP

Sla het gewijzigde bestand op en herstart de service vanaf de Opdrachtprompt met deze opdracht:

net stop sshd && net start sshd

Nu moet je je SFTP-client nog aanpassen, zodat die de private sleutel doorstuurt naar de server. In WinSCP doe je dit als volgt: selecteer de verbinding, klik op Bewerken en op Geavanceerd. Bij SSH klik je op Authenticatie en verwijs je bij Privé-sleutelbestand naar je private sleutelbestand. Dit moet je wel eerst laten converteren naar een ondersteund formaat (.ppk van de tool Putty). Bevestig vervolgens met OK, bewaar de configuratie en verbind je met de server. Indien je je private sleutel met een wachtwoord had vergrendeld, moet je dit wel eerst invoeren.

Je privacy gegarandeerd: zo zet je een veilige SFTP-verbinding op-56604006

Kies bij Authenticatie voor Privé-sleutelbestand.

Anders verbinden

We tonen ook nog even hoe je in FileZilla Client een verbinding opzet via een private ssh-sleutel. De werkwijze is vergelijkbaar met die van WinSCP. Het volstaat in het venster van Sitebeheer via de knop Bladeren naar je private sleutelbestand te navigeren. Ook hier zal het programma voorstellen de sleutel eerst naar een ondersteund ppk-formaat te converteren.

Maak je gebruik van de mobiele app Cx File Explorer, tik dan bij het aanmaken van je inloggegevens op More en vervolgens op het pijltje bij Private Key, waarna je ook hier naar je private sleutelbestand verwijst.

Je privacy gegarandeerd: zo zet je een veilige SFTP-verbinding op-56604007

Het verbinden via een ssh-sleutel gaat in FileZilla op een vergelijkbare manier.

Portforwarding

Wanneer de OpenSSH-server zich op een pc achter een router bevindt (en die kans is groot), dan laat deze zich doorgaans niet zomaar van buitenaf bereiken. Een mogelijke oplossing is een portforwarding-regel in je router in te stellen. Open de betreffende rubriek in de (web)interface van je router en voer de volgende gegevens in: een naam voor je regel, tcp-poortnummer 22 en het interne ip-adres van je OpenSSH-server.

Mocht je router zich nog achter een andere router bevinden, dan is het niet uitgesloten dat je op de ‘buitenste’ router eerst een vergelijkbare portforwarding-regel moet opstellen die naar het interne ip-adres van je ‘binnenste’ router verwijst.

Je privacy gegarandeerd: zo zet je een veilige SFTP-verbinding op-56604008

Om de server van buitenaf te bereiken, moet je poort 22 koppelen aan het interne ip-adres van de server.

DDNS

Het is vervelend dat je het publieke ip-adres van je router/netwerk moet kennen om een verbinding van buitenaf te maken met je SFTP-server. De kans is ook groot dat dit adres dynamisch wordt toegekend door je provider en dus zomaar kan wijzigen. Beide problemen los je op met een DDNS-dienst, die een eigen domeinnaam aan dat adres koppelt waarna een client elke wijziging van je ip-adres meteen aan de DDNS-dienst doorgeeft.

Je kunt zo’n dienst gratis gebruiken via Dynu. Meld je aan en open in het Control Panel de optie DDNS Services. Klik op Add, en kies bij Use Our Domain Name een eigen host (zoals mijn-sftp-server) en een toplevel-domein (bijvoorbeeld ddnsfree.com). Bevestig met ADD en met Save. Klaar! Via de Dynu IP Update Client kun je vervolgens een client downloaden die vanaf je pc en via je aanmelding met je Dynu-account, de koppeling tussen je hostnaam en je publieke ip-adres netjes intact houdt.

Je privacy gegarandeerd: zo zet je een veilige SFTP-verbinding op-56604012

Met antivirussoftware houd je je computer vrij van corrupte bestanden 👇

0

Powered by

logo
Deel dit artikel
Voeg toe aan favorieten