dirk postma

mijn aantekeningen . . .

018 - Ssh

Oct 1, 2015 - Comments

Ssh

Document info
Door Dirk Postma
Laatst bijgewerkt 2015-10, 2016-05

Inleiding

Ssh (secure shell) is een programma waarmee een verbinding gemaakt kan worden met andere computers. Met ssh kan o.a. eenvoudig op een andere computer worden ingelogd zonder dat iedere keer om een wachtwoord wordt gevraagd. Sterker nog het is daarna veiliger om het gebruik van wachtwoorden helemaal uit te schakelen. Met ssh is het eveneens eenvoudig mogelijk om bestanden tussen computers uit te wisselen. Ssh heeft maar 1 netwerkpoort nodig, namelijk normaal gesproken poort 22. Het poort nummer kan eventueel aangepast worden. Of dat wel of niet verstandig is daarover wordt sterk van mening verschild.

Mijn aantekeningen staan in willekeurige volgorde.

ssh keys genereren

Om zonder wachtwoorden te kunnen werken zijn ssh keys nodig. Het genereren gaat als volgt.

ssh-keygen -t rsa

Sterkere key bestanden worden als volgt gemaakt:

ssh-keygen -t rsa -b 4096

Kies voor het gebruik van een passphrase!

Bron: https://help.ubuntu.com/community/SSH/OpenSSH/Keys

ssh keys kopieren

Nadat een public en private key paar is aangemaakt, is het handig de public key te kopieren naar de servers waarop regelt matig wordt ingelogd. Er zal dan tijdens het inloggen niet meer om een wachtwoord worden gevraagd! Ssh heeft een programma om het public key bestand te kopieren, dat heet issh-copy-id. Syntax:

ssh-copy-id <username>@<host>

Voorbeeld:

ssh-copy-id pi@192.168.1.115

Er wordt nog één keer gevraagd om een wachtwoord, en de keren daarna kom je binnen op de host zonder dat om een wachtwoord wordt gevraagd.

Bron: https://help.ubuntu.com/community/SSH/OpenSSH/Keys

ssh server configuratie bestand

Alle instellingen van ssh worden opgeslagen in dit bestand /etc/ssh/sshd_config.

Runtime instellingen opvragen van ssh

Dit is een bijzonder fraaie optie. Met het volgende commando kunnen alle instellingen worden achterhaald, terwijl ssh draait.

sshd -T

Handig om controleren met welke instellingen/opties ssh draait.

ssh proces opnieuw opstarten

Nadat de coniguratie van ssh is aangepast, moet het proces opnieuw worden opgestart. Dat gaat als volgt.

sudo service ssh restart

ssh timeout instellen

Dit is een server instelling. Handig voor als niet actieve gebruikers automatisch naar een bepaalde tijd gekickt moeten worden. Pas het ssh configuratie bestand aan:

sudo vi /etc/ssh/sshd_config

Voeg hier aan toe:

# time out configureren
ClientAliveInterval 1800
ClientAliveCountMax 1

En herstart het ssh proces. Dit werkt niet zoals ik verwacht had. Ook moeilijk hierover informatie te vinden op internet.

Aantal inlog sessies beperken

Om het hackers moelijker te maken kan het aantal login sessies worden beperkt. Wijzig in het configuratie maxstartups bijvoorbeeld zoals onderstaand.

MaxStartups 3:50:10

Toeliching

  • 3: number of unauthenticated connections before we start dropping
  • 50: percentage chance of dropping once we reach 10 (increases linearly for more than 10)
  • 10: max number of connections at which we start dropping everything

Host keys (opnieuw) genereren

Indien een image wordt hergebruikt en hierin ssh reeds actief was, is het nodig nieuwe host keys te genereren. Verwijderen oude.

rm /etc/ssh/ssh_host_*

Aanmaken nieuw.

dpkg-reconfigure openssh-server

En hierna het ssh service proces herstarten.

issue.net

De inhoud van het bestand issue.net wordt getoond indien je probeert in te loggen op een computer. Het is een welkom scherm. Een voorbeeld. issue.net voorbeeld

Zet in het ssh configuratie bestand het gebruik van banners aan. Voeg onderstaande toe of haal het commentaar hekje weg voor deze optie.

Banner /etc/issue.net

Website voor maken van “ascii art”. http://patorjk.com/software/taag/

Voorkom dat root kan inloggen via ssh

Pas het configuratie bestand van ssh aan. Zet de optie PermitRootLogin uit.

PermitRootLogin no

Permit beteket vergunning, dus root mag niet meer inloggen via ssh. En hierna ssh proces herstarten!

Edit het configuratie bestand van ssh, dat staat hier: vi /etc/ssh/sshd_config Permit betekent vergunning, pas PermitRootLogin, zet op no, doe:

Zet het gebruik van wachtwoorden uit

Edit het ssh configuratie bestand. Zoek de regel waar staat PasswordAuthentication, en zet deze optie op no, zoals onderstaand.

PasswordAuthentication no

Herstart het ssh proces, hierna kan niet meer worden ingelogd met wachtwoorden, alleen nog maar met een public/private key.

Logingracetime, wacht op inloggen

Met deze parameter in het ssh configuratie bestand wordt geregeld hoelang ssh op de gebruiker wacht om in te loggen. Hierna wordt de verbinding verbroken. Standaard staat deze parameter op 120, 2 minuten. Dat kan veel korter.

LoginGraceTime 30

En om het te testen herstart het ssh proces.

Alleen bepaalde gebruikers mogen inloggen

Met de optie AllowUsers in het ssh configuratie bestand kan geregeld worden dat alleen bepaalde gebruikers mogen inloggen.

# Bepaalde gebruikers mogen inloggen
AllowUsers pi

En om het te testen herstart het ssh proces. In dit voorbeeld mag alleen de gebruik pi nog maar via ssh inloggen.

Bepaalde gebruikers mogen niet inloggen

Met de optie DenyUsers kan geregeld worden dat bepaalde gebruikers juist niet mogen inloggen. Een voorbeeld.

DenyUsers Dino Pebbles

En uiteraard herstart ssh proces.

Aantal sessies beperken

Deze optie wordt in een ander configuratie bestand geregeld. Edit het volgende bestand:

sudo vi /etc/security/limits.conf

En voeg hieraan het volgende toe om te voorkomen dat de gebruiker pi bijvoorbeeld vaker dan 2 kan inloggen.

pi      hard    maxlogins       2

Of bijvoorbeeld

@sftponly      hard    maxlogins       2

Nu geldt de beperking voor de groep

ssh poort wijzigen

Standaard gebruikt ssh poort 22. Dus hackers zullen vaak eerst deze poort proberen om de toegang tot een systeem te krijgen. Aanpassen van het poort nummer is daarom een verstandige keuze. Pas het configuratie bestand van ssh aan, en voeg bijvoorbeeld onderstaand toe.

Port 56789

Let op. Bij het inloggen zal daarna het poort nummer opgegeven moeten worden!

linux

Tags: raspberry linux ssh issue.net sftp

comments powered by Disqus