Je e-mail is verstuurd.

Hoe beveilig ik de SSH-dienst op mijn Linux-server?


In dit artikel beschrijven we de mogelijkheid om de SSH-dienst op je Linux-server te beveiligen. Daartoe gebruiken we het voorbeeld van een OpenSSH-server.

We raden alle klanten met een virtuele of dedicated server van STRATO aan om de SSH-dienst in te stellen. Dit doe je via de hierna genoemde stappen. Stap 3 is overigens optioneel.

Een nieuwe gebruiker aanmaken

Je moet eerst een gebruiker op het systeem aanmaken vóór je het inloggen van de gebruiker ‘root’ blokkeert.

We raden je de volgende procedure aan:

Maak een gebruiker aan die bij de groep users hoort en een thuismap heeft in /home:
useradd -g users -d /home/[gebruikersnaam] -s /bin/bash [gebruikersnaam]
Vervang [gebruikersnaam] door een naam naar keuze (zonder leestekens of spaties).
Ken een wachtwoord toe aan de nieuwe gebruiker:
passwd [gebruikersnaam]
 
De map /home voor de nieuwe gebruiker moet je nog steeds handmatig aanmaken als gebruiker ‘root ‘:
mkdir /home/[nutzername]
Vervolgens ken je de nieuwe map toe aan de nieuwe gebruiker:
chown [gebruikersnaam]:users /home/[gebruikersnaam]/
 
Wacht even voor je verder gaat met de volgende stap. Controleer eerst of je inderdaad met de nieuwe gebruikersgegevens kunt inloggen via SSH.

Lukt dat? Dan kun je de volgende stap nemen.

 

Blokkeer het inloggen voor de gebruiker ‘root’

Nadat je in de eerste stap een andere gebruiker hebt aangemaakt, is het verstandig om het inloggen voor ‘root’ helemaal uit te schakelen.

Heeft je server een seriële console? Dan is het natuurlijk nog steeds mogelijk om op je server in te loggen als rootgebruiker.
 
Hoe maak je verbinding met je dedicated Server via RemoteConsole?
We raden je deze procedure aan:
Verander in het bestand  /etc/ssh/sshd_config de regel:
PermitRootLogin yes

in

PermitRootLogin no
Vervolgens moet je de configuratiebestanden van de dienst opnieuw laden:
/etc/init.d/ssh reload (Debian/Ubuntu)
/etc/init.d/sshd reload (SUSE)
Nu is het niet langer mogelijk om als root via SSH op het systeem in te loggen. Gebruik in plaats daarvan de nieuw aangemaakte gebruikersnaam met het bijbehorende wachtwoord. Zodra je daarmee bent ingelogd, gebruik je de opdracht su -l om een shell met gewijzigde identiteit te starten. Vul je geen gebruikersnaam in? Dan wordt automatisch de root-gebruiker gekozen en moet je het root-wachtwoord invoeren.

Zodra je het wachtwoord hebt ingevoerd, kun je op de gebruikelijke manier verder werken als administrator (root).

Inloggen alleen toestaan met PubKeyAuthentication

Je kunt je server nóg beter beschermen tegen SSH-inbraakpogingen door de authenticatieprocedure te wijzigen. Je kiest dan voor een SSH-configuratie op basis van public key-authenticatie. Dit betekent dat er een key-bestand op de computer van de gebruiker aanwezig moet zijn. Zonder dat bestand kan hij niet op de server inloggen, want authenticatie met alleen een wachtwoord is voor het inloggen via SSH dan niet meer voldoende.
Natuurlijk vereist het bewaren van je private key een hoge mate van zorgvuldigheid. We raden je bijvoorbeeld aan om de key op te slaan in een versleutelde container of op een externe gegevensdrager (USB-stick). Ook is het zeer verstandig om een back-up van het bestand met de private key te maken en die op een geschikte plaats te bewaren.

