Cisco Packet Tracer - listy ACL

Z SOISK systemy operacyjne i sieci komputerowe
Skocz do: nawigacja, szukaj

Listy kontroli dostępu, czyli ACL (Access Control List) służą do filtrowania ruchu, czyli pełnią funkcję zapory sieciowej.

Standardowe listy ACL

Służą do zablokowania (deny) lub dopuszczenia (permit) ruchu z sieci

Filtrują ruch tylko w oparciu o adres źródła i maskę.

Przykład 1 standardowej listy ACL

ListaACL.jpg

Spójrzmy, ping z hosta 192.168.0.3 przechodzi bezproblemowo do hosta 10.0.0.3

PingACL.jpg

Teraz zablokujemy cały ruch z adresu 192.168.0.3. Listę ACL ustawimy na ruterze Router0, na interfejsie FastEthernet0/0

Router0>ena
Router0#conf term
Router0(config)#access-list 1 deny host 192.168.0.3
Router0(config)#access-list 1 permit any
Router0(config)#interface FastEthernet0/0
Router0(config-if)#ip access-group 1 out

Jak widać teraz ping nie przechodzi.

PingACL2.jpg

Przeanalizujmy

KROK 1. Utworzenie listy ACL

Router0(config)#access-list 1 deny host 192.168.0.3
Router0(config)#access-list 1 permit any

access-list 1 polecenie tworzące listę ACL oraz jej nr (standardowe listy ACL mają numery z zakresu 1-99) deny host 192.168.0.3 blokuje host 192.168.0.3. Można tez by użyć Router0(config)#access-list 1 deny 192.168.0.3 0.0.0.0 co dałoby ten sam efekt.

Router0(config)#access-list 1 permit any - puszcza cały pozostały ruch. Jest to konieczne. gdyż zawsze domyślnie, listy ACL kończą się deny any , czyli właściwie cały ruch byłby zablokowany. Ten sam efekt można uzyskać używając access-list 1 permit 0.0.0.0 255.255.255.255

KROK 2. Przypisanie listy ACL do interfejsu

Router0(config)#interface FastEthernet0/0
Router0(config-if)#ip access-group 1 out

Router0(config)#interface FastEthernet0/0 - wejście do konfiguracji interfejsu

Router0(config-if)#ip access-group 1 out - polecenie grupuje listę ACL do interfejsu, out oznacza ruch wychodzący

Przykład 2 standardowej listy ACL

Ten przykład jest rozwinięciem poprzedniego. Host 192.168.0.3 został zablokowany, teraz chcemy zablokować host 192.168.0.2.

ListaACL3.jpg

Jak widać na razie ten host odpowiada, czyli nie jest zablokowany.

PingACL5.jpg

Dopisujemy dodatkowe wiersze na routerze Router0

Router0>ena
Router0#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Router0(config)#access-list 1 deny host 192.168.0.2
Router0(config)#access-list 1 permit any
Router0(config)#interface fastethernet0/0
Router0(config-if)#ip access-group 1 out

Sprawdzamy czy działa. Jak widać nie działa. Host jest nadal aktywny.

PingACL6.jpg

Dlaczego nie zadziałało. Po prostu ruter przetwarza listy ACL linia po linii, jak ma napisane, ze ma puścić wszystkie połączenia to to robi, nie ważne ,że dalej coś blokujemy. Poniżej jest wynik polecenia show running-config

Showrunconf.jpg

Możemy też użyć polecenia show access-lists

Router0#show access-lists
Standard IP access list 1
    deny host 192.168.0.3 (2 match(es))
    permit any (16 match(es))
    deny host 192.168.0.2

lub polecenia show access-list 1

Router0#show access-list 1
Standard IP access list 1
    deny host 192.168.0.3 (2 match(es))
    permit any (16 match(es))
    deny host 192.168.0.2

Co byśmy nie wpisywali gołym okiem widać, że kolejność nie jest prawidłowa. Musimy usunąć listę ACL i wpisać ją od nowa.

Usuwanie listy ACL

Tutaj obowiązuje odwrotna kolejność, porównaniu z tworzeniem.

KROK 1

Wchodzimy w konfigurację interfejsu i usuwamy grupowanie listy do interfejsu poprzez polecenie no ip access-group

Router0(config)#interface fastethernet0/0
Router0(config-if)#no ip access-group 1 out 

KROK 2

Usuwamy listę ACL poleceniem no access-list

Router0(config)#no access-list 1

Jak zrobisz tylko krok 2 to co prawda nie będziesz widział listy ACL, ale w konfiguracji interfejsu wpisy zostaną.

Przykład 3 standardowej listy ACL

ListaACL2.jpg

Na ruterze Router0 (interfejs FastEthernet0/0) zablokujemy całą sieć 192.168.0.0.

Router>ena
Router#conf term
Router0(config)#access-list 1 deny 192.168.0.0 0.0.0.255
Router0(config)#access-list 1 permit any
Router0(config)#interface fastethernet0/0
Router0(config-if)#ip access-group 1 out

