💾

Laboratorijska vežba – Modul 16 – Slojevita odbrana: Port Security, DHCP Snooping, DAI, ACL i SSH/AAA

Cilj vežbe

Konfigurisati višeslojnu odbranu mreže: port security i DHCP snooping/DAI na svič-u radi zaštite od rogue DHCP servera i ARP spoofing-a, proširenu ACL na ruteru radi segmentacije pristupa serveru po principu najmanjih privilegija, i SSH sa lokalnom AAA autentifikacijom umesto Telnet-a.

Potrebno predznanje

  • Kompletna teorija ovog modula (Teme 1–16).
  • Port security (Modul 8), DHCP server (Modul 13), SSH i lozinke (Modul 7), rutiranje (Modul 11).

Potrebni programi

  • Cisco Packet Tracer.

Potrebni uređaji (u simulaciji)

UređajTačan model u Packet TraceruUloga
R1Cisco 4321 (ili 1941)Gateway, legitimni DHCP server, ACL, SSH/AAA
SW1Cisco Catalyst 2960Port security, DHCP snooping, DAI
PC1Generic PC-PTLegitimni klijent, DHCP
PC2Generic PC-PTKlijent kome se namerno ograničava pristup serveru (ACL demonstracija)
Rogue-ServerServer-PTSimulira neovlašćeni (rogue) DHCP server na untrusted portu
Server1Server-PTInterni server sa ograničenim pristupom (cilj ACL-a)

Topologija

graph LR
    PC1["PC1 (DHCP)"] --- SW1[SW1]
    PC2["PC2"] --- SW1
    Rogue["Rogue-Server<br/>(untrusted, lažni DHCP)"] --- SW1
    SW1 ---|"trust (DHCP snooping + DAI)"| R1["R1<br/>Gi0/0: 192.168.1.1 (LAN)<br/>Gi0/1: 192.168.2.1 (Server)"]
    R1 --- Server1["Server1<br/>192.168.2.10"]

Napomena o topologiji: Rogue-Server predstavlja neovlašćen (ili slučajno pogrešno konfigurisan) uređaj koji pokušava da deli lažne DHCP konfiguracije — koristi se isključivo radi demonstracije odbrane (DHCP snooping), ne kao uputstvo za napad. Port ka R1 (Gi0/1 na SW1) je jedini trust port.

Plan adresiranja

UređajInterfejsIP adresaMaskaNapomena
PC1, PC2NICDHCP—Iz legitimnog pool-a na R1
Rogue-ServerNIC192.168.1.250 (statička)255.255.255.0Sopstveni, lažni DHCP servis uključen
Server1NIC192.168.2.10255.255.255.0Gateway 192.168.2.1
R1GigabitEthernet0/0192.168.1.1255.255.255.0LAN, legitiman DHCP server
R1GigabitEthernet0/1192.168.2.1255.255.255.0Server mreža

Tabela portova

UređajPortPovezan sa
R1Gi0/0SW1 (uplink, trust)
R1Gi0/1Server1
SW1Gi0/1R1 Gi0/0
SW1Fa0/1PC1
SW1Fa0/2PC2
SW1Fa0/3Rogue-Server

Koraci vežbe

Korak 1 – Postavljanje topologije

Postavite R1, SW1, PC1, PC2, Rogue-Server i Server1. Povežite ih prema tabeli portova.

Korak 2 – Osnovna konfiguracija R1

Router>enable
Router#configure terminal
Router(config)#hostname R1
R1(config)#interface gigabitEthernet 0/0
R1(config-if)#ip address 192.168.1.1 255.255.255.0
R1(config-if)#no shutdown
R1(config-if)#exit
R1(config)#interface gigabitEthernet 0/1
R1(config-if)#ip address 192.168.2.1 255.255.255.0
R1(config-if)#no shutdown
R1(config-if)#exit

Korak 3 – Legitiman DHCP server na R1

