AAA implementationer

För att säkra åtkomst till en router/switch har vi två alternativ:

  • Via en lokal databas
  • Via en TACACS+ eller RADIUS server

Lokal databas och privilegierade nivåer

Som nätverksadministratör är du väl bekant med användare-exekveringsläge och enable kommandot som tar dig till privilegierad-exekveringsläge. Att hämna direkt på detta exekveringsläge har för syfte att säkra det privilegierat exekveringsläget med olika behörighetsnivåer. Varje nivå tillhandahåller ett antal kommando att exekvera, även om man ser flera är egentligen endast några kommando som man får använda. Kommandot enable är det enda som kan ge åtkomst till högre nivåer medan disable ger åtkomst till lägre behörighetsnivåer.

Cisco IOS har 16 nivåer av privilegier (0-15). Av dessa femton är tre default

  • Privilege Level 0 – Ingen åtkomst alls
  • Privilege Level 1 – Användarläge (även känt som “EXEC-användare”)
  • Privilege Level 15 – Privilegierat-läge (aktiveringsläge eller “privilegierat EXEC” -läge)

Återstående 2-14 Privilegierade nivåer är tillgängliga för anpassningar.

En högre behörighetsnivå har tillgång till alla Cisco IOS CLI-kommandon som är tillgängliga i den lägre behörighetsnivån. Med andra ord är Cisco IOS CLI-kommandon i användarläge (Privilege Level 1) är tillgängliga i privilegierat-läge (Privilege Level 15).

Exempel 1

Nedan visar jag hur privilegierade nivåer kan konfigureras för att påverka en routers säkerhet. Jag jobbar med en 1941 router.

Konfigurationer:

  1. Verifierar jag privilegierade nivåer (användarläget och privilegierat-läget).
    • Router> show privilege level
    • Current privilege level is 1
    • Router>enable
    • Router# show privilege level
    • Current privilege level is 15
  2. Hostname konfigureras till secR1
    • Router# configure terminal
    • Router(config)# hostname secR1
    • secR1(config)#
  1. Privilegierade nivå 9 konfigureras med lösenord enpass
    • secR1(config)#enable secret level 9 enpass
    • secR1(config)#exit
  2. Verifiera vilka kommando är tillgängliga i privilegierade nivå 9
    • secR1# exit
    • secR1>show privilege
      Current privilege level is 1
    • secR1>enable 9
      Password:
    • secR1#show privilege
      Current privilege level is 9
    • secR1#configure terminal
      ^
      % Invalid input detected at '^' marker.
  1. Privilegierade nivå 9 anpassas för exekvering av kommandot configure terminal. Därefter anpassas nivå 9 till att konfigurerar interface GigabitEthernet 0/0. Dock måste göras från nivå 15.
    • secR1>enable
    • secR1# show privilege level
      Current privilege level is 15
    • secR1#configure terminal
    • secR1(config)#privilege exec level 9 configure terminal
    • secR1(config)#privilege configure level 9 interface GigabitEthernet 0/0
    • secR1(config)#privilege interface level 9 ip address
    • secR1(config)#privilege interface level 9 ipv6 address
    • secR1(config)#privilege interface level 9 shutdown
    • secR1(config)#privilege interface level 9 no shutdown
    • secR1(config)#privilege interface level 9 no ip address
    • secR1(config)#privilege interface level 9 no ipv6 address
    • secR1(config)#exit
    • secR1r#
      %SYS-5-CONFIG_I: Configured from console by console
  1. Konfiguration av GigabitEthernet 0/0
    • secR1# exit
    • secR1>ena 9
      Password:
    • secR1# show privilege level
      Current privilege level is 9
    • secR1#configure terminal
      Enter configuration commands, one per line. End with CNTL/Z.
    • secR1(config)#interface GigabitEthernet 0/0
    • secR1(config-if)#ip address 172.12.1.1 255.255.255.0
    • secR1(config-if)#no shut
    • secR1(config-if)#
      %LINK-5-CHANGED: Interface GigabitEthernet0/0, changed state to up

