(K) Zarządzanie zdalne SSH^

Konfiguracja linii zdalnej (SSH)

Tworzenie użytkowników lokalnych

(config)# username login [privilege 0-15] [algorithm-type {md5 / sha256 / scrypt}] secret hasło

Tworzy nowe konto użytkownika lokalnego, z przypisanym hasłem zabezpieczonym za pomocą wskazanego algorytmu haszującego (opcjonalna komenda „privilege” określa poziom dostępu do systemu Cisco IOS).

(config)# username login [nopassword / noescape / autocommand komenda-CLI / one-time / nohangup]*

Określa opcjonalne właściwości nowo stworzonego konta:
* nopassword – Tworzy użytkownika bez hasła.
* noescape – Blokuje wykonanie znaków „escape”.
* autocommand – Automatycznie po zalogowaniu wykonuje wskazaną komendę, a następnie kończy sesję.
* one-time – Tworzy konto jednorazowego użytku.
* nohangup – Nie rozłącza sesji po wykonaniu komendy „autocommand”.

Połączenie zdalne SSH

Skonfigurowane hasło „enable secret” oraz „enable password” współistnieje z logowaniem za pomocą protokołu SSH.
Do wygenerowania klucza SSH potrzebna jest nazwa FQDN (Fully qualified domain name), która jest tworzona na podstawie nazwy urządzenia „hostname” oraz nazwy domeny „ip domain name”.

(config)# hostname nazwa-urządzenia

Zmienia nazwę urządzenia (Opcja wymagana przy generowaniu klucza SSH).

(config)# ip domain-name nazwa-domeny

Zmienia nazwę domeny (Opcja wymagana przy generowaniu klucza SSH).

(config)# username login [algorithm-type {md5 / sha256 / scrypt}] [privilege 0-15] secret hasło

Tworzy nowe konto użytkownika lokalnego, z przypisanym hasłem zabezpieczonym za pomocą wskazanego algorytmu haszującego (opcjonalna komenda „privilege” określa poziom dostępu do systemu Cisco IOS).

(config)# crypto key generate rsa {usage-keys modulus 360-4096 / ENTER 360-4069}

Generuje klucz rsa, o długości od 360 do 4096 bitów (Aby aktywować protokół SSH w wersji drugiej, należy wygenerować klucz RSA o minimalnej długość 1024 bitów).

(config)# ip ssh version 2

Zmienia wykorzystywaną wersję protokołu SSH, na wersję drugą.

(config)# line vty 0-924 4-924(Zakres konfigurowanych linii VTY)

Przechodzi do poziomu konfiguracji linii zdalnej.

(config-line)# transport input ssh

Aktywuje serwer SSH na linii zdalnej.

(config-line)# transport output ssh

Aktywuje klienta protokołu SSH na linii zdalnej.

(config-line)# login local

Umożliwia logowanie do linii zdalnej za pomocą lokalnej bazy użytkowników.

# show ip ssh

Wyświetla informacje dotyczące konfiguracji protokołu SSH, w tym wygenerowany klucz RSA.

Opcjonalna metoda generowania kodu RSA

(config)# crypto key generate rsa usage-keys label nazwa-klucza modulus 360-4096

Generuje klucz RSA pod określoną nazwą.

(config)# ip ssh rsa keypair-name nazwa-klucza

Przypisuje klucz RSA do protokołu SSH.

Zaawansowana konfiguracja protokołu SSH

(config)# ip ssh source-interface interfejs

Określa źródłowy interfejs sieciowy względem komunikacji SSH.

(config)# ip ssh authentication-retries 0-5

Xxx

(config)# ip ssh stricthostkeycheck

Xxx

(config)# ip ssh authentication-retries 0-5

Określa kiedy system IOS zerwie połączenie SSH po nieudanej próbie uwierzytelnienia użytkownika.

(config)# ip ssh time-out 1-120(120)(Sekundy)

Określa czas oczekiwania serwera SSH, na odpowiedź klienta, w momencie negocjacji klucz sesji oraz metod szyfrowania.

(config)# ip ssh dh min size {2048 / 4096}

Xxx

Zarządzanie SSH a logi systemowe

(config)# ip ssh logging events

Rozpoczyna wysyłane logging-ów, informujących o wydarzeniach związanych z protokołem SSH.

(config)# login on-success [{log / trap}] [every 1-65535]

Umożliwia monitorowanie procesu logowania do systemu ISO, informując o pozytywnym jego zakończeniu. Pod-komenda „log” zapisuje w pamięci urządzenia oraz wyświetla na konsoli CLI potwierdzenie o zalogowaniu się użytkownika, „trap” generuje wiadomość protokołu SNMP, natomiast „etery” określa częstotliwość w wysyłaniu powiadomień.

(config)# login on-failure [{log / trap}] [every 1-65535]

Umożliwia monitorowanie procesu logowania do systemu ISO, informując o negatywnym jego zakończeniu. Pod-komenda „log” zapisuje w pamięci urządzenia oraz wyświetla na konsoli potwierdzenie o niezalogowaniu się użytkownika, „trap” generuje wiadomość protokołu SNMP, natomiast „etery” określa częstotliwość w wysyłaniu powiadomień.

