Exempel 1

SSH används oftast för hantering (administration) av nätverkshanterare som routrar, switchar och liknande. SSH anslutningen går genom en komplex process redan när en anslutnings mellan två datorsystem ska upprättas genom ett osäkert nätverk. När anslutningen finns på plats så är det autentisering en stor del av processen, slutligen sker säker nätverkstrafik mellan kommunicerande parter.

I denna laboration förenklar jag nätverkstopologin och fokuserar på följande:

  • Definiera priviligierade behörigheters nivåer (privilege levels)
  • Implementera SSH för en lokal autentiseringsprocess (utan och med AAA)
  • Använda nätverksserver NTP (tidstyrning) och Syslog (övervakning).

IOS privilege levels

Cisco IOS-nätverkshanterare använder olika behörighetsnivåer för att tillhandahålla anpassad åtkomstkontroller. En nätverksadministratör som vill ansluta till en nätverksenheter ska ta sig genom en autentiseringsprocess där verifieras användarkonto och lösenord samt anpassas administratörs behörigheter. Det finns 16 behörighetsnivåer för administratörsåtkomst, 0-15:

  • Nivå 0 – tillåter endast fem kommandon – logout, enable, disable, help och exit.
  • Nivå 1 – tillåter dig gå in i användarexekveringsläge som ger mycket begränsad ”read-only” åtkomst till routern.
  • Nivå 15 – eller priviligierad behörighetsnivå som ger fullständig kontroll över routern.
  • Nivå 2 till 14 – anpassade behörigheters nivåer.

Nätverksadministratörer med anpassade åtkomstbehörigheter loggar in direkt på privilegierad exekveringsläget utan att behöva exekvera kommandot enable. Man behåller lösenordet hemligt annars kan man kringgå anpassade behörighetsnivåer med kommando disable och därefter enable.

SYSLOG

Som standard skickar en router/switch utdata till konsolen från ett system som hanterar olika typer av meddelande genererade när någon övervakad händelse inträffar. Systemmeddelandet styr registrering av händelser (logg) och distributionen av meddelande till olika destinationer såsom loggningsbufferten, terminaler eller till en SYSLOG-server, beroende på hur loggsystemet konfigurerats. Förutom att skicka logg-meddelande till de olika alternativen får router/switch samma meddelande på sitt konsol (CLI).

Nätverksadministratörer kan fjärrövervaka router/switch tillstånd med hjälp av SYSLOG- servern med hjälp av loggarna på servern eller genom att fjärransluta till routern/switchen via SSH eller Telnet. Det finns så klart också alternativ att vara fysisk nära till routern/switchen och använda en konsolkabeln.

Meddelanden som visas på router/switch eller på SYSLOGG-servern ordnas i allvarlighetsgraden från 0 till 7 där låga numrerade meddelande är mest kritiska/akuta.

  1. emergency (router/switch kan inte användas)
  2. alert (Omedelbar åtgärd krävs)
  3. critical events (kritiskt tillstånd)
  4. error events (feltillstånd)
  5. warning events (varningstillstånd)
  6. notification events (normalt men betydande tillstånd)
  7. informal events (endast informationsmeddelande)
  8. debug messages (visas endast under felsökning)

Nätverkstopologin

