Telnet och SSH

Det finns två vanliga protokoll för fjärradministration av Cisco router eller switch, Telnet och SSH.

De som fick jobba med stora datorer använde terminaler. Ursprungligen var varje terminal ansluten till en maskin (stor dator) och när man ville använda en annan maskin var man tvungen att ta sig till platsen där maskinen var placerade, till exempel till en annan stad.

Bild 1: IBM Terminal System 360, 1964

När persondatorer utvecklades gav Telnet möjligheten att kunna logga in på en avlägsen maskin och då kan man säga att Telnet revolutionerade (år 1969) det som skulle bli så småningom det internet vi känner idag. Telnet användes som ett protokoll för nätverksadministration, men Telnet var inte lämpat till en säker kommunikation över avstånd. Trots det är Telnet ett alternativ på fjärradministration av routrar och switchar inne i begränsade nätverksområde.

Telnet Konfigurationer

Telnet är en server-klient protokoll som tillåter fjärradministration exempelvis mellan två routrar som i exempel nedan där i princip det enda jag gör är det att konfigurera fem VTY terminaler med ett lösenord. Jag konfigurerar också åtkomst till privilegierad exekveringsläge.

Observera att ingen användare behövs i exemplet, vem som helst kan logga in på maskinerna bara man kan lösenordet. Det anges inte heller något protokoll.

  • R1(config)# enable secret enPa55
  • R1(config)# line vty 0 4
  • R1(config-line)# password vtyPa55
  • R1(config-line)# login
  • R1(config-line)# end
  • R1#

Telnet anslutning kan testas från R2 genom att exekvera kommandot: R2#telnet 192.168.1.10

Jag spetsar konfigurationen genom att konfigurera R1 som Telnet server och därefter testar jag Telnet från R2. Observera att fortfarande vem som helst kan logga in på router R1 med rätt lösenord. Den enda skillnaden är att nu agerar R1 som dedikerade Telnet server. En annan aspekt att tänka på är lösenordet vtyPa55 som ska ignoreras när jag specificerar Telnet som input.

  • R1(config)# line vty 0 4
  • R1(config-line)# transport input telnet
  • R1(config-line)# password telPa55
  • R1(config-line)# login
  • R1(config-line)# end
  • R1#

Nu testar jag igen Telnet från R2.

Ovan konfigurationer bör undvikas och i stället ha användare med egna lösenord. I exemplet nedan två användarkonto skapas, ett för en nätverksadministratör och ett för en nätverkstekniker (se privilege).

  • R1(config)# line vty 0 4
  • R1(config-line)# no password
  • R1(config-line)# login local
  • R1(config-line)# exit
  • R1(config)# username admin privilege 15 secret ownPa55
  • R1(config)# username adminrouters privilege 12 secret ownPa55
  • R1(config)# end
  • R1#

Denna gång krävs användarkonto och lösenord för åtkomst till en maskin via Telnet.

Det finns ytterligare ett alternativ som ger en viss säkerhet, via Access List. Denna teknik filtrerar nätverkstrafik enligt konfigurerade regler, mer om ACL i kursen Nätverkssäkerhet.

SSH konfiguration

Secure Shell är en betydligt säkrare protokoll för fjärradministration än Telnet. SSH inkluderar autentisering och kryptering via RSA publik/private nycklar. Det finns versioner 1 och 2. Version 2 är säkrare än version 1 och den mest använt protokoll-version. För att kunna använda SSH måste IOS stödja det och routern ska ha ett namn och en domän.

Jag använder samma nätverkstopologi som jag använde till Telnet. Nu ska jag konfigurera R1 som SSH-server och R2 som SSH-klient. Dessa två routrar har jag nollställt först och därefter grundkonfigurerade jag de så att de har namn, säkrat konsolporten, samma användarkonto och säkrat priviligierade exekveringsläge.

  • R1(config)# ip domain-name diginto.se
  • R1(config)# crypto key generate rsa general-keys modulus 1024
  • R1(config)# ip ssh version 2
  • R1(config)# line vty 0 4
  • R1(config-line)# transport input ssh
  • R1(config-line)# login local
  • R1(config-line)# end
  • R1#

Från R2 startar SSH anslutningen via kommandot: R2# ssh -l admin 192.168.1.10