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

OpenSSHAtt À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 .

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
_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  -C "[email protected]" -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 [email protected],[email protected],[email protected],ssh-ed25519,ssh-rsa
    Ciphers [email protected],[email protected],[email protected],aes256-ctr,aes192-ctr,aes128-ctr
    MACs [email protected],[email protected],[email protected],[email protected],hmac-sha2-512,hmac-sha2-256,hmac-ripemd160,[email protected]

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 [email protected],[email protected],[email protected],[email protected],hmac-sha2-512,hmac-sha2-256,hmac-ripemd160,[email protected]
Ciphers [email protected],[email protected],[email protected],aes256-ctr,aes192-ctr,aes128-ctr
KexAlgorithms [email protected],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

2 comments

  1. Joachim Strömbergson

    Installerade OSX 10.11 (El Capitan) i gÄr. Testar jag versionen med den blir det spÀnnande:

    >ssh -V
    OpenSSH_6.7p1, LibreSSL 2.1.3

    SÄ Apple har plötsligt börjat köra med libreSSL(!)

Skriv en kommentar

Du kan anvÀnda följande HTML HTML:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>