Wykład 1
Router Brzegowy i zapora sieciowa
Router – pierwsza osłona sieci;
Zapora sieciowa – uwierzytelnianie użytkowników i szczegółowa filtracja pakietów;
Możliwość konstruowania stref zdemilitaryzowanej;
Alternatywa
Router brzegowy, zapora sieciowa router wewnętrzny;
Router wewnętrzny –zaawansowane funkcje ochrony sieci
Możliwość stosowania różnych strategii ochrony dla różnych elementów sieci;
Możliwość zastosowania przełączników warstwy 2-3-4 oraz specyficznych modułów np. ids sss vpn
Drogi dostępu do routera i przełącznika
Port konsolowy (consolo port)
Port dodatkowy(aux port)
Terminal wirtualny (vty)
Zabezpieczenie nieużywanych linii -> przy konfiguracji linii podać komendę login, a nie podawać komendy password
FIZYCZNE ZABEZPIECZENIE!!!!
Port konsolowy
przywilej – kilka sekund po uruchomienia routera można zastosować CTRL-BREAK -> możliwość ustanowienia nowego hasła
Użytkownik który potrafi spowodować wyłączenie zasilania lub upadek systemu może przejąć router nie mając do niego bezpośredniego dostępu
Router (config) #line console 0
Router (config-line) #login
Router (config-line) #password abcd123
Router (config-line) # exec-timeout 3 30 – Skrócenie do 3 minut I 30 sekund czasu zamknięcia sesji (domyślnie 10 minut)
Port aux
Router (config) # Line aux 0
Router (config-line) # login
Router (config-line) # password auxpass
Router (config-line) # transport input none ---- Port modemowy nie będzie obsługiwał ruchu wchodzącego
Port vty
Router (config)# Line vty 0 4
Router (config-line) # login
Router (config-line) # password vty-pas
Router (config-line) # transport input ssh – możliwość wykorzystania tylko łącza szyfrowanego
Router (config-line) # ip access-class 101 – Ograniczenie dostępu tylko dla numerów IP określonych w liście dostępu
Protokół ssh
Klient
Umożliwia szyfrowaną wymianę danych z serwerem ssh
Używa standard DES i 3DES
Uwierzytelnianie użytkownika – RADIUS, TACACS+, lokalnie;
Serwer
Obsługuje szyfrowane sesje z klientami ssh.
Konfigurowanie ssh
Roiter (config) # hostname R2
R2(config)# ip domain-name cisco.com
R2(config)# cypto key generate rsa
: - Zaakceptować domyślny rozmiar klucza
R2(config)# ip ssh time-out 15
R2(config)# ip ssh authentication-retires 3
Konfigurowanie lokalnego uwierzytelniania
R2(config)# username student password Cisco
R2(config)# line vty 0 4
R2(config-line)# transport input ssh
R2(config-line)# login local
R2(config-line)# exit
R2(config)# logging on
R2(config)# logging console
Usługa ssh przydatne koment
R2 # show ssh - Listowanie aktywnych sesji ssh
R2 # show ip ssh listowanie parametrów konfiguracji ssh
R2 # disconnect ssh 0 Zamykanie wskazanej (0) sesji ssh
R2 # ssh –c des –l student 172.16.10.2 – otwieranie sesji ssh
Zalecenia dotyczące haseł
Stosowanie typu 5 do szyfrowania hasel;
Konta użytkowników powinny być tworzone w celu prowadzenia bieżącego audytu
Przy konfiguracji linii wykorzystywać komendę Login local – hasło powinno być inne niż enable secret;
Szyfrować hasła w pliku konfiguracyjnym – service password encryption
Ustalić minimalną długość hasła: security password min-length 8
Zablokować (uważnie!) procedurę odzyskiwania hasła – no service password-recovery
Przywileje i konta
16 poziomów przywilei <0;15>
User EXEC– domyślnie na poziomie 1;
Priviledge EXEC domyślnie na poziomie 15;
Zmiana poziomu dla komeny np.
R2 (config) # privilege exec level 15 show ip access-lists
Tworzenie konta z uprawnieniami poziomu 1:
R2 (config) # username John password Wars123
R2 (config) # username John privilege 1
Dodać komendy do dodatkowych poziomów
Blokowanie niepotrzebnych usług
CDP;
TCP i UDP small Server (echo, chargen, ….);
Finger;
Serwer HTTP – dostęp ograniczony przez ACL;
Serwer Bootp;
Automtyczne Å‚adowanie konfiguracji przez ftp;
IP Source routing;
Proxy ARP;
Classless routing – przekazywanie pakietów bez określania trasy
Ip unrechable notifications;
IP mask replay
Ip redirects;
NTP service – jeżeli potrzebny, ograniczyć dostęp przez ACL;
SNMP- jeżeli potrzebny ograniczyć dostęp przez ACL;
DNS – skonfigurować albo wyłączyć
R2(config) # no cdp run
R2(config) # no ip Skurce-route
R2(config) # no ip classless
R2(config) # no service tcp-small-servers
R2(config) # no service tcp-small-servers
R2(config) # no ip finger
R2(config) # no service finger
R2(config) # no ip BOOT Server
R2(config) # no ip http Server
R2(config) # no ip name-server
R2(config) # np. BOOT Network
R2(config) # no service config
R2(config) # no Access-list 20
R2(config) # access0list 20 deny Any
R2(config) # snmp-server community keohd27553 ro 20
R2(config) # no snmp-server enable traps
R2(config) # no snmp-server system shutdown
R2(config) # no snmp-servertrap-auth
R2(config) # interface Ethernet 0/0
R2(config-if) # no ip Proxy-arp
R2(config-if) # no directed-broadcast
R2(config-if) # no ip unrechable
R2(config-if) # no ip redirect
R2(config-if) # no mask-reply
Zabezpieczenia przełączników
Większość zasad dotyczących routerów obowiązuje
Ponadto:
Port security – akcja, adres MAC, liczba adresów;
Tworzenie VLAN-ów;
Blokowanie szybkiego protokołu STP;
VMPS (VLAN Membership Policy Server) – przydzielanie użytkowników do VLAN na podstawie adresu MAC;
Identity Based Network Services (IBNS) (IEEE 802,1 x authentication) – autoryzacja dostępu do łącza w warstwie 2.
Listy Kontroli Dostępu
ACL (Access Control List) – lista kontroli dostępu. Lista wykorzystywana przez router do sterowania dostępem na wejściu do interfejsu routera lub na wyjściu z interfejsu routera
Sposoby instalowania list kontroli dostępu
IP IP
IPX Router IPX
Apple Talk Apple Talk
Jak funkcjonują listy kontroli dostępu?
Przejścia kilka wzorców
Jak spełnia warunki to przepuszczam a blokuje pozostałe
Lub
Blokuje które chce a przepuszczam pozostałe
Typy list kontroli dostępu
Standardowe – filtrowanie według adresu nadawcy
Rozszerzone – filtrowanie według adresu nadawcy i odbiorcy, portów nadawcy i odbiorcy, rodzajów komunikatów;
Nazwane – mogą być standardowe i rozszerzone
Standardowe Listy kontroli dostępu
Access-list numer [Deny|permit]remark] źródłowy_IP [zródłowa_maska] [Log]
Numer – numer listy dostępu
IP 1-99 1300-1999 standardowe
Extender IP 100-199, 2000-2699 Rozrzeżona
Ethernet typed code 200-299
Przykład
WAŻNA JEST KOLEJNOŚĆ
Access-list 2 deny 192.168.10.1
Access-list 2 permit 192.168.10.0 0.0.0.255 Dowolny adres można się bawić
Access-list 2 deny 192.168.0.0 0.0.255.255
Access-list 2 permit 192.0.0.0 0.255.255.255
Standardowe listy kontroli dostępu – słowa kluczowe
ANY
R1(config) # Access-list 1 permit 0.0.0.0 255.255.255.255
R1(config) # Access-list 1 permit any
Host
R1(config) # Access-list 1 permit 192.168.10.10 0.0.0.0
R1(config) # Access-list 1 host 172.168.10.10
Standardowe listy kontroli dostępu – instalowanie
R1(config) # no Access-list 1
R1(config) # Access-list 1 deny 192.168.10.10 0.0.0.0
R1(config) # Access-list 1 pertmit 192.168.10.0 0.0.0.255
R1(config) # interface S0/0/0
R1(config-if) # ip access-group 1 out
Kontrolowanie dostępu do terminal wirtualnego
R1(config) # Access-list 21 permit 192.168.10.0 0.0.0.255
R1(config) # Access-list 21 permit 192.168.11.0 0.0.0.255
R1(config) # Access-list 21 deny any
R1(config) # line vty 0 4
R1(config) # login
R1(config) # password secret
R1(config) # Access-class 21 in
Rozszerzone listy kontroli dostępu
Access-list numer [deny|permit|remark] protokół źródłowy_IP [źródłowa_maska] [operator port] docelowy_IP [docelowa maska] [operator port] [established] [log]
Numer – numer listy dostępu
Protokół – ip, tcp, udp, icmp
Operator – lt(<), gt(>), eq(=), neq(!=) I range (zakres)
Port – numer portu (tylko dla UDP I TCP)
Established pozwala na powrót ramek przy blokowaniu np. telneta dzięki temu można inicjować z sieci swojej i otrzymać odpowiedź a brak możliwości inicjacji z zewnątrz
R1(config) # Access-list 101 deny tcp 192.168.11.0 0.0.0.255 192.168.20.0 0.0.0.255 eq 21
R1(config) # Access-list 101 deny tcp 192.168.11.0 0.0.0.255 192.168.20.0 0.0.0.255 eq 21
R1(config) # Access-list 101 any any
R1(config) # interface Fa0/1
R1(config-if) # ip access-group 101 in
Rozszerzone listy kontroli dostępu instalujemy ją najbliżej źródła danych.
A standardowe najbliżej chronionej sieci
Nazwane listy kontroli dostępu
R1(config) # ip access-list [standard|extender] nazwa
R1(config-std-nacl) # [deny|permit|remark] źródłowy_ip źródłowa_maska]
.
.
.
R1(config-ext-nacl)# [deny|permit|remark] protokół źródłowy_IP [źródłowa_maska] [operator port] docelowy_iP [docelowa_maska] [operator port] [established]
.
.
Przykład 1:
R1(config) # ip access-list standard NO_access
R1(config-std-nacl) # deny host 192.168.11.10
R1(config-std-nacl) # permit 192.168.11.0 0.0.0.255
R1(config-std-nacl) # interface Fa0/0
R1(config-std-nacl) # ip access-group NO_access
Przykład 2:
R1(config) # ip access-list extender SURFING
Techniki filtrowania pakietów
Filtrowanie pakietów - ograniczenie ruchu do/z jednej sieci do drugiej;
Serwer Proxy – sprawdza pakiety w warstwach od 4 do 7
Kontekstowe filtrowanie pakietów- buforowanie i sprawdzanie danych całych sesji TCP i UDP.
Filtrowanie pakietów
Sprawdzenie danych zawartych tylko w nagłówkach pakietów
Wykorzystanie list kontroli dostępu akceptacja lub porzucenie pakietu
Niedostatki:
Niepożądanie pakiety spełniające kryteria są przepuszczane
Pofragmentowane pakiety mogą pokonać filtr;
Rozbudowanie listy ACL sÄ… trudne do implementacji i zarzÄ…dzania;
Pewne usługi mogą nie być filtrowane – usługi UDP dynamicznie zmieniające porty.
Serwer Proxy
Wszystkie pakiety z zewnątrz po przejściu przez router brzegowy (ACL) są kierowane do serwera proxy;
Serwer proxy weryfikuje poprawność danych sprawdza prawa dostępu użytkowników, hostów i przekazuje do adresata;
Serwer Proxy może:
Prowadzić dzienniki autoryzacji
Filtrować URL
Cach’ować zasoby http itp.
Niedostatki:
Jest pojedynczym punktem awarii;
Kompromitacja serwera Proxy -> kompromitacja sieci
Trudności w dodawaniu nowych usług
Wymaga dużych możliwości obliczeniowych maszyny i zasobów dyskowych
Kontekstowe Filtrowanie pakietów
Zarządzanie pełną sesją TCP lub UDP
Informacje są zapisywane w tablicy stanów sesji (adres nadawcy i odbiorcy, numery portów, numery sekwencyjne flagi itp.)
Weryfikowane są pakiety wejściowe i wyjściowe
Efektywność filtrowania wyższa niż poprzednich rozwiązań
Zalecenia filtrowania na wejściu routera brzegowego
Filtrowanie pakietów, których adres źródłowy jest zgodny z adresami używanymi wewnątrz sieci
Filtrowanie pakietów, których adres źródłowy jest zgodny z adresami prywatnymi
Filtrowanie pakietów protokołów BOOTP, TFTP i komendy traceroute
Zezwalać na połączenia TCP, jeżeli są inicjowane z wnętrza sieci
Zezwalać na ruch skierowany do serwerów w strefie DMZ
Zalecenia filtrowania na wyjściu routera brzegowego
Zezwalanie tylko dla pakietów z adresem źródłowym z sieci wewnętrznej
Blokowanie pakietów z adresami IP, które nie mają zezwolenia na opuszczenie sieci wewnętrznej (zgodnie z zasadami bezpieczeństwa);
Blokowanie nieużywanych usług , portów , protokołów
Analiza przypadku – filtrowanie ruchu wejściowego
Blokowanie pakietów zewnętrznych z adresem źródłowym;
Prywatnym
Z naszej sieci wewnętrznej 16.2.1.0/24
127.0.0.0/8
Numery nadawane automatycznie : 192.0.2.0
Analiza przypadku – filtrowanie ruchu wyjściowego
Przepuszczanie tylko pakietów z adresami źródłowym z sieci wewnętrznej
Analiza przypadku – blokada ataku SYN Flood
Przepuszczanie pakietów zewnętrznych należących do połączenia TCP zainicjowanego z sieci wewnętrznej 16.2.1.0/24
Blokowanie wszystkich innych pakietów IP
Lista jest na wejściu z sieci do routera
Access-list 109 permit tcp Any 16.2.1.0 0.0.0.255 established
Blokowanie IP blokuje ICMP
Ip tcp intercept list 110 sprawdza czy jest połączenie jeśli brak to ucina pakiety
Analiza przypadku – unikanie ataku Smurf
Blokowanie pakietów zewnętrznych podających w adresie docelowym adres broadcastowy chronionej sieci;
Lista jest instalowana na wejściu interfejsu Ehternet 0/0 router R2
Analiza przypadku – filtrowanie wejściowego ruchu ICMP
Blokowanie wszelkich pakietów Echo request, Redirect, Mask-request kierowanych do chronionej sieci
Zezwolenie na pozostały ruch ICMP do chronionej sieci
Lista jest instalowana na wejściu interfejsu Ehternet 0/0 router R2
Analiza przypadku – filtrowanie wejściowego ruchu ICMP
Zezwolenie na wysyłanie pakietó Echo Request, Parameter problem , Packet-too-big i Source-quench(Zarządzanie przepływem);
Blokowanie pozostałego ruchu ICMP z chronionej sieci;
Lista jest instalowana na wejściu interfejsu Ethernet 0/1 router R2
Access-list 114 permit icmp 16.2.1.0 0.0.0.255 any echo
Access-list 114 permit icmp 16.2.1.0 0.0.0.255 any parameter-problem
Access-list 114 permit icmp 16.2.1.0 0.0.0.255 any packet-too-big
Access-list 114 permit icmp 16.2.1.0 0.0.0.255 any source quench
Access-list 114 permit icmp any any log
Analiza przypadku – blokoda komendy TRACE
R2(config) # Access-list 120 deny udp Any Any range 33400 34400 log
R2(config) # interface e0/0
R2(config) # ip access-group 120 in
R2(config) # end
R2(config) # access-list 121 permit udp 16.2.1.0 0.0.0.255 any range 33400 34400 log
R2(config) # interface e0/1
R2(config-if) # ip access-group 121 in
R2(config-if) # end
Zaawansowane listy Kontroli dostępu
Dynamiczne listy dostępu
Listy dostępu obsługujące harmonogramy
Zwrotne listy dostępu
Listy dostępu turbo
Listy dostępu oparte na zawartości
AD1.
Procedura:
Użytkownik otwiera sesję telnet z routerem podając nazwę i hasło;
Po uwierzytelnieniu sesja telnet jest zamykana a w liście dostępu jest dodawany tymczasowy zapis;
Lista akceptuje pakiety o adresie źródłowym zgodnym z odebranymi pakietami w trakcie uwierzytelnienia;
Komenda telnet przesyła dane jawnym tekstem istnieje możliwość przechwycenia hasła logowania
Dynamiczna lista „otwiera lukę „ w zabezpieczeniach tylko na określony czas;
W tym czasie istnieje możliwość wykorzystywania dopuszczonego numeru IP przez hakerów
Umożliwia dostęp stacjom które mają zmieniane numery IP ( adresy IP stacji przydzielane dynamicznie )
Access-list numer dynamic nazwa [timeout n] [permit|deny] protokół Any docelowy_IP docelowa_maska
Numer – numer listy dostępu
Nazwa – nazwa listy
N – absolutny limit czasu istnienia dynamicznego wpisu
Protokół – IP, tcp ,udp ,icmAdreś źródłowy jest zastępowany adresem uwierzytelnionego komputera
Dynaiczne listy dostępu – przykład
Username uzyt password Cisco
Interface Serial 0
Ip address 172.16.0.1 255.255.255.0
Ip Access-group 101 in
Access-list 101 permit tcp Any host 172.16.0.1 eq telnet
Access-list 101 dynamic test 30 permit ip any any
Line vty 0 2
Login local
Autocommand access-enable host timeout 5
Line vty 3 4
Login local
Rotary 1
SHOW IP Access-list !!!!! pokazuje obowiÄ…zujÄ…ce access-listy na routerze
Dynamiczne listy dostępu niedostatki
Po uwierzytelnieniu użytkownika napastnik może wniknąc do sieci wewnętrznej
Otwary dostęp z zewnętrznej strony routera bez kontrolo po wewnętrznej stronie
AD 2.
Obsługujące harmonogramy
Możliwość kontrolowania dostępu do zasobów w różnych dniach tygodnia i o różnych godzinach
Możliwość stosowania różnych zasad ochrony w różnych porach dnia i tygodnia
Defniowanie przedziału czasowego
Określenie nazwy : time-range zezw_http
Określenie przedziału absolutnego (absolute)
Lub powtarzalnego (periodic);
Można łączyć jedną instrukcję absolute Z wieloma instrukcjami periodic;
Odwołanie Siudo tego przedziału czasowego w liście dostępu
Absolute start pocz end koniec
Format godzin : 24 godzinny
Format dat : dzień miesiąc rok;
Brak pocz obowiÄ…zuje natychmiast
Brak koniec obowiązuje przez czas nieokreślony
Brak daty obowiÄ…zuje codziennie
Absolute start 17:00 end 7:00
Ablostute start 13:00 23 December 2006 end 7:30 2 January 2007
Absolute end 7:30 2 January 2007
Określenie przedziału powtarzalnego
Periodic dz_tyg GG:mm to dz_tyg gg:mm
Format godzin : 24 godziny
Format dz_tyg
Angielska nazwa dnia tygodnia kombinacja dni tygodnia
Daily Codziennie
Username uzyt password Cisco
Interface Serial 0
Ip address 172.16.0.1 255.255.255.0
Ip Access-group 101 in
Access-list 101 permit tcp Any host 172.16.0.1 eq telnet
Time –range mój_czas
Absolute start &:00 1 October 2006 end 30 June 2007
Periodic weekdays *:00 to 15:30
Access-list 101 dynamic test 30 permit ip any any time-range moj_czas log
Line vty 0 2
Login local
Autocommand access-enable host timeout 5
Line vty 3 4
Login local
Rotary 1