Auteur Topic: [HANDLEIDING] SSH veiliger maken met een RSA key  (gelezen 28497 keer)

Offline raptile

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 66
  • -Ontvangen: 131
  • Berichten: 1.263
[HANDLEIDING] SSH veiliger maken met een RSA key
« Gepost op: 21 september 2012, 13:30:46 »
Het is mogelijk om met het Admin account een SSH verbinding te maken met een Synology NAS.
Dit is echter erg onveilig en daarom is dit standaard op geen enkele linux/Unix omgeving mogelijk.
Om dit een stuk veiliger te maken kun je er voor kiezen om dit alleen mogelijk te maken als je gebruik maakt van een persoonlijke digitale sleutel.
Hieronder kun je lezen hoe je dit in een paar eenvoudige stappen kunt realiseren.


Maak een verbinding met je DSM via een SSH client (bijvoorbeeld Putty) en log in met gebruikersnaam root en gebruik het wachtwoord van je admin account.
Ga naar directory /root/ en maak daar een folder aan genaamd .ssh en ga vervolgens naar deze directory.
cd ~ [ENTER]
mkdir .ssh [ENTER]
cd .ssh [ENTER]

Maak een SSH sleutel aan met onderstaand commando of gebruik het daaronder staande script.
ssh-keygen -t rsa -b 2048 -f ~/gebruikersnaam2_key
(voor een DSA key kun je het volgende commando gebruiken maar wordt hieronder verder niet gebruikt of beschreven: ssh-keygen -t dsa -b 1024 -f ~/gebruikersnaam_key)

Ik heb voor de lol een scriptje geschreven voor als je een key aan wil maken.

zet onderstaande code in een bestand met een door_jezelf_te_verzinnen_naam en eindig dit bestand met de extentie .sh.
vi door_jezelf_te_verzinnen_naam.sh

Zorg dat je kunt schrijven in dit vi scherm.
ESC i [ENTER]

Copy paste onderstaande code.
#!/opt/bin/bash
clear
echo "Dit script maakt twee bestanden aan in je homefolder (een Private key en een public key)"
echo "Plaats de inhoud van het public (.pub) bestand in het authorized_keys betand in de .ssh folder"
echo "en gebruik het private betand in bijvoorbeeld putty om gebruik te maken van deze key"
echo ""
echo "Druk op ENTER om door te gaan"
read CONTINUE

clear

echo "voor welke gebruiker moet er een key worden aangemaakt? (geef voor het gemak je eigen naam op)"
read USER

clear

ssh-keygen -t rsa -b 2048 -f ~/$USER


Sla het bestand op met het commando
ESC :wq [ENTER]

Geef dit script het de juiste rechten zodat het script uitgevoerd kan worden.
chmod 755 door_jezelf_te_verzinnen_naam.sh [ENTER]

Voer het script uit met:
./door_jezelf_te_verzinnen_naam.sh


Er zijn nu twee bestanden aangemaakt in de folder waar je het script/commando hebt uitgevoerd.
Een prive en een publieke sleutel.
De prive sleutel is bedoeld voor jou persoonlijk en de publieke sleutel dien je op je NAS te plaatsen.

De bestanden hebben de volgende naam:
Prive key: door_jou_opgegeven_gebruikersnaam_key
Public kay: door_jou_opgegeven_gebruikersnaam_key.pub

LET OP!
Als je gebruik maakt van Putty:
Putty weet niet hoe hij om moet gaan met deze sleutels.

Om ervoor te zorgen dat je, je prive sleutel kan gebruiken met Putty dien je de sleutels te converteren.
Dit doe je alsvolgt:
Open het prive bestand.
cat door_jou_opgegeven_gebruikersnaam_key
selecteer/kopieer de tekst van het bestand en sla deze op, op je computer.
(bijvoorbeeld door notepad te openen en de tekst daar in te plakken)
 

Download De Putty key generator.
Open de Putty key generator en klik op "File" en vervolgens op "Load private key"
Volg de volgende stappen
Stap 1) vul bij Key comment je naam neer (root@NAS_NAAM)
Stap 2) vul je wachtwoord in en bevestig deze
Stap 3) Zorg dat SSH-2 RSA is geselecteerd
Stap 4) Zorg dat het aantal bits op 2048 staat
Stap 5) Klik op "Save private key" en sla deze op.
Stap 6) Kopieer de complete tekst uit het tekstveld

Foto 1.jpg[/attachment:1t576k86]