Jak widać pingi nie przechodzą, choć wyświetlają się rożne komunikaty.

PingACL3.jpg

PingACL4.jpg

Należy wyjaśnić jeszcze skąd wzięło się Router0(config)#access-list 1 deny 192.168.0.0 0.0.0.255, a właściwie co to za dziwna maska 0.0.0.255. To tzw. wildcard mask, czyli maska dopasowania lub inaczej blankietowa. Nie wchodząc w szczegóły jest to maska zapisywana odwrotnie, zamieniamy binarnie 0 i 1.

Rozszerzone listy ACL

Filtrują ruch na podstawie adresu źródła i przeznaczenia. Wykorzystują protokoły oraz nr portów. Używają nr list w zakresie 100-199.

Format rozszerzonej ACL

access-list <100-199> <deny | permit> <protokół> <źródłowy adres ip> <maska wildcard> <docelowy adres ip> <maska wildcard> <operator> <port lub usługa>
access-list <100-199> <deny | permit> <protokół> host <źródłowy adres ip> host <docelowy adres ip> <operator> <port lub usługa>
access-list <100-199> <deny | permit> <protokół> <źródłowy adres ip> <maska wildcard> <docelowy adres ip> <maska wildcard>

Protokoły

  ahp    Authentication Header Protocol
  eigrp  Cisco's EIGRP routing protocol
  esp    Encapsulation Security Payload
  gre    Cisco's GRE tunneling
  icmp   Internet Control Message Protocol
  ip     Any Internet Protocol
  ospf   OSPF routing protocol
  tcp    Transmission Control Protocol
  udp    User Datagram Protocol

Operatory

lt 	mniejsze niż
gt 	większe niż
neq	nierówne
eq 	równe
range 	zakres portów

Porty i nazwy usług używane przy konfiguracji (słowa kluczowe)

FTP Data (TCP port 20) 	        ftp-data
FTP Control (TCP port 21) 	ftp
Telnet (TCP port 23) 	        telnet
SMTP (TCP port 25) 	        smtp
HTTP (TCP port 80) 	        www
DNS (UDP port 53) 	        dns
TFTP (UDP port 69) 	        tftp
SNMP (UDP port 161) 	        snmp
IP RIP (UDP port 520) 	        rip 

Przykład 1 rozszerzonej listy ACL

Zablokujemy możliwość pingowania z hosta PC3 pozostałych sieci. Zrobimy to na najbliższym ruterze, aby nie był generowany zbędny ruch sieciowy.

ListaACLex.jpg

Router1>ena
Router1#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#access-list 100 deny icmp host 192.168.0.3 any
Router1(config)#access-list 100 permit icmp any any
Router1(config)#access-list 100 permit ip any any
Router1(config)#access-list 100 permit tcp any any
Router1(config)#int fa0/0
Router1(config-if)#ip access-group 100 in

PingACL7.jpg

Jak widać wszystko działa jak należy.

Przykład 2 rozszerzonej listy ACL

Zablokujemy dla PC3 możliwość korzystania z usługi WWW na serwerze. Zrobimy to na najbliższym ruterze, aby nie był generowany zbędny ruch sieciowy.

ListaACLex2.jpg

Jak widać host PC3 korzysta z usługi WWW na serwerze.

Aclblokadawww1.jpg


Router1>ena
Router1#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#access-list 100 deny tcp host 192.168.0.3 host 10.0.0.4 eq 80
Router1(config)#access-list 100 permit tcp any any
Router1(config)#access-list 100 permit ip any any
Router1(config)#int fa0/0
Router1(config-if)#ip access-group 100 in

Jak widać osiągnęliśmy zamierzony efekt.

Aclblokadawww2.jpg

Jak widać host PC3 może kontaktować się z serwerem na innych portach.

Aclblokadawww3.jpg

Sprawdź jak by wyglądało kontaktowanie się poszczególnych hostów i korzystanie z usług, gdybyś nie wpisać do listy ACL tych 2 wierszy.

Router1(config)#access-list 100 permit tcp any any
Router1(config)#access-list 100 permit ip any any

Nazywanie list ACL

Lista ACL może posiadać nazwę. Ma to tę zaletę, że łatwiej ją zapamiętać niż nr listy.

router>enable
router#configure terminal
router(config)#ip access-list <standard | extended> <nazwa>
router(config-std-nacl)#<permit | deny> <źródłowy host lub sieć> <wildcard> <docelowy host lub sieć> <wildcard>
router(config-ext-nacl)#<permit | deny> <protokół> <źródłowy host lub sieć> <wildcard> <docelowy host lub sieć> <wildcard> <operator> <port>

Przykład 1 - nazwana lista ACL

Posłużymy się przykładem 1 standardowej listy ACL omawianym wyżej

ListaACL.jpg

<Router0>ena
Router0#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Router0(config)#ip access-list standard blokadaPC3
Router0(config-std-nacl)#deny host 192.168.0.3
Router0(config-std-nacl)#permit any
Router0(config-std-nacl)#int fa0/0
Router0(config-if)#ip access-group blokadaPC3 out