De hierna genoemde procedure is het handigst:
  • Maak eerst het benodigde key-paar (private en public key).
  • Maak daarna een map aan genaamd .ssh in de thuismap van [gebruikersnaam]; deze map is voor de public key.
  • Upload de public key naar de server in die nieuw aangemaakte map.
  • Vervolgens geef je extra toestemming voor public key-authenticatie.
  • Test of die public key-authenticatie goed werkt.
  • Schakel de SSH-dienst volledig over op public key-authenticatie.

De keys op een Linux-systeem of macOS X-systeem aanmaken

1. Je maakt eerst een key aan op de lokale computer, met deze opdracht:
ssh-keygen -t dsa

Dit proces creëert twee sleutelbestanden:

Your identification has been saved in /home/[gebruikersnaam]/.ssh/id_dsa
Your public key has been saved in /home/[gebruikersnaam]/.ssh/id_dsa.pub

2. Vervolgens upload je de public key naar de doelserver met SecureCopy.
Met de volgende opdracht upload je het public key-bestand (id_dsa.pub) vanaf een Linux of macOS X-computer met de nieuwe bestandsnaam authorised_keys naar de map .ssh/ van de nieuwe gebruiker:

scp ~/.ssh/id_dsa.pub [gebruikernaam]@jouw_servernaam.tld:.ssh/authorized_keys
Hiervoor moet de map ~/.ssh/ al op de doelserver bestaan.

3. Controleer of de public key-authenticatie is toegestaan op de doelserver en configureer die indien nodig.

Dit gaat het best via de volgende methode.
Wijzig in het bestand /etc/ssh/sshd_config indien nodig de regel

PubkeyAuthentication no

in

PubkeyAuthentication yes

Nu moet je de configuratiebestanden van de dienst opnieuw laden:

/etc/init.d/ssh reload (Debian/Ubuntu)
/etc/init.d/sshd reload (SUSE)

4. Controleer daarna of de public key-authenticatie ook werkt.
Met de volgende opdracht maak je een SSH-verbinding met je server vanaf een Linux of MacOS X-computer. Ook voer je zo de private key in. Je hoeft daarna alleen maar het wachtwoord voor je lokale key-bestand in te voeren:

ssh -i ~/.ssh/id_dsa -l [gebruikersnaam] jouw_servernaam.tld
5. Ben je vervolgens ingelogd? Dan kun je de authenticatieprocedure volledig wijzigen naar SSH public key-authenticatie. Dat doe je als volgt:
Verander in het bestand /etc/ssh/sshd_config zonodig de regel
PasswordAuthentication yes

in

PasswordAuthentication no

en de regel

ChallengeResponseAuthentication yes

in

ChallengeResponseAuthentication no

Vervolgens moet je de configuratiebestanden van de dienst opnieuw laden:

/etc/init.d/ssh reload (Debian/Ubuntu)
/etc/init.d/sshd reload (SUSE)

Keys aanmaken op een Windows-systeem

1. Keys aanmaken
In Windows gebruik je de tool Puttygen voor het beheren van keys. Je kunt het downloaden op de Putty-website.
Om een key te genereren, kies je eerst het type key (meestal SSH2, RSA of DSA), voer je vervolgens de lengte in bits in en klik je tot slot op Generate. Via muisbewegingen worden random-waarden verzameld, dus de generate-balk vult zich alleen als je de muis beweegt.
Zodra de key is aangemaakt, voer je een persoonlijk wachtwoord in bij Key passphrase. Je moet het bevestigen in het vak Confirm passphrase.



De verdere stappen komen overeen met de methodes onder punten 3 tot en met 5. Voor het uploaden van de public key naar de directory ~/.ssh/ raden we het programma WinSCP aan.

Gebruik je WinSCP? Dan vraagt het programma je om bij de eerste verbinding met je server een authenticatie-key te accepteren of te weigeren. Kies hier voor accepteren. Dan weet je lokale client bij volgende verbindingspogingen namelijk dat jouw server inderdaad van jou is, niet van iemand anders.


Dit proces creëert twee sleutelbestanden:
Heeft dit artikel je geholpen?
Info: 528e7501405d3c4faa79f2549f62ca09270b9d9c