Exempel 2

Studera en stund nätverkstopologin nedan. AAA autentisering konfigureras i tre olika alternativ: lokal databas, TACACS+, och RADIUS server.

Bild 1: AAA implementationer

Konfigurationer:

  • Router R1
  • Router# config term
  • Router(config)# hostname R1
  • R1(config)# interface g0/1
  • R1(config-if)# ip address 192.168.1.1 255.255.255.0
  • R1(config-if)# no shut
  • R1(config)# interface s0/0/0
  • R1(config-if)# ip address 10.1.1.2 255.255.255.252
  • R1(config-if)# clock rate 64000
  • R1(config-if)# no shut
  • R1(config-if)# end
  • Router R2
  • Router# config term
  • Router(config)# hostname R2
  • R2(config)# interface g0/1
  • R2(config-if)# ip address 192.168.2.1 255.255.255.0
  • R2(config-if)# no shut
  • R2(config)# interface s0/0/0
  • R2(config-if)# ip address 10.1.1.1 255.255.255.252
  • R2(config-if)# no shut
  • R2(config)# interface s0/0/1
  • R2(config-if)# ip address 10.2.2.1 255.255.255.252
  • R2(config-if)# clock rate 64000
  • R2(config-if)# no shut
  • R2(config-if)# end
  • Router R3
  • Router# config term
  • Router(config)# hostname R3
  • R3(config)# interface g0/1
  • R3(config-if)# ip address 192.168.3.1 255.255.255.0
  • R3(config-if)# no shut
  • R3(config-if)# exit
  • R3(config)# interface s0/0/1
  • R3(config-if)# ip address 10.2.2.2 255.255.255.252
  • R3(config-if)# no shut
  • R3(config-if)# end
  • Router R1
  • R1# configure terminal
  • R1(config)# router eigrp 1
  • R1(config-router)# no auto-summary
  • R1(config-router)# network 192.168.1.0 0.0.0.255
  • R1(config-router)# network 10.1.1.0 0.0.0.3
  • R1(config-router)# end
  • Router R2
  • R2# configure terminal
  • R2(config)# router eigrp 1
  • R2(config-router)# no auto-summary
  • R2(config-router)# network 192.168.2.0 0.0.0.255
  • R2(config-router)# network 10.1.1.0 0.0.0.3
  • R2(config-router)# network 10.2.2.0 0.0.0.3
  • R2(config-router)# end
  • Router R3
  • R3# configure terminal
  • R3(config)# router eigrp 1
  • R3(config-router)# no auto-summary
  • R3(config-router)# network 192.168.3.0 0.0.0.255
  • R3(config-router)# network 10.2.2.0 0.0.0.3
  • R3(config-router)# end
  • AAA autentisering för konsolåtkomst
  • R1#configure terminal
  • R1(config)# enable secret enpass
  • R1(config)# username Admin1 secret admin1pass
  • R1(config)# aaa new-model
  • R1(config)# aaa authentication login default local
  • R1(config)# line console 0
  • R1(config-line)# login authentication default
  • R1(config-line)# end
  • Testa konsolåtkomst
  • R1# exit
  • Username: Admin1
  • Password: admin1pass
    R1>
  • AAA autentisering för SSH-åtkomst
  • R1#configure terminal
  • R1(config)# ip domain-name diginto.se
  • R1(config)# crypto key generate rsa
    How many bits in the modulus [512]: 1024
  • R1(config)# aaa authentication login SSH-LOGIN local
  • R1(config)# line vty 0 4
  • R1(config-line)# login authentication SSH-LOGIN
  • R1(config-line)# transport input ssh
  • R1(config-line)# end
  • R1#
  • Verifiera SSH anslutning från PC-A

    PC> ssh -l Admin1 192.168.1.1
    open
    Password: admin1pass

  • AAA autentisering för konsolåtkomst via TACACS+
  • R2#configure terminal
  • R2(config)# username Admin2 secret admin2pass
  • R2(config)# tacacs-server host 192.168.2.2 key tacacspass
  • R2(config)# aaa new-model
  • R2(config)# aaa authentication login default group tacacs+ local
  • R2(config)# line console 0
  • R2(config-line)# login authentication default
  • R2(config-line)# end
  • AAA autentisering för SSH-åtkomst
  • R2#configure terminal
  • R2(config)# ip domain-name diginto.se
  • R2(config)# crypto key generate rsa
    How many bits in the modulus [512]: 1024
  • R2(config)# line vty 0 4
  • R2(config-line)# login authentication default
  • R2(config-line)# transport input ssh
  • R2(config-line)# end
  • R1#
  • Verifiera SSH anslutning från PC2
  • PC> ssh -l Admin1 192.168.2.1
    Password: admin2pass
  • Konfigurera TACACS-servern
    Client Name: R2 - Client IP 192.168.2.1
    Secret: tacacspass - ServerType: Tacacs
    Username: Admin2 - Password: admin2pass (fel på bilden)
  • Verifiera konsolåtkomsten
    Username: Admin2
    Password: admin2pass
    R2>
  • AAA autentisering för konsolåtkomst via RADIUS
  • R3# configure terminal
  • R3(config)# username Admin3 secret admin3pass
  • R3(config)# radius-server host 192.168.3.2
  • R3(config)# radius-server key radiuspass
  • R3(config)# aaa new-model
  • R3(config)# aaa authentication login default group radius local
  • R3(config)# line console 0
  • R3(config-line)# login authentication default
  • R3(config-line)# exit
  • AAA autentisering för SSH-åtkomst
  • R3#configure terminal
  • R3(config)# ip domain-name diginto.se
  • R3(config)# crypto key generate rsa
    How many bits in the modulus [512]: 1024
  • R3(config)# line vty 0 4
  • R3(config-line)# login authentication default
  • R3(config-line)# transport input ssh
  • R3(config-line)# end
  • R3#
  • Verifiera SSH anslutning från PC-A
    PC3
    ssh -l Admin1 192.168.2.1
    Password: admin3pass
  • Konfigurera RADIUS-servern
    Client Name: R3 - Client IP 192.168.3.1
    Secret: radiuspass- ServerType: radius
    Username: Admin3 - Password: admin3pass (fel på bilden)
  • Verifiera konsolåtkomsten
    Username: Admin3
    Password: admin3pass
    R3>
  • R3#
  • Verifiera att användare exekveringsläge använder AAA RADIUS servern
  • R3# exit
    Username: Admin3
    Password: admin3pass
    R3>
 

