Duxo Academy
Blog ›

ACL na Cisco: gdzie stawiać standardowe i rozszerzone

· 6 min czytania

Lista ACL (Access Control List, lista kontroli dostępu) to najprostszy sposób, żeby router sam odrzucał ruch, którego nie chcesz: telefony z LAN-u nie dotykają serwera zarządzania, Internet nie dobija się do Twojej sesji Telnet. W tym artykule: jak router czyta reguły, czym różni się lista standardowa od rozszerzonej, dlaczego miejsce wpięcia listy jest równie ważne jak jej treść — i jak skonfigurować filtr tak, żeby nie odciąć sobie dostępu do urządzenia, na którym właśnie pracujesz.

Jak router czyta listę ACL

ACL to uporządkowany zestaw reguł, który router sprawdza dla każdego pakietu przechodzącego przez interfejs. Zasady są trzy i warto je zapamiętać w tej kolejności:

  1. Od góry do dołu — reguły sprawdzane są w kolejności wpisania.
  2. Pierwsze dopasowanie wygrywa — gdy pakiet pasuje do reguły, router stosuje jej akcję (permit albo deny) i nie ogląda reszty listy.
  3. Na końcu czeka niewidoczne deny any (tzw. implicit deny) — pakiet, który nie pasował do niczego, zostaje odrzucony. Nie musisz tego wpisywać, ono tam jest zawsze.

Z tego wynika najczęstszy błąd początkujących: lista zaczynająca się od zbyt ogólnego permit nigdy nie doszła do szczegółowych zakazów niżej — ruch został już przepuszczony pierwszą regułą. Reguły układa się od najbardziej szczegółowej do najbardziej ogólnej.

Kolejna pułapka: w tradycyjnej liście numerowanej nowa reguła dopisywana jest zawsze na końcu. Jeśli po deny obejmującym cały ruch dopiszesz wyjątek, nic nie da — wyjątek jest niżej niż domknięcie. Dlatego dzisiaj częściej używa się list nazwanych, gdzie każdą regułę ma numer sekwencyjny i można wstawić wpis w konkretne miejsce listy.

Standardowa czy rozszerzona

Różnica jest jedna, ale zasadnicza: co lista potrafi rozpoznać.

Rodzaj Numeracja Kryteria
Standardowa 1–99, 1300–1999 tylko adres IP źródła
Rozszerzona 100–199, 2000–2699 źródło i cel, protokół, porty TCP/UDP

Lista standardowa widzi wyłącznie to, skąd pakiet przyszedł. Może powiedzieć „nie wpuszczaj niczego z podsieci gości", ale już nie „wpuść z tej podsieci tylko ruch HTTP na serwer WWW". Lista rozszerzona rozróżnia pełną pentę: skąd, dokąd, jakim protokołem i na jaki port.

W praktyce oznacza to prosty podział zadań:

Do określania adresów w regułach używa się masek wildcard — jeśli ich liczenie jeszcze siedzi, mam to rozpisane w osobnym artykule: maska wildcard do ACL i OSPF.

Gdzie wpiąć listę — reguła, która wraca na egzaminie

Listę przypisujesz do interfejsu poleceniem ip access-group z kierunkiem in albo out. Wybór interfejsu nie jest dowolny — obowiązuje reguła:

Dlaczego? Standardowa zna tylko źródło. Jeśli wpijesz ją przy źródle, odrzuci ruch do wszystkich miejsc, a przecież chciałeś zablokować tylko jedno. Wpięta blisko celu filtruje dokładnie tę drogę, nie ruszając niczego innego.

Rozszerzona zna cel, więc może odrzucić niechciany ruch od razu na wejściu do sieci — zanim przejedzie przez łącza i kolejne routery, które i tak by go nie przepuściły. Szkoda pasma i cykli procesora na pakiet skazany na porażkę.

Ta zasada to klasyk pytań egzaminacyjnych CCNA w stylu „na którym interfejsie którego routera umieścisz listę" — i zarazem realna umiejętność projektowa.

