• Vastliggende pagina
  • Info
  • Bijlages
Verschillen tussen versies 1 en 45 (omvat 44 versies)
Versie 1 sinds 2009-06-03 20:48:36
Grootte: 5666
Auteur: testcees
Commentaar:
Versie 45 sinds 2015-05-07 20:04:36
Grootte: 13833
Auteur: testcees
Commentaar:
Verwijderingen worden op deze manier gemarkeerd. Toevoegingen worden op deze manier gemarkeerd.
Regel 1: Regel 1:
{{{#!wiki note
Deze pagina staat in de ontwerpdocumentatie. De inhoud is waarschijnlijk nog niet klaar om in de documentatie geïntegreerd te worden en kan fouten bevatten. Indien u fouten opmerkt mag u ze zeker verbeteren, rekening houdende met onze [[community/Richtlijnen|richtlijnen]].

## Maak een nieuw topic aan in het documentatie-onderdeel van het forum; vervang deze link zodat hij naar de juiste pagina verwijst:
Discussieer over dit artikel in het [[http://forum.ubuntu-nl.org/documentatie/webserver-42325/|forum]].
}}}
<<Include(documentatie_topbar)>>
Regel 9: Regel 4:
||<tablestyle="float:right; background-color: #f5f0e3;" style="border-color: #ffffff; border-right-width: 0px;" rowstyle="background-color: #d9bb7a;">'''Geschikt voor:'''||<) style="border-color: #ffffff; border-left-width: 0px;"> {{attachment:StartPagina/ubuntu.png|Ubuntu, GNOME}} {{attachment:StartPagina/kubuntu.png|Kubuntu, KDE}} {{attachment:StartPagina/xubuntu.png|Xubuntu, Xfce}} {{attachment:StartPagina/ubuntuserver.png|Ubuntu Server}} ||
||<rowstyle="background-color: #d9bb7a;" style="border-color: #ffffff; border-right-width: 0px;">'''Versie:'''||<) style="border-color: #ffffff; border-left-width: 0px;"> alle ondersteunde versies||
||<-2 style="border-color: #ffffff;"><<TableOfContents>>||
 . <<GeschiktVoor("Ubuntu, server","8.04 LTS 9.04 9.10 10.04 LTS")>>
Regel 13: Regel 7:
OpenSSH is een open-source implementatie van Secure SHell (SSH). SSH wordt gebruikt voor het beheer op afstand en het uitwisselen van bestanden. SSH vervangt oudere protocollen zoals telnet, rlogin, en rsh/rexec door een beveiligbare variant.

OpenSSH kan gebruik maken van verschillende authenticatie methodes zoals een wachtwoord of een publieke sleutel.

