Bezpieczeństwo systemów informatycznych



Podobne dokumenty
SSH. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Serwer SSH. Wprowadzenie do serwera SSH Instalacja i konfiguracja Zarządzanie kluczami

Protokoły zdalnego logowania Telnet i SSH

ZiMSK. Konsola, TELNET, SSH 1

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 11

Bezpieczeństwo systemów informatycznych

Konfiguracja IPSec Brama IPSec w Windows 2003 Server

SSH - Secure Shell Omówienie protokołu na przykładzie OpenSSH

Bezpieczeństwo sieci komputerowych. dr inż. Andrzej Chmielewski Wydział Informatyki Politechniki Białostockiej

Stos TCP/IP. Warstwa aplikacji cz.2

1. Konwencje przyjęte w instrukcji

Protokół SSH. Patryk Czarnik

Git - podstawy. Błażej Kowalczyk. Koło Naukowe Robotyków KoNaR. 7 listopada 2014

Instalacja i konfiguracja serwera SSH.

11. Autoryzacja użytkowników

Protokół SSH. Patryk Czarnik. Bezpieczeństwo sieci komputerowych MSUI 2009/10. Wydział Matematyki, Informatyki i Mechaniki Uniwersytet Warszawski

12. Wirtualne sieci prywatne (VPN)

4. Podstawowa konfiguracja

Uwierzytelnianie użytkowników sieci bezprzewodowej z wykorzystaniem serwera Radius (Windows 2008)

System operacyjny Linux

Bezpieczeństwo Systemów Komputerowych. Wirtualne Sieci Prywatne (VPN)

VPN Virtual Private Network. Użycie certyfikatów niekwalifikowanych w sieciach VPN. wersja 1.1 UNIZETO TECHNOLOGIES SA

Laboratoria zdalne ZTiT

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Dostęp zdalny

Zdalne logowanie do serwerów

DESlock+ szybki start

1 Tworzenie własnego zaproszenia dla powłoki bash

System Kancelaris. Zdalny dostęp do danych

Laboratorium 3. Zaawansowana konfiguracja i zarządzanie zaporami sieciowymi D-Link NetDefend cz.3.

ZAŁĄCZNIK Nr 1 do CZĘŚCI II SIWZ

Sieci VPN SSL czy IPSec?

Serwer SSH. Rozdział Podstawowakonfiguracja

ZAŁĄCZNIK Nr 3 do CZĘŚCI II SIWZ

Tunelowanie, VPN i elementy kryptografii

Laboratorium nr 6 VPN i PKI

Połączenie VPN Host-LAN IPSec wykorzystaniem DrayTek Smart VPN Client

Wykład 4 Bezpieczeństwo przesyłu informacji; Szyfrowanie

SMB protokół udostępniania plików i drukarek

PuTTY. Systemy Operacyjne zaawansowane uŝytkowanie pakietu PuTTY, WinSCP. Inne interesujące programy pakietu PuTTY. Kryptografia symetryczna

VLAN. VLAN (ang. Virtual Local Area Network) - sieć komputerowa wydzielona logicznie w ramach innej, większej sieci fizycznej

Tunelowanie, VPN i elementy kryptografii

Instrukcja konfiguracji i uruchamiania połączenia VPN z systemami SAP

Połączenie VPN LAN-LAN IPSec X.509 (stały IP > stały IP)

1 Tworzenie własnego zaproszenia dla powłoki bash

Wykład 4. Metody uwierzytelniania - Bezpieczeństwo (3) wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Problemy z bezpieczeństwem w sieci lokalnej

VPN Host-LAN L2TP over IPSec z wykorzystaniem DrayTek Smart VPN Client. 1. Konfiguracja serwera VPN. 2. Konfiguracja klienta VPN

Systemy Operacyjne zaawansowane uŝytkowanie pakietu PuTTY, WinSCP. Marcin Pilarski

MBUM #2. Zarządzanie kopiami konfiguracji RouterOS. Jacek Rokicki

System operacyjny UNIX - użytkownicy. mgr Michał Popławski, WFAiIS

Laboratorium - Przechwytywanie i badanie datagramów DNS w programie Wireshark

PODSTAWOWA KONFIGURACJA LINKSYS WRT300N

Połączenie VPN Host-LAN IPSec z wykorzystaniem Windows Vista/7. 1. Konfiguracja routera. 2. Konfiguracja klienta VPN. 3. Zainicjowanie połączenia