R1(config)#ip dhcp excluded-address 192.168.1.1 192.168.1.9
R1(config)#ip dhcp pool LAN1
R1(dhcp-config)#network 192.168.1.0 255.255.255.0
R1(dhcp-config)#default-router 192.168.1.1
R1(dhcp-config)#dns-server 8.8.8.8
R1(dhcp-config)#exit

Korak 4 – Konfiguracija Rogue-Server i Server1

Na Rogue-Server, unesite statičku adresu 192.168.1.250/24 i uključite DHCP servis sa pogrešnim pool-om (npr. gateway 192.168.1.254, koji ne postoji) — ovo simulira slučajno pogrešno konfigurisan ili zlonameran uređaj.

Na Server1, unesite statičku adresu 192.168.2.10/24, gateway 192.168.2.1.

Korak 5 – Konfiguracija PC1 i PC2

Na oba PC-a, izaberite „DHCP" u IP Configuration.

Korak 6 – Provera problema (PRE zaštite)

Fast-forward vreme u Packet Traceru (ili ručno obnovite DHCP na PC-u) nekoliko puta i proverite ipconfig na PC1/PC2 — bez ikakve zaštite, PC1 ili PC2 mogu povremeno dobiti pogrešnu konfiguraciju od Rogue-Server-a umesto od R1, zavisno od toga koji server prvi odgovori.

Objašnjenje: Ovo je upravo problem koji DHCP snooping rešava (Tema 6) — bez njega, svič nema način da razlikuje legitiman od neovlašćenog DHCP servera.

Korak 7 – Konfiguracija DHCP Snooping-a

SW1(config)#ip dhcp snooping
SW1(config)#ip dhcp snooping vlan 1
SW1(config)#interface gigabitEthernet 0/1
SW1(config-if)#ip dhcp snooping trust
SW1(config-if)#exit

Korak 8 – Konfiguracija DAI

SW1(config)#ip arp inspection vlan 1
SW1(config)#interface gigabitEthernet 0/1
SW1(config-if)#ip arp inspection trust
SW1(config-if)#exit

Korak 9 – Konfiguracija Port Security na pristupnim portovima

SW1(config)#interface range fastEthernet 0/1 - 3
SW1(config-if-range)#switchport mode access
SW1(config-if-range)#switchport port-security
SW1(config-if-range)#switchport port-security maximum 1
SW1(config-if-range)#switchport port-security mac-address sticky
SW1(config-if-range)#switchport port-security violation shutdown
SW1(config-if-range)#exit

Korak 10 – Provera zaštite (POSLE)

Ponovo obnovite DHCP na PC1/PC2 (release/renew ili fast-forward):

R1#show ip dhcp binding

Potvrdite da PC1 i PC2 dosledno dobijaju adrese isključivo od R1 (gateway 192.168.1.1), nikad od Rogue-Server-a.

Proverite statistiku DHCP snooping-a:

SW1#show ip dhcp snooping
SW1#show ip dhcp snooping binding

Objašnjenje: Fa0/3 (port ka Rogue-Server-u) je untrusted po podrazumevanom ponašanju — svič odbacuje DHCPOFFER/DHCPACK poruke koje dolaze sa tog porta, pa PC1/PC2 nikada ne primaju odgovor od Rogue-Server-a, bez obzira na to koji server prvi pokuša da odgovori.

Korak 11 – Proširena ACL: PC1 sme, PC2 ne sme pristupiti Server1

R1(config)#access-list 110 permit ip host <adresa-PC1> host 192.168.2.10
R1(config)#access-list 110 deny ip host <adresa-PC2> host 192.168.2.10
R1(config)#access-list 110 permit ip any any
R1(config)#interface gigabitEthernet 0/1
R1(config-if)#ip access-group 110 out

(zamenite <adresa-PC1>/<adresa-PC2> stvarnim adresama dodeljenim putem DHCP-a, proverenim u Koraku 10)

