Konfiguracja reguł dotyczących filtrowania pakietów w urządzeniach Cisco odbywa głównie poprzez napisanie listy reguł oraz połączeniu ich z ruchem wychodzącym, albo wchodzącym wybranego interfejsu. System operacyjny IOS pozwala na konfigurację firewalla za pomocą różnych metod, jedną z nich jest użycie tzw. reguł rozszerzonych (ang. Extended Access Contol List).
W urządzeniach CISCO eACL najpierw tworzy się listę reguł, a następnie przypisuje się ją do ruchu wchodzącego, bądź wychodzącego z interfejsu. Po przypisaniu listy reguł do interfejsu we/wy od razu zaczynają one filtrować ruch. Jeśli jakiś ruch nie będzie przechwycony (obsłużony) przez jakąkolwiek regułę w tej liście to zadziała akcja domyślana – zablokuj ruch. Niestety, konfiguracja eACL na symulatorze Packet Tracer różni się składnią od konfiguracji realnych urządzeń.
Postać pojedynczej reguły
Składnia reguły zajmującej się filtracją pakietów IP to:
ip {source-ip [wildcard] | host source-ip | any} {dest-ip [wildcard] | host dest-ip | any}
Podczas używania filtrowania pakietów IP należy najpierw podać informację n/t źródłowego adresu (source-ip [wildcard] | host source-ip | any), następnie odnośnie adresu docelowego (dest-ip [wildcard]
| host dest-ip | any). Można użyć pojedynczego adresu (host ip), grupy adresów (ip wildcard), albo brać pod uwagę wszystkie adresy (any). Warto zwrócić uwagę, że wildcard to odwrotność maski, czyli dla maski /25 (255.255.255.128) wildcard wynosi 0.0.0.127.
na przykład:
(config-ext-nacl)# permit ip 10.0.1.0 0.0.0.255 any – doda regułę, która zezwoli na ruch pakietów o IPv4 źródłowym 10.0.1.0/24 i dowolnym adresie doecelowym.
(config-ext-nacl)# deny ip host 10.0.1.11 192.168.0.0 0.0.255.255 – doda regułę, która zabroni ruchu pakierów o IP źródłowym 10.0.1.11 i adrasach docelowych pasujących do 192.168.0.0/16 Składnia polecenia zajmującego się filtracją pakietów UDP:
udp {source-ip [wildcard] | host source-ip | any} [operator port_src [port]] {dest-ip [wildcard] | host dest-ip | any} [operator port_dst [port]]
Składnia przypomina składnię odnośnie pakietów IP, dodatkowo można jednak podać informacje odnośnie portu źródłowego (operator port_src [port]) i docelowego (operator port_dst [port]). Gdzie
„operator port_src [port]” to:
• lt port = port o numerze mniejszym niż port (ang. „less than”),
• gt port = port o numerze większym niż port (ang. „greater than”),
• eq port = port o numerze port (ang. „equal to”),
• neq port = port o numerze innym niż port (ang. „not equal to”),
• range port_pocz port_kon = port o numerze mieszczącym się w zakresie [port_pocz port_kon].
Podczas określania portu można użyć zamiast numeru jednej z predefiniowanych nazw, na przykład „domain” (port 53, dns), „www”, „ssh” (UWAGA, dotyczy filtrowania pakietów TCP, a nie UDP).
Przykład:
(config-ext-nacl)# deny udp any host 8.8.8.8 eq 53 albo deny udp any host 8.8.8.8 eq domain – zablokuje ruch do publicznego dns’a Google’a (adres 8.8.8.8, port 53 UDP).
Składnia polecenia zajmującego się filtracją pakietów TCP:
tcp {source-ip [wildcard] | host source-ip | any} [operator port_src [port]] {dest-ip [wildcard] | host dest-ip | any} [operator port_dst [port]] [established]
składnia jest podobna, jak dla UDP, słowo „established” oznacza, że brane mają być jedynie pod uwagę pakiety do już zawiązanego połączenia TCP.
icmp {source-ip [wildcard] | host source-ip | any} {dest-ip [wildcard] | host dest-ip | any} [icmp-type [code] | icmp-msg]
Tworzenie i przypisanie listy reguł
1. komenda enable - wejście w trym administratora 2. powinien pojawić się sygnał zachęty “#”
3. komenda configure terminal - wejście w tryb terminala (skrót conf t) 4. powinien pojawić się sygnał zachęty “(config) #”
5. komenda (config) # ip access-list extended nazwa_listy_lub_numer_listy – tworzy listę reguł, na razie nieprzypisanych do czegokolwiek
6. komenda (config-ext-nacl)# permit … dodaje odpowiednią komendę filtrującą, która będzie akceptowała ruch pasujący do odpowiedniego filtra (UWAGA! w realnych urządzeniach może być konieczność poprzedzenie tej komendy słowem insert)
7. komenda (config-ext-nacl)# deny … dodaje odpowiednią komendę filtrującą, która będzie blokowała ruch pasujący do odpowiedniego filtra (UWAGA! w realnych urządzeniach może być konieczność poprzedzenie tej komendy słowem insert)
8. komenda (config-ext-nacl)# exit wyjdzie z konfiguracji listy reguł
9. komenda (config) # interface interfejs – wejdzie do konfiguracji interferjsu
10. komenda (config) # no ip access-list extended nazwa_listy_lub_numer_listy – usuwa podaną listę reguł
11. komenda (config-if)# ip access-group nazwa_listy_reguł in – przypisze do interfejsu
aktualnego, ruch wchodzący listę reguł nazwa_listy_reguł (UWAGA! w realnych urządzeniach składnia może wyglądać: ip access-group extended nazwa_listy_reguł ...)
12. komenda (config-if)# ip access-group nazwa_listy_reguł out – przypisze do interfejsu
aktualnego, ruch wchodzący listę reguł nazwa_listy_reguł (UWAGA! w realnych urządzeniach składnia może wyglądać: ip access-group extended nazwa_listy_reguł ...)
13. komenda (config-if)# no ip access-group nazwa_listy_reguł out – usunie dowiązanie do danej listy reguł
Scenariusz 1:
Adres komputerów w lewej sieci to 10.0.1.11-10.0.1.12/24, a routera w tej sieci to 10.0.1.1/24.
Adres komputerów w prawej sieci to 10.0.2.11-10.0.2.12/24, a routera w tej sieci to 10.0.2.1/24.
Bramą dla zwykłych komputerów jest router (adresy: 10.0.1.1 w lewej sieci; 10.0.2.1 w prawej sieci).
Zadanie pierwsze: skonfiguruj sieć tak, aby możliwa była komunikacja między wszystkimi komputerami.
Zadanie drugie: stwórz listę reguł na routerze i ją podłącz tak, aby blokować ruch z komputera PC0 do sieci prawej. Proszę dodatkowo zobaczyć na symulatorze co się stanie jak komputery z prawej sieci będą uruchamiały polecenie ping do PC0.
Zadanie trzecie: stwórz kolejną listę reguł na routerze i ją podłącz tak, aby blokować ruch z sieci prawej do PC0. Proszę dodatkowo zobaczyć na symulatorze co się stanie jak komputery z prawej sieci będą uruchamiały polecenie ping do PC0.