Kategoria: ACL – Access Control List

  • (TK) vAccess Control List*

    (TK) vAccess Control List*

    Wstęp do list vACL

    • Domyślnie listy ACL umożliwiają filtrowanie ruchu przechodzącego pomiędzy różnymi sieciami VLAN, istnieją jednak specjalne listy VACL (VLAN Access Control List) działające w obrębie jednej sieci wirtualnej VLAN.
    • Lista VACL pełni rolę standardowej listy ACL, w warstwie drugiej modelu OSI, może być to lista standardowa (standard IP), rozszerzona (extended IP) jak i lista oparta o adresy MAC (MAC extended).
    • Kroki postępowania podczas konfiguracji listy VACL są następujące:
    • Należy stworzyć listę bądź wiele list ACL, określających adresy dla których zostanie podjęta ustalona w komendzie akcja. Adresy nie pasujące do przynajmniej jednej z list ACL będą blokowane.
    • Utworzyć wpis Access Map z kolejnym numerem sekwencyjnym, przypisując do niego listę ACL bądź listę MAC.
    • Określić jaka akcja ma być podjęta względem określonych przez listę VACL adresów.
    • Przypisać stworzoną Access Mapę do jednej bądź wielu sieci VLAN.

    Konfiguracja list vACL

    Konfiguracja list vACL

    Przykładowa konfiguracja listy vACL została przedstawiona w artykule: Przykładowa konfiguracja listy vACL.

    Konfiguracja listy adresów MAC PACL (Port Access List)

    (config)# mac access-list extended nazwa

    Tworzy nową rozszerzoną listę adresów MAC.

    (config-ext-macl)# {deny / permit} {any / host / źródłowy-adres-MAC} { any / host / docelowy-adres-MAC}

    Określa adres źródłowy MAC oraz docelowy/e adres/y MAC dla danej listy ACL.

    (config-ext-macl)# interface interfejs

    Przechodzi do poziomu konfiguracji określonego interfejsu sieciowego.

    (config-if)# mac access-group nazwa in

    Przypisuje konfigurowaną listę MAC ACL do określonego interfejsu sieciowego przełącznika, filtrując tym samym nadchodzący ruch sieciowy.

    Konfiguracja listy vACL

    (config)# vlan access-map nazwa [numer-sekwencyjny]

    Tworzy nową listę VACL.

    (config-access-map)# match {ip / mac} address {lista-ACL / lista-PACL}

    Określa adresy IP bądź adresy MAC, dla których zostanie wykonana poniższa akcja.

    (config-access-map)# action {drop / forward / redirect interfejs}

    Określa jaka akcja zostanie wykonana dla powyższych adresów. W przypadku opcji „Redirect” nadchodzący ruch sieciowy (Dopasowany na podstawie listy ACL) będzie przekierowywany na określony w komędzie interfejs (Next-Hop).

    (config)# vlan filter nazwa vlan-list {VLAN-id / all}

    Przypisuje listę VACL do danego VLAN-u/ów.

    Konfiguracja access-log

    (config)# vlan access-log threshold 0-2147483647

    Xxx

    (config)# vlan access-log maxflow 0-2048

    Xxx

    Komendy SHOW

    # show vlan access-map nazwa-VACL

    Wyświetla wszystkie skonfigurowane listy VACL.

    # show vlan filter

    Wyświetla konfigurację funkcji VLAN filter.

    # show mac access-group interface interfejs

    Wyświetla interfejs z przypisaną do niego listą PACL.

    # show mac access-group

    Wyświetla wszystkie interfejsy przełącznika wraz z przypisanymi do nich listami PACL.

    # show mac access-log config

    Wyświetla konfigurację ustawień „access-log”.

    # show mac access-log statistics

    Wyświetla statystyki dotyczące blokowanego, przepuszczanego, monitorowanego bądź przetrzymywanego w buforze ruchu sieciowego, względem list VACL.

    # show access-list

    Wyświetla wszystkie listy ACL w tym listy PACL.

    Pozostałe tematy związane z sieciami VLAN

  • (T) Konfiguracja listy Infrastructure ACLs*

    (T) Konfiguracja listy Infrastructure ACLs*

    Konfiguracja listy Infrastructure ACLs

    Blokowanie fragmentów pakietów (Packet Fragments)

    (config)# ip access-list extended nazwa-ACL

    (config-ext-nacl)# deny tcp any any fragments

    (config-ext-nacl)# deny udp any any fragments

    (config-ext-nacl)# deny icmp any any fragments

    (config-ext-nacl)# deny ip any any fragments

    CDN …

    Zezwalanie na ruch protokołów routingu dynamicznego oraz ruch management-owy

    CD …

    (config-ext-nacl)# permit tcp host adres-IP-rutera-ISP host adres-IP-rutera eq bgp

    (config-ext-nacl)# permit tcp host adres-IP-rutera-ISP eq bgp host adres-IP-rutera

    (config-ext-nacl)# permit tcp adres-IP-hosta-management-owego any eq 22

    (config-ext-nacl)# permit tcp adres-IP-hosta-management-owego any eq 161

    (config-ext-nacl)# permit icmp adres-IP-hosta-management-owego any echo

    (config-ext-nacl)# denny ip any pula-adresów-sieci-LAN

    (config-ext-nacl)# permit ip any any log

    Przypisywanie listy ACL do interfejsu

    (config)# interface interfejs

    Przechodzi do poziomu konfiguracji określonego interfejsu sieciowego.

    (config-if)# ip access-group nazwa-ACL {in / out}

    Przypisuje listę extended ACL do konfigurowanego interfejsu sieciowego.

    Komendy SHOW

    # show ip access-list [ACL]

    Wyświetla konfigurację wskazanej listy / wszystkich skonfigurowanych list ACL.

    Pozostałe tematy związane z listami ACL

  • (T) Konfiguracja listy Time-based ACLs*

    (T) Konfiguracja listy Time-based ACLs*

    Konfiguracja listy Time-based ACLs

    (config)# time-range nazwa-zakresu-czasu

    Tworzy nową pulę czasową służącą do określenia powtarzających się zakresów czasu, bądź jednorazowego zakresu czasu.

    (config-time-range)# absolute [start 0-24:0-60(Godzina:minuta) 1-31(Dzień) miesiąc(Np. jan) 1993-2035(Rok)] [end 0-24:0-60(Godzina:minuta) 1-31(Dzień) miesiąc(Np. jan) 1993-2035(Rok)]

    Określa pojedynczy okres czasu, definiujący czas rozpoczęcia oraz zakończenia aktywności listy ACL.

    (config-time-range)# periodic [Friday / Monday / Saturday / Sunday / Thursday / Tuesday / Wednesday daily / weekdays / weekend] 0-24:0-60(Godzina:minuta) to czas-dzień-końcowy

    Określa okresowy zakres czasu, definiujący dzień bądź wiele dni tygodnia, w czasie trwania których konfigurowana lista ACL będzie aktywna.

    (config)# ip access-list {standard / extended} nazwa-ACL

    Tworzy nową listę named ACL.

    (config-ext/std-nacl)# {permit / deny} protokół(IP, UDP, TCP, ICMP, GRE, ESP, AHP czy OSPF) {any / host źródłowy-adres-IP / źródłowy-adres-IP dzika-maska} źródłowy-port {any / host docelowy-adres-IP / docelowy-adres-IP dzika-maska} docelowy-port time-range nazwa

    Dodaje nowy wpis do konfigurowanej listy named ACL, z numerem sekwencyjnym większym o 10. Poniższe wartości odnoszą się do zakresu portów protokołu UDP bądź TCP:
    * eq =równy.
    * ne nie równy.
    * it < mniejszy od.
    * gt > większy od.
    * range range:x to yzakres od x do y.

    (config)# interface interfejs

    Przechodzi do poziomu konfiguracji określonego interfejsu sieciowego.

    (config-if)# ip access-group nazwa-ACL {in / out}

    Przypisuje listę Time-based ACL do konfigurowanego interfejsu sieciowego.

    # show time-range [nazwa-zakresu-czasu]

    Wyświetla konfigurację wszystkich skonfigurowanych na danym urządzeniu puli czasowych bądź określonej puli czasu.

    # show ip access-list [ACL]

    Wyświetla konfigurację wskazanej listy / wszystkich skonfigurowanych list ACL.

    Komendy SHOW

    # show ip access-list [ACL]

    Wyświetla konfigurację wskazanej listy / wszystkich skonfigurowanych list ACL.

    Pozostałe tematy związane z listami ACL

  • (T) Konfiguracja listy Reflexive ACL*

    (T) Konfiguracja listy Reflexive ACL*

    Konfiguracja listy Reflexive ACL

    (config)# ip access-list {standard / extended} nazwa-ACL

    Tworzy nową listę named ACL.

    (config-ext/std-nacl)# {permit / deny} protokół(IP, UDP, TCP, ICMP, GRE, ESP, AHP czy OSPF) {any / host źródłowy-adres-IP / źródłowy-adres-IP dzika-maska} źródłowy-port {any / host docelowy-adres-IP / docelowy-adres-IP dzika-maska} docelowy-port reflect nazwa-ACL [timeout 1-2147483(sekundy)]

    Dodaje nowy wpis do konfigurowanej listy named ACL, z numerem sekwencyjnym większym o 10. Poniższe wartości odnoszą się do zakresu portów protokołu UDP bądź TCP:
    * eq =równy.
    * ne nie równy.
    * it < mniejszy od.
    * gt > większy od.
    * range range:x to yzakres od x do y.

    (config)# interface interfejs

    Przechodzi do poziomu konfiguracji określonego interfejsu sieciowego.

    (config-if)# ip access-group nazwa-ACL {in / out}

    Przypisuje listę extended ACL do konfigurowanego interfejsu sieciowego.

    Komendy SHOW

    # show ip access-list [ACL]

    Wyświetla konfigurację wskazanej listy / wszystkich skonfigurowanych list ACL.

    Pozostałe tematy związane z listami ACL

  • (T) Konfiguracja listy Established ACL*

    (T) Konfiguracja listy Established ACL*

    Konfiguracja listy Established ACL

    (config)# ip access-list {standard / extended} nazwa-ACL

    Tworzy nową listę named ACL.

    (config-ext/std-nacl)# {permit / deny} tcp {any / host źródłowy-adres-IP / źródłowy-adres-IP dzika-maska} źródłowy-port {any / host docelowy-adres-IP / docelowy-adres-IP dzika-maska} docelowy-port established

    Dodaje nowy wpis do konfigurowanej listy named ACL, z numerem sekwencyjnym większym o 10. Poniższe wartości odnoszą się do zakresu portów protokołu UDP bądź TCP:
    * eq =równy.
    * ne nie równy.
    * it < mniejszy od.
    * gt > większy od.
    * range range:x to yzakres od x do y.

    (config)# interface interfejs

    Przechodzi do poziomu konfiguracji określonego interfejsu sieciowego.

    (config-if)# ip access-group nazwa-ACL {in / out}

    Przypisuje listę extended ACL do konfigurowanego interfejsu sieciowego.

    Komendy SHOW

    # show ip access-list [ACL]

    Wyświetla konfigurację wskazanej listy / wszystkich skonfigurowanych list ACL.

    Pozostałe tematy związane z listami ACL

  • (K) Konfiguracja list ACL*

    (K) Konfiguracja list ACL*

    Konfiguracja list ACL

    Konfiguracja Listy Standard ACL

    (config)# access-list ID {permit / deny} {any / host adres-IP / adres-IP dzika-maska} [log / log-inut]

    Tworzy nową listę standard ACL.

    (config)# interface interfejs

    Przechodzi do poziomu konfiguracji określonego interfejsu sieciowego.

    (config-if)# ip access-group ID {in / out}

    Przypisuje listę standard ACL do konfigurowanego interfejsu sieciowego.

    # show ip access-list [ACL]

    Wyświetla konfigurację wskazanej listy / wszystkich skonfigurowanych list ACL.
    W przypadku tworzenia podstawowej listy ACL, dotyczącej jednego adresu IP, słowo kluczowe „host” nie jest potrzebne.

    Konfiguracja Listy Extended ACL

    (config)# access-list ID {permit / deny} protokół(IP, UDP, TCP, ICMP, GRE, ESP, AHP czy OSPF) {any / host źródłowy-adres-IP / źródłowy-adres-IP dzika-maska} źródłowy-port {any / host docelowy-adres-IP / docelowy-adres-IP dzika-maska} docelowy-port [log / log-input]

    Tworzy nową listę extended ACL. Poniższe wartości odnoszą się do zakresu portów protokołu UDP bądź TCP.
    * eq =równy.
    * ne nie równy.
    * it < mniejszy od.
    * gt > większy od.
    * range range:x to yzakres od x do y.

    (config)# interface interfejs

    Przechodzi do poziomu konfiguracji określonego interfejsu sieciowego.

    (config-if)# ip access-group ID {in / out}

    Przypisuje listę extended ACL do konfigurowanego interfejsu sieciowego.

    # show ip access-list [ACL]

    Wyświetla konfigurację wskazanej listy / wszystkich skonfigurowanych list ACL.
    Numer portu Protokół Aplikacja Klucz w ACL
    20 TCP FTP data ftp-data
    21 TCP FTP control ftp
    22 TCP SSH
    23 TCP Telnet telnet
    25 TCP SMTP smtp
    53 UDP, TCP DNS domain
    67 UDP DHCP Server bootps
    68 UDP DHCP Client bootpc
    69 UDP TFTP tftp
    80 TCP HTTP www
    110 TCP POP3 pop3
    161 UDP SNMP snmp
    443 TCP SSL
    514 UDP Syslog
    16384 – 32767 UDP RTP (Voice, Video)

    Numery oraz nazwy portów TCP / UDP

    Lista nazwana (Named ACL)

    (config)# ip access-list {standard / extended} nazwa-ACL

    Tworzy nową listę named ACL.

    (config-ext-nacl)# {permit / deny} protokół(IP, UDP, TCP, ICMP, GRE, ESP, AHP czy OSPF) {any / host źródłowy-adres-IP / źródłowy-adres-IP dzika-maska} źródłowy-port {any / host docelowy-adres-IP / docelowy-adres-IP dzika-maska} docelowy-port [log / log-input]

    Dodaje nowy wpis do konfigurowanej listy named ACL, z numerem sekwencyjnym większym o 10. Poniższe wartości odnoszą się do zakresu portów protokołu UDP bądź TCP:
    * eq =równy.
    * ne nie równy.
    * it < mniejszy od.
    * gt > większy od.
    * range range:x to yzakres od x do y.

    (config-ext-nacl)# interface interfejs

    Przechodzi do poziomu konfiguracji określonego interfejsu sieciowego.

    (config-if)# ip access-group nazwa-ACL {in / out}

    Przypisuje listę extended ACL do konfigurowanego interfejsu sieciowego.

    # show ip access-list [ACL]

    Wyświetla konfigurację wskazanej listy / wszystkich skonfigurowanych list ACL.

    Ograniczanie logów względem list ACL

    (config)# ip access-list logging interval 0-2147483647(milisekundy)

    Ogranicza liczbę zbieranych logów, do jednego na określoną w komendzie liczbę milisekund.

    Komendy SHOW

    # show ip access-list [ACL]

    Wyświetla konfigurację wskazanej listy / wszystkich skonfigurowanych list ACL.

    Pozostałe tematy związane z listami ACL

  • (Ts) Troubleshooting list ACL**

    (Ts) Troubleshooting list ACL**

    Troubleshooting list ACL

    Zasady postępowania

    1. Należy określić do jakich interfejsów została przypisana lista ACL oraz w jakim kierunku jest skierowana [show running-config / show ip interfaces].
    2. Przeanalizować konfigurację listy ACL [show access-list / show ip access-list / show running-config] pod kontem:
      1. Złej kolejności wpisów (najpierw najbardziej szczegółowe wpisy).
      2. Kierunku działania listy ACL (Jaka sieć i gdzie się znajduję).
      3. Kierunku działania portów (np. docelowym portem w ruchu od klienta do serwera jest port 80, natomiast w drodze powrotnej może to być port 40567).
      4. Ostatniego wpisu blokującego pozostały ruch sieciowy.
    Protokół ICMP nie należy ani do TCP ani UDP lecz może znajdować w się w zapisie IP lub dedykowanym ICMP.

    Pozostałe tematy związane z listami ACL

  • (T) Teoria list ACL**

    (T) Teoria list ACL**

    Teoria list ACL

    ACL (Access Control list)

    • W systemie Cisco IOS dostępne są następujące rodzaje list ACL:
      • Standard ACL – Definiowana numerami od 1 do 99 oraz od 1300 do 1999, stanowi podstawową wersję listy ACL, wykorzystywaną w systemie Cisco IOS. W swojej strukturze wykorzystuje jedynie źródłowy adres IP, przez co powinna być stosowana blisko puli adresów docelowych. Lista ta może być wykorzystana do sprecyzowania adresów korzystających z translacji NAT, PAT czy dostępu do zdalnej konfiguracji urządzenia np. za pomocą protokołu SSH.
      • Extended ACL – Definiowana numerami od 100 do 199 oraz od 2000 do 2699, stanowi rozszerzoną wersję listy ACL, wykorzystywaną w systemie Cisco IOS. W swojej strukturze wykorzystuje zarówno źródłowy jak i docelowy adres IP oraz źródłowy jak i docelowy port, bądź też zakres wielu portów warstwy czwartej. Lista ta powinna być wykorzystana blisko źródłowej puli adresów IP, dzięki czemu nadaje się do szczegółowej kontroli nad przesyłanym ruchem sieciowym czy do określania jaki ruch sieciowy powinien być zabezpieczony połączeniem IPSec.
      • Established ACL – Wykorzystuje proces ustanawiania sesji TCP, pomiędzy urządzeniami sieciowymi, badając gdzie znajduje się inicjator komunikacji. Tym samym sesja nawiązana przez urządzenie ze strefy wewnętrznej (LAN) zostanie przepuszczana, natomiast komunikacja zainicjowana ze strefy zewnętrznej (WAN) zostanie zablokowana.
      • Reflexive ACL – Umożliwia filtrowanie pakietów IP w oparciu o informacje zawarte w pamięci sesji, warstwy czwartej. Listy refleksyjne mogą być stosowane w celu przepuszczania bądź blokowania nadchodzącego ruch sieciowego, istniejącej sesji TCP bądź UDP, zgodnie ze strefą z której pochodzi dana sesja. W przypadku sesji zainicjowanej z sieci wewnętrznej (LAN) ruch zostanie przepuszczony, natomiast sesja zainicjowana z sieci zewnętrznej (WAN) zostanie porzucona.
      • Time-based ACL – Zawiera wpisy filtrujące ruchu sieciowy w określonym przedziale czasu.
      • Infrastructure ACL – Znajduje zastosowanie na ruterze brzegowym gdzie filtruje zbędny ruch sieciowy zezwalając na wymianę np. tras routingu pomiędzy ruterem a dostawcą ISP czy zdalnym zarządzaniem a blokując podejrzany ruch sieciowy, często wykorzystywany w atakach na sieci firmowe.
      • Dynamic ACL:
        • Lock-and-Key ACL – Rodzaj dynamicznej listy dostępu, wymagającej przeprowadzenia procesu uwierzytelniania użytkownika końcowego. Po odebraniu pierwszych danych nadchodzących z nowego adresu IP, lista Lock-and-Key ACL spróbuje uwierzytelnić użytkownika końcowego wysyłającego wskazany ruch sieciowy, za pomocą połączenia Telnet bądź SSH. Po przyznaniu dostępu, źródłowy adres IP nadchodzącej transmisji zostaje dopisany do listy ACL, a nadchodzący ruch sieciowy zostaje przepuszczony.

    Podstawowe listy ACL (Standard)

    • Rodzaje list Standard ACL:
      • Numeryczne – Od 1 do 99 oraz od 1300 do 1999.
      • Nazwane – Wykorzystują ciąg znaków (Nazwy).
    • Filtracja ruchu na podstawie:
      • Źródłowego adresu IP.

    Rozszerzone listy ACL (Extended)

    • Rodzaje list Extended ACL:
      • Numeryczne – Od 100 do 199 oraz od 2000 do 2699.
      • Nazwane – Wykorzystują ciąg znaków (Nazwy).
    • Filtracja ruchu na podstawie:
      • Źródłowego oraz docelowego adresu IP.
      • Źródłowego oraz docelowego numeru portu.
      • Rodzaju ruchu np. IP, UDP, TCP.
      • Oraz innych.

    Wspólne właściwości list ACL

    • Domyślnie każda lista ACL jest zakończona niewidoczną komendą blokującą cały ruch sieciowy [access-list 1 deny any] (Implicit deny). Jej przeciwieństwo stanowi komenda przepuszczająca cały ruch sieciowy [access-list 1 permit any].
    • Proces przeszukiwania listy ACL zaczyna się od góry i następuje do momentu znalezienia pierwszego pasującego wpisu. Dlatego zaleca się wstawianie bardziej szczegółowych wpisów nad wpisami mniej szczegółowymi. Np. adres 192.168.50.1/32 powinien znaleźć się nad wpisem 192.168.50.0/24.

    Dobre praktyki w tworzeniu list ACL

    • Lista ACL posiada licznik, wskazujący ile z przesłanych przez urządzenie pakietów, zostało dopasowanych do pojedynczego wpisu listy. Zasada ta nie dotyczy ostatniego domyślnego wpisu (Implicit deny), który domyślnie nie posada licznika, aby to zmienić należy ręcznie dopisać ostatnią komendę blokującą pozostały ruch sieciowy wraz z pod-komendą odblokowującą licznik [access-list 1 deny any log].
    • W przypadku usunięcia listy ACL z poziomu globalnej konfiguracji, bez jednoczesnego ucięcia wpisu ACL z poziomu interfejsu sieciowego. Nadchodzący bądź wychodzący ruch sieciowy nie bezie filtrowany.
    • W przypadku wprowadzania zmian w konfiguracji listy ACL, zaleca się jej tymczasowe odpięcie od interfejs sieciowego na czas przeprowadzanych zmian, w celu uniknięcia pomyłek mogących zablokować część bądź cały ruch sieciowy.

    Różnice pomiędzy listami ACL

    • Podstawowe listy ACL mogą zawierać pojedynczy źródłowy adres IP bez maski czy komendy host [access-list 1 deny 192.168.1.1].
    • Rozszerzone listy ACL nie mogą zawierać pojedynczego adres IP bez maski czy komendy host [access-list 101 deny ip host 192.168.1.1 any].
    • Podstawowe listy ACL powinny znajdować się jak najbliżej celu pakietu, dzięki czemu ryzyko przypadkowego zablokowania pożądanego ruchu sieciowego zostanie zmniejszone.
    • Rozszerzone listy ACL powinny znajdować się jak najbliżej źródła, aby uniknąć rozprzestrzeniania nadmiarowego ruchu sieciowego który i tak zostanie odrzucony.

    Pozostałe tematy związane z listami ACL