A trecut ceva timp de la ultima mea vizita pe aici, dar imi propun ca in urmatoarea perioada sa sterg putin praful care s-a asternut peste blog. Motivul care sta in spatele acestei lipse de activitate este unul fericit totusi. La sfarsitul lui Septembrie se implinesc trei luni de cand m-am alaturat unui colectiv minunat din cadrul departamentului NOC al unui ISP important de pe piata locala.
Intentionez sa impartasesc mai pe larg aceasta experienta intr-o postare viitoare, dar pentru moment, rezumand impresiile mele de pana acum intr-un singur cuvant despre ce inseamna activitatea intr-un NOC, acela ar fi… coplesitor ! Am fost “avertizat” in legatura cu acest aspect, dar nu am crezut pana cand nu am trait acest lucru "pe viu". Este genul de activitate pe care iti este imposibil sa o desfasori daca nu o faci cu placere, deoarece iti solicita foarte multa implicare si timp.
Faptul ca imi place ce fac si imi doresc sa devin bun la asta, m-a facut sa nu o iau la fuga dupa prima saptamana de training cand ajungeam acasa destul de zdruncinat, sau dupa prima alarma pe care am auzit-o cand eram singur in birou. Iar desi volumul de informatie pe care il mai am de asimilat este unul foarte mare, sper ca m-am acomodat destul pana acum astfel incat sa trec cu bine de perioada de proba. Oh, yes! There is one that you have to pass. :)
Revenind la lucruri mai practice, discutam acum cateva zile cu un prieten care urmeaza sa termine CCNA2 despre ACL-uri si stiu din propria experienta ca acesta poate sa fie un subiect delicat cand te intalnesti prima data cu el, dar pe masura ce parcurgi materia si exersezi in laboratoare, lucrurile devin mai clare.
Recomandarea pe care am primit-o si eu si pe care o transmit mai departe de fiecare data cand am ocazia, catre oricine intentioneaza sa invete ceva, orice, este de a citi foarte bine teoria inainte. Chiar daca pe moment nu iti sunt clare anumite concepte, cum am precizat mai sus, ele se vor lamuri in urma exercitiului practic.
Acestea fiind spuse, presupunand ca cei ce intentioneaza sa urmareasca acest laborator au parcurs partea teoretica, let’s get down to business !
Avem topologia de mai jos, pe care am configurat:
OSPF pe toate routerele folosind comanda
network 0.0.0.0 255.255.255.255 area 0
Liniile VTY pe toate routerele folosind comenzile
privilege level 15
no login
ATENTIE, aceasta configurare a liniilor VTY se aplica doar in laboratoare, in GNS3, acasa, cu usa bine inchisa si pastrand linistea ! :)
Loopback 1 cu adresa IP 1.1.1.1/32 pe Titan
Loopback 2 cu adresa IP 2.2.2.2/32 pe Dristor
Loopback 3 cu adresa IP 3.3.3.3/32 pe Vitan
Am folosit comanda ip host in global config pentru a mapa numele routerelor pe adresele loopback.
Am deschis portul 80 pe routere folosind comanda ip http server in global config.
Configuratia initiala a laboratorului se poate descarca de aici.
Prima aplicabilitate pratica a ACL-urilor pe care intentionam sa o observam, o reprezinta blocarea traficului prin filrarea pachetelor la L3 dupa IP-ul sursa al acestora.
In acest scop vom configura un ACL named standard prin care sa blocam traficul dinspre loopbackul de pe Titan catre Vitan.
Inainte de a incepe configurarea, ne asiguram ca avem conectivitate intre loopbackurile de pe Titan si Vitan.
Titan#ping 3.3.3.3 source loopback 1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 3.3.3.3, timeout is 2 seconds:
Packet sent with a source address of 1.1.1.1
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 20/41/68 ms
In continuare configuram un ACL named standard pe Vitan. Il configuram pe Vitan, deoarece fiind un ACL standard, filtrarea traficului se face doar la L3 dupa IP-ul sursa al pachetelor. Daca plasam ACL-ul pe Dristor pe interfata fa 0/0 pentru traficul inbound spre exemplu, blocam inclusiv traficul dinspre loopbackul de pe Titan catre loopbackul de pe Dristor si reteua dintre Dristor si Vitan.
Vitan(config)#ip access-list standard BLK-TITAN
Vitan(config-std-nacl)#deny host 1.1.1.1
Vitan(config-std-nacl)#permit any
Dupa configurare, plasam ACL-ul pe interfata si stabilim directia acestuia (inbound sau outbound, adica pentru traficul care intra sau care iese din router).
Vitan(config)#interface fastEthernet 0/1
Vitan(config-if)#ip access-group BLK-TITAN in
Dupa ce facem acest lucru, verificam ca ACL-ul functioneaza.
Titan#ping 3.3.3.3 source loopback 1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 3.3.3.3, timeout is 2 seconds:
Packet sent with a source address of 1.1.1.1
UUUUU
Success rate is 0 percent (0/5)
Titan#ping 3.3.3.3
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 3.3.3.3, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 16/31/40 ms
Observam ca cel de-al doilea ping reuseste, deoarece IP-ul sursa al pachetului ICMP este cel configurat pe interfata fizica fa 0/0, care nu este filtrat la destinatie.
O alta utilizare practica a ACL-urilor o reprezinta configurarea lor pentru a identifica clasele IP care urmeaza sa fie NAT-ate.
In acest scop vom configura un ACL pe Dristor prin care sa identificam loopback-ul de pe Titan pentru care vom face NAT pe loopback-ul de pe Dristor, astfel incat echo-request-urile care pleaca de pe Titan cu IP sursa 1.1.1.1/32 sa primeasca reply de la 3.3.3.3/32.
Dristor(config)#ip access-list standard NAT
Dristor(config-std-nacl)#permit 1.1.1.0 0.0.0.255
Dristor(config)#interface fastEthernet 0/0
Dristor(config-if)#ip nat inside
Dristor(config)#interface fastEthernet 0/1
Dristor(config-if)#ip nat outside
Dristor(config)#interface loopback 2
Dristor(config-if)#ip nat outside
Dristor(config)#ip nat inside source list NAT interface loopback 2 overload
Dupa ce terminam, verificam configurarea.
Titan#ping 3.3.3.3 source loopback 1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 3.3.3.3, timeout is 2 seconds:
Packet sent with a source address of 1.1.1.1
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 20/35/72 ms
Dristor#sh ip nat translations
Pro Inside global Inside local Outside local Outside global
icmp 2.2.2.2:7 1.1.1.1:7 3.3.3.3:7 3.3.3.3:7
Observam ca adresa IP de pe loopbackul lui Titan a fost translatata pe loopbackul de pe Dristor si pachetul ICMP a fost permis de ACL-ul de pe Vitan.
ACL-urile extended sunt cele care in practica ne ofera o flexibilitate mai mare, putand realiza filtrarea traficului si dupa destinatie sau port. Avand declaratii foarte specifice, acestea se configureaza cat mai aproape de sursa traficului.
In continuare vom configura un ACL named extended prin care sa blocam traficul dinspre loopbackul de pe Titan catre loopbackul de pe Dristor pe portul 80, dar sa permitem oricare alt tip de trafic.
Dristor(config)#ip access-list extended BLK-WWW
Dristor(config-ext-nacl)#deny tcp host 1.1.1.1 host 2.2.2.2 eq www
Dristor(config-ext-nacl)#permit ip any any
Dristor(config)#interface fastEthernet 0/0
Dristor(config-if)#ip access-group BLK-WWW in
Dupa ce terminam, verificam configurarea.
Titan#Dristor /source-interface lo 1
Translating "Dristor"
Trying Dristor (2.2.2.2)... Open
Dristor#
Observam ca ne este permis accesul pe portul 23 (telnet).
In mod similar testam daca ne este permis accesul pe portul 80.
Titan#Dristor 80 /source-interface lo 1
Translating "Dristor"
Trying Dristor (2.2.2.2, 80)...
% Destination unreachable; gateway or host down
De data aceasta vedem ca ACL-ul configurat mai devreme ne restrictioneaza accesul.
Totusi, pentru ca restrictionarea se aplica doar pentru pachetele cu IP sursa 1.1.1.1/32, putem verifica daca portul 80 este deschis facand telnet fara specificarea interfetei sursa loopback 1.
Titan#Dristor 80
Translating "Dristor"
Trying Dristor (2.2.2.2, 80)... Open
Observam ca este deschis.
ACL-urile sunt foarte utile atunci cand facem debug pentru ca ne ofera posibilitatea sa restrangem volumul output-ului observat. De exemplu pe Titan dorim sa facem debug si sa observam doar pachetele care pleaca avand sursa IP-ul 1.1.1.1/32.
Pentru a obtine acest lucru vom configura un ACL standard 1 prin care permitem doar hostul 1.1.1.1/32, apoi folosim comanda debug ip packet 1 detail.
Titan(config)#access-list 1 permit host 1.1.1.1
Titan#debug ip packet 1 detail
Putem testa configuratia dand comanda ping cu sursa interfata fa 0/0, apoi cu sursa interfata loopback 1.
Vom observa ca outputul comenzii debug este afisat doar pentru pingul avand sursa interfata loopback 1.
Ok, ok… configuram ACL-uri, stim unde sa le plasam dar cum le editam ?
O metoda ar fi sa copiem ACL-ul intr-un editor de text, sa facem modificarile dorite apoi sa-l copiem la loc pe router.
O alta metoda ar fi sa facem modificarile direct in IOS, pe router.
Va amintiti de ACL-ul standard configurat la inceput pe Vitan prin care blocam traficul dinspre loopbackul de pe Titan ?
Hai sa ne jucam putin cu el.
Vitan(config)#ip access-list standard BLK-TITAN
Vitan(config-std-nacl)#no permit any
Vitan(config-std-nacl)#deny 11.11.11.0 0.0.0.255
Vitan(config-std-nacl)#permit any
Vitan(config-std-nacl)#do show access-list
Standard IP access list BLK-TITAN
10 deny 1.1.1.1 (20 matches)
20 deny 11.11.11.0, wildcard bits 0.0.0.255
30 permit any
Bun, dar cine este 11.11.11.11/32 ? Pai, momentan nu exista. Hai sa-l configuram pe Titan.
Titan(config)#interface loopback 11
Titan(config-if)#ip add 11.11.11.11 255.255.255.255
Iar acum daca exista si 11.11.11.11/32 hai sa testam ACL-ul de pe Vitan.
Titan#ping 3.3.3.3 source loopback 11
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 3.3.3.3, timeout is 2 seconds:
Packet sent with a source address of 11.11.11.11
UUUUU
Success rate is 0 percent (0/5)
Dupa cum era de asteptat, pingurile care au ca sursa interfata loopback 11 catre loopback-ul de pe Vitan sunt filtrate la destinatie. Cine stie, poate hostul 11.11.11.11/32 a facut trafic malitios catre Vitan iar acesta s-a hotarat sa-l blocheze. Dar cum facem cand Vitan se decide ca totusi vrea sa permita traficul dinspre 11.11.11.11/32 ?
Pai...
Vitan(config-std-nacl)#15 permit host 11.11.11.11
Vitan(config-std-nacl)#
Vitan(config-std-nacl)#
Vitan(config-std-nacl)#do show access-list
Standard IP access list BLK-TITAN
10 deny 1.1.1.1 (20 matches)
15 permit 11.11.11.11
20 deny 11.11.11.0, wildcard bits 0.0.0.255
30 permit any (8 matches)
Si ne verificam.
Titan#ping 3.3.3.3 source loopback 11
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 3.3.3.3, timeout is 2 seconds:
Packet sent with a source address of 11.11.11.11
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 20/34/44 ms
Totusi daca declaratia deny era facuta pentru host pe Vitan, era necesara stergerea liniei.
Reconfigurare ACL.
Vitan(config-std-nacl)#no 15
Vitan(config-std-nacl)#no 20
Vitan(config-std-nacl)#no 30
Vitan(config-std-nacl)#deny host 11.11.11.11
Vitan(config-std-nacl)#permit any
Vizualizare ACL.
Vitan(config-std-nacl)#do show access-list
Standard IP access list BLK-TITAN
10 deny 1.1.1.1 (20 matches)
20 deny 11.11.11.11 (10 matches)
30 permit any (14 matches)
Verificare ACL.
Titan#ping 3.3.3.3 source loopback 11
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 3.3.3.3, timeout is 2 seconds:
Packet sent with a source address of 11.11.11.11
UUUUU
Success rate is 0 percent (0/5)
Editare ACL.
Vitan(config-std-nacl)#15 permit host 11.11.11.11
Vitan(config-std-nacl)#
Vitan(config-std-nacl)#do show access-list
Standard IP access list BLK-TITAN
10 deny 1.1.1.1 (20 matches)
20 deny 11.11.11.11 (10 matches)
15 permit 11.11.11.11
30 permit any (20 matches)
Vedem ca desi am configurat declaratia 15 de tip permit pe host, declaratia 20 are prioritate.
Este necesara stergerea acestei linii cu totul pentru a permite traficul.
Vitan(config-std-nacl)#no 20
Vitan(config-std-nacl)#do show access-list
Standard IP access list BLK-TITAN
10 deny 1.1.1.1 (20 matches)
15 permit 11.11.11.11
30 permit any (32 matches)
Verificare ACL.
Titan#ping 3.3.3.3 source loopback 11
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 3.3.3.3, timeout is 2 seconds:
Packet sent with a source address of 11.11.11.11
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 16/36/48 ms
Cam acesta este laboratorul propus azi. El reprezinta doar un punct de plecare. Se pot experimenta diferite scenarii cu ACL-urile editandu-le si schimband locurile si sensurile in care le configuram.
Sper ca ati gasit laboratorul interesant si util.
Pana data viitoare, toate bune ! :)
Niciun comentariu :
Trimiteți un comentariu