SSH & SFTP Installatie¶
In deze handleiding leer je hoe je OpenSSH kunt installeren en gebruiken op een Linux-systeem.
We gebruiken hier Debian/Ubuntu als voorbeeld, maar de stappen voor RHEL/CentOS zijn vergelijkbaar.
Achtergrondinformatie
-
SSH (Secure Shell): ontwikkeld door Tatu Ylönen in 1995, nu onderhouden door het OpenSSH-project (onderdeel van OpenBSD).
Het biedt veilige, versleutelde toegang tot servers op afstand en is de standaard voor systeembeheer. -
SFTP (SSH File Transfer Protocol): uitgebracht als onderdeel van het IETF SSH2 protocol rond 2001.
Het maakt gebruik van dezelfde beveiligde verbinding als SSH en wordt vooral gebruikt om bestanden veilig te kopiëren tussen systemen.
SFTP inbegrepen
SFTP is geen aparte installatie.
Het is standaard onderdeel van OpenSSH, dus zodra je SSH installeert, heb je automatisch ook SFTP.
1. Controleren of SSH (en SFTP) al aanwezig zijn¶
Handleiding¶
2. Installatie¶
Voorbeeld output
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
ncurses-term openssh-sftp-server ssh-import-id
Suggested packages:
ssh-askpass molly-guard rssh
The following NEW packages will be installed:
ncurses-term openssh-server openssh-sftp-server ssh-import-id
0 upgraded, 4 newly installed, 0 to remove and 0 not upgraded.
Need to get 600 kB of archives.
After this operation, 5,000 kB of additional disk space will be used.
Setting up openssh-server (1:8.9p1-3ubuntu0.3) ...
Processing triggers for man-db (2.10.2-1) ...
Processing triggers for systemd (249.11-0ubuntu3.6) ...
3. SSH-Service beheren¶
Wanneer de OpenSSH-server is geïnstalleerd, moet de service geactiveerd en gestart worden zodat je verbindingen kunt accepteren. Hieronder zie je de belangrijkste commando’s en hun functie:
-
Commando’s
- Zorgt ervoor dat de SSH-service automatisch start bij het opstarten van het systeem. - Start de SSH-service direct, zodat je meteen verbindingen kunt maken. - Controleert de huidige status van de SSH-service en toont of deze actief draait. -
Voorbeeld output
systemctl enable sshsystemctl status ssh● ssh.service - OpenBSD Secure Shell server Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2023-01-10 12:34:56 UTC; 10s ago Main PID: 1234 (sshd) Tasks: 1 (limit: 1111) Memory: 2.0M CGroup: /system.slice/ssh.service └─1234 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups
4. Verbinden met de server¶
Met SSH en SFTP kun je veilig inloggen en bestanden overzetten.\ Beide werken via dezelfde OpenSSH-service.
Praktisch voorbeeld:
Praktisch voorbeeld:
Voorbeeld van een interactieve sessie
Extra nuttige commando’s¶
Open SSH in de firewall met firewalld:
Controleer de configuratie voordat je herstart:
Tip
Als er geen output komt, betekent dat dat de configuratie geldig is.
Upload een bestand naar de server:
Download een bestand van de server:
Info
Voor grotere/multiple bestanden is rsync vaak efficiënter.
Logging en Debugging¶
Wanneer je problemen hebt met SSH of SFTP, kan logging je helpen om de oorzaak te achterhalen.
Voorbeeld output
Aug 25 10:22:41 server sshd[1234]: Accepted password for alice from 192.168.1.20 port 51562 ssh2
Aug 25 10:22:41 server sshd[1234]: pam_unix(sshd:session): session opened for user alice by (uid=0)
Aug 25 10:25:03 server sshd[1256]: Received disconnect from 192.168.1.20 port 51562:11: disconnected by user
Aug 25 10:25:03 server sshd[1256]: Disconnected from user alice 192.168.1.20 port 51562
Je kunt tijdelijk het debug-niveau verhogen door de SSH-daemon in debug-modus te starten:
-D→ niet in de achtergrond draaien-d/-dd/-ddd→ verschillende debug-niveaus (meerd= meer details)
Als je vanaf de client wilt debuggen:
Voorbeeld output
SFTP maakt gebruik van de SSH-service. Fouten verschijnen dus ook in de SSH-logs.
Voor extra debugging kan je op de client:
Configuratiebestanden¶
Het belangrijkste configuratiebestand voor de SSH-daemon (server).
Hier stel je o.a. in:
- Poort (Port)
- Authenticatiemethoden (PasswordAuthentication, PubkeyAuthentication)
- Root-login (PermitRootLogin)
- SFTP-instellingen
Het configuratiebestand voor de SSH-client.
Dit bepaalt standaardopties voor alle uitgaande verbindingen, zoals:
- Standaard gebruiker
- Host-specifieke instellingen
Gebruikersspecifieke configuratie voor de SSH-client.
Handig voor shortcuts zoals:
- Aliassen voor servers
- Specifieke sleutels per host
- Standaard opties per verbinding
Bevat cryptografische parameters (Diffie-Hellman groepen)
die gebruikt worden voor sleuteluitwisseling.
Afhankelijk van het OS vind je hier de inlogpogingen en logins:
- Debian/Ubuntu:
/var/log/auth.log - RHEL/CentOS:
/var/log/secure
SSH volledig verwijderen (Debian/Ubuntu)¶
Ja, het is technisch mogelijk om OpenSSH volledig te verwijderen, maar dit wordt sterk afgeraden.
Zeker als je server alleen via SSH beheerd wordt, kan dit ervoor zorgen dat je geen toegang meer hebt.
Verwijder SSH dus alleen als je fysieke toegang hebt tot de server of een alternatieve beheerinterface
(bijv. IPMI, iDRAC, of de cloud-console van je provider).
Verwijder het pakket¶
Verwijder configuratiebestanden¶
Verwijder logbestanden¶
Let op
Het verwijderen van SSH kan leiden tot permanente buitensluiting van je server.
Overweeg dit alleen in een testomgeving of wanneer je zeker weet dat er een alternatieve toegang beschikbaar is.
Hardening Tips¶
Aanbevelingen voor extra veiligheid
-
Gebruik een andere poort
⚠️ Dit is géén volledige beveiliging, maar vermindert brute-force scans.
Pas de poort aan in/etc/ssh/sshd_config, bijvoorbeeld:
-
Schakel wachtwoordlogins uit
Dit voorkomt brute-force aanvallen met wachtwoorden.
Alleen inloggen met sleutels: -
Blokkeer root-login
Voorkom dat iemand direct als root kan inloggen: -
Gebruik SSH-keys met sterke encryptie
Kopieer deze naar de server:
Maak een key aan: -
Beperk toegang per gebruiker of groep
of
Voeg alleen specifieke accounts toe in/etc/ssh/sshd_config: -
Firewall & rate limiting
- Beperk toegang via een firewall (bijv. UFW):
-
Bescherm tegen brute-force met Fail2ban:
-
Gebruik moderne ciphers en protocollen
In/etc/ssh/sshd_config: -
Logging en monitoring
Houd verbindingen in de gaten:
✅ Na installatie heb je zowel SSH als SFTP tot je beschikking.
Voor maximale veiligheid combineer je bovenstaande maatregelen en herstart je daarna de service: