Un ruter, lăsat în pace, dirijează tot ce primește. Nu are opinii despre trafic: dacă are o rută, trimite pachetul mai departe. Lista de acces este mecanismul prin care îi dăm, pentru prima dată, dreptul de a spune nu. Este totodată limbajul în care se descrie traficul pe echipamentele Cisco - aceleași liste apar mai târziu la NAT, la calitatea serviciilor și la filtrarea rutelor. Cursul acesta pornește de la zero: ce este o regulă, cum se citește o listă, de ce ordinea liniilor decide totul și de ce masca folosită aici este pe dos față de tot ce ați învățat până acum.
1Recapitulare4 min
- Ruterul ia o decizie pentru fiecare pachet în parte, pe baza tabelei de rutare.
- Decizia se ia prin longest prefix match: cea mai specifică rută câștigă.
- Un pachet fără rută este aruncat. Ruterul nu îl păstrează și nu îl ghicește.
- Ruterul decapsulează cadrul, citește antetul IP, apoi reîncapsulează pachetul într-un cadru nou pe interfața de ieșire.
- Rutarea trebuie configurată în ambele sensuri - altfel răspunsul nu are pe unde să vină înapoi.
Ultimul punct revine astăzi, într-o formă nouă și mult mai neplăcută: nu doar rutarea trebuie gândită în ambele sensuri, ci și filtrarea. O listă care permite corect traficul dus, dar uită traficul întors, produce exact același simptom - „nu merge" - dintr-un motiv complet diferit.
Rezultate ale învățării
- Să explicați ce este un ACL și ce poate identifica dintr-un pachet
- Să parcurgeți mental o listă de reguli și să spuneți exact ce se întâmplă cu un pachet dat
- Să calculați o mască wildcard și să spuneți ce interval de adrese acoperă
- Să alegeți între o listă standard și una extinsă și să știți unde se plasează fiecare
- Să scrieți liste cu nume și să editați o singură linie fără să rescrieți tot
- Să permiteți traficul de întoarcere fără să deschideți rețeaua din exterior
- Să depanați o listă folosind contorul de potriviri
2Definiția listei de acces8 min
Imaginați-vă că ruterul are, pe fiecare ușă, o foaie de hârtie cu propoziții de forma: „dacă pachetul arată așa → lasă-l" sau „dacă pachetul arată așa → aruncă-l".
Fiecare propoziție are deci două părți: un criteriu (cum arată pachetul) și o
acțiune (permit sau deny). O propoziție se numește regulă sau
ACE (Access Control Entry). Foaia întreagă se numește listă de acces, sau ACL.
Atât. Restul cursului este despre cum se scriu criteriile, în ce ordine se citesc propozițiile și pe care dintre uși se lipește foaia.
Ultima propoziție merită subliniată, pentru că e sursa primei confuzii de laborator: o listă scrisă în configurație și neaplicată pe nicio interfață nu filtrează absolut nimic. Este doar un text. Aplicarea se face separat, cu o a doua comandă.
Filtrarea nu este singura utilizare
ACL-ul este, pe un echipament Cisco, modul standard de a răspunde la întrebarea „despre care trafic vorbim?". De aceea îl veți întâlni în locuri care nu au nicio legătură cu securitatea:
| Utilizare | Ce face lista acolo | Unde apare în curs |
|---|---|---|
| Filtrare | decide ce trece și ce nu - singurul caz în care deny chiar aruncă pachete | cursul de azi |
| NAT | identifică adresele interne care au voie să fie translatate | cursul 9 |
| QoS | identifică traficul care primește prioritate în cozi | cursul 4 (802.1p) |
| Acces la echipament | de pe ce adrese se poate deschide o sesiune SSH pe ruter | secțiunea 12 |
| Filtrarea rutelor | ce actualizări de rutare se acceptă de la vecini | cursul 10 |
| VPN | ce trafic „interesant" declanșează construirea tunelului criptat | cursul 9 |
permit nu înseamnă „lasă să treacă", ci
„acesta este traficul despre care vorbesc". Iar deny nu aruncă nimic - doar exclude traficul
din selecție. Aceeași sintaxă, cu totul alt înțeles al cuvintelor.Ce poate „vedea" o listă dintr-un pachet
Criteriile disponibile acoperă nivelurile 3 și 4 ale modelului OSI - exact antetele pe care ruterul le citește oricum:
| Nivel | Criteriu | Exemplu de scriere |
|---|---|---|
| 3 | adresa IP sursă | host 192.168.1.7 |
| 3 | adresa IP destinație | 10.0.0.0 0.0.0.255 |
| 3 | protocolul încapsulat | ip, icmp, ospf, gre |
| 4 | portul sursă sau destinație | eq 80, range 20 21 |
| 4 | tipul mesajului ICMP | echo, echo-reply |
| 4 | starea conexiunii TCP (aproximativ) | established |
Ce nu poate vedea un ACL clasic: numele utilizatorului, conținutul paginii cerute, numele domeniului, faptul că un fișier conține un virus. Toate acestea sunt la nivelurile 5–7 și cer un echipament de alt tip.
3Ruter cu ACL sau firewall dedicat?6 min
Întrebarea apare imediat ce cineva realizează că ruterul poate filtra: dacă poate, de ce mai cumpărăm firewall-uri? Răspunsul e că fac lucruri diferite, iar diferența nu e de calitate, ci de rol.
- Funcția principală este rutarea; filtrarea e un supliment
- Decizii pe baza nivelurilor 3 și 4
- Fără stare: fiecare pachet e judecat izolat, ca și cum ar fi primul
- Nu costă nimic în plus - echipamentul există deja
- Perfect pentru filtre simple și pentru protejarea echipamentului însuși
- Funcția principală este filtrarea; poate ruta, dar limitat
- Decizii pe baza nivelurilor 3–7, cu inspecție de conținut
- Cu stare: ține minte sesiunile deschise și acceptă automat răspunsurile
- Criptare hardware, jurnalizare serioasă, interfață de administrare
- Necesar la marginea oricărei rețele care expune servicii
Un ACL costă latență și încărcare pe procesorul ruterului: fiecare pachet trebuie comparat, în cel mai rău caz, cu toate regulile din listă. Pe un ruter mic, o listă de 300 de linii aplicată pe interfața de Internet se simte.
Unde se pun serviciile expuse public
Arhitectura clasică plasează un firewall între ruterul de margine și rețeaua internă și scoate serviciile publice - server web, server de mail - într-o zonă separată, numită DMZ (Demilitarized Zone).
4Cum se citește o listă de reguli10 min
Aceasta este secțiunea care, dacă e înțeleasă bine, face restul cursului aproape banal. Sunt trei propoziții.
2. La prima potrivire se aplică acțiunea, iar restul listei nu se mai citește.
3. Dacă nicio regulă nu se potrivește, se aplică
deny any - o regulă
invizibilă, aflată automat la sfârșitul oricărei liste.
Obiceiul profesional: pe echipamente aflate la distanță, aplicați lista cu un
reload in 5
programat înainte. Dacă vă blocați singur, ruterul repornește peste cinci minute cu configurația veche.
Dacă totul merge, anulați repornirea cu reload cancel.Ordinea de parcurgere, ca exercițiu
5Unde se aplică o listă10 min
O listă scrisă nu face nimic. Ca să aibă efect, trebuie legată de un loc precis, iar locul are trei coordonate.
| Coordonată | Ce înseamnă | Valori |
|---|---|---|
| protocolul rutat | pentru ce familie de adrese se aplică | IPv4, IPv6 |
| interfața | pe ce ușă a ruterului stă foaia | Gi0/0, Se0/1/0, VLAN 10… |
| direcția | traficul care intră sau cel care iese | in, out |
Aceasta e sursa a jumătate din greșelile de laborator. in și out nu se
referă la rețeaua dumneavoastră, ci la ruter.
in = traficul care intră în ruter prin acea interfață, venind dinspre cablu.
out = traficul care iese din ruter prin acea interfață, plecând spre cablu.
Deci același pachet, care merge de la LAN spre Internet, este in pe interfața dinspre
LAN și out pe interfața dinspre Internet. Puteți alege să îl opriți în oricare dintre
cele două locuri - dar în locuri diferite, cu efecte diferite.
Excepția: dacă o singură regulă trebuie să se aplice traficului venit din mai multe interfețe de intrare, o singură listă
out pe interfața de ieșire înlocuiește trei sau patru liste
in.Un ruter cu 2 interfețe rulează dual stack (IPv4 și IPv6). Care este numărul maxim de ACL-uri de filtrare care pot fi aplicate simultan?
Vezi rezolvarea
Regula generală: pe o interfață, pentru un protocol rutat și o direcție, poate exista o singură listă activă.
Deci: 2 interfețe × 2 protocoale rutate × 2 direcții = 8 liste.
Corolarul practic: dacă aplicați o a doua listă pe aceeași interfață, direcție și protocol, ea nu se adaugă la prima - o înlocuiește, tăcut. Un motiv în plus să folosiți liste cu nume, unde adăugarea unei reguli se face în interiorul listei existente.
6Masca wildcard12 min
Aici trebuie să vă dezvățați ceva. Într-o listă de acces, adresele nu se însoțesc de mască de rețea, ci de mască wildcard, iar regula ei este exact inversă.
Bitul 1 înseamnă „ignoră acest bit, poate fi orice".
La masca de rețea, 1 înseamnă „partea de rețea" - adică partea fixă. La wildcard, partea fixă e marcată cu 0.
Trucul de memorare: la wildcard, 1 = wild = liber = orice. Cifra 1 seamănă cu un semn de exclamare: „nu mă interesează!".
Iar pentru cazurile obișnuite există o scurtătură aritmetică: wildcard = 255.255.255.255 minus masca. Scădeți octet cu octet:
Wildcard-ul poate însă face lucruri pe care o mască de rețea nu le poate. Masca cere ca biții de 1 să fie contigui, de la stânga. Wildcard-ul nu are această restricție: putem lăsa un bit de 0 pe ultima poziție și selecta astfel doar adresele pare dintr-o rețea. E rar folosit, dar explică de ce cele două nu sunt același lucru cu semnele schimbate.
Porniți de la ce e deja în casetă: 172.16.8.0 0.0.7.255 acoperă opt rețele de clasă C
consecutive, de la 172.16.8.0 la 172.16.15.255. Uitați-vă la reprezentarea binară: cei trei
biți liberi din al treilea octet produc exact 2³ = 8 combinații.
Apoi încercați trei lucruri:
- wildcard
0.0.0.0peste10.1.1.7- o singură adresă, echivalentul luihost; - wildcard
0.0.0.1peste11.2.2.90- exact două adrese, .90 și .91; e trucul prin care două reguli devin una; - wildcard
255.255.255.255peste orice adresă - absolut tot, echivalentul luiany.
Cuvintele cheie care scurtează scrierea
| Cuvânt cheie | Echivalent complet | Sens |
|---|---|---|
any | 0.0.0.0 255.255.255.255 | orice adresă |
host X | X 0.0.0.0 | exact adresa X |
| adresă scrisă singură | X 0.0.0.0 | tot exact adresa X, în listele standard |
Calculator: de la prefix la wildcard și înapoi
Alegeți /22 și citiți rezultatul: wildcard-ul este 0.0.3.255, adică patru rețele de clasă
C. Alegeți /30 - cazul legăturilor între rutere - și obțineți 0.0.0.3: patru adrese, din
care două utilizabile.
Scrieți criteriul care selectează doar subrețelele 192.168.16.0/24 până la 192.168.19.0/24, într-o singură linie.
Vezi rezolvarea
Sunt patru rețele de clasă C consecutive, deci un bloc de 4 × 256 = 1024 adrese, adică un /22.
Verificarea alinierii: 16 împărțit la 4 dă rest 0, deci blocul este aliniat și poate fi scris ca prefix unic. (Dacă am fi pornit de la .17, nu s-ar fi putut.)
Wildcard-ul pentru /22 este 0.0.3.255. Criteriul se scrie:
Verificare: al treilea octet are ultimii doi biți liberi, deci ia valorile 16, 17, 18, 19. Exact ce voiam.
7Listele standard10 min
| Tip | Identificare | Criterii | Unde se plasează |
|---|---|---|---|
| Standard | numere 1–99 și 1300–1999 | doar adresa sursă | cât mai aproape de destinație |
| Extinsă | numere 100–199 și 2000–2699 | sursă, destinație, protocol, port | cât mai aproape de sursă |
| Cu nume | un nume ales de administrator | standard sau extinsă | după tipul ei |
O listă standard răspunde la o singură întrebare: de unde vine pachetul? Nu poate spune nimic despre destinație, protocol sau port. E puțin - dar e suficient pentru cazul frecvent „stația aceasta nu are voie în segmentul acela".
R(config)# access-list 50 deny host 172.16.1.1
│ │ │
│ │ └── criteriul: ce sursa
│ └─────── actiunea: permit sau deny
└─────────── numarul listei (1-99 => standard)
R(config)# access-list 50 remark blocheaza statia problematica R(config)# access-list 50 deny host 172.16.1.1 R(config)# access-list 50 permit 172.16.0.0 0.0.255.255 R(config)# interface fastEthernet 0/1 R(config-if)# ip access-group 50 in
permit 172.16.0.0
0.0.255.255 - pentru că face parte din acea rețea - ar fi acceptată, iar regula de
deny nu ar fi verificată niciodată.Regula mai specifică trebuie să fie întotdeauna deasupra celei mai generale. Aceasta este singura regulă de aur a listelor de acces.
De ce lista standard se plasează lângă destinație
8Listele extinse12 min
Lista extinsă răspunde la patru întrebări deodată: de unde, unde, cu ce protocol și pe ce port. Prețul este o sintaxă mai lungă și obligația de a nu greși ordinea argumentelor.
access-list 101 deny tcp host 172.16.6.1 192.168.1.0 0.0.0.255 eq 23
│ │ │ │ │ │
│ │ │ │ │ └ portul destinatie
│ │ │ │ └──── destinatia + wildcard
│ │ │ └───────────────── sursa (aici: o singura statie)
│ │ └────────────────────────── protocolul: ip, tcp, udp, icmp...
│ └─────────────────────────────── actiunea
└──────────────────────────────────── numarul (100-199 => extinsa)
deny tcp A B eq 80 înseamnă „de la A spre B,
portul 80 al lui B". Dacă inversați A și B, lista este sintactic corectă și complet inutilă.Iar dacă vreți să filtrați după portul sursă, acesta se scrie imediat după sursă:
permit tcp any eq 80 192.168.0.0 0.0.0.255 înseamnă „de la orice server web, spre rețeaua
noastră".Protocoale și porturi uzuale
| Serviciu | Protocol | Port | Cuvânt cheie IOS |
|---|---|---|---|
| Web | TCP | 80 | eq www sau eq 80 |
| Web securizat | TCP | 443 | eq 443 |
| SSH | TCP | 22 | eq 22 |
| Telnet | TCP | 23 | eq telnet |
| FTP (control) | TCP | 21 | eq ftp |
| DNS | UDP (și TCP) | 53 | eq domain |
| DHCP | UDP | 67, 68 | eq bootps / eq bootpc |
| Ping | ICMP | - | echo, echo-reply |
Operatorii disponibili pentru porturi: eq (egal), neq (diferit),
lt (mai mic), gt (mai mare) și range 20 21 (interval închis).
! permite tot traficul IP de la o singura statie, catre orice destinatie access-list 101 permit ip host 10.0.0.1 any ! opreste tot traficul cu originea in reteaua 10.0.0.0/24 access-list 101 deny ip 10.0.0.0 0.0.0.255 any ! opreste Telnet de la o statie anume catre o retea anume access-list 101 deny tcp host 172.16.6.1 192.168.1.0 0.0.0.255 eq 23 ! permite Telnet de la toate statiile dintr-o retea, spre oriunde access-list 101 permit tcp 172.16.6.0 0.0.0.255 any eq telnet
Evaluator interactiv
Editați lista din caseta de sus și urmăriți cum se schimbă verdictele. Trei observații merită făcute cu atenție.
Prima. Regula 4, deny ip host 192.168.10.66 any, pare să blocheze stația
problematică - dar tabelul arată că pachetul ei este permis, de regula 3. Motivul este ordinea:
permit icmp 192.168.10.0 0.0.0.255 any se potrivește prima, iar restul listei nu se mai
verifică. Mutați regula 4 deasupra regulii 3 și priviți cum se schimbă verdictul. Aceasta este, în două
rânduri, întreaga capcană a listelor de acces: o regulă corectă, plasată prea jos, nu există.
A doua. Ultimul pachet, venit din altă rețea, nu se potrivește cu nicio regulă și cade pe
deny implicit - deși nimeni nu a scris acea linie nicăieri.
A treia. Ștergeți ultima linie, permit ip 192.168.10.0 0.0.0.255 any, și priviți
câte pachete rămân permise. Este demonstrația practică a faptului că o listă fără o linie de permisiune
finală este un zid.
Unde se plasează lista extinsă
O listă extinsă descrie precis și sursa, și destinația, deci nu există risc de daună colaterală. Atunci e mai eficient să opriți traficul cât mai devreme, ca să nu consume bandă traversând rețeaua degeaba.
9Listele cu nume și editarea lor7 min
Listele numerotate au două neajunsuri serioase, iar al doilea e cel care doare.
- Se cheamă „254" - peste șase luni nimeni nu mai știe ce face
- Nu se poate șterge o singură linie.
no access-list 254șterge toată lista - Regulile noi se adaugă obligatoriu la sfârșit - deci sub
permit-ul general - O modificare înseamnă: șterge tot, rescrie tot, sperând că nu ai uitat nimic
- Se cheamă
FILTRU_DMZ_IN- se înțelege din nume - Fiecare regulă are un număr de secvență, iar
no 30șterge doar regula 30 - O regulă nouă se poate insera între altele, dându-i un număr intermediar
- Este forma obligatorie pentru liste reflexive și pentru IPv6
IOS numerotează automat regulile cu 10, 20, 30… tocmai ca să vă lase loc între ele. Dacă mai târziu aveți nevoie de o regulă între 10 și 20, îi dați numărul 15 și ea se așază exact acolo.
Dacă ați fi numerotat din 1 în 1, nu ați mai fi avut unde insera nimic - și ar fi trebuit să
renumerotați lista cu ip access-list resequence.
R(config)# ip access-list extended FILTRU_LAN_IN R(config-ext-nacl)# 20 permit ip any any ! ne dam seama ca lipsesc doua reguli, si trebuie sa fie INAINTE R(config-ext-nacl)# 5 permit icmp host 10.0.0.1 any R(config-ext-nacl)# 10 deny icmp any any ! regula de pe linia 5 avea adresa gresita: o stergem punctual R(config-ext-nacl)# no 5 R(config-ext-nacl)# 5 permit icmp host 10.0.0.2 any ! aplicarea pe interfata - la fel ca la listele numerotate R(config)# interface fastEthernet 0/1 R(config-if)# ip access-group FILTRU_LAN_IN in
show running-config într-un editor de text, o modifică acolo, o testează mental, apoi
șterge lista veche și lipește noua versiune într-o singură operație. Astfel rețeaua nu petrece niciun
moment cu o listă pe jumătate scrisă.10Liste care țin cont de context9 min
Problema traficului de întoarcere
Vrem ca stațiile noastre să navigheze pe web, dar nimeni din exterior să nu poată iniția o conexiune spre ele. Sună simplu. Nu este.
Un ACL vede pachete, nu conexiuni. Când serverul web răspunde, pachetul lui vine dinspre exterior, spre rețeaua noastră - exact ca un pachet trimis de un atacator.
Ruterul nu ține minte că noi am întrebat primii. Fiecare pachet e judecat ca și cum ar fi primul din lume. Așa că orice regulă care lasă răspunsul să intre lasă și atacul să intre.
Aceasta este definiția lui fără stare (stateless), și e diferența fundamentală față de un firewall.
Soluția minimală: established
Opțiunea established se potrivește cu pachetele TCP care au bitul ACK sau
RST setat - adică cele care fac parte dintr-o conversație deja pornită. Primul pachet al unei
conexiuni noi, cel cu SYN singur, nu are ACK, deci nu se potrivește și este oprit.
R0(config)# ip access-list extended IESIRE_HTTP R0(config-ext-nacl)# 10 permit tcp 192.168.0.0 0.0.0.255 any eq www R0(config)# ip access-list extended INTRARE_HTTP R0(config-ext-nacl)# 10 permit tcp any eq www 192.168.0.0 0.0.0.255 established R0(config)# interface fa1/0 R0(config-if)# ip access-group IESIRE_HTTP out R0(config-if)# ip access-group INTRARE_HTTP in
Observați structura celei de-a doua reguli: sursa este any eq www - orice server web - iar
destinația este rețeaua noastră. Este oglinda primei reguli, cu sursa și destinația inversate, plus
cuvântul magic la final.
- Verifică doar biții ACK și RST - un atacator poate fabrica un pachet cu ACK setat, fără să existe vreo conexiune
- Funcționează exclusiv pentru TCP; UDP-ul și ICMP-ul nu au biți de control, deci nu au echivalent
- Nu se descurcă cu aplicații care negociază porturi dinamic (FTP activ, SIP, jocuri online)
Listele reflexive
Un ACL reflexiv construiește dinamic regulile de întoarcere, pe baza sesiunilor observate la ieșire. Când o stație internă deschide o conexiune, ruterul creează automat, temporar, regula inversă - și o șterge când sesiunea se încheie sau expiră.
Se definesc doar prin liste extinse cu nume și folosesc două cuvinte cheie: reflect, care
marchează traficul de urmărit, și evaluate, care aplică regulile generate din el.
R0(config)# ip access-list extended OUTBOUND R0(config-ext-nacl)# 10 permit tcp 192.168.0.0 0.0.0.255 any eq www reflect TRAFIC_HTTP R0(config-ext-nacl)# 20 permit icmp 192.168.0.0 0.0.0.255 any reflect TRAFIC_ICMP R0(config)# ip access-list extended INBOUND R0(config-ext-nacl)# 10 evaluate TRAFIC_HTTP R0(config-ext-nacl)# 20 evaluate TRAFIC_ICMP R0(config)# interface fastEthernet 1/0 R0(config-if)# ip access-group OUTBOUND out R0(config-if)# ip access-group INBOUND in
Acesta este primul pas real spre un firewall cu stare: ruterul nu mai judecă fiecare pachet izolat, ci
ține minte ce sesiuni au fost inițiate din interior. Spre deosebire de established,
funcționează și pentru UDP și ICMP, pentru că se bazează pe perechea de adrese și porturi, nu pe biții
TCP.
Liste condiționate temporal
Uneori regula nu depinde de trafic, ci de ceas: acces permis doar în programul de lucru, backup permis doar noaptea.
R(config)# time-range PROGRAM_LUCRU R(config-time-range)# periodic Monday Tuesday Wednesday Thursday Friday 9:00 to 18:00 R(config)# ip access-list extended ACL_ORAR R(config-ext-nacl)# 10 permit tcp any 192.168.1.0 0.0.0.255 eq telnet time-range PROGRAM_LUCRU R# show time-range
11Verificare, jurnalizare, comentarii6 min
Trei mecanisme fac diferența între un ACL scris și un ACL înțeles.
Comentariile - remark, maximum 100 de caractere - explică intenția fiecărui
grup de reguli, nu sintaxa lor. Peste șase luni, când altcineva citește configurația, un comentariu
valorează cât zece minute de reconstituit raționamentul.
Jurnalizarea - cuvântul cheie log la finalul unei reguli - generează un mesaj care
conține numărul listei, acțiunea, adresa sursă și numărul de pachete. Mesajul apare la primul pachet care
se potrivește și apoi din 5 în 5 minute, mecanism gândit exact ca să nu inunde jurnalele.
show access-lists și uitați-vă la numărul din paranteze de lângă fiecare regulă.Zero potriviri pe o regulă care ar trebui să prindă trafic înseamnă că traficul nu ajunge acolo: fie lista e pe interfața greșită, fie pe direcția greșită, fie o regulă de deasupra a prins deja traficul. În exemplul din terminal, regula 40 are 0 matches - și e chiar cazul discutat mai devreme, în care regula 30 prinde traficul înaintea ei.
Multe potriviri pe un
deny pe care nu îl așteptați înseamnă că filtrați ceva ce nu
voiați. Ambele situații se văd în trei secunde.12Protejarea accesului la echipament5 min
Până acum am filtrat trafic care trece prin ruter. Ultima aplicație este diferită: filtrăm traficul care se oprește la ruter - sesiunile de administrare.
Un ruter accesibil prin SSH de oriunde din Internet este o parolă distanță de un dezastru. Soluția
standard nu este o listă pe interfață, ci una aplicată pe liniile virtuale (VTY), cu o comandă
diferită: access-class în loc de ip access-group.
R(config)# access-list 5 remark doar statiile administratorilor R(config)# access-list 5 permit 192.168.99.0 0.0.0.255 R(config)# line vty 0 15 R(config-line)# access-class 5 in R(config-line)# transport input ssh R(config-line)# exec-timeout 5 0
| Comandă | Unde se aplică | Ce filtrează |
|---|---|---|
ip access-group | pe o interfață | traficul care trece prin ruter |
access-class | pe liniile VTY | cine se poate conecta la ruter |
Avantajul acestei abordări: lista se aplică o singură dată și acoperă toate interfețele, indiferent pe unde ar veni încercarea de conectare. Un ACL pe interfață ar trebui replicat pe fiecare ușă.
13Erori frecvente4 min
- „Am scris lista, dar nu filtrează nimic"
Lista există în configurație, dar nu a fost aplicată pe nicio interfață. Este doar text.
Verificați cu
show ip interfacece listă e aplicată și pe ce direcție. - „Am pus regula, dar nu are efect"
O regulă de deasupra prinde deja traficul. Regula dumneavoastră nu e citită niciodată.
show access-lists→ 0 matches. Mutați regula mai sus. Specificul deasupra generalului. - „Am blocat tot, deși voiam să blochez o singură stație"
Lista are doar reguli
deny. După ele vinedeny anyimplicit. Adăugați o liniepermitfinală pentru restul traficului. - „Ping-ul merge într-un sens, dar nu se întoarce"
Ați permis traficul dus și ați uitat răspunsul. Ca și la rutare, filtrarea se gândește în ambele
sensuri.
Fie o regulă pentru
echo-reply, fieestablished, fie o listă reflexivă. - „Am confundat in cu out" Direcția se judecă din perspectiva ruterului, nu a rețelei. Întrebați-vă: pachetul intră în ruter pe această interfață, sau iese din el?
- „Am folosit masca de rețea în loc de wildcard"
permit 10.0.0.0 255.255.255.0se acceptă fără eroare și selectează cu totul altceva. Wildcard = 255.255.255.255 minus masca. Verificați cushow access-lists, unde IOS afișează explicitwildcard bits. - „Am aplicat lista pe interfața prin care eram conectat"
Sesiunea se închide instantaneu și nu se mai poate redeschide.
Pe echipamente la distanță:
reload in 5înainte,reload canceldupă ce confirmați că merge.
14Rezumat și glosar4 min
- Un ACL este o listă ordonată de perechi criteriu–acțiune, citită de sus în jos, până la prima potrivire.
- La sfârșitul oricărei liste există un
deny anyinvizibil. - Lista trebuie aplicată pe o interfață și o direcție ca să aibă efect.
inșioutse judecă din perspectiva ruterului.- Wildcard: 0 = trebuie să se potrivească, 1 = ignoră. Este inversul măștii.
- Standard = doar sursa → lângă destinație. Extinsă = sursă, destinație, protocol, port → lângă sursă.
- Listele cu nume permit editarea unei singure linii; cele numerotate, nu.
- Traficul de întoarcere cere
establishedsau o listă reflexivă. show access-listsși contorul de potriviri rezolvă majoritatea problemelor.
15Întrebări de verificare6 min
16Direcții de aprofundare2 min
Am învățat să descriem traficul și să îl oprim pe un ruter Cisco, fără nicio noțiune de stare și fără niciun fel de criptografie. Cursul următor privește aceeași problemă din perspectiva unui firewall cu stare și a unei mașini Linux, și adaugă exact dimensiunea care lipsește complet aici: cum protejăm conținutul, nu doar traseul.
Laboratorul 6 configurează liste standard și extinse pe topologia firmei, împreună cu NAT - și
veți vedea acolo, în practică, ce înseamnă „aceeași listă, alt înțeles al cuvântului
permit".
- Cisco - Security Configuration Guide: Access Control Lists
- RFC 3871 - cerințe operaționale de securitate pentru infrastructura IP
- RFC 2827 (BCP 38) - filtrarea la intrare împotriva adreselor sursă falsificate
- Manualul
iptables(8), pentru comparație cu abordarea Linux