Maak in de /root/.ssh/ folder een bestand aan met de naam authorized_keys.
Plak de inhoud van het tekstveld in het authorized_keys betand in de .ssh folder

Gebruik het prive betand in bijvoorbeeld putty om gebruik te maken van deze key.
OpenPutty en geef de volgende gegevens op:

Foto 2.jpg[/attachment:1t576k86]

Vouw vervolgens aan de linkerkant SSH uit en klik op Auth.
Zet vinkjes neer zoals hier onder aangegeven en Browse vervolgens naar je Private key.

Foto 3.jpg[/attachment:1t576k86]

Klik nu aan de linker kant boven in op "Session" en sla dit profiel op.
Stap 1) Geef een naam op bij "Saved Sessions" (De naam van je NAS is voldoende)
Stap 2) Klik op "Save"
Stap 3) Klik op "Open" om verbinding te maken met je NAS.

[ Gespecificeerde bijlage is niet beschikbaar ]Foto 4.jpg[/attachment:1t576k86]

Er wordt nu gevraagd om je wachtwoord op te geven dat je hebt opgegeven voor je Private key.
Using username "root".
Authenticating with public key "jouw_prive_key_file"
Passphrase for key "jouw_gebruikersnaam":

Vul je wachtwoord in, druk op [ENTER] en je bent verbonden met je NAS via SSH met een KEY!
Alle commando's die je nu uitvoerd zullen versleuteld naar je NAS gaan.
Inloggen vanaf het internet via SSH is hierdoor een stuk veiliger geworden.


Maar we zijn er nog niet!
Het is op dit moment ook nog mogelijk om in te loggen op je NAS _ZONDER_ dat daar een key voor nodig is.

Om ervoor te zorgen dat het alleen mogelijk is om in te loggen op je nas met het root account en je een key moet gebruiken dien je dit op te geven in je ssh configuratie bestand. (/etc/ssh/sshd_config)

Mijn /etc/ssh/sshd_config ziet er als volgt uit:
# $OpenBSD: sshd_config,v 1.82 2010/09/06 17:10:19 naddy Exp $

# This is the sshd server system-wide configuration file.  See
# sshd_config(5) for more information.

# This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin

# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented.  Uncommented options change a
# default value.

#Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

# The default requires explicit activation of protocol 1
#Protocol 2

# HostKey for protocol version 1
#HostKey /etc/ssh/ssh_host_key
# HostKeys for protocol version 2
#HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_dsa_key
#HostKey /etc/ssh/ssh_host_ecdsa_key

# Lifetime and size of ephemeral version 1 server key
#KeyRegenerationInterval 1h
#ServerKeyBits 1024

# Logging
# obsoletes QuietMode and FascistLogging
SyslogFacility AUTH
LogLevel INFO
#LogLevel VERBOSE

# Authentication:

LoginGraceTime 1m
#PermitRootLogin yes
#StrictModes yes
MaxAuthTries 6
#MaxSessions 10

#RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
#RhostsRSAAuthentication no
# similar for protocol version 2
#HostbasedAuthentication no
# Change to yes if you don't trust ~/.ssh/known_hosts for
# RhostsRSAAuthentication and HostbasedAuthentication
#IgnoreUserKnownHosts no
# Don't read the user's ~/.rhosts and ~/.shosts files
#IgnoreRhosts yes

# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication no
PermitEmptyPasswords no

# Change to no to disable s/key passwords
#ChallengeResponseAuthentication yes
ChallengeResponseAuthentication no

# Kerberos options
#KerberosAuthentication no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes
#KerberosGetAFSToken no

# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes

# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication.  Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
UsePAM yes
#UsePAM no

#AllowAgentForwarding yes
#AllowTcpForwarding yes
#GatewayPorts no
#X11Forwarding no
#X11DisplayOffset 10
#X11UseLocalhost yes
#PrintMotd yes
#PrintLastLog yes
#TCPKeepAlive yes
#UseLogin no
#UsePrivilegeSeparation yes
#PermitUserEnvironment no
#Compression delayed
#ClientAliveInterval 0
#ClientAliveCountMax 3
#UseDNS yes
#PidFile /var/run/sshd.pid
#MaxStartups 10
#PermitTunnel no
ChrootDirectory none
#ChrootDirectory /var/services/homes/%u
#DenyUsers admin

# no default banner path
#Banner none