Konfiguracja serwera / klienta SSH

(config)# ip ssh {server / client} algorithm encryption {aes128-ctr / aes192-ctr / aes256-ctr / aes128-cbc / 3des-cbc / aes192-cbc / aes256-cbc}

Xxx

(config)# ip ssh {server / client} algorithm mac {hmac-sha1 / hmac-sha1-96 / hmac-sha2-256 / hmac-sha2-512}

Xxx

(config)# ip ssh {server / client} algorithm kex {diffie-hellman-group14-sha1 / diffie-hellman-group-exchange-sha1}

Xxx

(config)# ip ssh server algorithm hostkey {x509v3-ssh-rsa / ssh-rsa}

Xxx

(config)# ip ssh server algorithm authentication publickey password keyboard

Xxx

(config)# ip ssh server algorithm publickey {[ssh-rsa / x509v3-ssh-rsa]}

Xxx

# show ip ssh

Wyświetla informacje dotyczące konfiguracji protokołu SSH, w tym wygenerowany klucz RSA.

Opcjonalna konfiguracja linii zdalnej (SSH)

Ustawienia linii VTY

Po zalogowaniu się do systemu Cisco IOS za pomocą połączenia konsolowego, system zostanie załadowany z poziomu User Mode. Tymczasem w przypadku logowania za pomocą połączenia zdalnego SSH bądź telnet, system zostanie załadowany z poziomu uprzywilejowanego Enable Mode.

(config)# line vty 0-924 4-924(Zakres konfigurowanych linii VTY)

Przechodzi do poziomu konfiguracji linii zdalnej.

(config-line)# exec-timeout 0-35791(Minuty) 0-2147483(Sekundy)

Ustawia limit czasu, przez jaki połączenie zdalne VTY, pozostanie aktywne w przypadku bezczynności użytkownika (Wartość 0 oznacza czas nieskończony).

(config-line)# logging synchronous

Synchronizuje funkcję wyświetlania loginów systemowych z poziomu CLI.

(config-line)# history size 0-256

Określa ilość komend CLI zapisywanych w pamięci urządzenia (Komend wykorzystanych przez użytkownika).

# terminal history size 0-256

Określa ilość komend CLI zapisywanych w pamięci urządzenia (Komend CLI wykorzystanych przez użytkownika).

# show history

Wyświetla zawartość historii wykonanych komend.

Konfiguracja dodatkowych metod zabezpieczania linii dostępowych

Zdefiniowanie zasad bezpieczeństwa dotyczących haseł jak i metod uwierzytelniania hasłem

(config)# security passwords min-length 0-16

Określa minimalną długość hasła.

(config)# login on-success [{log / trap}] [every 1-65535]

Aktywuje funkcję monitorowania procesu logowania do systemu ISO, informując o pozytywnym jego zakończeniu. Pod-komenda „log” zapisuje w pamięci urządzenia jak i wyświetla na konsoli CLI, potwierdzenie o zalogowaniu się użytkownika, „trap” generuje wiadomość protokołu SNMP natomiast komenda „etery” określa częstotliwość w wysyłaniu powiadomień.

(config)# login on-failure [{log / trap}] [every 1-65535]

Aktywuje funkcję monitorowania procesu logowania do systemu ISO, informując o negatywnym jego zakończeniu. Pod-komenda „log” zapisuje w pamięci urządzenia jak i wyświetla na konsoli CLI, potwierdzenie o zalogowaniu się użytkownika, „trap” generuje wiadomość protokołu SNMP natomiast komenda „etery” określa częstotliwość w wysyłaniu powiadomień.

(config)# login block-for 1-65535(sekundy) attempts 1-65535(Próby) within 1-65535(sekundy)

Określa trzy wartości zabezpieczające przed próbą złamania hasła: Czas blokady, ilość prób logowania oraz Czas logowania. Przykładowa komenda wygląda następująco [login block-for 180 attempts 3 within 120] a oznacza, że jeśli w ciągu 120 sekund użytkownik poda 3 razy błędne hasło, konsola zostanie zablokowana na 180 sekund.
W celu zablokowania dostępu do konsoli CLI, po wystąpieniu określonej w komendzie ilości błędnych logowań. System Cisco IOS stworzy nową listę ACL "sl_def_acl". Która to zawiera następujące wpisy:
Extended IP access list sl_def_acl
    10 deny tcp any any eq telnet log
    20 deny tcp any any eq www log
    30 deny tcp any any eq 22 log
    40 permit ip any any  log

(config)# ip ssh authentication-retries 0-5

Określa kiedy system IOS zerwie połączenie SSH po nieudanej próbie uwierzytelnienia użytkownika.

(config)# ip ssh time-out 1-120(120)(Sekundy)

Określa czas oczekiwania serwera SSH, na odpowiedź klienta, w momencie negocjacji klucz sesji oraz metod szyfrowania.

(config)# login quiet-mode access-class ACL-ID

Umożliwia zmianę domyślnie tworzonej listy ACL (sl_def_acl), na inną stworzoną przez administratora.