Objašnjenje: ACL je postavljena na izlazni interfejs ka Server1 (Gi0/1), primenjujući princip najmanjih privilegija (Tema 2) — PC1 ima legitimnu poslovnu potrebu da pristupi Server1, PC2 nema, pa mu je pristup eksplicitno uskraćen dok ostatak mreže i dalje funkcioniše normalno (implicitni permit ip any any na kraju čuva opštu povezanost za sve ostalo).

Korak 12 – Provera ACL-a

PC1> ping 192.168.2.10

Uspešno.

PC2> ping 192.168.2.10

Neuspešno (Destination host unreachable / Request timed out).

Korak 13 – SSH i lokalna AAA na R1

R1(config)#hostname R1
R1(config)#ip domain-name firma.rs
R1(config)#username admin secret Mn0goSl0zenaLoz1nka!
R1(config)#crypto key generate rsa

(unesite 2048 kada IOS zatraži veličinu ključa)

R1(config)#aaa new-model
R1(config)#aaa authentication login default local
R1(config)#line vty 0 4
R1(config-line)#transport input ssh
R1(config-line)#login local
R1(config-line)#exit

Korak 14 – Provera SSH pristupa

Sa PC1 (ili PC2), koristeći Desktop → Terminal ili odgovarajući SSH klijent u Packet Traceru:

ssh -l admin 192.168.1.1

Unesite lozinku i potvrdite uspešnu prijavu.

  1. Na SW1, namerno uklonite trust oznaku sa uplink porta: SW1(config-if)#no ip dhcp snooping trust na Gi0/1 (interfejs ka R1).
  2. Obnovite DHCP na PC1 (release/renew).
  3. Proverite R1#show ip dhcp binding — PC1 više ne dobija (ili sporadično ne dobija) adresu od R1.
  4. Objasnite svojim rečima, na osnovu Teme 6, zašto uklanjanje trust oznake sa legitimnog uplink porta narušava DHCP funkcionalnost za sve korisnike, ne samo za rogue server.
  5. Vratite ip dhcp snooping trust na Gi0/1 da nastavite vežbu.

Korak 16 – Čuvanje konfiguracije

R1#copy running-config startup-config
SW1#copy running-config startup-config

Komande za proveru

show ip dhcp binding
show ip dhcp snooping
show ip dhcp snooping binding
show ip arp inspection
show port-security interface <port>
show access-lists
show running-config | section line vty

Najčešće greške

GreškaUzrokRešenje
PC1/PC2 povremeno dobijaju adresu od Rogue-Server-aDHCP snooping nije uključen (globalno i po VLAN-u), ili Fa0/3 pogrešno označen kao trustProveriti Korak 7
Legitiman DHCP prestaje da radi nakon uključivanja DHCP snooping-aUplink port (Gi0/1 na SW1) nije označen trustProveriti Korak 7, komanda ip dhcp snooping trust na uplinku
ACL blokira i PC1, ne samo PC2Adresa PC1 u ACL-u ne odgovara stvarno dodeljenoj DHCP adresiProveriti show ip dhcp binding i ažurirati ACL
SSH konekcija odbijenaRSA ključ nije generisan, ili ip domain-name/hostname nedostaju kao preduslovProveriti Korak 13, tačan redosled komandi

Postupak rešavanja problema (troubleshooting)

  1. show ip dhcp binding — proveriti da klijenti dobijaju adrese isključivo od legitimnog servera.
  2. show ip dhcp snooping i show ip dhcp snooping binding — proveriti status snooping-a i binding tabelu.
  3. show port-security interface <port> — proveriti status port security-ja po portu.
  4. show access-lists — proveriti brojače pogodaka (matches) ACL pravila.
  5. show running-config | section line vty — proveriti da je SSH ispravno konfigurisan i Telnet isključivo isključen.

Završna provera