# override default of no subsystems
#Subsystem sftp /usr/libexec/sftp-server
#Subsystem       sftp    internal-sftp -f DAEMON -l VERBOSE
#Subsystem       sftp    /usr/syno/sbin/sftp-server -l DEBUG3
Subsystem       sftp    internal-sftp

# the following are HPN related configuration options
# tcp receive buffer polling. disable in non autotuning kernels
#TcpRcvBufPoll yes
 
# allow the use of the none cipher
#NoneEnabled no

# disable hpn performance boosts.
#HPNDisabled no

# buffer size for hpn to non-hpn connections
#HPNBufferSize 2048


# Example of overriding settings on a per-user basis
#Match User anoncvs
# X11Forwarding no
# AllowTcpForwarding no
# ForceCommand cvs server

Dit zorgt er voor dat je alleen nog maar als root in kan loggen als je gebruik maakt van een key.
(Veel veiliger!)

Ik weet helaas niet hoe hoe bestand er voor mijn aanpassingen uitzag dus je moet zelf de opties even nalopen of je hele config overschrijven met de mijne.


Dit was alles.
Succes en veel plezier!
If UNIX isn\'t the solution, you\'ve got the wrong problem...

Is RAID hetzelfde als een backup?

Heeft het antwoord van een gebruiker je geholpen met het oplossen van je probleem?
Geef hem/haar een bedankje door op de bedankt knop te drukken!

Martijn85

  • Gast
Re: [HANDLEIDING] SSH veiliger maken met een RSA key
« Reactie #1 Gepost op: 15 oktober 2012, 15:57:19 »
Citaat van: "raptile"
Ik weet helaas niet hoe hoe bestand er voor mijn aanpassingen uitzag dus je moet zelf de opties even nalopen of je hele config overschrijven met de mijne.

Het enige wat je hoeft aan te passen in de config is: PasswordAuthentication

Deze verander je van yes naar no

PasswordAuthentication no
Herstart SSH en je kunt alleen nog inloggen met je RSA key. Mooie handleiding!  :D

Offline raptile

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 66
  • -Ontvangen: 131
  • Berichten: 1.263
Re: [HANDLEIDING] SSH veiliger maken met een RSA key
« Reactie #2 Gepost op: 15 oktober 2012, 16:02:06 »
bedankt voor je compliment en je toevoeging :)
If UNIX isn\'t the solution, you\'ve got the wrong problem...

Is RAID hetzelfde als een backup?

Heeft het antwoord van een gebruiker je geholpen met het oplossen van je probleem?
Geef hem/haar een bedankje door op de bedankt knop te drukken!

Offline mister_miller77

  • Bedankjes
  • -Gegeven: 4
  • -Ontvangen: 3
  • Berichten: 13
Re: [HANDLEIDING] SSH veiliger maken met een RSA key
« Reactie #3 Gepost op: 31 oktober 2012, 10:59:45 »
Dank je wel voor de handleiding.
Ik he je stappen gevolgd, maar op he moment dat ik verbinding maak  met mijn nas via Putty krijg ik de volgende melding:
Using username "root".
Server refused our key

Ik heb een ds412+ met DSM 4.1
Zou het kunnen dat het hier anders op werkt???

Offline mister_miller77

  • Bedankjes
  • -Gegeven: 4
  • -Ontvangen: 3
  • Berichten: 13
Re: [HANDLEIDING] SSH veiliger maken met een RSA key
« Reactie #4 Gepost op: 02 november 2012, 10:42:59 »
Heel stom van mij.... Bij het vullen van de authorized_keys is er een letter komen te vervallen.
Nu goed gevuld, en alles werkt naar behoren.

Thx

Offline r00n

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 15
  • -Ontvangen: 88
  • Berichten: 677
Re: [HANDLEIDING] SSH veiliger maken met een RSA key
« Reactie #5 Gepost op: 08 februari 2013, 00:18:30 »
Iemand een idee hoe ik ervoor kan zorgen dat je alleen als root kan inloggen met een dergelijk certificaat? Ik vind het een beetje eng om afhankelijk te zijn van 1 bestandje.

Wil dus eigenlijk:
- root login doormiddel van certificaat
- ander account inloggen doormiddel van password

Op het forum had ik al een handleiding gevonden hoe ik een ander account toegang kan geven dan alleen het root account.
  • Mijn Synology: DS218+
  • HDD's: Heleboel...

Martijn85

  • Gast