Jak nie odciąć sobie dostępu

Scenariusz, który zdarzył się każdemu, kto pierwszą listę założył zdalnie: wpisujesz ip access-group 100 in na interfejsie, przez który prowadzi Twoja sesja Telnet, reguły dopuszczające Twojego hosta jeszcze nie ma (albo jest niżej niż implicit deny) — i sesja zamiera. Router działa, sieć działa, Ty już nie masz jak wejść.

Zabezpieczenia, które stosuje się od pierwszego dnia:

Konfiguracja: tylko HTTP do serwera

Przykład rozszerzonej listy: użytkownicy z podsieci 192.168.10.0/24 mają móc otwierać wyłącznie strony WWW na serwerze 192.168.20.50; cały pozostały ruch do tego serwera jest odrzucany.

access-list 100 permit tcp 192.168.10.0 0.0.0.255 host 192.168.20.50 eq 80 access-list 100 deny ip any any log ! interface gigabitEthernet 0/1 ip access-group 100 out

Serwer wisi w sieci za interfejsem G0/1, więc lista działa na ruch wychodzący z tego interfejsu — czyli dokładnie na pakiety zmierzające do serwera. Końcówka log w regule deny powoduje, że router loguje każde odrzucenie — przyda się przy szukaniu, dlaczego „coś nie działa".

Zabezpieczenie dostępu zdalnego do samego routera listą standardową:

access-list 5 permit 192.168.100.0 0.0.0.63 ! line vty 0 4 access-class 5 in

Teraz sesje Telnet/SSH przyjmowane są tylko z podsieci zarządzania 192.168.100.0/26.

Weryfikacja: show ip access-lists pokazuje listę z licznikiem dopasowań przy każdej regule. Jeśli licznik rośnie przy deny, a nie powinien — masz odpowiedź, który ruch gubi się na filtrze.

Ćwiczenie: zablokuj i napraw

W Packet Tracerze zbuduj: PC-A (192.168.10.10/24) i PC-B (192.168.30.10/24) po dwóch stronach routera R1, po jednym przełączniku w każdej podsieci. Interfejsy routera: G0/0 — 192.168.10.1/24, G0/1 — 192.168.30.1/24, oba z no shutdown. Ustaw bramy na PC.

  1. Sprawdź ping PC-A → PC-B. Musi działać przed filtracją.
  2. Na R1 wpisz listę standardową access-list 10 deny host 192.168.10.10, a na interfejsie G0/1 ip access-group 10 out — czyli blisko celu, zgodnie z regułą.
  3. Ping PC-A → PC-B teraz zawodzi. Uwaga: PC-B → PC-A też nie odpowie — odpowiedzi (echo reply) mają adres źródłowy 192.168.10.10 i lista odrzuca je na wejściu do podsieci PC-B. To typowy efekt listy standardowej blisko celu: blokuje dany ruch wszędzie, gdzie ją wpięto, a nie tylko w jednym kierunku.
  4. Dopisz access-list 10 permit any — bez niego implicit deny odrzucałby cały pozostały ruch do podsieci 192.168.30.0/24. Ping PC-A → PC-B nadal zawodzi: reguła deny jest wyżej, a pierwsze dopasowanie wygrywa.
  5. Zamień listę na rozszerzoną: na G0/1 zdejmij starą (no ip access-group 10 out, potem no access-list 10), wpisz access-list 110 deny icmp host 192.168.10.10 host 192.168.30.10 plus access-list 110 permit ip any any i wpnij ją na G0/0 jako in — czyli przy źródle. Ping PC-A → PC-B nadal nie przechodzi (odpowiedzi od PC-A też pasują do reguły), ale pakiet ginie od razu na wejściu do routera, zanim przejedzie przez cały router i łącze do podsieci PC-B.

Na koniec porządek w listach: każda reguła dopasowań to licznik w show ip access-lists. Przy filtrowaniu na produkcji to pierwsze polecenie po pytaniu „czemu nie działa” — zanim zaczniesz zgadywać, zobacz, co router faktycznie odrzuca.