Konfigurationer

  1. login local – SSH version 2 ska implementeras på konsolen och virtuella terminalerna 0 till 4 på S1 och R1. Åtkomsten via login local kräver enskilda kontodatabas på varje nätverkshanterare.
  2. AAA på R1 och S1 – Inloggning kontrolleras av protokollet AAA lokalt implementerat
  3. AAA server – En dedikerad AAA server används (RADIUS eller TACACS+). Server kör en centraliserad kontodatabas.
  • Router> enable
  • Router# configure terminal
  • Router(config)# hostname R1
  • R1(config)# no ip domain-lookup
  • R1(config)# service password-encryption
  • R1(config)# enable secret ensecP@55
  • R1(config)# interface Gig0/1
  • R1(config-if)# description Allow only SSH Management
  • R1(config-if)# ip address 192.168.0.1 255.255.255.0
  • R1(config-if)# no shutdown
  • R1(config)# exit
  • !
  • R1(config)# username admin privilege 15 secret adminP@55
  • R1(config)# username admin15 privilege 15 secret admin15P@55
  • R1(config)# username admin10 privilege 10 secret admin10P@55
  • R1(config)# username admin5 privilege 5 secret admin5P@55
  • !
  • R1(config)# privilege configure level 10 interface
  • R1(config)# privilege interface level 10 ip address
  • R1(config)# privilege interface level 10 no ip address
  • R1(config)# privilege interface level 10 shutdown
  • R1(config)# privilege interface level 10 no shutdown
  • !
  • R1(config)# privilege exec level 10 configure terminal
  • R1(config)# privilege exec level 5 show running-config view
  • R1(config)# privilege exec level 5 show running-config view full
  • R1(config)# privilege exec level 5 more system:running-config
  • !
  • R1(config)# line console 0
  • R1(config-line)# login local
  • R1(config-line)# logging synchronous
  • R1(config-line)# exec-timeout 5
  • R1(config-line)# exit
  • !
  • R1(config)# line vty 0 4
  • R1(config-line)# login local
  • R1(config-line)# logging synchronous
  • R1(config-line)# exec-timeout 5
  • R1(config-line)# transport input ssh
  • R1(config-line)# exit
  • !
  • R1(config)# ip ssh version 2
  • R1(config)# ip domain-name diginto.se
  • R1(config)# crypto key generate rsa general-keys modulus 1024
  • !
  • R1(config)# ip ssh time-out 90
  • R1(config)# ip ssh authentication-retries 3
  • R1(config)# login block-for 60 attempts 3 within 60
  • R1(config)# end
  • R1# 
  • Switch> enable
  • Switch# configure terminal
  • Switch(config)# hostname S1
  • S1(config)# no ip domain-lookup
  • S1(config)# service password-encryption
  • S1(config)# enable secret ensecP@55
  • S1(config)# interface vlan 1
  • S1(config-if)# description Allow only SSH Management
  • S1(config-if)# ip address 192.168.0.2 255.255.255.0
  • S1(config-if)# no shutdown
  • S1(config-if)# exit
  • S1(config)# ip default-gateway 192.168.0.1
  • S1(config)# username admin privilege 15 secret adminP@55
  • S1(config)# username admin15 privilege 15 secret admin15P@55
  • S1(config)# username admin10 privilege 10 secret admin10P@55
  • S1(config)# username admin5 privilege 5 secret admin5P@55
  • !
  • S1(config)# privilege configure level 10 interface
  • S1(config)# privilege interface level 10 ip address
  • S1(config)# privilege interface level 10 no ip address
  • S1(config)# privilege interface level 10 shutdown
  • S1(config)# privilege interface level 10 no shutdown
  • !
  • S1(config)# privilege exec level 10 configure terminal
  • S1(config)# privilege exec level 5 show running-config view
  • S1(config)# privilege exec level 5 show running-config view full
  • S1(config)# privilege exec level 5 more system:running-config
  • !
  • S1(config)# line console 0
  • S1(config-line)# login local
  • S1(config-line)# logging synchronous
  • S1(config-line)# exec-timeout 5
  • S1(config-line)# exit
  • !
  • S1(config)# line vty 0 4
  • S1(config-line)# login local
  • S1(config-line)# logging synchronous
  • S1(config-line)# exec-timeout 5
  • S1(config-line)# transport input ssh
  • S1(config-line)# exit
  • !
  • S1(config)# ip ssh version 2
  • S1(config)# ip domain-name diginto.se
  • S1(config)# crypto key generate rsa general-keys modulus 1024
  • !
  • S1(config)# ip ssh time-out 90
  • S1(config)# ip ssh authentication-retries 3
  • S1(config)# login block-for 60 attempts 3 within 60
  • S1(config)# end
  • S1#