Exempel 3

I denna exempel kombineras Cisco IOS med en Windows server 2016. Servern är en domänkontrollant som kör Active Directory databas vilken innehåller användarkonton som ska testas för åtkomst till Cisco nätverkshanterare. Samma server kommer att konfigureras som RADIUS server.

Två applikationer kombineras i exempel 3 VirtualBox och GNS3. Vi ar bekanta med VirtualBox men inte med GNS3 som är den mest komplett nätverksemulator. GNS3 installationen är inte så enkelt därmed rekommenderar jag David Bombals videos som visar hela installationen.

I VirtualBox ska vi installera en Windows domänkontrollant och en Windows klient. I GNS3 ska vi använda en L3-switch och en router. Till switchen ska anslutas Windows virtuella maskiner och switchen till router.

Bild 2: Nätverkssäkerhetskomponenter Cisco IOS och Microsoft Network Policy server

Installationen av Windows server 2016 visas först. Installation delas i ett antal steg:

  1. Skapa i VirtualBox två Host-Only nätverk med verktyget Tools.
    • Den första adresseras med IP-adress: 192.168.2.1 och nätmask 255.255.255.0, ingen default gateway.
    • Den andra adresseras med IP-adress: 192.168.10.1 och nätmask 255.255.255.0, ingen default gateway.
  2. Skapa virtuell maskinen radius-server och installera Windows server 2012/2016
  3. Ändra namnet till radius-server och IP adress till 192.168.2.5 med nätmask 255.255.255.0 och default gateway 192.168.2.254
  4. Ping från radius-server till Host-Only nätverk: ping 192.168.2.1
  5. Det förutsätter att brandvägen har konfigurerats för att tillåta ping-paket 
  6. Installera Active Directory Domain Service och DNS roller samt Network Policy and Access Services
  7. Promota radius-server till domänkontrollant
    • Ny skog och domännamn: diginto.se
  8. I Active Directory Sites And Services:
    • Ändra default namn Default-First-Site-Name till VLAN1.
    • Skapa en ny site med namn VLAN10
    • Skapa ett nytt delnät (subnet) med IP adress 192.168.2.0/24 och associera till sajten VLAN 1
    • Skapa ett nytt delnät (subnet) med IP adress 192.168.10.0/24 och associera till sajten VLAN 10
  9. I Active Directory Users and Computers:
    • Skapa en ny organisationsenhet med namn Cisco Network
    • I organisationsenheten Cisco Network skapa en ny säkerhets, global grupp med namn CiscoAdmins
    • I organisationsenheten Cisco Network skapa en ny säkerhets, global grupp med namn Consults
    • I organisationsenheten Cisco Network skapa följande användarkonto:
    • Admin1, Diginto1!
    • Admin2, Diginto2!
    • Consult1, Digintoc1!
    • Consult2, Digintoc2!
    • Observera att lösenordspolicy kan vara igång som default och då tillåts endast starka lösenord.
    • Admin1 och Admin2 läggs till gruppen CiscoAdmins
    • Consult1 läggs till gruppen Consults
  10. I servers Dashboard klicka på Add roles and features och installera rollen Network Policy and Access Services. Konfigurationen på Network Policy Server, NPS, behöver illustreras med flera bilder:

NPS serverkonfiguration – NPA

Observera att inte alla installationssteg visas med bilder utan endast de som är mes betydande. Du måste läsa ordentligt instruktionerna.

Registrera NPS i Active Directory genom att högerklicka på NPS och därefter klicka på Register server in Active Directory. Ett meddelande om aktivering av NPS visas, klicka på OK. Gör det samma för nästa meddelande.

Expandera RADIUS Clients and Servers. Högerklicka på RADIUS Clients och därefter välj New. Här skapar du ett RADIUS klientkonto för router R1 som har IP-adress 192.168.2.254. Lösenordet är ciscopass. Om det skulle finnas andra klienter eller regler ska du ta bort så att du har endast som nedan. Klicka på Next.

Expandera Policies. Klicka på Connection Request Policies och ta bort befintliga begär, om det finns någon. Högerklicka på Connection Request Policies och därefter välj New. Skapa en åtkomst-begär för router R1. Därefter klicka på Next.

Specificera villkoren gällande anslutningsbegäran. Klicka på Add och därefter markera Client Friendly Name. Därefter klicka på Add. En ny dialogruta visas, skriv R1 som klientnamn. Klicka därefter på Next.

Vi fortsätter med att specificera anslutningsbegäran, nu ska definieras om det handlar om en lokal autentisering, en RADIUS-autentisering eller anslutningen accepteras utan autentisering. Här behöver du inte ändra någonting. Klicka på Next.

Nu visas konfigurationsalternativ för autentiseringsmetoder. Klicka på Next utan att göra någon ändring. I den nya sidan Configure Setting klickar endast på Next. Det är nu som visas anslutningens villkor och policy-inställningarna. Klicka på Finish

 

Nu ska du skapa en nätverkspolicy för gruppen CiscoAdmins. Expandera Policies och högerklicka på Network Policies. I Specify Network Policy Name and Connection Type ange Cisco_Admins som namn till policyn. I Type of network access server ska vara Unspecified. Därefter klicka på Next. 