Vežba je uspešno završena kada:

  1. PC1 i PC2 dosledno dobijaju IP adresu isključivo od R1, nikad od Rogue-Server-a.
  2. PC1 uspešno pristupa Server1, PC2 ne uspeva (ACL demonstracija).
  3. SSH pristup ka R1 radi sa lokalnim AAA nalogom, Telnet je isključen.
  4. Objašnjen je uzrok narušene DHCP funkcionalnosti nakon uklanjanja trust oznake (Korak 15).

Dodatni izazov

Dodajte TACACS+ ili RADIUS server (Server-PT sa AAA servisom, ako je dostupan u vašoj verziji Packet Tracer-a) i izmenite AAA konfiguraciju na R1 da prvo pokuša autentifikaciju preko tog eksternog servera, sa lokalnim nalogom kao rezervnom (fallback) opcijom ako server nije dostupan: aaa authentication login default group tacacs+ local. Objasnite zašto je bitno zadržati local kao rezervnu opciju, a ne osloniti se isključivo na eksterni server.

Rešenje

Kompletno rešenje ove vežbe nalazi se u /resenja/modul-16/04-laboratorijska-vezba-resenje.md.

📖 Prikaži rešenje

Rešenje laboratorijske vežbe – Modul 16

Kompletna konfiguracija – R1

Router>enable
Router#configure terminal
Router(config)#hostname R1
R1(config)#interface gigabitEthernet 0/0
R1(config-if)#ip address 192.168.1.1 255.255.255.0
R1(config-if)#no shutdown
R1(config-if)#exit
R1(config)#interface gigabitEthernet 0/1
R1(config-if)#ip address 192.168.2.1 255.255.255.0
R1(config-if)#no shutdown
R1(config-if)#exit
R1(config)#ip dhcp excluded-address 192.168.1.1 192.168.1.9
R1(config)#ip dhcp pool LAN1
R1(dhcp-config)#network 192.168.1.0 255.255.255.0
R1(dhcp-config)#default-router 192.168.1.1
R1(dhcp-config)#dns-server 8.8.8.8
R1(dhcp-config)#exit
R1(config)#access-list 110 permit ip host 192.168.1.10 host 192.168.2.10
R1(config)#access-list 110 deny ip host 192.168.1.11 host 192.168.2.10
R1(config)#access-list 110 permit ip any any
R1(config)#interface gigabitEthernet 0/1
R1(config-if)#ip access-group 110 out
R1(config-if)#exit
R1(config)#hostname R1
R1(config)#ip domain-name firma.rs
R1(config)#username admin secret Mn0goSl0zenaLoz1nka!
R1(config)#crypto key generate rsa

(unesite 2048 kada IOS zatraži veličinu ključa)

R1(config)#aaa new-model
R1(config)#aaa authentication login default local
R1(config)#line vty 0 4
R1(config-line)#transport input ssh
R1(config-line)#login local
R1(config-line)#exit
R1(config)#end
R1#copy running-config startup-config

(Napomena: adrese 192.168.1.10/192.168.1.11 u ACL-u pretpostavljaju da su to prve dve DHCP dodeljene adrese PC1/PC2, potvrđene komandom show ip dhcp binding pre pisanja ACL-a — u praksi ih treba proveriti, ne pretpostaviti.)

Kompletna konfiguracija – SW1

Switch>enable
Switch#configure terminal
Switch(config)#hostname SW1
SW1(config)#ip dhcp snooping
SW1(config)#ip dhcp snooping vlan 1
SW1(config)#ip arp inspection vlan 1
SW1(config)#interface gigabitEthernet 0/1
SW1(config-if)#ip dhcp snooping trust
SW1(config-if)#ip arp inspection trust
SW1(config-if)#exit
SW1(config)#interface range fastEthernet 0/1 - 3
SW1(config-if-range)#switchport mode access
SW1(config-if-range)#switchport port-security
SW1(config-if-range)#switchport port-security maximum 1
SW1(config-if-range)#switchport port-security mac-address sticky
SW1(config-if-range)#switchport port-security violation shutdown
SW1(config-if-range)#exit
SW1(config)#end
SW1#copy running-config startup-config

Konfiguracija Rogue-Server, Server1, PC1, PC2

UređajIP adresaMaskaNapomena
Rogue-Server192.168.1.250255.255.255.0DHCP servis uključen, pogrešan gateway 192.168.1.254
Server1192.168.2.10255.255.255.0Gateway 192.168.2.1
PC1, PC2DHCP—Dobijaju adrese od R1

Korak 6 – Provera problema (PRE zaštite)

Bez DHCP snooping-a, ipconfig na PC1 ili PC2 povremeno prikazuje gateway 192.168.1.254 (od Rogue-Server-a) umesto ispravnog 192.168.1.1 — potvrđujući da bilo koji DHCP server na mreži trenutno može da „pobedi" legitimni.

Korak 10 – Provera zaštite (POSLE)

R1#show ip dhcp binding
IP address       Client-ID/Hardware address    Lease expiration    Type
192.168.1.10      0100.5079.6668.01             1 day               Automatic
192.168.1.11      0100.5079.6668.02             1 day               Automatic
SW1#show ip dhcp snooping binding
MacAddress          IpAddress       Lease(sec)  Type           VLAN  Interface
0100.5079.6668.01    192.168.1.10    86400       dhcp-snooping  1     FastEthernet0/1
0100.5079.6668.02    192.168.1.11    86400       dhcp-snooping  1     FastEthernet0/2

Nakon više ponovljenih release/renew ciklusa, PC1 i PC2 nikada ne dobijaju konfiguraciju od Rogue-Server-a — svi pokušaji sa Fa0/3 (untrusted) su odbačeni.

Korak 12 – Provera ACL-a

PC1> ping 192.168.2.10
Reply from 192.168.2.10: bytes=32 time<1ms TTL=126

PC2> ping 192.168.2.10
Request timed out.

Korak 14 – Provera SSH pristupa

PC1> ssh -l admin 192.168.1.1
Password: 
R1>

Uspešna prijava potvrđuje da SSH sa lokalnom AAA autentifikacijom radi ispravno.

Korak 15 – Dijagnostička vežba

Nakon SW1(config-if)#no ip dhcp snooping trust na Gi0/1:

R1#show ip dhcp binding

PC1, nakon release/renew, više ne dobija (ili sporadično ne dobija) adresu — čak i legitimni DHCPOFFER/DHCPACK od R1 sada dolazi preko porta koji SW1 tretira kao untrusted, pa ga svič odbacuje po istom pravilu koje je ranije blokiralo Rogue-Server.

Objašnjenje: DHCP snooping ne razlikuje „dobar" od „loš" server po sadržaju poruke — razlikuje ih isključivo po tome da li poruka dolazi sa trust ili untrusted porta. Uklanjanje trust oznake sa legitimnog uplink porta čini da svič tretira čak i ispravan DHCP saobraćaj sa R1 kao neovlašćen i odbacuje ga, potpuno prekidajući DHCP funkcionalnost za sve korisnike na tom VLAN-u — ne samo za rogue server.

Nakon vraćanja ip dhcp snooping trust na Gi0/1, DHCP ponovo radi normalno.

Rešenje dodatnog izazova

R1(config)#aaa authentication login default group tacacs+ local

Objašnjenje: Zadržavanje local kao rezervne (fallback) opcije je ključno jer, ako eksterni TACACS+ server postane nedostupan (kvar, gubitak mrežne veze, planirano održavanje), administrator i dalje može da se prijavi koristeći lokalni nalog — bez ove rezerve, nedostupnost eksternog AAA servera bi potpuno zaključala sve administratore van uređaja, uključujući u trenutku kada je pristup najpotrebniji (npr. tokom dijagnostike upravo tog problema).