SSH
Från Rilpedia
Protokollstack för IP-nätverk | |
IP-skikt | Protokoll |
---|---|
5.Applikation | BitTorrent, DHCP, DNS, FTP, HTTP, IMAP, IRC, NNTP, POP3, SIP, SMTP, SNMP, SSH, Telnet,TLS, SSL , TFTP, … |
4.Transport | DCCP, SCTP, TCP, RTP, UDP, IL, RUDP, … |
3.Nätverk | ARP, ICMP, IGMP, IP (IPv4, IPv6),RIP … |
2.Länk | ATM, Ethernet, FDDI, ISDN, MPLS, Token Ring, PPP, SLIP, Wi-Fi, … |
1.Fysiska | ISDN, RS232, IrDA, Bluetooth, xDSL, … |
SSH, förkortning av Secure Shell, är ett protokoll och ett datorprogram för att ansluta sig säkert mot andra datorer över Internet. Det finns tillgängligt i två versioner, SSH-1 och SSH-2. SSH är en ersättare till Telnet men med skillnaden att all trafik mellan datorerna krypteras. SSH består av en serverdel, som vanligtvis lyssnar på port 22, och en klientdel. Programvaran hos klienten används för att ansluta sig till servern.
SSH-1 använder sig av RSA för att autentisera servern och överföra en sessionsnyckel, SSH-2 RSA eller DSA för autentiseringen och Diffie-Hellman för sessionsnyckeln. Resten av kommunikationen sker med någon symmetrisk kryptoalgoritm, vanligen 3DES, och säkras i SSH-2 med hmac-md5 eller liknande.
Användaren autentiseras vanligen med lösenord eller med RSA- eller DSA-nycklar.
Vidare kan man med hjälp av SSH sätta upp en tunnel, mellan två datorer. SSH på den ena datorn lyssnar då på en eller flera portar. All trafik på dessa portar kommer att krypteras, skickas i tunneln till den andra datorn, dekrypteras och skickas vidare. På detta sätt kan program som ej har inbyggd kryptering använda en ssh-tunnel och på så sätt få en krypterad förbindelse.
Innehåll |
Historia
I början av 1995, utvecklade Tatu Ylönen, en forskare vid Tekniska högskolan, Finland, den första versionen av SSH-protokollet (numera kallat SSH-1). Ylönen släppte SSH som gratisprogram (freeware) i juli 1995 och det blev snabbt populärt. I slutet av 1995 hade antalet användare av SSH vuxit till cirka 20 000 i över femtio länder.
I december 1995, grundades SSH Communications Security av Ylönen, för att marknadsföra och utveckla SSH. Originalversionen av SSH använde sig av fri programvara, så som GNU, men senare versioner som släpptes använde sig av "privatägd programvara" (Proprietary software). SSH Communications Security delade därefter med sig av rättigheterna till F-Secure och startade samtidigt ett dotterbolag i Palo Alto, Kalifornien.
Året därpå, 1996, granskades protokollet och SSH-2 utvecklades, oförenlig med SSH-1. Tio år senare, 2006, klassificerades detta protokoll som Internetstandard av IETF. SSH-2 förbättrades både säkerhetsmässigt och funktionsmässigt över SSH-1. Bland annat utvecklades den bättre säkerheten av Diffie-Hellman key exchange och säker integritetskontroll genom MAC. Det möjiggjordes också att ansluta med fler än en session genom en SSH anslutning.
Eftersom SSH-1 hade flera brister, till exempel Man-in-the-middle attack (MITM), beslutades det att SSH-1 inte längre skulle användas. De flesta servrar och klienter stödjer idag SSH-2 som bör användas. Programvara som inte stödjer SSH-2 används emellertid fortfarande av många organisationer, vilket gör det svårt att avvara SSH-1.
Användningsområden
SSH används idag av mängder av program, men används mest:
- för fjärrstyrning av Unix-liknande operativsystem.
- för filkopiering med SFTP eller SCP.
- för vidarebefordring av portar eller tunnling (eng. tunneling), som ett alternativ till VPN. Med den här typen av osäkra anslutning av externa applikationer, som skickas vidare till SSH programmet (server eller klient), vilket i sin tur skickar vidare till en annat SSH applikation, som slutligen skickar anslutningen till den angivna adressen. Vidarebefordringen är krypterad och skyddas under vägen mellan servern och klienten. Användningsområdet för SSH transporter inkluderar också databasservrar, e-postservrar, Windows Remote Desktop och VNC anslutningar.
Säkerhet
Det är inte ovanligt att datorer med SSH som är direktanslutna till internet utsätts för tusentals oauktoriserade inloggningsförsök dagligen. Datorer som är direktanslutna till internet brukar därför aldrig tillåta SSH-inloggning med root som användarnamn. Detta gör att illasinnade måste gissa både användarnamn och lösenord för att kunna logga in, vilket gör det betydligt svårare. För att på detta sätt hindra root-inloggning ändrar man vanligen en rad i filen /etc/ssh/sshd_config och starta om sshd. Ändra raden "#PermitRootLogin yes" till "PermitRootLogin no" (måste ta bort tecknet # i början på raden). Man kan också begränsa vilka användare som får logga in via SSH med "AllowUsers", "DenyUsers", "AllowGroups" och "DenyGroups", samt från vilka maskiner inloggning tillåts, t.ex. med direktiv i filen /etc/hosts.allow.
Ytterligare sätt att försvåra intrång av den här typen är att använda olika säkerhets daemons som t.ex. sshguard. Dessa fungerar vanligtvis så att de automatiskt, t.ex. via iptables eller /etc/hosts.conf, blockerar ip-adresser till klienter som genererat ett visst antal misslyckade inloggningsförsök. Risken med detta är att man kan utestänga legitima användare genom inloggningsförsök med samma ip-adress, antingen ifråga om fleranvändardatorer eller datorer bakom samma NAT-värd eller med förfalskade ip-adresser – eller helt enkelt så att den legitima användaren misslyckas för många gånger.
En mer avancerad metod är "dörrknackning" ("port knocking"), som innebär att man först måste kontakta vissa andra portar för att sshd-porten överhuvudtaget skall öppnas. På en dator med få användare kan man välja att helt enkelt låta SSH-servern lyssna på en annan port än den vanliga, varvid den inte hittas utan att en mängd portar undersöks.
På datorer med många användare är standardlösningar ofta nödvändiga. Därvid är det viktigt att så långt som möjligt tvinga användare att använda starka lösenord. I sammanhang där man lägger stor vikt vid säkerheten kan man förbjuda inloggning med lösenord och istället använda RSA- eller DSA-nycklar
Externa länkar
- OpenSSH Information och Unix-versioner. (Öppen källkod)
- PuTTY Gratis ssh-klient.
- Ganymed SSH2 Gratis ssh2-klient för Java.
- SSHDOS och SSH2DOS Gratis ssh och ssh2 klienter för DOS (Öppen källkod)
- Gratis SSH klient för Windows (Öppen källkod)