5 tips voor het beveiligen van SSH op je Linux-servers

Afbeelding: pixeltrap/Adobe Stock

SSH is een tool die ik elke dag gebruik om in te loggen op externe Linux-servers en om mijn administratieve taken uit te voeren. Zonder SSH zouden mijn dagen ingewikkelder en minder veilig zijn. Dat betekent echter niet dat SSH direct uit de doos naar wens is geconfigureerd. Er zijn een paar zwakke punten in de standaardconfiguratie en de manier waarop u de tool waarschijnlijk gebruikt.

Laten we dat oplossen.

ZIE: Linux wordt 30: Viering van het open source besturingssysteem (gratis PDF) (TechRepublic)

Hier zijn mijn vijf eenvoudige tips voor het beveiligen van de meeste SSH op je Linux-machines. Deze tips zouden u niet meer dan vijf minuten in beslag moeten nemen en uiteindelijk zult u blij zijn dat u de tijd heeft genomen om dit te doen.

Wat je nodig hebt

Het enige dat je hiervoor nodig hebt, is een draaiend exemplaar van Linux en een gebruiker met sudo-rechten.

Tip 1: Wijzig de standaardpoort

Het eerste dat we zullen doen, is de standaardpoort wijzigen van 22, die veel wordt gebruikt bij brute force en andere aanvallen. Open hiervoor het SSH-daemon-configuratiebestand met:

sudo nano /etc/ssh/sshd_config

Zoek in dat bestand naar:

#Port 22

Verander dat in iets als:

Port 2124

Sla het bestand op en sluit het. Start de daemon opnieuw met:

sudo systemctl restart sshd

Voordat u deze terminal verlaat, moet u ervoor zorgen dat u opnieuw verbinding kunt maken met de server met een andere SSH-instantie, door aan het einde de optie -p 2124 (of welke poort u ook kiest) toe te voegen, zoals:

ssh 192.168.1.63 -p 2124

Tip 2: Schakel X11/TCP-poortdoorschakeling uit

Vervolgens gaan we X11 en TCP port forward uitschakelen omdat aanvallers deze zwakte kunnen gebruiken om toegang te krijgen tot andere systemen op uw netwerk. Om dit te doen, opent u het daemon-configuratiebestand opnieuw en zoekt u naar de volgende twee regels:

#AllowTcpForwarding yes
X11Forwarding yes

Verander die regels in:

AllowTcpForwarding no
X11Forwarding no

Sla het bestand op en sluit het.

We wachten met het herstarten van de SSH-daemon totdat we de andere configuraties hebben afgehandeld.

Tip 3: Schakel gebruik met lege wachtwoorden uit

Binnen het SSH-daemonbestand willen we voorkomen dat gebruikers met lege wachtwoorden toegang krijgen. U hoeft zich hier geen zorgen over te maken als u een beleid heeft ingesteld dat lege wachtwoorden verbiedt, maar het is altijd beter om het zekere voor het onzekere te nemen.

Zoek in het daemon-configuratiebestand naar de regel:

#PermitEmptyPasswords no

Verander die regel in:

PermitEmptyPasswords no

Sla het bestand op en sluit het.

Omdat we klaar zijn met de daemon-configuratie, start u de SSH-daemon opnieuw met:

sudo systemctl restart sshd

Tip 4: Beperk SSH-aanmeldingen tot specifieke IP’s

We gaan nu alle SSH-aanmeldingen beperken tot specifieke IP-adressen. Open hiervoor het bestand hosts.deny met:

sudo nano /etc/hosts.deny

Voeg onderaan dat bestand het volgende toe:

sshd: ALL

Sla het bestand op en sluit het.

Open vervolgens het bestand hosts.allow met:

sudo nano /etc/hosts.allow

Voeg onderaan dat bestand een door komma’s gescheiden regel toe die alle IP-adressen bevat die u wilt doorlaten, zoals:

sshd: 192.168.1.62, 192.168.1.11, 192.168.1.100

Als u alle machines op uw LAN wilt toestaan, kunt u zoiets gebruiken als:

sshd: 192.168.1.0/24

Sla het bestand op en sluit het.

Tip 5: Gebruik SSH-sleutelverificatie

Dit is een van de belangrijkste tips. Het gebruik van SSH-sleutelverificatie is veel veiliger dan het gebruik van standaardwachtwoorden. Dus hoe zetten we het in?

Gemakkelijk. Genereer een SSH-sleutel op een client die u wilt gebruiken om verbinding te maken met de server met de opdracht:

ssh-keygen -t rsa

Vervolgens kopiëren we de sleutel naar de server met:

ssh-copy-id SERVER

Waarbij SERVER het IP-adres van uw server is.

Hierbij past één kanttekening. Als je de standaard SSH-poort hebt gewijzigd, kun je de opdracht ssh-copy-id niet gebruiken omdat deze geen argumenten accepteert. In plaats daarvan moet je een hostitem configureren in ~/.ssh/config dat er als volgt uitziet:

Host NAME
HostName SERVER
Port PORT

Waar:

  • NAME is een door mensen leesbare naam voor de server.
  • SERVER is het IP-adres van de server.
  • PORT is de niet-standaard poort die je hebt geconfigureerd

Sla het bestand op en sluit het. U kunt die sleutel nu kopiëren (naar de niet-standaard poort geconfigureerde SSH-server) met zoiets als:

ssh-copy-id NAME

Waarbij NAAM de voor mensen leesbare naam is die in het configuratiebestand aan de server is gegeven.

Nadat je je SSH-authenticatiesleutel naar de server hebt gekopieerd, open je een nieuwe terminal en zorg je ervoor dat je nog steeds verbinding kunt maken met de server via SSH. Als je kunt, zorg er dan voor dat je de SSH-sleutels kopieert van elke client die toegang tot de server nodig heeft en schakel vervolgens wachtwoordverificatie uit door het daemon-configuratiebestand nog een keer te openen met:

sudo nano /etc/ssh/sshd_config

Zoek de regel:

#PasswordAuthentication yes

Verander die regel in:

PasswordAuthentication no

Sla het bestand op en sluit het en start de SSH-daemon opnieuw met:

sudo systemctl restart sshd

Nu kunnen alleen degenen met SSH-sleutels op de server inloggen.

En daar ga je. In ongeveer 5 minuten heb je SSH op je server vergrendeld. Je moet ook fail2ban installeren en configureren, maar dat duurt iets langer dan 5 minuten. Geniet van die extra beveiligingslaag.

Abonneer je op TechRepublic’s How To Make Tech Work op YouTube voor al het laatste technische advies voor zakelijke professionals van Jack Wallen.

Leave a Comment