Taggat med: openssh

Test av nya OpenBSD 6.1

Ett av världens kanske säkraste operativsystem är nu ute i en ny version. Det handlar så klart om OpenBSD och den nya versionen som har fått versionsnummer 6.1:

We are pleased to announce the official release of OpenBSD 6.1.
This is our 42nd release. We remain proud of OpenBSD’s record of more than twenty years with only two remote holes in the default install.

Denna nya version innehåller ett antal höjdpunkter som är enligt följande:

  • syspatch för enkel binärpatchning av i386 samt amd64-system. Laddar hem och installerar nya säkerhetsfixar.
  • acme-client för den som vill skapa Let’s Encrypt SSL-certifikat.
  • xenodm som är en ny standard display manager
  • Libressl samt OpenSSH som innehåller mängder med förbättringar och säkerhetsuppdateringar.
  • Det är nu möjligt att köra Linux under virtualiseringsmotorn vmm/vmd som följer med som standard i OpenBSD
  • Förbättrat stöd för trådlösa nätverkskort (802.11)

Att ladda hem och installera OpenBSD går snabbt och smidigt. ISO-filen är enbart 200 MB och själva installationen tar max 5 minuter för den som är någorlunda ninja på BSD:

Sedan när systemet är installerat och Chromium installerat så testar jag att surfa in till kryptera.se.

Givetvis fungerar även doas (istället för sudo), figlet, xeyes och xlogo tillfredsställande:

OpenBSD 6.1 skärmdump
OpenBSD 6.1 skärmdump

Jag har även tidigare testat OpenBSD, läs mer här:

Test av supersäkra operativsystemet OpenBSD

OpenBSD 5.9

Skärmdump från OpenBSD 5.9

För några dagar sedan så släpptes en ny version av det säkra operativsystemet OpenBSD. Denna nya 5.9-version har en ett antal intressanta nya säkerhetsfunktioner såsom pledge. Pledge är en ny typ av sandlåde-liknande funktionalitet som begränsar vad enskilda program får och inte får göra.

Pledge är enkelt att implementera i sitt program och följer ett regelverk som berättar om programmet får öppna nätverkskommunikation, skriva/läsa filer osv. Kontrollen sker sedan i kerneln att programmet håller sig inom ramarna.

Viktigt att notera är också att den nya pledge-funktionen inte är någon silverkula som löser alla problem. Men som många andra saker som OpenBSD tar till sig så höjer det säkerheten i det stora hela tillsammans med tekniker såsom W^X, ASLR och ProPolice.

För att demonstrera hur enkelt det är så titta på följande kodrader som begränsar vad kommandot ping får göra:

if (options & F_NUMERIC) {
  if (pledge("stdio inet", NULL) == -1)
     err(1, "pledge");
 } else {
  if (pledge("stdio inet dns", NULL) == -1)
     err(1, "pledge");
 }

Första argumentet till pledge()-anropet är en lista med tillåta anrop, se man-sidan för mer info om dessa:

  • OpenBSD 59 drwxorxstdio – Grundläggande systemanrop (syscalls) tillåts. Såsom close, dup, mmap, pipe osv.
  • inet – Tillåter nätverkskommunikation med anrop såsom socket, listen, bind, getpeername.
  • dns – Tämligen självförklarande. behövs enbart om användaren ej specificerar argumentet -n

Det var väl enkelt? Än så länge använder sig 453 av 707 program pledge, av OpenBSD:s grundinstallerade program. Även så använder sig använder 14 st externa program av pledge såsom mutt, chrome och i3.

Kan även rekommendera följande presentation av Theo de Raadt som förklarar pledge närmare: openbsd.org/papers/hackfest2015-pledge/

Jag testar OpenBSD under VirtualBox och det tar under 10 minuter att ladda hem samt komma igång med operativsystemet. Installationsförfarandet har blivit avsevärt mycket smidigare på senare år med exempelvis automatiskt partitionslayout.

Här kan du ladda hem install59.iso som du bränner ut eller startar upp din virtuella maskin med: ftp.eu.openbsd.org/pub/OpenBSD/5.9/i386/install59.iso

Jag har även skrivit tidigare om att OpenBSD ersatt sudo med doas, läs här.

Andra intressanta funktioner i denna nya 5.9-version är:

  • ESP i IPSec stödjer Chacha20-Poly1305
  • W^X är nu helt forcerat i i386-kerneln
  • Säkerhetsfixar till LibreSSL, OpenSSH och OpenSMTPD
  • Miljövariabeln HOSTALIASES är borttaget från libc som säkerhetsåtgärd
  • Xen domU stöd så att OpenBSD lirar på Amazon EC2

Avslutningsvis så kan följande bild representera OpenBSD-utvecklarnas arbete med pledge (enligt Theo de Raadt själv):

pledge theo de raadt

🔧 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 "[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

OpenSSH stödjer nu chacha20 samt poly1305

opensshVia Slashdot hittar vi följande nyhet:

Inspired by a recent Google initiative to adopt ChaCha20 and Poly1305 for TLS, OpenSSH developer Damien Miller has added a similar protocol to ssh, [email protected], which is based on D. J. Bernstein algorithms that are specifically optimised to provide the highest security at the lowest computational cost, and not require any special hardware at doing so. Some further details are in his blog, and at undeadly. The source code of the protocol is remarkably simple — less than 100 lines of code!

Läs mer genom att klicka på ovan länkar.

Bugg i OpenSSH

En ny version av OpenSSH släpptes för några dagar sedan då det visade sig att minne läckte ut i certifikat:

When generating legacy *[email protected] certificates, the nonce field was not being correctly filled with random data but was left uninitialised, containing the contents of the stack. The contents of the stack at this point in ssh-keygen’s execution do not appear to leak the CA private key or other sensitive data, but this possibility cannot be excluded on all platforms and library versions.

If certificates are generated using user-specified contents (as opposed to the CA specifying all fields) then they will be less resistant to hash collision attacks. Fortunately, such attacks are not currently considered practical for the SHA family of hashes used to sign these certificates.

OpenSSH 5.6

Utvecklingsteamet bakom den omåttligt populära SSH-servern OpenSSH finns nu ute i version 5.6 som innehåller en mängd buggfixar samt ett antal nya funktioner.

För fullständig information se Releasenotes.