I Specify Conditions klicka på Add. Därefter väljer du User Groups och Add.

I Specify Access Permission ska du välja Access granted och därefter klickar du på Next. I User Groups klickar du på Add Groups och därefter anger du gruppen CiscoAdmins.

I Configure Authentication Methods väljer du endast Unencrypted authentication (PAP, SPAP) och därefter klickar du på Next. Ett varningsmeddelande visas eftersom autentiseringsmetoden är okrypterad, klicka på No på frågan om du vill se mer information.

I Configure Constrains markeras Idle Timeout på 1 minut som default. Klicka på Next för att komma på sidan Configure Settings. Se till att Standard attribut har markerats och ta bort Framed-Protocol PP. Markera Service-Type och därefter klicka på Edit. I Attribute Information markera Others och välj Login, därefter klicka på Next och Next samt Finish.

I NPS fönstret, vänster spalt, markera Network Policies så att du ser Policy Cisco_Admins i spalten till höger. Dubbelklicka på den för att få fram dess egenskaper. Klicka på fliken Settings och markera Vendor Specific i spalten till vänster. Klicka på Add.

I Add Vendor Specific Attribute, direkt under Vendor ska du klicka på nedrullning och välja Cisco. Därefter klickar du Add.

I Attribute Information klicka på Add och ange följande kod: shell:priv-lvl=15. Därefter klickar på Next eller OK och OK tills en sammanfattning visas.

Konfigurationer i GNS3 – NPS

