🔧 Guide: SĂ„ gör du SSH sĂ€krare

OpenSSHAtt SSH Àr en otroligt anvÀnd tjÀnst rÄder ingen tvekan om. NÀstan alla som har nÄgon form av server anvÀnder sig av SSH.

Denna guide börjar med klientsÀkerhet för att sedan ge rekommendationer för server-sidans konfiguration. Vi kommer frÀmst att fokusera pÄ de algoritmer som anvÀnds.

SSH klientsÀkerhet

Först och frÀmst ska du se till att du har en relativt ny SSH-klient som du ansluter med. Den som följer med Mac OS X Àr gammal och stödjer bara gamla krypton, sÄ dÀrför Àr det lÀmpligt att uppgradera till en nyare version med hjÀlp av brew.

Denna följer med Mac OS X Yosemite:

$ ssh -V
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011

Och för att installera en nyare version:

$ brew install openssh --with-brewed-openssl --with-keychain-support

Sedan sÄ kontrollerar vi versionen igen:

$ ssh -V
OpenSSH_6.8p1, OpenSSL 1.0.2a 19 Mar 2015

Nu ser det betydligt bÀttre ut. NÀsta steg Àr att generera nya Ed25519 nycklar som vi kan anvÀnda:

$ ssh-keygen -t ed25519 -C "min@epost" -a 100 -o

Om du i ovan steg fÄr ett felmeddelande om att algoritmen inte stöds sÄ har du fel sökvÀg till ssh-keygen binÀren. Testa dÄ /usr/local/bin/ssh-keygen istÀllet.

Glöm framförallt inte att anvÀnda ett lösenord för att skydda din privata nyckel.

Vi ska Àven Àndra i vÄr klient-konfigurationsfil sÄ vi enbart stödjer SSH version 2 samt ett antal algoritmer som vi litar mer pÄ:

Host *
    PubkeyAuthentication yes
    Protocol 2
    HostKeyAlgorithms ssh-ed25519-cert-v01@openssh.com,ssh-rsa-cert-v01@openssh.com,ssh-rsa-cert-v00@openssh.com,ssh-ed25519,ssh-rsa
    Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr
    MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-ripemd160-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-512,hmac-sha2-256,hmac-ripemd160,umac-128@openssh.com

Du hittar SSH-konfigurationsfilen i din hemkatalog och sedan .ssh/config

SSH serversÀkerhet

Först och frÀmst mÄste du se till att ha en relativt ny version av OpenSSH. Du bör ha minst version 6.5 som slÀpptes i  Januari, 2014.

LÀgg in följande i /etc/ssh/sshd_config pÄ rÀtt stÀlle:

MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-ripemd160-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-512,hmac-sha2-256,hmac-ripemd160,umac-128@openssh.com
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr
KexAlgorithms curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256

Samt se till att Protocol 2 enbart stöds. Samt kommentera bort stödet för HostKeys som ej Àr RSA eller ed25519:

HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_dsa_key
#HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key

Du bör Àven se till att just ovan hostnycklar verkligen finns. Om nÄgon ej skulle finnas sÄ kan du skapa en ny med ssh-keygen:

$ ssh-keygen -t ed25519 -f ssh_host_ed25519_key

NÀr det fungerar med inloggning via nycklar bör du Àndra följande förutsatt att du inte anvÀnder nÄgon funktion som de tillhandahÄller:

ChallengeResponseAuthentication no
PasswordAuthentication no
UsePAM no

Givetvis ska Àven root-logins stÀngas av med PermitRootLogin no. En annan bra sak Àr att ta bort kortare Diffie-Hellmanparameterar, följande kommando gör detta Ät dig:

awk '$5 > 2000' /etc/ssh/moduli > "${HOME}/moduli"
wc -l "${HOME}/moduli" # se till att du har nÄgot kvar i filen
mv "${HOME}/moduli" /etc/ssh/moduli

Glöm inte att starta om openssh samt genomför tester sÄ du inte stÀnger ute dig sjÀlv.

Givetvis finns det mÀngder med andra instÀllningar du kan göra för att höja sÀkerheten. LÀmna gÀrna en kommentar med dina tips.

Uppdatering: För att försvÄra brute-force attacker sÄ bör du anvÀnda fail2ban eller sshguard. Tipstack till Jonas Thambert!

Tack till stribika

Om Jonas Lejon

En av sveriges frÀmsta experter inom cybersÀkerhet med över 20 Ärs erfarenhet. FrÄgor? Kontakta mig pÄ: jonas.kryptera@triop.se eller

4 comments

Skriv en kommentar