Re: [HANDLEIDING] SSH veiliger maken met een RSA key
« Reactie #6 Gepost op: 18 februari 2013, 14:01:07 »
Citaat van: "r00n"
Iemand een idee hoe ik ervoor kan zorgen dat je alleen als root kan inloggen met een dergelijk certificaat? Ik vind het een beetje eng om afhankelijk te zijn van 1 bestandje.

Wil dus eigenlijk:
- root login doormiddel van certificaat
- ander account inloggen doormiddel van password

Op het forum had ik al een handleiding gevonden hoe ik een ander account toegang kan geven dan alleen het root account.

Je kunt alleen root laten inloggen via het boven aangemaakte certificaat (RSA key) door de volgende configuratie aan te geven in je SSH config bestand:

PermitRootLogin without-password
Root kan nu alleen met het certificaat inloggen, dus niet meer met het admin wachtwoord.

Door de volgende (default) configuratie te laten staan:

PasswordAuthentication yes
Kunnen de overige gebruikers nog gewoon inloggen via hun bekende wachtwoord.

Offline GrooveBooster

  • Bedankjes
  • -Gegeven: 1
  • -Ontvangen: 0
  • Berichten: 3
Re: [HANDLEIDING] SSH veiliger maken met een RSA key
« Reactie #7 Gepost op: 02 augustus 2013, 23:50:50 »
 :D

Beste raptile, super veel dank voor deze zeer duidelijke handleiding!!! Als redelijke leek heb ik het aan de praat :)

Enige dat bij mij ontbrak is dat je helemaal op het eind de NAS een keer opnieuw moet opstarten, anders blijft de mogelijkheid om alleen met userID en passwd in te loggen bestaan.

Veel groeten,
Marco
  • Mijn Synology: DS112+
  • HDD's: Seagate 3TB 7200rpm
  • Extra's: DSM 4.2

Offline 4L\/\/1|\|

  • Bedankjes
  • -Gegeven: 141
  • -Ontvangen: 12
  • Berichten: 209
  • Fiction is the truth inside the lie. Stephen King
Re: [HANDLEIDING] SSH veiliger maken met een RSA key
« Reactie #8 Gepost op: 22 augustus 2013, 21:53:33 »
Heb alle stappen gedaan zo ver ik weet maar blijf "Server refused our key" krijgen en het begind me aardig te frustreren. Wie weet raad
  • Mijn Synology: DS415+
  • HDD's: 4x WD30EFRX
  • Extra's: 8GB RAM, RT1900ac
Ik gebruik de laatste (BETA) DSM 6.2 op mijn DS415+

Liever doodmoe dan....
                              Levensmoe!

Offline GrooveBooster

  • Bedankjes
  • -Gegeven: 1
  • -Ontvangen: 0
  • Berichten: 3
Re: [HANDLEIDING] SSH veiliger maken met een RSA key
« Reactie #9 Gepost op: 23 augustus 2013, 08:03:43 »
Ik ben ook geen expert, maar wat ik wel weet is dat het een erg nauwkeurig werkje is. Weet je zeker dat de user waaronder je de key pairs hebt gemaakt (en hebt opgeslagen) dezelfde is waarmee je inlogt? Dat deed ik namelijk zelf de eerste keer verkeerd.
  • Mijn Synology: DS112+
  • HDD's: Seagate 3TB 7200rpm
  • Extra's: DSM 4.2

Offline 4L\/\/1|\|

  • Bedankjes
  • -Gegeven: 141
  • -Ontvangen: 12
  • Berichten: 209
  • Fiction is the truth inside the lie. Stephen King
Re: [HANDLEIDING] SSH veiliger maken met een RSA key
« Reactie #10 Gepost op: 29 augustus 2013, 10:15:36 »
Allereerst bedankt voor je reactie, kun je me vertellen wat de exacte locatie moet zijn voor alle bestanden?

  • Mijn Synology: DS415+
  • HDD's: 4x WD30EFRX
  • Extra's: 8GB RAM, RT1900ac
Ik gebruik de laatste (BETA) DSM 6.2 op mijn DS415+

Liever doodmoe dan....
                              Levensmoe!

Martijn85

  • Gast
Re: [HANDLEIDING] SSH veiliger maken met een RSA key
« Reactie #11 Gepost op: 18 februari 2014, 21:55:46 »
Werkt ook nog prima onder DSM5!

Offline JantjeO

  • Bedankjes
  • -Gegeven: 0
  • -Ontvangen: 0
  • Berichten: 7