== Installation ==
Het installeren van de OpenSSH client applicatie is eenvoudig en is vaak al door de installatieprocedure gedaan:
SSH ([[http://nl.wikipedia.org/wiki/Secure_Shell|Secure SHell]]) is een protocol voor veilige communicatie tussen computersystemen. SSH biedt uitgebreide mogelijkheden zoals een terminalscherm of grafisch programma openen op een andere computer, bestanden versturen en ontvangen of een eigen virtueel netwerk (een vpn verbinding) over een internetverbinding. Dit laatste valt buiten bereik van dit artikel.

SSH vervangt oudere protocollen zoals telnet, rlogin, en rsh/rexec door een beveiligbare variant.

Voor een SSH-verbinding kan gebruik gemaakt worden van verschillende authenticatiemethodes, met een wachtwoord of een SSH-sleutel.

De computers waartussen de verbinding wordt gemaakt hebben ieder een eigen 'rol' in deze verbinding. De computer die een verbinding wilt maken wordt de 'client' computer genoemd. Vaak dus de PC waarmee wordt gewerkt. De andere computer wordt de 'server' computer genoemd. Op de 'server' computer moet de server software actief zijn. Verder zijn er geen eisen aan de 'server'-computer. Het kan een echte server zijn maar ook een desktop of een laptop: de term 'server' geeft alleen aan welke 'rol' de computer heeft.

 . (!) Ook op een 'client' computer kan de serversoftware actief zijn. Zo kan over en weer een netwerkverbinding worden opgezet.

In dit artikel zal worden besproken:

 * De installatie en configuratie van het pakket openssh-server
 * Het gebruik van een SSH-client inclusief het maken van een SSH-sleutel

= Server =
== Installatie ==
Om het pakket openssh-server met bijbehorende programma's te installeren kan de volgende terminalopdracht worden gebruikt:

{{{
sudo apt-get install openssh-server
}}}
Of klik [[apt://openssh-server|hier]] om het pakket automatisch te installeren.

== Configuratie ==
 . (!) De OpenSSH-server wordt met de standaard configuratie van Ubuntu geïnstalleerd welke voldoet voor eenvoudig gebruik. '''Verdere configuratie is optioneel'''.

De OpenSSH server, sshd, kan worden geconfigureerd door het bestand {{{/etc/ssh/sshd_config}}} te wijzigen.

 * Type voor (Engelstalige) informatie over dit configuratiebestand in een terminalscherm:

 . {{{
man sshd_config
}}}

 (!) Maak voor het wijzigen van bestand {{{/etc/ssh/sshd_config}}} een kopie en beveilig deze, om wijzigingen in geval van problemen te kunnen terugdraaien, met de volgende terminalopdrachten:

  . {{{
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.origineel
sudo chmod a-w /etc/ssh/sshd_config.origineel
}}}

Een paar voorbeelden van mogelijke wijzigingen in bestand {{{/etc/ssh/sshd_config}}}:

 * De OpenSSH-server gebruikt standaard TCP poort 22. Plaats eventueel een ander poortnummer (bijvoorbeeld poort 2222) in de Port regel:

 . {{{
Port 2222
}}}
 . (!) Door het gebruik van een niet-standaard poortnummer zal (bij gebruik van de SSH-server op internet) deze toegang minder duidelijk zichtbaar zijn. Dit mag echter niet als beveiligingsmaatregel worden gezien en aanvullende maatregelen zoals het gebruiken van een SSH-sleutel of een sterk wachtwoord blijven van belang.

 * Om toe te staan dat een publieke SSH-sleutel wordt gebruikt om een verbinding te maken wijzig de volgende regel, of voeg deze eventueel toe als deze er niet is:

 . {{{
PubkeyAuthentication yes
}}}
 . Als er een #-teken aan het begin van de regel is geplaatst, is deze regel uitgeschakeld. Wees er dus zeker van dat er geen #-teken is geplaatst!

 * Er kan een bestand met een inlogboodschap worden gebruikt. Om de server de inhoud van {{{/etc/issue.net}}} (de versie van Ubuntu) te laten zien bij het inloggen kan de volgende regel worden gewijzigd, of toegevoegd:

 . {{{
Banner /etc/issue.net
}}}
 . Sla het gewijzigde bestand {{{/etc/ssh/sshd_config}}} op en herstart de server om de wijzigingen toe te passen:

 . {{{
sudo service ssh restart
}}}
<!> Waarschuwing: Als er alleen via SSH toegang is tot de server kan een fout in de configuratie betekenen dat de server niet meer te gebruiken is na een herstart!

== Internet toegang ==
 . (!) Als de SSH-server op een router is aangesloten moet deze router voor internet toegang zijn of worden ingesteld. Is er geen toegang ''vanaf'' het internet kan de standaard beveiliging voldoende zijn.

Als de SSH-server bereikbaar is via internet (als de computer direct is verbonden met een modem of als 'portworwarding' is ingesteld op de internet-router) is veiligheid extra belangrijk.

 * Kijk voor meer zekerheid bij een internettoegang ook in het artikel over de [[community/UbuntuFirewall|Ubuntu Firewall]]. Om toegang te geven tot de SSH-server in ufw: {{{sudo ufw allow ssh}}}

 . <!> Weet dat door onbekenden zeker een poging gedaan zal worden via SSH in te breken op de computer.

 . Een complex wachtwoord van zeker meer dan 6 tekens is noodzakelijk om te voorkomen dat het wachtwoord wordt geraden.

=== Wachtwoorden UITschakelen ===
 . Voor extra veiligheid kan het inloggen met een wachtwoord helemaal worden '''uit'''geschakeld. Let er wel op dat er dan sleutels aangemaakt dienen te worden. Meer hierover bij [[#SshSleutels|SSH-sleutels]]. Wachtwoorden uitschakelen doe je door het aanpassen van de volgende regel in bestand /etc/ssh/sshd_config:

 . {{{
PasswordAuthentication no
}}}

 . Als hierna de SSH-server wordt herstart met de opdracht:

 . {{{
sudo service ssh restart
}}}
 . Voor toegang is het gebruik van een sleutel nu verplicht.

<!> Test vooraf of de verbinding '''alleen''' met een SSH-sleutel gemaakt kan worden, met een wachtwoord kan de SSH server niet meer gebruikt worden!

=== Gebruikersgroep voor SSH ===
Voor meer veiligheid kan de SSH-toegang worden beperkt tot een groep van gebruikers.

 . Maar hiervoor een groep aan:

 . {{{
adduser naam sshgebruik
}}}
 . Voeg 1 of meerdere gebruikers toe aan deze groep (wijzig 'naam' in de gewenste gebruikersnaam):

 . {{{
sudo adduser naam sshgebruik
}}}
 . Neem een extra regel op in {{{/etc/ssh/sshd_config}}}:

 . {{{
AllowGroups sshgebruik
}}}
 . Na een herstart van de SSH-server ({{{sudo service ssh restart}}}) kunnen alleen gebruikers van deze groep de inloggen via SSH.

= Clients =
== De terminal client ==
Het installeren van de OpenSSH-client is eenvoudig en is normaal al tijdens de installatie van Ubuntu gedaan:
Regel 23: Regel 131:
Om de OpenSSH server applicatie met bijbehorende programma's te installeren:

{{{
sudo apt-get install openssh-server
}}}
Tijdens een server installatie (vanaf versie 8.04 LTS) kan gekozen worden het openssh-server pakket te installeren. Het OpenSSH server pakket kan ook geïnstalleerd worden op desktops of laptops voor het uitwisselen van bestanden.

== Configuration ==
De OpenSSH server, sshd, kan worden geconfigureerd door bestand {{{/etc/ssh/sshd_config}}} te wijzigen.

Type voor (Engelstalige) informatie over dit configuratiebestand in een Terminalscherm:

{{{
man sshd_config
}}}

Maak voor het wijzigen van bestand {{{/etc/ssh/sshd_config}}} een kopie en beveilig deze, om wijzigingen in geval van problemen te kunnen terugdraaien, met de volgende Terminalopdrachten:

{{{
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.origineel
sudo chmod a-w /etc/ssh/sshd_config.original
}}}

Een paar voorbeelden van mogelijke wijzigingen in bestand {{{/etc/ssh/sshd_config}}}:

 * Om de OpenSSH server TCP gebruikt standaard poort 22. Plaat eventueel een ander poort nummer (bijvoorbeeld poort 2222) in de Port regel:

{{{
Port 2222
}}}
 * Om toe te staan dat een publieke sleutel wordt gebruikt wijzig de volgende regel, of voeg deze eventueel toe is deze er niet is:

{{{
PubkeyAuthentication yes
}}}
Als er een #-teken aan het begin van de regel is geplaatst is deze regel uitgeschakeld. Wees er dus zeker van dat er geen #-teken is geplaatst!

 * Om de OpenSSH server de inhoud van {{{/etc/issue.net}}} (de versie van Ubuntu) te laten zien bij het inloggen wijzig de volgende regel, of voeg deze toe:

{{{
Banner /etc/issue.net
}}}

Sla na het wijzigen bestand {{{/etc/ssh/sshd_config}}} op en herstart de server om de wijzigingen toe te passen:

{{{
sudo /etc/init.d/ssh restart
}}}

<!> Waarschuwing: Als er alleen via ssh toegang is tot de server kan een fout in de configuratie betekenen dat de server niet meer te gebruiken is na een herstart!

== SSH Sleutels ==

Met SSH sleutels is het mogelijk een netwerk-verbinding te maken zonder dat een wachtwoord wordt gevraagd. SSH maakt hierbij gebruik van een privé (private) sleutel en een publieke (public) sleutel.

Om deze sleutels te maken, type in een Terminalscherm:

{{{
ssh-keygen -t dsa
}}}

Deze opdracht maakt een sleutel op basss van de DSA identificatie methode. Er wordt nu gevraagd om een wachtwoord. Druk gewoon op de Enter toets om geen wachtwoord te gebruiken.

<!> De bezitter van de privé sleutel kan zonder wachtwoord een verbinding maken. Bijvoorbeeld bij verlies van draagbare apparaten kan dit een veiligheidsprobleem zijn. Sla deze sleutel eventueel versleuteld op.

De publieke sleutel komt standaard in bestand {{{~/.ssh/id_dsa.pub}}} en de privé (private) sleutel in bestand {{{~/.ssh/id_dsa}}}. Kopieer de publieke sleutel naar de host en voeg deze toe aan bestand {{{~/.ssh/authorized_keys}}} met de opdracht:
Vanaf een Ubuntu-computer kan een SSH-verbinding gemaakt worden door een terminalopdracht met het ip-adres. Er kunnen dan vanaf de client-computer opdrachten worden uitgevoerd op de server-computer. (in dit voorbeeld is 192.168.1.2 het ip-adres van de server)

{{{
ssh naam@192.168.1.2
}}}
{{attachment:sshlogin1004.png}} <<BR>>

== De X client ==
De SSH-verbinding kan ook gebruikt worden voor bestandsbeheer. In Ubuntu kunt u dit doen door een wilekeurige map te openen, en daar te klikken op Bestand --> Verbinden met Server...

{{attachment:VerbindenMetServer1004.png}}

De eerste keer zal gevraagd worden om de server op te nemen in de lijst van "bekende" computers (~/.ssh/known_hosts):

{{attachment:Identificatie.png}}


Er komt dan op het bureaublad een icoon voor deze verbinding.

 . {{attachment:netwerkicoon.png}}

Door op dit icoon te dubbelklikken kunnen bestanden op dezelfde manier gebruikt worden als lokaal opgeslagen bestanden.

{{attachment:sshbestandsbeheer1004.png}}

== Een ssh client voor andere besturingssystemen ==
Bijvoorbeeld op een Windows-computer kan u een SSH-verbinding maken met het programma PuTTY:

{{attachment:InstallatieServerHardy/putty.png}}

 * PuTTY kan [[http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html|hier]] worden gedownload.
 * Voor veel besturingssystemen is er software gemaakt gebaseerd op PuTTY, kijk [[http://www.chiark.greenend.org.uk/~sgtatham/putty/links.html|hier]] voor een overzicht.

## Er is onduidelijkheid of de veiligheidsisico's van een derde website gebruiken als SSH-client.
## == De Webbrowser client ==
## En zelf systemen waar geen software kan op geinstalleerd worden of met ongewone besturingsystemen (zoals een GSM) kunnen een SSH verbinding maken.
## Het enigste wat je nodig hebt is een webbrowser met javascript ondersteuning.
## Door naar de [[http://webSSH.cz.cc/|Web-based SSH]] site te surfen en daar 'connect' te kiezen, kan je een verbinding starten.


== SSH-sleutels ==
=== Wachtwoordzin ===
Een SSH-sleutel kan gebruikt worden op een verbinding te maken '''zonder wachtwoord'''. Net als met een gewone sleutel moet je een SSH-sleutel veilig bewaren en niet verliezen. Om misbruik van de sleutel bij verlies tegen te gaan kan de sleutel worden beveiligd met een wachtwoordzin.

Deze wachtwoordzin wordt niet gebruikt voor de SSH-verbinding, maar is wel nodig om de SSH-sleutel te kunnen gebruiken. In Ubuntu kan de wachtwoordzin worden opgeslagen in een sleutelbos zodat deze maar eenmalig moet worden ingevoerd.

 . {{attachment:sshkeyring.png}}

Om de sleutel te gebruiken '''zonder''' wachtwoordzin, bijvoorbeeld voor een geautomatiseerde server-actie, kan eventueel een sleutel zonder wachtwoordzin worden gemaakt.

Een sleutel zonder wachtwoordzin kan eventueel versleuteld worden opgeslagen, bijvoorbeeld in de map ~/Private.

Als de sleutel toch openbaar wordt (verloren is), moet de regel met deze sleutel uit het bestand ~/.SSH/authorized_keys worden gewist waarna deze sleutel geen toegang meer geeft. Door gebruik te maken van een goede (lange) wachtwoordzin is de kans beperkt dat deze wordt "gekraakt" voordat de sleutel is gewist.

=== Sleutels maken met Ubuntu ===
Met een SSH-sleutel is het mogelijk een netwerkverbinding te maken zonder gebruik te maken van een wachtwoord. SSH maakt voor de authenticatie gebruik van een privé sleutel (private key) en een publieke sleutel (public key). Deze sleutels vormen samen een 'sleutelpaar' (key pair).

Om een 'sleutelpaar' te maken, type in een Terminal:

{{{
ssh-keygen -t rsa
}}}
Deze opdracht maakt de sleutels. Er wordt gevraagd in welk bestand de sleutel opgeslagen moet worden ("''Enter file in which to save key file''"). Druk op ''Enter'' om de sleutel op te slaan op de standaard lokatie (in de verborgen map ~/.ssh).

Er wordt (twee keer) gevraagd om een wachtwoord. Druk op Enter als ''geen'' wachtwoord gebruikt moet worden of geef een wachtwoordzin op.

De publieke sleutel komt standaard in bestand {{{~/.ssh/id_rsa.pub}}} en de privé sleutel in het bestand {{{~/.ssh/id_rsa}}}. De publieke sleutel moet nu worden toegevoegd, op de ''server''-computer, aan het bestand {{{~/.ssh/authorized_keys}}}.

Dit kan door '''__op de client-computer__''' de volgende opdracht te geven (om de publieke sleutel naar de server te sturen):

{{{
Regel 91: Regel 203:

(!) hostnaam kan ook het ip-adres van de ssh server zijn.

Controleer de toegangsrechten van het bestand {{{~/.ssh/authorized_keys}}}. Alleen de eigenaar moet lees en schrijf rechten hebben. Wijzig de rechten eventueel met de opdracht:

{{{
chmod 600 .ssh/authorized_keys
}}}

Het moet nu mogelijk zijn om een SSH verbinding te maken '''zonder''' dat om een wachtwoord wordt gevraagd.

(!) Voor extra veiligheid, bijvoorbeeld als OpenSSH op internet gebruikt wordt, kan het inloggen met een wachtwoord worden uitgeschakeld door het aanpassen van de volgende regel in bestand /etc/ssh/sshd_config:
{{{
PasswordAuthentication no
}}}

Voor deze pagina is gebruik gemaakt van een onderdeel in de Ubuntu Server Guide: http://doc.ubuntu.com/ubuntu/serverguide/C/openssh-server.html
}}}
(!) computernaam kan ook het ip-adres van de SSH-server zijn.

Geef (de laatste keer) uw wachtwoord. Het moet nu mogelijk zijn om een SSH-verbinding te maken op basis van de SSH-sleutels.

=== Sleutels maken met PuTTY ===
 * Windows versie
Onderdeel van de Putty software is PuTTYgen. Hiermee kan een ssh sleutelpaar worden gemaakt. Start PuTTYgen en klik op Generate. Er wordt gevraagd om met de muis te bewegen:

 . {{attachment:keygen.png}}

Als de sleutels zijn gemaakt selecteer dan het bovenste deel van het venster om te kopiëren:

 . {{attachment:keykopieeren.png}}

Voeg de gekopieerde tekst als sleutel toe aan bestand {{{~/.ssh/authorized_keys}}} op de server.

Druk vervolgens op ''Save private key'' en sla de eigen sleutel op een ''veilige plek'' op.

Druk op ''Save public key'' om de openbare sleutel in PuTTY formaat op te slaan.

Stel PuTTY in om de sleutel te gebruiken.
Open het menu ''SSH'' en kies ''auth''.
Vul in (of ''Browse'' naar) de naam en locatie van de eigen sleutel.

 . {{attachment:puttykey.png}}

Ga terug naar het ''[[#Een_ssh_client_voor_andere_besturingssystemen|Session]]'' scherm om een verbinding te maken.

=== versleutelde persoonlijke map ===
Als de persoonlijke map van de gebruiker is versleuteld kan de ssh-server geen toegang krijgen tot de sleutel in bestand {{{~/.ssh/authorized_keys}}} totdat u bent aangemeld. De ssh-server zal om een wachtwoord vragen.

Om dit op te lossen kunt u een map maken buiten de persoonlijke map bijvoorbeeld /etc/ssh/<gebruikersnaam> (vervang <gebruikersnaam> door de naam waarmee u aanmeld). De gebruiker moet eigenaar zijn en de map moet beveiligd worden met 755:

 . {{{
sudo mkdir /etc/ssh/<gebruikersnaam>
sudo chown <gebruikersnaam> /etc/ssh/<gebruikersnaam>
sudo chmod 755 /etc/ssh/<gebruikersnaam>
}}}

Plaats nu bestand authorized_keys in deze map:

 . {{{
mv ~/.ssh/authorized_keys /etc/ssh/<gebruikersnaam>
}}}

De eigenaar van bestand {{{authorized_keys}}} moet de gebruiker zelf zijn en de rechteninstelling 664.

Open nu bestand {{{/etc/ssh/sshd_config}}} met een teksteditor en voeg de volgende regel toe:
 . {{{
AuthorizedKeysFile /etc/ssh/%u/authorized_keys
}}}

Herstart de ssh service:
 . {{{
sudo service ssh restart
}}}

De volgende keer dat u zich aanmeld kunnen de sleutels worden gebruikt.

= Meer informatie =
Meer informatie over dit onderwerp:

 * Een onderdeel in de [[https://help.ubuntu.com/14.04/serverguide/openssh-server.html|Ubuntu Server Guide]]
 * De Engelstalige [[https://help.ubuntu.com/community/SSH|wiki]]
 * De OpenSSH [[http://www.openssh.org/|website]]
 * Wikipedia: http://nl.wikipedia.org/wiki/Secure_Shell
Regel 110: Regel 272:
CategoryNetwerkenEnServers [[ http://creativecommons.org/licenses/by-nc-sa/3.0/deed.nl | {{http://i.creativecommons.org/l/by-nc-sa/3.0/80x15.png|CC-BY-SA}} ]]

CategoryNetwerkenEnServers
CategoryVeiligheid

OpenSSH server

Inleiding

SSH (Secure SHell) is een protocol voor veilige communicatie tussen computersystemen. SSH biedt uitgebreide mogelijkheden zoals een terminalscherm of grafisch programma openen op een andere computer, bestanden versturen en ontvangen of een eigen virtueel netwerk (een vpn verbinding) over een internetverbinding. Dit laatste valt buiten bereik van dit artikel.

SSH vervangt oudere protocollen zoals telnet, rlogin, en rsh/rexec door een beveiligbare variant.

Voor een SSH-verbinding kan gebruik gemaakt worden van verschillende authenticatiemethodes, met een wachtwoord of een SSH-sleutel.

De computers waartussen de verbinding wordt gemaakt hebben ieder een eigen 'rol' in deze verbinding. De computer die een verbinding wilt maken wordt de 'client' computer genoemd. Vaak dus de PC waarmee wordt gewerkt. De andere computer wordt de 'server' computer genoemd. Op de 'server' computer moet de server software actief zijn. Verder zijn er geen eisen aan de 'server'-computer. Het kan een echte server zijn maar ook een desktop of een laptop: de term 'server' geeft alleen aan welke 'rol' de computer heeft.

  • Info (!) Ook op een 'client' computer kan de serversoftware actief zijn. Zo kan over en weer een netwerkverbinding worden opgezet.

In dit artikel zal worden besproken:

  • De installatie en configuratie van het pakket openssh-server
  • Het gebruik van een SSH-client inclusief het maken van een SSH-sleutel

Server

Installatie

Om het pakket openssh-server met bijbehorende programma's te installeren kan de volgende terminalopdracht worden gebruikt:

sudo apt-get install openssh-server

Of klik hier om het pakket automatisch te installeren.

Configuratie

  • Info (!) De OpenSSH-server wordt met de standaard configuratie van Ubuntu geïnstalleerd welke voldoet voor eenvoudig gebruik. Verdere configuratie is optioneel.

De OpenSSH server, sshd, kan worden geconfigureerd door het bestand /etc/ssh/sshd_config te wijzigen.

  • Type voor (Engelstalige) informatie over dit configuratiebestand in een terminalscherm:
  • man sshd_config

    Info (!) Maak voor het wijzigen van bestand /etc/ssh/sshd_config een kopie en beveilig deze, om wijzigingen in geval van problemen te kunnen terugdraaien, met de volgende terminalopdrachten:

    • sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.origineel
      sudo chmod a-w /etc/ssh/sshd_config.origineel

Een paar voorbeelden van mogelijke wijzigingen in bestand /etc/ssh/sshd_config:

  • De OpenSSH-server gebruikt standaard TCP poort 22. Plaats eventueel een ander poortnummer (bijvoorbeeld poort 2222) in de Port regel:
  • Port 2222
  • Info (!) Door het gebruik van een niet-standaard poortnummer zal (bij gebruik van de SSH-server op internet) deze toegang minder duidelijk zichtbaar zijn. Dit mag echter niet als beveiligingsmaatregel worden gezien en aanvullende maatregelen zoals het gebruiken van een SSH-sleutel of een sterk wachtwoord blijven van belang.

  • Om toe te staan dat een publieke SSH-sleutel wordt gebruikt om een verbinding te maken wijzig de volgende regel, of voeg deze eventueel toe als deze er niet is:
  • PubkeyAuthentication yes
  • Als er een #-teken aan het begin van de regel is geplaatst, is deze regel uitgeschakeld. Wees er dus zeker van dat er geen #-teken is geplaatst!
  • Er kan een bestand met een inlogboodschap worden gebruikt. Om de server de inhoud van /etc/issue.net (de versie van Ubuntu) te laten zien bij het inloggen kan de volgende regel worden gewijzigd, of toegevoegd:

  • Banner /etc/issue.net
  • Sla het gewijzigde bestand /etc/ssh/sshd_config op en herstart de server om de wijzigingen toe te passen:

  • sudo service ssh restart 

Info <!> Waarschuwing: Als er alleen via SSH toegang is tot de server kan een fout in de configuratie betekenen dat de server niet meer te gebruiken is na een herstart!

Internet toegang

  • Info (!) Als de SSH-server op een router is aangesloten moet deze router voor internet toegang zijn of worden ingesteld. Is er geen toegang vanaf het internet kan de standaard beveiliging voldoende zijn.

Als de SSH-server bereikbaar is via internet (als de computer direct is verbonden met een modem of als 'portworwarding' is ingesteld op de internet-router) is veiligheid extra belangrijk.

  • Kijk voor meer zekerheid bij een internettoegang ook in het artikel over de Ubuntu Firewall. Om toegang te geven tot de SSH-server in ufw: sudo ufw allow ssh

  • Info <!> Weet dat door onbekenden zeker een poging gedaan zal worden via SSH in te breken op de computer.

  • Een complex wachtwoord van zeker meer dan 6 tekens is noodzakelijk om te voorkomen dat het wachtwoord wordt geraden.

Wachtwoorden UITschakelen

  • Voor extra veiligheid kan het inloggen met een wachtwoord helemaal worden uitgeschakeld. Let er wel op dat er dan sleutels aangemaakt dienen te worden. Meer hierover bij SSH-sleutels. Wachtwoorden uitschakelen doe je door het aanpassen van de volgende regel in bestand /etc/ssh/sshd_config:

  • PasswordAuthentication no
  • Als hierna de SSH-server wordt herstart met de opdracht:
  • sudo service ssh restart 
  • Voor toegang is het gebruik van een sleutel nu verplicht.

Info <!> Test vooraf of de verbinding alleen met een SSH-sleutel gemaakt kan worden, met een wachtwoord kan de SSH server niet meer gebruikt worden!

Gebruikersgroep voor SSH

Voor meer veiligheid kan de SSH-toegang worden beperkt tot een groep van gebruikers.

  • Maar hiervoor een groep aan:
  • adduser naam sshgebruik
  • Voeg 1 of meerdere gebruikers toe aan deze groep (wijzig 'naam' in de gewenste gebruikersnaam):
  • sudo adduser naam sshgebruik
  • Neem een extra regel op in /etc/ssh/sshd_config:

  • AllowGroups sshgebruik
  • Na een herstart van de SSH-server (sudo service ssh restart) kunnen alleen gebruikers van deze groep de inloggen via SSH.

Clients

De terminal client

Het installeren van de OpenSSH-client is eenvoudig en is normaal al tijdens de installatie van Ubuntu gedaan:

sudo apt-get install openssh-client

Vanaf een Ubuntu-computer kan een SSH-verbinding gemaakt worden door een terminalopdracht met het ip-adres. Er kunnen dan vanaf de client-computer opdrachten worden uitgevoerd op de server-computer. (in dit voorbeeld is 192.168.1.2 het ip-adres van de server)

ssh naam@192.168.1.2

sshlogin1004.png

De X client

De SSH-verbinding kan ook gebruikt worden voor bestandsbeheer. In Ubuntu kunt u dit doen door een wilekeurige map te openen, en daar te klikken op Bestand --> Verbinden met Server...

VerbindenMetServer1004.png

De eerste keer zal gevraagd worden om de server op te nemen in de lijst van "bekende" computers (~/.ssh/known_hosts):

Identificatie.png

Er komt dan op het bureaublad een icoon voor deze verbinding.

  • netwerkicoon.png

Door op dit icoon te dubbelklikken kunnen bestanden op dezelfde manier gebruikt worden als lokaal opgeslagen bestanden.

sshbestandsbeheer1004.png

Een ssh client voor andere besturingssystemen

Bijvoorbeeld op een Windows-computer kan u een SSH-verbinding maken met het programma PuTTY:

InstallatieServerHardy/putty.png

  • PuTTY kan hier worden gedownload.

  • Voor veel besturingssystemen is er software gemaakt gebaseerd op PuTTY, kijk hier voor een overzicht.

SSH-sleutels

Wachtwoordzin

Een SSH-sleutel kan gebruikt worden op een verbinding te maken zonder wachtwoord. Net als met een gewone sleutel moet je een SSH-sleutel veilig bewaren en niet verliezen. Om misbruik van de sleutel bij verlies tegen te gaan kan de sleutel worden beveiligd met een wachtwoordzin.

Deze wachtwoordzin wordt niet gebruikt voor de SSH-verbinding, maar is wel nodig om de SSH-sleutel te kunnen gebruiken. In Ubuntu kan de wachtwoordzin worden opgeslagen in een sleutelbos zodat deze maar eenmalig moet worden ingevoerd.

  • sshkeyring.png

Om de sleutel te gebruiken zonder wachtwoordzin, bijvoorbeeld voor een geautomatiseerde server-actie, kan eventueel een sleutel zonder wachtwoordzin worden gemaakt.

Een sleutel zonder wachtwoordzin kan eventueel versleuteld worden opgeslagen, bijvoorbeeld in de map ~/Private.

Als de sleutel toch openbaar wordt (verloren is), moet de regel met deze sleutel uit het bestand ~/.SSH/authorized_keys worden gewist waarna deze sleutel geen toegang meer geeft. Door gebruik te maken van een goede (lange) wachtwoordzin is de kans beperkt dat deze wordt "gekraakt" voordat de sleutel is gewist.

Sleutels maken met Ubuntu

Met een SSH-sleutel is het mogelijk een netwerkverbinding te maken zonder gebruik te maken van een wachtwoord. SSH maakt voor de authenticatie gebruik van een privé sleutel (private key) en een publieke sleutel (public key). Deze sleutels vormen samen een 'sleutelpaar' (key pair).

Om een 'sleutelpaar' te maken, type in een Terminal:

ssh-keygen -t rsa

Deze opdracht maakt de sleutels. Er wordt gevraagd in welk bestand de sleutel opgeslagen moet worden ("Enter file in which to save key file"). Druk op Enter om de sleutel op te slaan op de standaard lokatie (in de verborgen map ~/.ssh).

Er wordt (twee keer) gevraagd om een wachtwoord. Druk op Enter als geen wachtwoord gebruikt moet worden of geef een wachtwoordzin op.

De publieke sleutel komt standaard in bestand ~/.ssh/id_rsa.pub en de privé sleutel in het bestand ~/.ssh/id_rsa. De publieke sleutel moet nu worden toegevoegd, op de server-computer, aan het bestand ~/.ssh/authorized_keys.

Dit kan door op de client-computer de volgende opdracht te geven (om de publieke sleutel naar de server te sturen):

ssh-copy-id naam@computernaam

Info (!) computernaam kan ook het ip-adres van de SSH-server zijn.

Geef (de laatste keer) uw wachtwoord. Het moet nu mogelijk zijn om een SSH-verbinding te maken op basis van de SSH-sleutels.

Sleutels maken met PuTTY

  • Windows versie

Onderdeel van de Putty software is PuTTYgen. Hiermee kan een ssh sleutelpaar worden gemaakt. Start PuTTYgen en klik op Generate. Er wordt gevraagd om met de muis te bewegen:

  • keygen.png

Als de sleutels zijn gemaakt selecteer dan het bovenste deel van het venster om te kopiëren:

  • keykopieeren.png

Voeg de gekopieerde tekst als sleutel toe aan bestand ~/.ssh/authorized_keys op de server.

Druk vervolgens op Save private key en sla de eigen sleutel op een veilige plek op.

Druk op Save public key om de openbare sleutel in PuTTY formaat op te slaan.

Stel PuTTY in om de sleutel te gebruiken. Open het menu SSH en kies auth. Vul in (of Browse naar) de naam en locatie van de eigen sleutel.

  • puttykey.png

Ga terug naar het Session scherm om een verbinding te maken.

versleutelde persoonlijke map

Als de persoonlijke map van de gebruiker is versleuteld kan de ssh-server geen toegang krijgen tot de sleutel in bestand ~/.ssh/authorized_keys totdat u bent aangemeld. De ssh-server zal om een wachtwoord vragen.

Om dit op te lossen kunt u een map maken buiten de persoonlijke map bijvoorbeeld /etc/ssh/<gebruikersnaam> (vervang <gebruikersnaam> door de naam waarmee u aanmeld). De gebruiker moet eigenaar zijn en de map moet beveiligd worden met 755:

  • sudo mkdir /etc/ssh/<gebruikersnaam>
    sudo chown <gebruikersnaam> /etc/ssh/<gebruikersnaam>
    sudo chmod 755 /etc/ssh/<gebruikersnaam>

Plaats nu bestand authorized_keys in deze map:

  • mv ~/.ssh/authorized_keys /etc/ssh/<gebruikersnaam>

De eigenaar van bestand authorized_keys moet de gebruiker zelf zijn en de rechteninstelling 664.

Open nu bestand /etc/ssh/sshd_config met een teksteditor en voeg de volgende regel toe:

  • AuthorizedKeysFile /etc/ssh/%u/authorized_keys

Herstart de ssh service:

  • sudo service ssh restart

De volgende keer dat u zich aanmeld kunnen de sleutels worden gebruikt.

Meer informatie

Meer informatie over dit onderwerp:


CC-BY-SA

CategoryNetwerkenEnServers CategoryVeiligheid

community/Openssh-server (laatst bewerkt op 2019-02-03 14:41:20 door testcees)