I en tid där fjärranslutningar är standard, behöver både användare och systemadministratörer pålitliga verktyg som säkerställer snabb och säker fjärråtkomst.
När man pratar om metoder för fjärråtkomst dyker två namn ofta upp: SSH och Telnet.
Men vilket av dessa protokoll är egentligen bäst? Den här artikeln utforskar fördelarna med varje alternativ för att avgöra vilket som lämpar sig bäst för fjärråtkomst. Låt oss undersöka detta genom en jämförelse mellan SSH och Telnet.
Vad innebär fjärråtkomst?
Fjärråtkomst ger användare och administratörer möjlighet att nå datorer eller enheter inom ett nätverk från valfri plats via internet. Genom detta kan man utföra en rad olika operationer, inklusive filöverföring, samarbete och säkra applikationstrafik.
Fjärråtkomst är avgörande för att organisationer ska kunna fungera effektivt. Dessutom är det nödvändigt för administratörer att kunna hantera servrar, nätverk och applikationer utan att fysiskt behöva befinna sig på plats.
Vad är SSH?
Secure Shell (SSH), ibland benämnt Secure Socket Shell, är ett nätverksprotokoll som möjliggör säker kommunikation mellan datorer i osäkra nätverk.
När en säker anslutning har upprättats kan användare eller administratörer logga in på en fjärrdator, köra program på distans och överföra filer via en säker, krypterad anslutning.
SSH refererar till den uppsättning tekniker och verktyg som implementerar SSH-protokollet. För att garantera säkerheten använder SSH metoder som publik nyckelautentisering, krypterad dataöverföring och stark lösenordsautentisering.
Netscape Communications Corporation var initialt inblandade i utvecklingen av SSH. Den första designen skapades dock av den finske datavetaren Tatu Ylonen, som tog fram protokollet efter att ha upptäckt en hemlig lösenordsniffare i sitt då nyskapade nätverk.
Hur fungerar SSH?
SSH ersätter äldre fjärranslutningsprotokoll som Telnet, rlogin och rsh, vilka visserligen är populära men saknar säkerhet. Faktum är att SSH är så effektivt att det ofta används i stället för filöverföringsprotokoll som rcp och FTP.
SSH bygger på en klient-servermodell där en SSH-klient kopplar upp sig mot en SSH-server.
- En SSH-klient är ett program på en dator eller enhet som initierar SSH-protokollet. Klienten skickar en förfrågan till SSH-servern och inväntar svar. SSH-klienten använder publik nyckelkryptering för att verifiera och säkerställa att anslutningen sker till rätt server. Detta förhindrar att angripare kan agera server och stjäla viktig information från klienten.
- En SSH-server hanterar SSH-anslutningar och driver tjänsten. För att ta emot anslutningar lyssnar SSH-servern kontinuerligt på TCP-port 22 (standard). När en förfrågan inkommer svarar servern. SSH-servern kontrollerar och autentiserar även klienten med hjälp av publik nyckelautentisering. Endast efter godkänd autentisering får klienten tillgång till värdsystemet.
Klienten och servern kommer överens om vilken kryptering som ska användas och kan tillsammans deaktivera svagare krypteringsalternativ. SSH stödjer flera anslutningar, vilket gör att du kan utföra olika uppgifter samtidigt (ladda ner, redigera eller köra program) via flera kanaler genom en enda SSH-anslutning.
SSH-syntaxen ser ut så här:
$ ssh [email protected]
Användarnamnet är det namn du använder för att logga in på värden. Värden kan vara en IP-adress eller ett domännamn.
Förenklat ser SSH-flödet ut som följer:
- SSH-klienten initierar en anslutning till en specifik SSH-server.
- SSH-servern tar emot anslutningen och skickar sin publika nyckel till klienten.
- Klienten sparar serverns publika nyckel i sin värdfil (för framtida anslutningar).
- Servern och klienten förhandlar om och upprättar anslutningsparametrarna.
SSH är ett robust anslutningsalternativ med stark säkerhet och dataintegritetsskydd. Det följer även en IETF-standard för bättre implementering och har varit välfungerande under de senaste 15 åren.
Om du vill läsa mer om SSH tekniskt, rekommenderas SSH RFC 4253 standardiseringsdokumentet. Du kan också läsa om adminvista.com:s perspektiv på hur man förstår SSH.
Vad är Telnet?
Telnet står för Teletype Network. Det är ett annat vanligt nätverksprotokoll som möjliggör fjärråtkomst via ett kommandoradsgränssnitt. Precis som SSH kan du använda det för att fjärrstyra enheter och utföra operationer, men det saknar den säkerhetsnivå som SSH erbjuder.
Den bristande säkerheten beror på att när Telnet lanserades 1969 skedde merparten av kommunikationen inom lokala nätverk, vilket var säkrare än dagens osäkra internet.
Hur fungerar Telnet?
Telnet fungerar genom att skapa en textbaserad kommunikation mellan klienten och servern. Det använder en klient-servermodell med en åtta-byte anslutning.
När anslutningen har upprättats kan du utföra olika operationer på fjärrdatorn, inklusive att kontrollera öppna portar, konfigurera enheter, redigera filer och köra program.
Telnet-syntaxen ser ut så här:
$ telnet hostname port
För mer information om Telnet kan du undersöka Telnet-kommandon för att testa och felsöka anslutningsproblem.
När och var ska du använda SSH?
SSH används främst för:
- Fjärrsystemadministration
- Fjärrkörning av kommandon
- Säker applikationstrafik
- Filöverföringar
Administratörer kan också konfigurera automatiska SSH-sessioner för att hantera återkommande uppgifter, som att skapa nätverkskopior, samla in loggfiler och utföra underhåll med regelbundna intervaller.
SSH bör användas för all fjärråtkomst, särskilt över osäkra nätverk, som internet. SSH är också ett utmärkt alternativ i lokala nätverk, eftersom man aldrig kan vara helt säker på att ens lokala nätverk är helt säkert.
När och var ska du använda Telnet?
Eftersom Telnet inte är säkert, bör du undvika att använda det för fjärråtkomst i osäkra nätverk. Det betyder dock inte att Telnet är helt värdelöst.
Du kan använda Telnet för att:
- Felsöka SSH (Ja, du läste rätt! 😃)
- Felsöka FTP-, SMTP- och webbservrar.
- Kontrollera om en port är öppen eller inte.
- Få åtkomst till betrodda interna nätverk.
SSH vs. Telnet
I det här avsnittet jämför vi SSH och Telnet med avseende på olika faktorer. Om du har bråttom kan du ta en titt på jämförelsetabellen för SSH vs. Telnet.
SSH | Telnet | |
Säkerhet | Mycket säker, där klient och server kan förhandla om att ställa in krypteringsalgoritmer. | Inte säker, saknar mekanism för att skydda anslutningen eller Telnet-paketen. |
Autentisering | SSH använder publik nyckelkryptering för autentiseringsändamål. | Telnet saknar autentiseringsmekanism. Det efterfrågar endast användarnamn/lösenord, som överförs utan något skydd. |
Funktionalitet | SSH använder TCP-port 22 som standard. Denna kan ändras för att förhindra oönskad åtkomst. | Telnet använder port 23 som standard för att lyssna efter inkommande anslutningar, vilket kan konfigureras för att skydda mot obehörig åtkomst. |
Modell | Klient-servermodell | Klient-servermodell |
Dataöverföringshastighet | Tekniskt sett långsammare än Telnet, men skillnaden är knappt märkbar vid praktisk användning. | Snabbare än SSH eftersom det inte har säkerhetsprotokoll. |
Säkerhet
SSH är säkert och håller anslutningen skyddad genom väl definierade krypteringsprotokoll. Telnet saknar däremot helt säkerhetsåtgärder.
I SSH kan klienten och servern förhandla om anslutningsparametrarna, inklusive krypteringsalgoritmen. Detta gör det möjligt att utesluta svagare krypteringsmetoder och att göra SSH-anslutningen så säker som möjligt.
När en TCP/UDP-anslutning har upprättats mellan klienten och servern påbörjas ett försök att skapa en säker anslutning.
För att bättre förstå hur SSH-säkerhet fungerar kan vi undersöka innehållet i ett SSH-paket. Ett SSH-paket består av fem komponenter:
- Paketlängd: 4 byte; anger paketets storlek
- Utfyllnadsmängd: 1 byte; anger mängden utfyllnad
- Nyttolast: den faktiska data som överförs; storleken varierar
- Vaddering: själva utfyllnaden, inte storleken som nämns ovan. Utfyllnaden är slumpmässiga bytes kombinerat med nyttolasten för att göra paketet mer krypterat.
- Meddelandeautentiseringskod: En tagg som validerar paketets autenticitet för att säkerställa att paketdata inte har ändrats.
När SSH implementerar kryptering, är endast paketlängden och meddelandeautentiseringskoden tillgängliga att läsa. Klienten och servern förhandlar anslutningsparametrarna genom meddelandeautentiseringskoden. Dessutom kan SSH-paket komprimeras med olika komprimeringsalgoritmer.
Telnet saknar säkerhet. Det utför osäkrad autentisering för att ansluta klienten och servern. Alla angripare kan därmed läsa Telnet-paketen och kompromettera anslutningen.
Autentisering
SSH är ett säkert protokoll som förlitar sig på publik nyckelkryptering för att autentisera klienten och servern. Mer tekniskt kan SSH använda asymmetriska eller symmetriska kryptografiska algoritmer för att para ihop offentliga och privata nycklar.
Telnet, å andra sidan, saknar skydd för autentisering. Under autentiseringsprocessen efterfrågas kontonamn och lösenord innan anslutning sker. Dessutom skickas användarnamn och lösenord utan någon säkerhet och kan därmed nås av alla.
Drift
När det gäller drift körs SSH som standard på TCP-port 22. Telnet använder å andra sidan TCP-port 23. Om du anger SSH- eller Telnet-protokollet utan att ange portnumret, försöker kommandot automatiskt ansluta till port 22 respektive 23.
Dessa portar är dock välkända och kan användas av angripare för att utföra obehörig åtkomst.
Du kan ändra både SSH- och Telnet-protokollens portar för att förhindra detta. Det är bäst att stänga standardportarna och välja en port mellan 1024 och 65535.
I Telnet skickas kommandona i formatet Network Virtual Terminal (NVT). Telnet-servern kan ta emot och tolka formatet. Som du kan se förekommer ingen kryptering eller autentisering här.
När en klient-serveranslutning i SSH har upprättats skapas en session som identifieras av sessionsnyckeln. Denna nyckel krypterar trafiken under hela sessionen. Dessutom måste servern verifiera klienten. Detta sker med SSH-nyckelpar. Efter lyckad verifiering skapas en krypterad kanal för säker dataöverföring.
Modell
Både SSH och Telnet använder klient-servermodellen. Klient-servermodellen erbjuder flera fördelar, inklusive:
- Horisontell skalbarhet, där servern kan lägga till resurser vid behov.
- Klienter kan optimeras för korrekt datainmatning.
- Fördelad applikationshantering mellan klient och server.
Hastighet och Overhead
För att förstå SSH och Telnet på djupet måste vi undersöka deras ”overhead” -effekt. Generellt har SSH mer overhead än Telnet, men du kommer knappt att märka någon skillnad i praktiken.
Tekniskt sett gör både Telnet och SSH en omnyckel (re-key) efter en timmes anslutning eller 1 GB överförd data.
När det gäller bandbredd har SSH en något större overhead, men den är minimal och påverkar inte användarna nämnvärt. När det gäller klientens och serverns CPU är overheaden minimal tack vare hur AES-standarden implementeras i SSH-anslutningar.
Kort sagt, SSH och Telnet har ingen synbar skillnad i hastighet eller overhead. Men tekniskt sett har SSH en aning mer overhead än Telnet.
Användningsfall för SSH och Telnet
I det här avsnittet ska vi utforska några specifika användningsområden för SSH och Telnet.
Användningsfall för SSH:
Några exempel på användningsområden för SSH är:
- Fjärrkörning av kommandon.
- Säker åtkomst till fjärrdatorresurser.
- Överföring av filer på distans.
- Leverans av programuppdateringar på distans.
- Konfigurera automatisk filöverföring eller göra manuella överföringar.
Användningsfall för Telnet:
Några exempel på användningsområden för Telnet är:
- Felsökning av SSH.
- Felsökning av FTP, SMTP och webbservrar.
- Kontrollera om en port är öppen eller inte.
- Åtkomst till betrodda interna nätverk.
Slutliga tankar: Vilket är bättre?
SSH är det bättre alternativet. Det är ett modernt och uppdaterat nätverksprotokoll som gör fjärråtkomst säker. Det har ännu inte påvisats några säkerhetsluckor i protokollet. Dessutom är det enkelt att använda och konfigurera.
Telnet, å andra sidan, har med tiden blivit ett äldre protokoll. Det är nästan 50 år gammalt. Men det är fortfarande användbart i vissa scenarion och kan användas för att felsöka SSH eller kontrollera om en port är öppen. Administratörer kan använda Telnet för att felsöka de flesta nätverksproblem.