(config)# login delay 1-10(sekundy)

Określa czas opóźnienia pomiędzy kolejnymi próbami logowania do systemu (Niezależnie od tego czy próba logowania była udana czy nie).

# show login

Wyświetla konfigurację ustawień logowania do systemu Cisco IOS.
Komendy [login block-for], [login quiet-mode] oraz [login delay] dotyczą jedynie połączeń zdalnych VTY.

Ograniczenie dostępu do linii VTY za pomocą listy ACL

Konfiguracja list ACL została opisana w artykule: Konfiguracja List ACL.

(config)# ip access-list standard ACL-ID

Tworzy nową podstawową listę ACL.

(config-std-nacl)# remark opis

Dodaje komentarz administratora, do konfigurowanej listy ACL (Do jednej listy ACL może zostać dodana dowolna liczbą komentarzy, będą one wyświetlane zgodnie z kolejnością wpisywania, wraz z właściwymi wpisami wpisami ACL).

(config-std-nacl)# permit sieć maska

Określa grupę adresów IP, jaka zostanie dopuszczona do zdalnego zarządzania systemem Cisco IOS.

(config)# line vty 0-924 4-924(Zakres konfigurowanych linii VTY)

Przechodzi do poziomu konfiguracji linii zdalnej VTY.

(config-line)# access-class ACL-ID in

Przypisuje listę ACL, do konfigurowanej linii VTY.

(config-line)# ipv6 access-class Nazwa-ACL in

Przypisuje listę ACL (Względem protokołu IPv6), do konfigurowanej linii VTY.

Zmiana domyślnego portu w komunikacji SSH

(config)# ip ssh port 2000-10000(Numer portu)(22) rotary 1-127(Dolny zakres) 1-127(Górny zakres)

Określa port warstwy czwartej modelu OSI, na którym będzie prowadzona komunikacja protokołu SSH.
Komenda [ip ssh port] nie blokuje komunikacji protokołu SSH na domyślnym porcie 22. Aby zablokować port domyślny należy stworzyć listę dostępu ACL, blokująca cały nadchodzący ruch sieciowy na wskazanym porcie warstwy czwartej (22).

Konfiguracja list ACL została opisana w artykule: Konfiguracja List ACL.

(config)# access-list ACL-ID permit tcp any any eq 2000-10000(Numer portu)

Tworzy listę ACL, przepuszczającą jedynie ruch kierowany na nowo zdefiniowany port TCP, dzięki czemu sesje SSH nadchodzące z domyślnego portu (22) zostaną zablokowane.

(config)# line vty 0-924 4-924(Zakres konfigurowanych linii VTY)

Przechodzi do poziomu konfiguracji linii zdalnej.

(config-line)# transport input ssh

Aktywuje protokół SSH na linii zdalnej.

(config-line)# rotary 1-127

Przypisuje określony w komendzie [ip ssh port] port TCP do linii VTY.

(config-line)# access-list ACL-ID in

Przypisuje listę ACL (Filtrującą domyślny ruch na porcie 22) do linii VTY.

# show ip ssh

Wyświetla informacje dotyczące konfiguracji protokołu SSH, w tym wygenerowany klucz RSA.

# show ssh

Wyświetla aktywne sesje protokołu SSH.

Klient protokołu SSH w systemie IOS

# ssh -l login adres-IP

Nawiązuje połączenie SSH, z określonym urządzeniem (IP), przy pomocy wskazanego w komendzie loginu.

# show ssh

Wyświetla aktywne sesje protokołu SSH.

Wysyłanie wiadomości

# send vty [numer-VTY / * ]

Wysyła wiadomość na określoną linie VTY / wszystkie aktywne linie VTY.
* CTRL/Z –Wysyła wiadomość napisaną przez administratora.
* CTRL/C –Usuwa wiadomość napisaną przez administratora.

Komendy Show, Clear

Komendy Show

# show users

Wyświetla użytkowników zalogowanych do systemu Cisco IOS.

# show terminal

Wyświetla ustawienia konsoli [exec-timeout / terminal history size].

# show privilege

Wyświetla poziom dostępu, obecnie zalogowanego użytkownika.

# show login

Wyświetla informacje o zasadach bezpiecznego uwierzytelniania użytkowników [ACL].

# show crypto key mypubkey rsa

Wyświetla wygenerowane klucze RSA.

Komendy SHOW SSH

# show ip ssh

Wyświetla informacje dotyczące konfiguracji protokołu SSH, w tym wygenerowany klucz RSA.

# show ssh

Wyświetla aktywne sesje protokołu SSH.

# show line

Wyświetla linie VTY.

# show crypto key mypubkey rsa

Wyświetla wygenerowane klucze RSA.

Komendy CLEAR

# clear line vty 0-15

Czyści określoną linie VTY z sesji zdalnych.

Pozostałe tematy związane z zarządzaniem systemem IOS

Zarządzanie zdalne oraz konsolowe

Konfiguracja protokołów przesyłu danych

PDFPRINT

Robert T Kucharski

Cisco Network Engineer in GPW.

Dodaj komentarz