Telnet och SSH

Det finns två vanliga protokoll för fjärradministration av Cisco router eller switch, Telnet och SSH. Telnet är lätt att konfigurera men den används inte så ofta idag på grund av att det anses vara ett osäkert protokoll.

Telnet utvecklades 1969, med RFC 15, en tid innan persondatorer. De som fick jobba med stora datorer använde terminaler. Ursprungligen var varje terminal ansluten till bara en maskin 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. Telnet gav möjligheten att kunna logga in på en avlägsen maskin och då kan man säga att Telnet revolutionerade 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.  År 1995, en forskare vid Tekniska högskolan i Finland, trött på alla säkerhetsrisker Telnet orsakade, byggt SSH ett nytt protokoll som kunde kryptera information som växlades mellan kommunikationsparterna.

Telnet Konfiguration utan säkerhet

En enkel nätverkstopologi använder jag som exempel:

Bild 1: Nätverkstopologi – Telnet

Telnet endast via lösenord för VTY

Här räcker att konfigurera VTY med ett lösenord, men inget användarkonto:

  • R1(config)# line vty 0 4
  • R1(config-line)# password vtypass
  • R1(config-line)# login
  • R1(config-line)# end
  • R1#

Telnet anslutning som kräver användarkonto och dess lösenord

Användaren måste ange inloggningsuppgifter som verifieras i en lokal databas.

  • R1(config)#username chalo password chalopass
  • R1(config)# line vty 0 4
  • R1(config-line)# transport input telnet
  • R1(config-line)# login local
  • R1(config-line)# end

Exempel på konfigurationer

Följande konfigurationer ska göras på två 2911 routrar:

  • Interface konfigurationer inkluderar IP-adressering
  • enable secret
  • line console 0
  • Dedikerade Telnet server
  • R1(config)#enable secret enpass
  • R1(config)#line console 0
  • R1(config-line)# password conpass
  • R1(config)# int g0/0
  • R1(config-if)# ip address 192.168.1.10 255.255.255.0
  • R1(config-if)# no shut
  • R1(config-if)# exit
  • R1(config)#username chalo password chalopass
  • R2(config)#enable secret enpass
  • R2(config)#line console 0
  • R2(config-line)# password conpass
  • R2(config)# int g0/0
  • R2(config-if)# ip address 192.168.1.11 255.255.255.0
  • R2(config-if)# no shut
  • R2(config-if)# exit
  • R1(config)# line vty 0 4
  • R1(config-line)# transport input telnet
  • R1(config-line)# login local
  • R1(config-line)# exit

Telnet konfiguration med en viss säkerhet

Nu ska jag begränsa åtkomst till R1 genom att skapa en access-list i vilken inkluderar jag IP-adressen 192.168.1.100. Observera att routern R2 har IP-adressen 192.168.1.11 och eftersom R2 är inte med i listan kommer att nekas Telnet uppkoppling. Därefter ändrar jag ACL med rätt IP-adress för R2.

Jag skapar en access-list R1(config)# access-list 1 permit host 192.168.1.100
Jag tillämpar listan på vty portarna R1(config)# line vty 0 4
R1(config-line)# access-class 1 in

Nu testar jag att logga in på R1 från R2. Som sagt det bör inte fungera eftersom i listan finns inte 192.168.1.11

  • R2# telnet 192.168.1.10
  • Det fungerar inte Telnet och då inkluderar jag adressen 192.168.1.11 (egentligen skrivs adressen över) i ACL 1
  • R1# show access-lists
  • R1(config)# access-list 1 permit host 192.168.1.11
  • Testar igen och det fungerar !

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 två 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.

Bild 2: Nätverkstopologi – SSH

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 och säkrat enable, men inte VTY.

SSH server och klient

  • R1(config)# enable secret enpass
  • R1(config)# line console 0
  • R1(config-line)# password conpass
  • R1(config-line)# exit
  • R1(config)# int g0/0
  • R1(config-if)# ip address 192.168.1.10 255.255.255.0
  • R1(config-if)# no shut
  • R1(config-if)# exit
  • R1(config)# ip domain-name diginto.se
  • R1(config)# crypto key generate rsa
  • Ange 2048
  • 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)# exit
  • R1(config)# user chalo password chalopass
  • R2(config)# enable secret enpass
  • R2(config)# line console 0
  • R2(config-line)# password conpass
  • R2(config-line)# exit
  • R2(config)# int g0/0
  • R2(config-if)# ip address 192.168.1.11 255.255.255.0
  • R2(config-if)# no shut
  • R2(config-if)# end

Namnet R1.diginto.se inkluderas i RSA nycklarna. Antal bitar som är möjliga för RSA-nycklar är från 36 till 4096. Normalt används 1024, men idag anses de vara för få och därför används istället 2048 bitar.