- Wstęp
- Poziomy dostępu
- Konfiguracja poziomów dostępu
- Przykład 1: Wyświetlenie aktualnego poziomu dostępu
- Przykład 2: Przejście do poziomu uprzywilejowanego
- Przykład 3: Konfiguracja niestandardowego poziomu dostępu
- Przykład 4: Wyświetlenie listy poziomów i przypisanych poleceń
- Przykład 5: Usunięcie niestandardowego poziomu dostępu
- Logowanie
- Konfiguracja logowania
- Przykład 1: Ustawienie hasła dla linii konsoli
- Przykład 2: Konfiguracja logowania SSH
- Przykład 3: Konfiguracja serwera RADIUS dla logowania
- Przykład 4: Ustawienie limitu prób logowania
- Przykład 5: Wyświetlenie statusu logowania
- Używanie haseł
- Zarządzanie hasłami
- Przykład 1: Ustawienie hasła enable
- Przykład 2: Dodanie użytkownika lokalnego z hasłem
- Przykład 3: Ustawienie hasła dla linii VTY
- Przykład 4: Zmiana hasła użytkownika
- Przykład 5: Wyświetlenie użytkowników i haseł (zaszyfrowanych)
- Szyfrowanie haseł
- Konfiguracja szyfrowania
- Przykład 1: Szyfrowanie hasła enable typem 5
- Przykład 2: Szyfrowanie hasła użytkownika typem 8
- Przykład 3: Szyfrowanie hasła użytkownika typem 9
- Przykład 4: Migracja hasła do wyższego typu szyfrowania
- Przykład 5: Weryfikacja typu szyfrowania
- Inna obsługa: Zarządzanie użytkownikami i protokoły AAA
- Zaawansowana konfiguracja
- Przykład 1: Konfiguracja TACACS+ dla AAA
- Przykład 2: Tworzenie roli użytkownika z ACL
- Przykład 3: Konfiguracja księgowania AAA
- Przykład 4: Dodanie użytkownika z rolą
- Przykład 5: Wyświetlenie statusu AAA
- Podsumowanie
Wstęp
W dzisiejszych czasach, kiedy sieci komputerowe stanowią podstawę działania przedsiębiorstw, instytucji oraz usług publicznych, bezpieczeństwo dostępu do urządzeń sieciowych, takich jak przełączniki i routery Cisco, odgrywa kluczową rolę w ochronie infrastruktury informatycznej. Urządzenia te są często punktami centralnymi w sieciach, zarządzając ruchem danych, kontrolując dostęp do zasobów oraz zapewniając łączność między różnymi segmentami systemu. Nieautoryzowany dostęp do takich urządzeń może prowadzić do poważnych konsekwencji, w tym wycieku danych, zakłócenia usług czy nawet całkowitego przejęcia kontroli nad siecią.
W niniejszym artykule omówimy kluczowe aspekty bezpieczeństwa dostępu na przełącznikach i routerach Cisco, koncentrując się na poziomach dostępu, mechanizmach logowania, używaniu haseł, ich szyfrowaniu oraz innych metodach obsługi uwierzytelniania. Przedstawimy teoretyczne podstawy tych mechanizmów, ich praktyczne zastosowanie oraz szczegółowe przykłady poleceń CLI (Command Line Interface), które umożliwiają konfigurację i zarządzanie tymi funkcjami. Każdy temat zostanie zilustrowany co najmniej pięcioma dokładnie wyjaśnionymi przykładami poleceń, aby zapewnić czytelnikowi praktyczne zrozumienie materiału.
Dodatkowo, w artykule znajdą się schematy ASCII ART, które wizualnie przedstawiają struktury poziomów dostępu oraz procesy logowania, ułatwiając przyswojenie abstrakcyjnych koncepcji. Całość została napisana w stylu akademickim, z precyzyjnymi i szczegółowymi wyjaśnieniami, aby czas czytania wyniósł około 25 minut. Artykuł jest przeznaczony dla administratorów sieci, studentów informatyki oraz wszystkich zainteresowanych tematyką bezpieczeństwa w sieciach Cisco.
Poziomy dostępu
Poziomy dostępu w urządzeniach Cisco definiują zakres uprawnień, jakie użytkownik może posiadać podczas interakcji z urządzeniem. System Cisco IOS (Internetwork Operating System) rozróżnia kilka poziomów dostępu, począwszy od poziomu użytkownika (User EXEC), przez poziom uprzywilejowany (Privileged EXEC), aż po poziomy konfiguracyjne (Global Configuration, Interface Configuration itp.). Każdy poziom zapewnia dostęp do określonych poleceń i funkcji, co pozwala na granularne zarządzanie bezpieczeństwem.
Podstawowe poziomy to:
- Poziom 0 (User EXEC): Najniższy poziom, umożliwia wykonywanie podstawowych poleceń diagnostycznych i monitorowania, bez możliwości modyfikacji konfiguracji.
- Poziom 1 (Privileged EXEC): Umożliwia dostęp do wszystkich poleceń EXEC, w tym konfiguracyjnych, ale wymaga hasła enable.
- Poziomy 2-14: Niestandardowe poziomy, które można skonfigurować za pomocą listy dostępu (Access Control Lists – ACL), przypisując im specyficzne uprawnienia.
- Poziom 15: Najwyższy poziom, równoważny Privileged EXEC, ale z pełnym dostępem do wszystkich funkcji.
Zarządzanie poziomami dostępu jest kluczowe dla zapobiegania eskalacji uprawnień i zapewnienia, że tylko autoryzowani użytkownicy mogą wykonywać krytyczne operacje. Poniżej przedstawiamy schemat ilustrujący hierarchię poziomów dostępu.
+-------------------+
| Poziom 15 |
| (Privileged EXEC) |
+-------------------+
|
| enable
v
+-------------------+
| Poziom 1 |
| (Privileged EXEC) |
+-------------------+
|
| login
v
+-------------------+
| Poziom 0 |
| (User EXEC) |
+-------------------+
Schemat ten pokazuje, jak użytkownik przechodzi między poziomami poprzez uwierzytelnienie. Teraz przejdźmy do praktycznych przykładów poleceń CLI.
Konfiguracja poziomów dostępu
Przykład 1: Wyświetlenie aktualnego poziomu dostępu
Polecenie show privilege pozwala sprawdzić bieżący poziom uprawnień sesji. Jest to podstawowe polecenie diagnostyczne, które nie wymaga żadnych parametrów i wyświetla numer poziomu (np. 1 dla User EXEC, 15 dla Privileged EXEC).
Router# show privilege Current privilege level is 1
W tym przykładzie użytkownik jest na poziomie 1 (User EXEC). Polecenie to jest przydatne do weryfikacji stanu sesji przed wykonaniem operacji wymagających wyższych uprawnień.
Przykład 2: Przejście do poziomu uprzywilejowanego
Polecenie enable umożliwia eskalację do poziomu Privileged EXEC (poziom 15). Wymaga podania hasła enable, jeśli zostało skonfigurowane. Po wykonaniu, użytkownik zyskuje dostęp do wszystkich poleceń konfiguracyjnych.
Router> enable Password: Router#
W przykładzie użytkownik wprowadza hasło (niewidoczne na ekranie) i przechodzi do trybu uprzywilejowanego, co jest sygnalizowane zmianą znaku zachęty z ‚>’ na ‚#’.
Przykład 3: Konfiguracja niestandardowego poziomu dostępu
Polecenie privilege exec level 5 show running-config przypisuje polecenie show running-config do poziomu 5. Umożliwia to tworzenie niestandardowych poziomów z ograniczonymi uprawnieniami.
Router# configure terminal Router(config)# privilege exec level 5 show running-config Router(config)# end
Po tej konfiguracji użytkownicy na poziomie 5 będą mogli wyświetlać bieżącą konfigurację, ale nie będą mieli dostępu do innych poleceń konfiguracyjnych.
Przykład 4: Wyświetlenie listy poziomów i przypisanych poleceń
Polecenie show privilege w trybie konfiguracyjnym lub show running-config | include privilege pozwala przeglądać skonfigurowane poziomy dostępu i przypisane do nich polecenia.
Router# show running-config | include privilege privilege exec level 5 show running-config privilege exec level 10 configure terminal
Wynik pokazuje, że poziom 5 ma dostęp do show running-config, a poziom 10 do configure terminal, co umożliwia stopniowe zwiększanie uprawnień.
Przykład 5: Usunięcie niestandardowego poziomu dostępu
Polecenie no privilege exec level 5 show running-config usuwa przypisanie polecenia do poziomu. Przywraca domyślne ustawienia dla tego poziomu.
Router# configure terminal Router(config)# no privilege exec level 5 show running-config Router(config)# end
Po wykonaniu tego polecenia poziom 5 traci dostęp do wyświetlania konfiguracji, co jest przydatne przy czyszczeniu niepotrzebnych uprawnień.
Logowanie
Mechanizmy logowania na urządzeniach Cisco zapewniają uwierzytelnienie użytkowników przed udzieleniem dostępu do CLI. Cisco obsługuje różne metody logowania, w tym lokalne hasła, serwery RADIUS/TACACS+, certyfikaty oraz wielopoziomowe uwierzytelnienie. Logowanie może odbywać się poprzez konsolę, Telnet, SSH czy AUX.
Kluczowe aspekty logowania obejmują:
- Lokalne uwierzytelnienie: Hasła przechowywane lokalnie na urządzeniu.
- Zdalne uwierzytelnienie: Korzystanie z zewnętrznych serwerów AAA (Authentication, Authorization, Accounting).
- Wielofaktorowe uwierzytelnienie: Kombinacja hasła i innych czynników, jak tokeny.
- Blokowanie kont: Mechanizmy zapobiegające atakom brute-force.
Poniżej schemat przedstawia proces logowania z wykorzystaniem serwera RADIUS.
Użytkownik ----> Router ----> RADIUS Server
| | |
| Wprowadź | Wysyłaj | Weryfikuj
| dane | zapytanie | dane
| | AAA |
|<-------------|--------------|
| Odpowiedź | |
| (dostęp | |
| przyznany) | |
Schemat ilustruje trójstronny proces: użytkownik wprowadza dane, router przesyła je do serwera RADIUS, który weryfikuje i odpowiada.
Konfiguracja logowania
Przykład 1: Ustawienie hasła dla linii konsoli
Polecenie password cisco w trybie konfiguracji linii ustawia hasło dla dostępu poprzez konsolę. Jest to podstawowa metoda zabezpieczenia fizycznego dostępu.
Router# configure terminal Router(config)# line console 0 Router(config-line)# password cisco Router(config-line)# login Router(config-line)# end
Po konfiguracji każdy dostęp poprzez konsolę będzie wymagał podania hasła ‚cisco’. Polecenie login włącza uwierzytelnienie.
Przykład 2: Konfiguracja logowania SSH
Polecenie crypto key generate rsa modulus 2048 generuje klucz RSA dla SSH, a następnie ip ssh version 2 ustawia wersję protokołu. SSH zapewnia bezpieczne logowanie zdalne.
Router# configure terminal Router(config)# crypto key generate rsa modulus 2048 Router(config)# ip ssh version 2 Router(config)# line vty 0 4 Router(config-line)# transport input ssh Router(config-line)# login local Router(config-line)# end
W przykładzie generowany jest klucz, ustawiana wersja SSH i włączane logowanie lokalne dla linii VTY (wirtualnych terminali).
Przykład 3: Konfiguracja serwera RADIUS dla logowania
Polecenie radius-server host 192.168.1.10 key secretkey dodaje serwer RADIUS, a aaa authentication login default group radius local ustawia domyślną metodę uwierzytelnienia.
Router# configure terminal Router(config)# radius-server host 192.168.1.10 key secretkey Router(config)# aaa new-model Router(config)# aaa authentication login default group radius local Router(config)# end
Konfiguracja włącza model AAA i ustawia logowanie poprzez RADIUS z fallbackiem na lokalne hasła.
Przykład 4: Ustawienie limitu prób logowania
Polecenie login block-for 120 attempts 3 within 60 blokuje logowanie na 120 sekund po 3 nieudanych próbach w ciągu 60 sekund. Chroni przed atakami brute-force.
Router# configure terminal Router(config)# login block-for 120 attempts 3 within 60 Router(config)# end
To ustawienie zwiększa bezpieczeństwo poprzez automatyczne blokowanie po wielokrotnych niepowodzeniach.
Przykład 5: Wyświetlenie statusu logowania
Polecenie show login wyświetla informacje o bieżących sesjach logowania, w tym blokadach i statystykach prób.
Router# show login A login block is NOT active. Last login failed attempt was never.
Wynik pokazuje, że nie ma aktywnej blokady i nigdy nie było nieudanych prób, co wskazuje na prawidłową konfigurację.
Używanie haseł
Hasła są podstawowym mechanizmem uwierzytelnienia w urządzeniach Cisco. Ich prawidłowe używanie obejmuje wybór silnych haseł, regularną zmianę oraz odpowiednie przechowywanie. Cisco oferuje różne typy haseł: dla linii (console, VTY), enable, użytkowników lokalnych itp.
Kluczowe zasady używania haseł:
- Długość i złożoność: Hasła powinny mieć co najmniej 8 znaków, zawierać wielkie/małe litery, cyfry i symbole.
- Unikalność: Każde urządzenie powinno mieć unikalne hasła.
- Rotacja: Regularna zmiana haseł co 30-90 dni.
- Bezpieczne przechowywanie: Unikanie zapisywania haseł w postaci jawnej.
W tej sekcji skupimy się na praktycznych przykładach bez ASCII ART, koncentrując się na poleceniach CLI.
Zarządzanie hasłami
Przykład 1: Ustawienie hasła enable
Polecenie enable secret cisco123 ustawia tajne hasło enable, które jest szyfrowane i bezpieczniejsze niż zwykłe enable password.
Router# configure terminal Router(config)# enable secret cisco123 Router(config)# end
Hasło ‚cisco123’ jest przechowywane w postaci zaszyfrowanej, co zapobiega jego odczytaniu z konfiguracji.
Przykład 2: Dodanie użytkownika lokalnego z hasłem
Polecenie username admin secret mypassword tworzy użytkownika ‚admin’ z tajnym hasłem. Jest to metoda lokalnego uwierzytelnienia.
Router# configure terminal Router(config)# username admin secret mypassword Router(config)# end
Użytkownik może teraz logować się używając nazwy ‚admin’ i hasła ‚mypassword’.
Przykład 3: Ustawienie hasła dla linii VTY
Polecenie password telnetpass w konfiguracji linii VTY ustawia hasło dla dostępu Telnet. Jest to starsza metoda, obecnie zalecane jest SSH.
Router# configure terminal Router(config)# line vty 0 4 Router(config-line)# password telnetpass Router(config-line)# login Router(config-line)# end
Hasło ‚telnetpass’ umożliwia dostęp poprzez Telnet, ale transmisja nie jest szyfrowana.
Przykład 4: Zmiana hasła użytkownika
Polecenie username admin secret newpassword zmienia hasło istniejącego użytkownika. Wymaga potwierdzenia w przypadku nadpisania.
Router# configure terminal Router(config)# username admin secret newpassword Router(config)# end
Stare hasło zostaje zastąpione nowym ‚newpassword’, co jest częścią procedury rotacji haseł.
Przykład 5: Wyświetlenie użytkowników i haseł (zaszyfrowanych)
Polecenie show running-config | include username wyświetla skonfigurowanych użytkowników z zaszyfrowanymi hasłami.
Router# show running-config | include username username admin secret 5 $1$mERr$hx5rVt7rPNoS4wqbXKX7m0
Wynik pokazuje użytkownika ‚admin’ z hasłem zaszyfrowanym algorytmem MD5 (typ 5), co zapewnia bezpieczeństwo.
Szyfrowanie haseł
Szyfrowanie haseł jest krytycznym aspektem bezpieczeństwa, ponieważ zapobiega odczytaniu haseł z plików konfiguracyjnych. Cisco IOS oferuje różne poziomy szyfrowania: typ 0 (jawny tekst), typ 5 (MD5), typ 7 (słaby Vigenere), typ 8 (PBKDF2) i typ 9 (SCrypt).
Rekomendowane typy:
- Typ 5: MD5, dobry dla starszych urządzeń.
- Typ 8: PBKDF2, silniejszy, zalecany dla nowych instalacji.
- Typ 9: SCrypt, najnowszy i najbezpieczniejszy.
Szyfrowanie automatycznie stosuje się przy użyciu secret zamiast password.
Konfiguracja szyfrowania
Przykład 1: Szyfrowanie hasła enable typem 5
Polecenie enable secret level 5 cisco wymusza szyfrowanie MD5 dla hasła enable.
Router# configure terminal Router(config)# enable secret cisco Router(config)# end
Hasło jest automatycznie szyfrowane typem 5 (MD5) przy użyciu secret.
Przykład 2: Szyfrowanie hasła użytkownika typem 8
Polecenie username test secret 8 mypass używa PBKDF2 do szyfrowania hasła użytkownika.
Router# configure terminal Router(config)# username test secret 8 mypass Router(config)# end
Typ 8 zapewnia silniejsze szyfrowanie niż MD5, odporne na ataki słownikowe.
Przykład 3: Szyfrowanie hasła użytkownika typem 9
Polecenie username test secret 9 mypass stosuje SCrypt, najnowszy algorytm szyfrowania.
Router# configure terminal Router(config)# username test secret 9 mypass Router(config)# end
SCrypt jest odporny na ataki wykorzystujące sprzęt specjalistyczny, jak FPGA.
Przykład 4: Migracja hasła do wyższego typu szyfrowania
Polecenie service password-encryption szyfruje istniejące hasła typem 7, ale dla lepszego bezpieczeństwa użyj secret.
Router# configure terminal Router(config)# service password-encryption Router(config)# no enable password Router(config)# enable secret newpass Router(config)# end
Polecenie service password-encryption szyfruje słabe hasła, ale lepiej używać secret dla typów 5/8/9.
Przykład 5: Weryfikacja typu szyfrowania
Polecenie show running-config | include secret pozwala sprawdzić typ szyfrowania w konfiguracji.
Router# show running-config | include secret enable secret 5 $1$mERr$hx5rVt7rPNoS4wqbXKX7m0 username admin secret 8 $8$...
Wynik pokazuje typ 5 dla enable i typ 8 dla użytkownika, co potwierdza odpowiednie szyfrowanie.
Inna obsługa: Zarządzanie użytkownikami i protokoły AAA
Oprócz podstawowych mechanizmów, Cisco oferuje zaawansowane metody obsługi bezpieczeństwa, takie jak zarządzanie użytkownikami, listy dostępu oraz integracja z protokołami AAA (RADIUS/TACACS+). Te mechanizmy umożliwiają scentralizowane zarządzanie uwierzytelnianiem, autoryzacją i księgowaniem.
Kluczowe elementy:
- TACACS+: Protokół Cisco dla AAA, zapewniający szczegółową kontrolę.
- RADIUS: Standardowy protokół dla uwierzytelnienia i autoryzacji.
- Listy dostępu: ACL do ograniczania dostępu do poleceń.
- Role użytkowników: Grupowanie użytkowników z podobnymi uprawnieniami.
Poniżej schemat przedstawia integrację z serwerem TACACS+.
Router ----> TACACS+ Server
| |
| Auth | Authenticate
| Request | User
| |
|<-------------|
| Auth |
| Success |
| |
| Author |
| Request |
| |
|<-------------|
| Author |
| Response |
Schemat pokazuje dwuetapowy proces: uwierzytelnienie, a następnie autoryzacja poprzez TACACS+.
Zaawansowana konfiguracja
Przykład 1: Konfiguracja TACACS+ dla AAA
Polecenie tacacs-server host 192.168.1.20 key tacacskey dodaje serwer TACACS+, a aaa authentication login default group tacacs+ local ustawia domyślną metodę.
Router# configure terminal Router(config)# tacacs-server host 192.168.1.20 key tacacskey Router(config)# aaa new-model Router(config)# aaa authentication login default group tacacs+ local Router(config)# end
TACACS+ zapewnia scentralizowane zarządzanie użytkownikami z fallbackiem na lokalne.
Przykład 2: Tworzenie roli użytkownika z ACL
Polecenie aaa authorization exec default group tacacs+ local włącza autoryzację EXEC, a ACL ogranicza dostęp do poleceń.
Router# configure terminal Router(config)# aaa authorization exec default group tacacs+ local Router(config)# access-list 10 permit 192.168.1.0 0.0.0.255 Router(config)# line vty 0 4 Router(config-line)# access-class 10 in Router(config-line)# end
ACL 10 pozwala na dostęp tylko z sieci 192.168.1.0/24, zwiększając bezpieczeństwo.
Przykład 3: Konfiguracja księgowania AAA
Polecenie aaa accounting exec default start-stop group tacacs+ włącza księgowanie sesji EXEC.
Router# configure terminal Router(config)# aaa accounting exec default start-stop group tacacs+ Router(config)# end
Księgowanie rejestruje wszystkie sesje, umożliwiając audyt i monitorowanie dostępu.
Przykład 4: Dodanie użytkownika z rolą
Polecenie username operator privilege 5 secret oppass tworzy użytkownika z poziomem 5, ograniczając uprawnienia.
Router# configure terminal Router(config)# username operator privilege 5 secret oppass Router(config)# end
Użytkownik ‚operator’ ma dostęp tylko do poleceń poziomu 5, co implementuje zasadę najmniejszych uprawnień.
Przykład 5: Wyświetlenie statusu AAA
Polecenie show aaa servers wyświetla status serwerów AAA i statystyki połączeń.
Router# show aaa servers
RADIUS: id 1, priority 1, host 192.168.1.10, auth-port 1645, acct-port 1646
State: current UP, duration 123456s, previous duration 0s
Dead: total 0, count 0
TACACS+: id 2, priority 1, host 192.168.1.20, port 49
State: current UP, duration 123456s, previous duration 0s
Dead: total 0, count 0
Wynik pokazuje, że oba serwery (RADIUS i TACACS+) są dostępne i działają prawidłowo.
Podsumowanie
W niniejszym artykule omówiliśmy kluczowe aspekty bezpieczeństwa dostępu na przełącznikach i routerach Cisco, począwszy od poziomów dostępu, poprzez mechanizmy logowania, używanie i szyfrowanie haseł, aż po zaawansowane metody obsługi z wykorzystaniem protokołów AAA. Przedstawione przykłady poleceń CLI stanowią praktyczne narzędzie dla administratorów sieci, umożliwiając implementację bezpiecznych konfiguracji.
Ważne jest, aby pamiętać o regularnym aktualizowaniu haseł, stosowaniu silnych algorytmów szyfrowania oraz integracji z zewnętrznymi serwerami AAA dla większych środowisk. Przestrzeganie tych praktyk znacząco zmniejsza ryzyko nieautoryzowanego dostępu i zapewnia integralność infrastruktury sieciowej.