Re: [HANDLEIDING] SSH veiliger maken met een RSA key
« Reactie #12 Gepost op: 27 maart 2014, 22:07:33 »
Ik gebruik DSM 4.3 en werkt prima.
Paar opmerkingen over de handleiding/stappenplan:
-de foto's staan een beetje door elkaar
-
Citaat
Maak in de /root/.ssh/ folder een bestand aan met de naam authorized_keys.
Plak de inhoud van het tekstveld in het authorized_keys betand in de .ssh folder
Dit is fout. Copieer of plak de inhoud van je publickey zoals in de eerste stap is gemaakt door ssh-keygen in authorized_keys. Zorg dat ie in de juiste map staat: /root/.ssh
-voor de laatste stap te laten werken moet je inderdaad zoals een andere poster zei, je systeem herstarten
-Als je WinSCP gebruikt om een verbinding te maken moet je SCP als protocol kiezen anders kan je niet als Root inloggen.

Een vergelijkbare handleiding vind je hier: http://www.mauchle.name/blog/?p=239
  • Mijn Synology: DS214+
  • HDD's: 2x10TB ST10000VN004

Offline denpries

  • Bedankjes
  • -Gegeven: 3
  • -Ontvangen: 0
  • Berichten: 4
Re: [HANDLEIDING] SSH veiliger maken met een RSA key
« Reactie #13 Gepost op: 09 februari 2016, 22:58:14 »
Werkt ook nog onder DSM 6. Kon er in met key!

Echter, na aanpassen van 'yes' in 'no' bij PasswordAuthentication heb ik de ssh gerestart >
synoservicectl --restart sshd

Putty connectie verbrak, en ik kom er met geen mogelijkheid  meer in via ssh. 'Connection refused' vanaf meerdere ips geprobeerd.
Server is nog wel online zie ik verder.

Moet ik de hele server resetten? (DS214+)
  • Mijn Synology: DS214+
  • HDD's: 2xWD20EFRX
  • Extra's: -

Offline Birdy

  • Global Moderator
  • MVP
  • *
  • Bedankjes
  • -Gegeven: 1377
  • -Ontvangen: 7958
  • Berichten: 43.926
  • Beter een muisarm dan een apestaartje
    • Truebase
Re: [HANDLEIDING] SSH veiliger maken met een RSA key
« Reactie #14 Gepost op: 09 februari 2016, 23:04:09 »
Citaat
synoservicectl --restart sshd
Volgens mij werkt dat ook niet meer in DSM6 dus, reboot eens.


CS406      DSM 2.0-0731    DS508      DSM 4.0-2265      DS411+II  DSM 6.2.4-25556-7   DS115J    DSM 7.1.1-42962-5   DS918+    DSM 6.2.4-25556-7
DS107+     DSM 3.1-1639    DS411slim  DSM 6.2.4-25556   DS213J    DSM 6.2.4-25556-7   DS1515+   DSM 6.2.4-25556-7   DS220+    DSM 7.2.2-72806
DS107+     DSM 3.1-1639    DS111      DSM 5.2-5967-9    DS413J    DSM 6.2.3-25426-2   DS716+II  DSM 7.2.2-72806     RT2600ac  SRM 1.2.5-8227-11
BeeDrive   1TB             BeeServer  BSM 1.1-65373                                                                 MR2200ac  SRM 1.2.5-8227-11


 

VERPLAATST: Mediaserver valt weg na maken VPN-connectie

Gestart door BirdyBoard Netwerk algemeen

Reacties: 0
Gelezen: 1379
Laatste bericht 16 december 2019, 16:10:15
door Birdy
OpenVPN verbinding maken lukt niet meer na uitschakelen admin account

Gestart door PieterBoard VPN Server

Reacties: 2
Gelezen: 963
Laatste bericht 07 mei 2021, 12:31:53
door Pieter
Kan geen verbinding maken met DS214 bij twee schijven

Gestart door Defeated02Board NAS hardware vragen

Reacties: 5
Gelezen: 2400
Laatste bericht 18 mei 2015, 23:21:49
door Birdy
Kan geen verbinding maken

Gestart door GeoffBoard SickRage

Reacties: 3
Gelezen: 5476
Laatste bericht 09 januari 2016, 00:46:28
door Geoff
Virtual Machine Manager, het maken van de cluster is mislukt.

Gestart door MeesFroomBoard Officiƫle Packages

Reacties: 1
Gelezen: 1017
Laatste bericht 25 september 2022, 10:28:49
door Birdy