Usługi sieciowe systemu Linux

Marcin Szeliga Sieć

Wszystkie parametry pracy serwera konfigurujemy w poszczególnych zakładkach aplikacji, podzielonych wg zakresu funkcjonalnego.

Połączenie VPN Host-LAN L2TP over IPSec z wykorzystaniem Windows Vista/7

Metryka dokumentu. str. 2. Tytuł. CEPiK 2 dostęp VPN. Centralny Ośrodek Informatyki. Zatwierdzający. Wersja Data Kto Opis zmian.

VPN Virtual Private Network. Użycie certyfikatów niekwalifikowanych. w sieciach VPN. wersja 1.1 UNIZETO TECHNOLOGIES SA

SAS Institute TECHNICAL SUPPORT )

Tunelowanie, VPN i elementy kryptografii

Tunelowanie, VPN i elementy kryptografii

Tworzenie połączeń VPN.

Wprowadzenie do PKI. 1. Wstęp. 2. Kryptografia symetryczna. 3. Kryptografia asymetryczna

Ochrona danych i bezpieczeństwo informacji

Połączenie VPN Host-LAN IPSec wykorzystaniem routera Vigor jako klienta VPN

Hosting WWW Bezpieczeństwo hostingu WWW. Dr Michał Tanaś (

VPN Host-LAN IPSec X.509 z wykorzystaniem DrayTek Smart VPN Client

PROBLEMATYKA BEZPIECZEŃSTWA SIECI RADIOWYCH Algorytm szyfrowania AES. Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

PROFESJONALNE SYSTEMY BEZPIECZEŃSTWA

KUS - KONFIGURACJA URZĄDZEŃ SIECIOWYCH - E.13 ZABEZPIECZANIE DOSTĘPU DO SYSTEMÓW OPERACYJNYCH KOMPUTERÓW PRACUJĄCYCH W SIECI.

Laboratorium nr 4 Sieci VPN

Połączenie VPN Host-LAN PPTP z wykorzystaniem Windows XP. 1. Konfiguracja serwera VPN. 2. Konfiguracja klienta VPN

Opis komunikacji na potrzeby integracji z systemem klienta (12 kwiecień, 2007)

Zestawienie tunelu VPN po protokole IPSec pomiędzy klientem VPN - Draytek Smart VPN Client za NAT-em, a routerem Draytek

Sposoby zdalnego sterowania pulpitem

ZADANIE.07. Procesy Bezpieczeństwa Sieciowego v.2011alfa ZADANIE.07. VPN RA Virtual Private Network Remote Access (Router) - 1 -

# ip addr add dev eth1 $ sudo ip addr add dev eth1 Uwaga: Ustawienia te zostaną utracone po restarcie systemu

Wykład 3 Bezpieczeństwo przesyłu informacji; Szyfrowanie

Połączenie VPN LAN-LAN IPSec (stały IP > stały IP)

PROBLEMATYKA BEZPIECZEŃSTWA SIECI RADIOWYCH Algorytm szyfrowania AES. Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Konfiguracja serwera FreeRADIUS

Konfiguracja aplikacji ZyXEL Remote Security Client:

Przekierowanie portów w routerze - podstawy

Czym jest router?... 3 Vyatta darmowy router... 3 Vyatta podstawowe polecenia i obsługa... 3 Zarządzanie użytkownikami... 3 Uzupełnianie komend...

Praca z programami SAS poza lokalną siecią komputerową UZ. Zestawienie tunelu SSH oraz konfiguracja serwera proxy w przeglądarce WWW

Konfiguracja połączenia VPN do sieci Akademii Morskiej

SSH: Identyfikacja Serwera Autor: Damian Zelek, Data: 20 grudzień 2004

Połączenie VPN LAN-LAN IPSec (tryb agresywny)

Zastosowania PKI dla wirtualnych sieci prywatnych

Laboratorium nr 5 Sieci VPN

Telefon IP 620 szybki start.

Praca z programami SAS poza lokalną siecią komputerową UZ. Zestawienie tunelu SSH oraz konfiguracja serwera proxy w przeglądarce WWW

SYSTEM ARCHIWIZACJI DANYCH

Połączenie VPN SSL Web Proxy. 1. Konfiguracja serwera VPN 1.1. Ustawienia ogólne 1.2. Profile SSL Web Proxy 1.3. Konto SSL 1.4. Grupa użytkowników

Połączenie VPN Host-LAN SSL z wykorzystaniem motp. 1. Aplikacje motp 1.1. DroidOTP 1.2. Mobile-OTP. 2. Konfiguracja serwera VPN

Problemy z bezpieczeństwem w sieci lokalnej

Połączenie VPN LAN-LAN IPSec (tryb agresywny)

VPN dla CEPIK 2.0. Józef Gawron. (wirtualna sieć prywatna dla CEPIK 2.0) Radom, 2 lipiec 2016 r.

Konfiguracja bezpiecznego tunelu IPSec VPN w oparciu o bramę ZyWall35 i klienta ZyXEL RSC (Remote Security Client).

Transkrypt:

ĆWICZENIE SSH 1. Secure Shell i protokół SSH 1.1 Protokół SSH Protokół SSH umożliwia bezpieczny dostęp do zdalnego konta systemu operacyjnego. Protokół pozwala na zastosowanie bezpiecznego uwierzytelniania użytkownika i szyfrowanie transmisji. Korzysta z portu TCP o numerze 22. Ponadto możliwe jest też szyfrowane tunelowanie ruchu pomiędzy arbitralnymi portami TCP, co umożliwia tworzenie tuneli wirtualnych na poziomie aplikacyjnym (propagacja połączeń). Transmitowane dane mogą podlegać automatycznej kompresji. 1.2 Program ssh Program ssh zastępuje w działaniu programy z rodziny remote operations (r ), jak rlogin: local> ssh l username remotehost lub rsh, np.: local> ssh l username remotehost "cat /etc/hostname" Umożliwia jednakże osiągnięcie podwyższonego stopnia bezpieczeństwa przy dostępie do zdalnego konta. Cała transmisja jest bowiem szyfrowana (łącznie w procedurą logowania, a więc i ewentualnym przesłaniem hasła), a do weryfikacji tożsamości użytkownika również stosowane są mechanizmy kryptograficzne. Nazwa użytkownika zdalnego konta może być podana w postaci username@remotehost, np.: local> ssh username@remotehost "cat /etc/hostname" 1.2.1 Metody uwierzytelniania użytkownika. Program ssh podejmuje próby uwierzytelnienia sesji w następującej kolejności: 1. kryptograficzne uwierzytelnienie obu systemu zdalnego metodą klucza asymetrycznego wraz z ustaleniem symetrycznego klucza sesji (metodą Dieffiego-Hellmana), 2. uwierzytelnienie użytkownika metodą challenge-response z asymetrycznym kluczem, 3. uwierzytelnianie klasyczne poprzez hasło systemowe użytkownika zdalnego (komunikacja jest jednak szyfrowana, więc hasło nie jest transmitowane tekstem jawnym). Opcjonalnie można wykorzystać mechanizm zaufania, podobnie jak poznany wcześniej dla poleceń remote operations bazujący na plikach /etc/hosts.equiv oraz ~/.rhosts. Jednak, z powodu wysokiego niebezpieczeństwa jego stosowania, protokół SSH stosuje swój własny system zaufania, wykorzystujący odpowiednio pliki /usr/local/etc/shosts.equiv oraz ~/.shosts. Mimo tego, stosowanie mechanizmu zaufania nie jest rekomendowane i standard SSH2 protokołu nie obsługuje tego mechanizmu. Kryptograficzne uwierzytelnianie systemu zdalnego wykorzystuje zbiór kluczy publicznych zdalnych systemów znanych systemowi lokalnemu, przechowywanych w plikach /usr/local/etc/ssh_known_hosts oraz ~/.ssh/known_hosts. Mechanizm szyfrowania asymetrycznego i tajność kluczy prywatnych wystarcza do obrony systemu przed atakami typu DNS spoofing, IP spoofing czy routing spoofing. Kryptograficzne uwierzytelnianie zdalnego użytkownika wykorzystuje zbiór kluczy publicznych zaufanych użytkowników, przechowywanych w pliku ~/.ssh/authorized_keys. Weryfikacja tożsamości ćwiczenie: SSH (wersja 3.131212) strona 1/5

Politechnika Poznańska metodą challenge-response (przy zachowaniu tajności kluczy prywatnych użytkowników) umożliwia bezpieczne uwierzytelnianie 1. 1.2.2 Stosowane algorytmy kryptograficzne SSH dokonuje uwierzytelnienia kryptograficznego przy pomocy algorytmu RSA, DSA lub ECDSA. Do szyfrowania komunikacji stosowane są następujące symetryczne algorytmy: AES (wybierany domyślnie w SSH2), 3DES, Blowfish, Twofish, CAST128, IDEA, Arcfour. Do zapewnienia integralności komunikacji: HMAC-MD5 oraz HMAC-SHA1. Algorytmy te wybiera się odpowiednią opcją pliku konfiguracyjnego ~/.ssh/config (opcje Ciphers, MACs) 1.2.3 Polecenie scp Polecenie zdalnego kopiowania plików scp zastępuje rcp z rodziny remote operations. Można je uruchomić z identyczną składnią jak w rodziny remote operations, tzn.: local> scp l username remotehost:/etc/hostname./remotename.txt lub w typowy dla ssh, bardziej czytelny sposób np.: local> scp username@remotehost:/etc/hostname./remotename.txt Polecenie scp obsługuje wszystkie wymienione wyżej mechanizmy uwierzytelniania zdalnego dostępu. 1.3 Zarządzanie kluczami kryptograficznymi Do tworzenia pary kluczy kryptograficznych służy program ssh-keygen. Zapisuje on klucz prywatny użytkownika wygenerowany dla algorytmu DSA (ew. ECDSA lub RSA) w pliku ~/.ssh/id_dsa (odpow. ~/.ssh/id_ecdsa lub ~/.ssh/id_rsa), a klucz publiczny w pliku ~/.ssh/id_dsa.pub (~/.ssh/id_ecdsa.pub lub ~/.ssh/id_rsa.pub). Dla dodatkowego zabezpieczenia, klucz prywatny może być zapisany w pliku w postaci zaszyfrowanej, domyślnie algorytmem 3DES. Posługiwanie się wówczas tym kluczem wymaga każdorazowo podania sekwencji traktowanej jako rodzaj hasła. local> ssh keygen t dsa Generating public/private dsa key pair. Enter file in which to save the key (~/.ssh/id_dsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in ~/.ssh/id_dsa. Your public key has been saved in ~/.ssh/id_dsa.pub. The key fingerprint is: 5c:13:fc:48:75:19:9b:27:ec:5c:4f:d3:b1:a2:6c:da user@host.domain Polecenie ssh-copy-id remotehost skopiuje klucz publiczny na konto w zdalnym systemie. 1.3.1 Zarządzanie kluczami zdalnych systemów Program ssh-keygen jest również wykorzystywany do generacji kluczy systemu, prywatnego oraz publicznego, odpowiednio w plikach: /usr/local/etc/ssh_hosts_key i /usr/local/etc/ssh_hosts_key.pub. Ponadto pozwala zarządzać bazą kluczy known-hosts: wyświetlenie klucza systemu o nazwie remotehost: local> ssh keygen F remotehost usunięcie klucza systemu o nazwie remotehost: local> ssh keygen R remotehost 1 Aby umożliwić uwierzytelnienie kryptograficzne na zdalnym serwerze należy swój klucz publiczny umieścić na docelowym koncie (zdalnego serwera w pliku ~/.ssh/authorized_keys), np. poleceniem ssh-copy-id. strona 2/5 ćwiczenie: SSH

1.4 Tunele wirtualne warstwy aplikacji (TCP port forwarding) Istnieje możliwość zbudowania tunelu wirtualnego pomiędzy dwoma komputerami (np. bramami typu BastionHost), przechodzącego przez sieć niezabezpieczoną (np. publiczną), Tunel ten może być następnie wykorzystywany do bezpiecznej komunikacji w warstwie aplikacyjnej pomiędzy innymi komputerami (np. klientem znajdującym się przed pierwszą bramą i serwerem za drugą bramą). > ssh L localport:server:serviceport Takie polecenie utworzy tunel pomiędzy bramami i, który umożliwi komunikację poprzez port localport z usługą serviceport na komputerze server (-L = Local port forwarding). Komunikacja jest zaszyfrowana na odcinku -. localport port TCP lokalnego systemu (bramy ) server nazwa (domenowa) lub adres (IP) komputera, którego port udostępniamy poprzez tunel wirtualny (za bramą ) serviceport udostępniany zdalnie port TCP na serwerze server Propagowanie połączeń w tunelu przedstawia schematycznie poniższy rysunek. server lp 22 sp Identyczny efekt do poprzedniego ma polecenie zestawiające tunel od strony przeciwnej: > ssh R remoteport:server:serviceport (-R = Remote port forwarding) remoteport port TCP zdalnego systemu (bramy ) server nazwa (domenowa) lub adres (IP) komputera, którego port udostępniamy poprzez tunel wirtualny (przed bramą ) serviceport udostępniany zdalnie port TCP na serwerze server Istnieje także tunel umożliwiający wykorzystanie SSH jako pełne proxy aplikacyjne (SOCKS): lp 22 Efekt taki uzyskamy poleceniem: > ssh -D [bind_address:]localport (-D = application-level port forwarding) bind_address adres lokalnego interfejsu do nasłuchiwania (bramy ) localport port TCP lokalnego systemu (bramy ) ćwiczenie: SSH strona 3/5

Politechnika Poznańska 1.5 Tunele wirtualne warstwy sieciowej (VPN) Istnieje możliwość zbudowania tunelu wirtualnego pomiędzy dwoma komputerami (np. bramami typu BastionHost), przechodzącego przez sieć niezabezpieczoną (np. publiczną), Tunel ten może być następnie wykorzystywany do bezpiecznej komunikacji w warstwie sieciowej (IP) pomiędzy innymi komputerami (np. klientem znajdującym się przed pierwszą bramą i serwerem za drugą bramą). > ssh w local_tun[:remote_tun] Takie polecenie utworzy tunel VPN pomiędzy bramami i, który umożliwi tunelowanie komunikacji pomiędzy wirtualnymi interfejsami local_tun i remote_tun. Dodatkowo należy ustalić adresację IPv4 lub IPv6 na tych interfejsach oraz odpowiedni routing pakietów. Komunikacja jest zaszyfrowana na odcinku -. Do prawidłowego działania musi zostać ustanowione pomiędzy administratorami obu systemów. local_tun numer wirtualnego interfejsu po stronie lokalnej (lub any najbliższy wolny numer wirtualnego interfejsu) remte_tun numer wirtualnego interfejsu po stronie zdalnej Propagowanie połączeń w tunelu przedstawia schematycznie poniższy rysunek. server tun0 tun0 1.6 Plik konfiguracyjny Istnieje możliwość skonstruowania profili połączeń. Plik z profilami należy zapisać ~/.ssh/config. Taki plik konfiguracyjny ma następującą strukturę (Hostname jest zbędny jeżeli nazwa profilu odpowiada nazwie zdalnego systemu): Host nazwa_profilu Hostname nazwa_systemu User nazwa_użytkownika Port numer_portu LocalForward localport server:serviceport RemoteForward remoteport server:serviceport DynamicForward localport Host nazwa_kolejnego_profilu Uruchomienie tak zdefiniowanego profilu jest następujące: ssh nazwa_profilu. 1.6.1 Proxy Bardzo ciekawą opcją jest możliwość definiowania komend proxy w pliku konfiguracyjnym: Host host3 ProxyCommand ssh A q e none W host3:22 host2 Wydanie polecenia ssh host3 spowoduje zestawienie tunelu do host2 i przez ten tunel zostanie zestawione z host3. strona 4/5 ćwiczenie: SSH

1.6.2 Wildcards w pliku konfiguracyjnym Istnieje możliwość wykorzystania symboli wieloznacznych w profilach w pliku konfiguracyjnym. Na przykład, możemy zdefiniować profil dotyczący wszystkich systemów należących do konkretnej domeny: Host *.cs.put.poznan.pl User adminek Port 55555 Wykonanie polecenia ssh unixlab.cs.put.poznan.pl spowoduje zastosowanie powyższego profilu. Inna ciekawa możliwość to połączenie znaków wieloznacznych i komendy proxy w następujący sposób: Host *.cs.put.poznan.pl ProxyCommand ssh q e none A W %h:22 bramka.cs.put.poznan.pl Wykonanie polecenia ssh unixlab.cs.put.poznan.pl spowoduje zestawienie tunelu do bramka.cs.put.poznan.pl i dopiero w tym tunelu zestawienie połączenia do unixlab.cs.put.poznan.pl. ćwiczenie: SSH strona 5/5