Först bygger vi upp nätverkstopologin i GNS 3. Router R1 är 7200 modellen och switchen sw1 är omformaterat från router 3725 till L3-switch.

  1. I VirtualBox klicka på Tools
  2. Klicka på CREATE och skapa två Host-Only nätverk: vnet1 och vnet2
  3. Ställ in lämpliga IP-adresser exempelvis
    • vnet1: 192.168.2.1 255.255.255.0 och ingen default gateway (host-only).
    • vnet2: 192.168.10.1 255.255.255.0

  1. Skapa en virtuell maskin för en Windows server 2016
    • Nätverksinställning: Host-Only associerat till vnet1 (VirtualBox väljer att visa som #2)
    • Inledande konfigurationer:
      • datornamn: radius-server
      • IP-adress: 192.168.2.5 - 255.255.255.0 - DG: 192.168.2.254
  2. Installera Active Directory (AD DS och DNS)
    1. Domännamn: diginto.se
  3. Installera rollen Network Policy and Access Services
  4. I Active Directory Sites and Services ändra namnet Default-First-Site-Name till NVLAN 1. Skapa en ny sajt med namn VLAN 10. Skapa lämpliga subnet.
  5. I Active Directory Users and Computers skapa grupper CiscoAdmins och Consults och därefter följande användarkonto:
    • Admin1, lösenord Diginto1!
    • Admin2, lösenord Diginto2!
    • Consult1, lösenord Digintoc1!
    • Consult2, lösenord Digintoc2!
  6. Lägg Cisco administratörer till gruppen CiscoAdmins
  7. Lägg Consult1 till gruppen Consults

Router R1 konfiguration

  • I GNS3 dra router 7200 till arbetsytan.
  • Högerklicka på router R1 och välj [Configure].
  • Därefter klicka på [Slots] och se till att du har samma specifikationer som bilden nedan:

Switch sw1 konfiguration

  • I GNS3 dra router 3725 till arbetsytan.
  • Högerklicka på routern och välj [CHANGE SYMBOL]
  • Välj MULTILAYER_SWITCH och därefter OK
  • Högerklicka nu på sw1 och välj CONFIGURE
  • Klicka på SLOTS. se till att switchen har samma specifikationer som på bilden nedan.
  • Klicka på Memories and disks och ändra PCMCIA disk0: 16 MiB (du kan testa mindre, exempelvis 2, 4 eller 8 MiB). Om du inte har gjort detta kommer sw1 inte kunna spara konfigurationer. Den kommer att visa mindre mängd information.
    • Du kan också göra ändringen senare, när du skapar VLAN. Men först måste switchen stängas av och därefter ändra PCMCIA disk0 till 16 MiB och därefter starta om switchen. Slutligen kör du kommandot sw1# erase flash:

  1. I GNS3 lägg till arbetsytan två CLOUD genom att klicka i vänster spalten på BROWSE ALL DEVICES och dra två cloud symbol till höger spalten: Cloud1 och Cloud2.
  2. Högerklicka på Cloud1 och därefter välj CONFIGURE.
  3. Se till att molnet associeras endast med vnet1 (Host-Only) nätverk. Om andra Host-Only nätverk inte visas ska du välja Show special Ethernet Interfaces, se bilden Node properties:
  4. Högerklicka igen på Cloud1 och därefter [Change Symbol] och välj Server. Ändra namnet till radius-server.
  5. Konfigurera nu Cloud2 genom att associera den till vnet2 nätverk, symbolen Computer och namn PC1

sw1 portar f2/10 ansluts till client-pc1 (VLAN 10), f2/9 till RADIUS server och f2/15 till router R1. Bägge portar (9 och 15) inkluderas som default i VLAN 1. Detta VLAN konfigureras för fjärråtkomst genom att ge det en IP-adress (192.168.2.100) och ställa in default gateway (192.168.2.254).

  • sw1# configure terminal
  • sw1(config)# interface vlan 1
  • sw1(config-if)# ip address 192.168.2.100 255.255.255.0
  • sw1(config-if)# exit
  • sw1(config)# ip default-gateway 192.168.2.254
  • sw1(config)# interface vlan 1
  • sw1(config-if)# no shutdown
  • sw1(config-if)# exit
  • sw1(config)#
  • sw1(config)# vlan 10
  • sw1(config-vlan)# name Students
  • sw1(config-vlan)# exit
  • sw1(config)# interface f2/10
  • sw1(config-if)# switchport access vlan 10
  • sw1(config-if)# exit
  • sw1(config)# interface f2/15
  • sw1(config-if)# switchport trunk encapsulation dot1q
  • sw1(config-if)# switchport mode trunk
  • sw1(config-if)# end
  • sw1# show run | include vlan
  • sw1# show vlan-switch

Router R1 interface f2/1 konfigureras med sub-interface för VLAN 1 och VLAN 10. Om interface benämning inte stämmer använd den du har på GNS3 exempelvis f1/1.

  • R1# configure terminal
  • R1(config)# interface f2/1
  • R1(config-if)# no ip address
  • R1(config-if)# shutdwon
  • R1(config-if)# exit
  • R1(config)# interface f2/1.1
  • R1(config-subif)# encapsulation dot1q 1
  • R1(config-subif)# ip address 192.168.2.254 255.255.255.0
  • R1(config-subif)# no shutdown
  • R1(config-subif)# exit
  • R1(config)#interface f2/1.10
  • R1(config-subif)#encapsulation dot1q 10
  • R1(config-subif)#ip address 192.168.10.254 255.255.255.0
  • R1(config-subif)# no shutdown
  • R1(config-subif)# exit
  • R1(config)# interface f2/1
  • R1(config-if)# no shutdown
  • R1(config-if)# end
  • R1#
  • R1# configure terminal
  • R1(config)# username Admin1 privilege 15 secret Diginto1!
  • R1(config)# username Admin2 privilege 15 secret Diginto2!
  • R1(config)# username Consult1 privilege 5 secret Digintoc1!
  • R1(config)# username Consult2 privilege 5 secret Digintoc2!
  • R1(config)# aaa new-model
  • R1(config)# radius-server host 192.168.2.5 auth-port 1812 acct-port 1813 key ciscopass
  • R1(config)# aaa authentication login default group radius local
  • R1(config)# aaa authorization exec default group radius local if-authenticated
  • R1(config)# end