NTP server:

SYSLOG server:

  • R1#show clock
  • *0:5:4.397 UTC Mon Mar 1 1993
  • ! Fel datum
  • R1# configure terminal
  • R1(config)# ntp server 192.168.0.4
  • R1(config)# ntp update-calendar
  • R1(config)# end
  • R1#show clock
  • 17:55:4.133 UTC Sat Jun 10 2023
  • !
  • R1# configure terminal
  • R1(config)# logging on
  • R1(config)# logging host 192.168.0.5
  • R1(config)# logging userinfo
  • R1(config)# login on-success log
  • R1(config)# login on-failure log
  • R1(config)# service timestamps log datetime msec
  • R1(config)# end
  • R1# 
  • !
  • S1#show clock
  • *0:5:4.397 UTC Mon Mar 1 1993
  • ! Fel datum
  • S1# configure terminal
  • S1(config)# ntp server 192.168.0.4
  • S1(config)# ntp update-calendar
  • S1(config)# end
  • S1#show clock
  • 17:55:4.133 UTC Sat Jun 10 2023
  • !
  • S1# configure terminal
  • S1(config)# logging on
  • S1(config)# logging host 192.168.0.5
  • S1(config)# logging userinfo
  • S1(config)# login on-success log
  • S1(config)# login on-failure log
  • S1(config)# service timestamps log datetime msec
  • S1(config)# end
  • S1# 
  • AAA implementation
  • R1(config)# aaa new-model
  • R1(config)# aaa authentication login default local-case
  • R1(config)# aaa authentication login RA-SSH local
  • !
  • R1(config)# line console 0
  • R1(config-line)# login authentication default
  • R1(config-line)# exit
  • !
  • R1(config)# line vty 0 4
  • R1(config-line)# login authentication RA-SSH
  • R1(config-line)# exit
  • R1(config)# end
  • R1#
    *Jun 10, 20:08:35.088: SYS-5-CONFIG_I: Configured from console by console
  • R1# copy run start
  • Destination filename [startup-config]?
    Building configuration...
    [OK]
  • R1#
  • Återställa konsolen och vty
  • S1(config)# line console 0
  • S1(config-line)# no login local
  • S1(config-line)# exit
  • S1(config)# line vty 0 4
  • S1(config-line)# no login local
  • S1(config-line)# exit
  • AAA implementation
  • S1(config)# aaa new-model
  • S1(config)# aaa authentication login default local-case
  • S1(config)# aaa authentication login RA-SSH local
  • !
  • S1(config)# line console 0
  • S1(config-line)# login authentication default
  • S1(config-line)# exit
  • !
  • S1(config)# line vty 0 4
  • S1(config-line)# login authentication RA-SSH
  • S1(config-line)# exit
  • S1(config)# end
  • S1#
    *Jun 10, 20:08:35.088: SYS-5-CONFIG_I: Configured from console by console
  • S1# copy run start
    Destination filename [startup-config]?
    Building configuration...
    [OK]
  • S1#

RADIUS server

R1 är klienten av AAA RADIUS Server. Lösenordet är raP@55

Fjärranslutningar som begär åtkomst kommer att behöva ta sig genom autentisering. Följande användare kommer att få logga in på router via SSH.

Router konfigurationer

  • R1(config)# aaa new-model
  • R1(config)# aaa authentication login SSHaaa group radius local enable
  • R1(config)# radius-server host 192.168.0.3 key raP@55
  • R1(config)# line vty 0 4
  • R1(config-line)# transport input ssh
  • R1(config-line)# login authentication SSHaaa
  • R1(config-line)# end
  • R1#

Switch konfigurationer

  • S1(config)# aaa new-model
  • S1(config)# aaa authentication login SSHaaa group radius local enable
  • S1(config)# radius-server host 192.168.0.3 key raP@55
  • S1(config)# line vty 0 4
  • S1(config-line)# transport input ssh
  • S1(config-line)# login authentication SSHaaa
  • S1(config-line)# end
  • S1#