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

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

ZiMSK. Konsola, TELNET, SSH 1

Usługi sieciowe systemu Linux

Instalacja i konfiguracja serwera SSH.

System operacyjny Linux

Zadanie1: W serwisie internetowym Wikipedii poszukaj informacje na temat usługi ssh. Ponadto sprawdź systemową pomoc tego polecenia (man ssh).

Bezpieczeństwo systemów informatycznych

Protokoły zdalnego logowania Telnet i SSH

Stos TCP/IP. Warstwa aplikacji cz.2

Protokół SSH. Patryk Czarnik

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

Konfiguracja klientów SSH - PuTTY i WinSCP

T: Zabezpieczenie dostępu do komputera.

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

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

MODEL WARSTWOWY PROTOKOŁY TCP/IP

Zadanie1: Odszukaj w serwisie internetowym Wikipedii informacje na temat protokołu http.

Telnet. Telnet jest najstarszą i najbardziej elementarną usługą internetową.

Sieciowa instalacja Sekafi 3 SQL

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

Poradnik cz.1 Użycie połączenia SSH

4. Podstawowa konfiguracja

Konfiguracja IPSec Brama IPSec w Windows 2003 Server

Graficzny terminal sieciowy ABA-X3. część druga. Podstawowa konfiguracja terminala

Uruchomienie Raspberry Pi

Podstawy konfiguracji środowiska graficznego. Umieszczamy kursor na pustym obszarze na pulpicie i naciskamy prawy guzik:

Sprawozdanie. (notatki) Sieci komputerowe i bazy danych. Laboratorium nr.3 Temat: Zastosowanie protokołów przesyłania plików

Wstęp. Skąd pobrać program do obsługi FTP? Logowanie

Instrukcja instalacji Control Expert 3.0

Wykład 3 / Wykład 4. Na podstawie CCNA Exploration Moduł 3 streszczenie Dr inż. Robert Banasiak

Zdalny pulpit i system LINUX

Instrukcja konfiguracji funkcji skanowania

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

26.X.2004 VNC. Dawid Materna

Tomasz Greszata - Koszalin

ABA-X3 PXES v Podręczna instrukcja administratora. FUNKCJE SIECIOWE Licencja FDL (bez prawa wprowadzania zmian)

Protokół HTTP (2) I) Wprowadzenie. II) Użyte narzędzia: III) Kolejność działań

Tomasz Greszata - Koszalin

SIP Studia Podyplomowe Ćwiczenie laboratoryjne Instrukcja

Protokoły internetowe

ArtPlayer oprogramowanie do odtwarzania plików video sterowane Artnet/DMX V1.0.1

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

INSTRUKCJA OBSŁUGI DLA SIECI

Zanim zaczniesz. Warto ustawić kartę sieciową naszego serwera.

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE. Tryb konsolowy ćwiczenie b

Serwer SAMBA UDOSTĘPNIANIE UDZIAŁÓW SIECIOWYCH PIOTR KANIA

Internetowy serwis Era mail Aplikacja sieci Web

Zdalne logowanie do serwerów

Wykład 5: Najważniejsze usługi sieciowe: DNS, SSH, HTTP, . A. Kisiel,Protokoły DNS, SSH, HTTP,

INSTRUKCJA KONFIGURACJI KLIENTA POCZTOWEGO

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer;

Praca zdalna z poziomu systemu Linux

Sieci komputerowe. Wykład dr inż. Łukasz Graczykowski

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

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

Instalacja i konfiguracja serwera telnet.

Qmail radość listonosza. Autorzy: Bartosz Krupowski, Marcin Landoch IVFDS

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

Problemy techniczne. Jak udostępnić dane na potrzeby wykonania usługi serwisowej lub wdrożeniowej? Zabezpieczanie plików hasłem

Sieci komputerowe i bazy danych

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

Narzędzia klienta usługi archiwizacji

FTP przesył plików w sieci

I. Uruchomić setup i postępować według instrukcji

Konfiguracja vsftpd ( Very Secure FTP Server )

Zadanie1: Odszukaj w serwisie internetowym Wikipedii informacje na temat protokołu ftp.

Linux -- u mnie działa!

2014 Electronics For Imaging. Informacje zawarte w niniejszej publikacji podlegają postanowieniom opisanym w dokumencie Uwagi prawne dotyczącym tego

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

- udostępnić anonimowym użytkownikowi Internetu pliki przez serwer FTP,

BlackHole. Bezpieczne Repozytorium Ważnych Zasobów.

SZYBKI START. Tworzenie nowego połączenia w celu zaszyfrowania/odszyfrowania danych lub tekstu 2. Szyfrowanie/odszyfrowanie danych 4

MONITOROWANIE WINDOWS Z NETCRUNCHEM 7 P A G E 1

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

Zastosowania matematyki w systemie operacyjnym Linux

Pomoc dla r.

Ćwiczenie 6 Przełącznik zarządzalny T2500G-10TS (TL-SG3210).

Administrator systemu Linux program kursu. Wstęp. Część I Szybki wstęp do Linuksa. Część II Praca w środowisku tekstowym

Instrukcja połączenia z programem Compas LAN i import konfiguracji

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

Laboratorium nr 6 VPN i PKI

Laboratorium nr 4 Sieci VPN

TECHNOLOGIA INFORMACYJNA

Lab3 - Zastosowania protokołów przesyłania plików

INFO-R. Instalacja pakietu programów obsługujących platformę

Bezpieczeństwo systemów informatycznych

Pracownia internetowa w szkole ZASTOSOWANIA

DESlock+ szybki start

Konfiguracja poczty IMO w programach Microsoft Outlook oraz Mozilla Thunderbird

MikroTik Serwer OpenVPN

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Internetowe Usługi Informacyjne

Ochrona danych i bezpieczeństwo informacji

Fiery Remote Scan. Uruchamianie programu Fiery Remote Scan. Skrzynki pocztowe

System zdalnego dostępu (VPN) do sieci Wydziału Elektrycznego PW

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

Współpraca z platformą Emp@tia. dokumentacja techniczna

Zarządzanie Infrastrukturą IT. Jak ręcznie utworzyć instancję EAUDYTORINSTANCE na SQL Serwerze

Wykaz zmian w programie WinAdmin Replikator

Wykład 4: Protokoły TCP/UDP i usługi sieciowe. A. Kisiel,Protokoły TCP/UDP i usługi sieciowe

Transkrypt:

1 of 5 2008-06-14 17:52 Co to jest SSH? Autor: Kamil Porembiński (paszczak@thecamels.org) SSH (ang. secure shell) czyli tłumacząc na polski "bezpieczna powłoka" jest standardem protokołów komunikacyjnych wykorzystywanych w sieciach komputerowych TCP/IP, w architekturze klient - serwer. W wąskim tego słowa znaczeniu SSH jest zdecydowanie lepszym następcą słynnego protokoły telnet. SSH podobnie jak telnet służą do łączenia się ze zdalnym komputerem. Jednakże SSH zapewnia szyfrowanie oraz umożliwia rozpoznawanie użytkownika na wiele różnych sposobów. W szerszym znaczeniu SSH jest wspólną nazwą dla całej rodziny protokołów. Obejmuje ona nie tylko podstawowe protokoły służące do zadań terminalowych, ale również do: przesyłania plików (SCP - Secure Copy Protocol, SFTP - Secure File Transfer Protocol) zdalnej kontroli zasobów komputera tunelowania forwardowania i wiele innch zastosowań Wspólną cechą tych wszystkich protokołów jest identyczna z SSH technika szyfrowania polączenia, przesyłu danych oraz metoda rozpoznawania użytkownika. Na chwilę obecną SSH praktycznie wyparło inne "bezpieczne" protokoły jak Rlogin i RSH. Ogólne założenia protokołu SSH powstały w grupie roboczej IETF. Istnieją jego dwie wersje SSH1 i SSH2. W jego wersji 2, możliwe jest użycie dowolnych sposobów szyfrowania danych i 4 różnych sposobów rozpoznawania użytkownika, podczas gdy SSH1 obsługiwał tylko stałą listę kilku sposobów szyfrowania i 2 sposoby rozpoznawania użytkownika (klucz RSA i zwykłe hasło). Najczęściej współcześnie stosowany sposób szyfrowania to AES, choć nadal część serwerów używa szyfrowania Blowfish i technik z rodziny DES. Rozpoznawanie użytkownika może się opierać na tradycyjnym pytaniu o hasło, klucz (RSA lub DSA) lub z użyciem protokołu Kerberos. Domyślnie ustawiony serwer SSH nasłuchuje na porcie 22. Niektóre serwery czekają na pakiety na innych portach w celu zwiększenia bezpieczeństwa. Historia SSH W 1995, Tatu Ylönen badacz Uniwersytetu Technologii w Helisnkach stworzył pierwszą wersję protokołu (obecnie nazywana SSH-1), której celem była ochrona przed podsłuchiwaniem haseł w uniwersyteckiej sieci. Ylönen wydał swoją implementację jako Open Source w lipcu 1995 roku. Protokół bardzo szybko stawał się popularny i już pod koniec 1995, SSH było używane przez ponad 20,000 użytkowników w 15 karajach na świecie. W grudniu 1995, Ylönen założył SSH Communications Security w celu rozwoj SSH. Oryginalna wersja protokoły wykorzystywała wiele części pochodzących z darmowego oprogramowania jak na przykład GNU libgmp. Poźniejsza wersja wydana przez SSH Communications Security ewoluowała coraz bardziej do własnościowego oprogramowania. SSH Communications Security obieło licencją SSH. W 1996 roku została wydana nowsza wersja protokołu określana mianem SSH-2. Była ona niekompatybilna z SSH-1. Grupa robocza IETF zajęła się standaryzacją SSH-2. Obecnie SSH-2 jest wykorzystywane prawie wszędze. Zapewnia znacznie większe bezpieczeństwo oraz oferuje więcej możliwości. Pod koniec roku 2000 liczba użytkowników SSH przekroczyła 2,000,000. Architektura SSH Protokół składa się z 3 warst: Transportowej Autentykacji (hasła, PKI, etc) Połączenia (zwielokrotnianie) Warstwa transportowa odpowiedzialna jest za ustalenie szyfrowania, kompresji (opcjonalnie) oraz integralności danych. Po przesłaniu za pomocą protokołu 1GB danych lub jeśli sesja trwa ponad godzinę następuje ponowne ustalenie wszystkich parametrów połączenia. Głównym zadaniem warstwy autentykacji jest wybór metody uwierzytelnienia użytkownika. Do wyboru jest kilka możliwości: password - najprostsze i najbardziej popularne uwierzytelnianie użytkownika za pomocą hasła publickey - metoda uwierzytelniania za pomocą kluczy publicznych i prywatnych. Najczęściej wykorzystywane są klucze typu DSA lub RSA. SSH wspiera również certyfikaty X.509. GSSAPI - metoda, w której wykorzystywane są mechanizmy typu Kerberos lub NTLM. Metody te są używane przez komercyjną wersję SSH. keyboard-interactive - jest to metoda uwierzytelniania, w której mieszczą się wszystkie inne metody autentykacji, które nie zostały tutaj wymienione. Może być to między innymi metoda uwierzytelniania za pomocą jednorazowego hasła pobieranego z tokena.

2 of 5 2008-06-14 17:52 Warstwa połączenia jest odpowiedzialna za ustalenie własności kanału w jakim się łączymy: shell - łączenie się w trybie terminalu direct-tcpip - kanał przekazujący połączenia typu client-to-server forwarded-tcpip - kanał przekazujący połączenia typu server-to-client Lista implementacji SSH Wieloplatformowe Windows Macintosh PuTTY - klient wspomgający SSH, SFTP, SCP i telnet Ganymed SSH2 - client napisany w Javie obsługujący SSH-2 JavaSSH - oparty na Javie klient SSH WinSCP - darmowy klient SFTP oraz SCP freesshd - darmowy serwer SSH oferujący SFTP, SCP, forwaroding oraz telnet OpenSSH for Windows SSHDOS Tunnelier - SSH/SFTP ksmslient Whitehorn Secure Terminal - darmowy SSH/telnet klient MacSSH - klient SSH w terminalu Uniksopodobne Lsh - klient i serwer. projekt GNU OpenSSH - bardzo popularny klient i serwer SSH rozwijany przez, developed by OpenBSD Dropbear - klient oraz serwer libssh - bliblioteka klient-serwer Instalacja SSH Instalacja serwera jaki i klienta SSH nie różni się niczym innym od zwykłej instalacji. Jak zwykle mamy do wyboru w zależności kilka metod instlacji. Źródła: ftp://sunsite.icm.edu.pl/pub/openbsd/openssh/portable/ Do instalacji oprogramowania dostarczonego w formie źródłowej niezbędny jest kompilator C, oraz podstawowe narzędzia dostarczane z większością systemów uniksowych. Na początku rozpakowywujemy źródła i kolejno wydajemy polecenia:./configure Wywołując skrypt configure z dodatkowymi opcjami można np. zmienić miejsce instalacji plików konfiguracyjnych lub binariów SSH, jednak w przeważającej większości przypadków ustawienia domyślne są poprawne, i takie będą stosowane w przykładach. Po skonfigurowaniu pakietu należy go skompilować i zainstalować. make a następnie, jako root make install Po instalacji zostaną utworzone następujące pliki: W katalogu /etc/ssh: ssh_config - plik konfiguracyjny klienta SSH ssh_host_key - klucz prywatny serwera SSH ssh_host_key.pub - klucz publiczny serwera SSH sshd_config - plik konfiguracyjny serwera SSH W katalogu /usr/local/bin : make-ssh-known-hosts - skrypt perlowy do generacji plików /etc/ssh_known_hosts ssh-askpass - prosty program dla X-Window służący do wczytywania haseł scp - secure copy - bezpieczny zamiennik dla komendy rcp ssh-add - program służący do wprowadzania kluczy publicznych do agenta autentykacji. ssh-agent - agent autentykacyjny ssh-keygen - generator kluczy prywatnych i publicznych

3 of 5 2008-06-14 17:52 slogin - secure login - link do ssh ssh - secure shell - bezpieczny zamiennik rsh W katalogu /usr/local/sbin : sshd - serwer ssh Dodatkowo do podkatalogów w hierarchii /usr/local/man zostaną zainstalowane strony dokumentacji do poszczególnych komend plików konfiguracyjnych. Jeżeli posiadamy dystrybucje typu Debian, Mandriva możemy zawsze zainstalować serwer SSH za pomocą paczek. Wydajemy wtedy odpowiednią dla naszej dystrybucji komendę i czekamy na zainstalowanie binarek. Instalacja OpenSSH pod Debianem: Konfiguracja serwera SSH: Głównym elementem serwera SSH jest demon sshd. Zastępuje on dwa programy, które znajdują się w większości dystrybucji: rlogin i rsh. Służy do prowadzenia bezpiecznej (kodowanej) komunikacji pomiędzy dwoma komputerami w sieci. Sshd odczytuje konfigurację z /etc/ssh/sshd_config (lub z pliku określonego w linii poleceń, w opcji -t). Plik ten zawiera pary: klucz - wartość. Każda z nich jest zapisana w jednej linii. Linie puste i zaczynające się od znaku '#' są traktowane jako komentarz i są pomijane. Przykład pliku konfiguracyjnego: sshd_config. Opis niektórych elementów konfiguracyjnych serwera: Port 22 ListenAddress 0.0.0.0 ListenAddress :: # HostKey for protocol version 1 HostKey /etc/ssh/ssh_host_key # HostKeys for protocol version 2 HostKey /etc/ssh/ssh_host_rsa_key HostKey /etc/ssh/ssh_host_dsa_key KeyRegenerationInterval 1h PermitRootLogin no IgnoreRhosts yes IgnoreRootRhosts yes RhostsAuthentication no RhostsRSAAuthentication no PrintMotd yes X11Forwarding no X11DisplayOffset 10 X11UseLocalhost yes XAuthLocation /usr/bin/x11/xauth Ustawienie portu dla serwera. Domyślny portem jest port 22. Adres IP, na którym serwer SSH ma nasłuchiwać. Ustawienie ma sens, jeśli mamy w komputerze kilka kart sieciowych. Można wtedy wpisać IP karty, która jest np. mniej obciążona. Ustawienia ścieżek, w których znajdują się klucze. Czas, po którym maszyna renegocjuje klucze i inne parametry połączenia. Domyślnie 1 godzina. Parametr określający, czy można logować zdalnie jako root. Ignorowanie plików.rhosts, które wskazują "zaufane" maszyny, skąd mógłby się zalogować użytkownik bez podawania hasła oraz zezwalanie na autentykację za pomocą mechanizmu rhosts. Czy wypisywać komunikat powitania (motd - Komunikat ustawiamy najczęściej w /etc/motd). Czy przekazywać dane połączenia X11 (graficznego) i za pomocą którego programu dokonywać autentykacji użytkownika w środowisku graficznym X-Windows.

4 of 5 2008-06-14 17:52 # {Allow,Deny}Users Groups DenyGroups student RSAAuthentication yes PasswordAuthentication yes PermitEmptyPasswords no IdleTimeout 30m # AllowHosts *.our.com friend.other.com DenyHosts home.pl *.algonet.se krakow.tpnet.pl opole.tpnet.pl CheckMail no AllowTcpForwarding no AccountExpireWarningDays 30 PasswordExpireWarningDays 14 ForcedPasswdChange yes Zezwolenie dla grup i użytkowników na logowanie się za pomocą ssh. Wybór metody autentykacji. Zalecane ustawić yes tylko dla RSA. Autentykacja za pomocą haseł - włączanie, zezwolenie na puste hasła oraz czas rozłączania podczas oczekiwania na podanie hasła. Z których maszyn można się łączyć za pomocą ssh. Czy po zalogowaniu ma się odbywać sprawdzanie poczty. Przy takim ustawieniu nie jest możliwe tunelowanie ftp, ale maszyna jest bezpieczniejsza. Powiadamianie o kończeniu się ważności konta (dni) Powiadamianie o kończeniu się ważności hasła (dni) Wymuszanie zmiany już nieważnego hasła Po skonfigurowaniu serwera przyszedł czas na jego uruchomienie. Jeżeli chcemy, aby serwer uruchamiał się zawsze podczas systemu musisz tylko znaleźć plik wykonywalny sshd (zazwyczaj będzie w /usr/local/sbin), uruchomić go i jeśli działa, zrobić odpowiedni wpis uruchamiający w którymś z plików startowych w katalogu /etc/rc.d/, tak, by demon sshd uruchamiał się podczas każdego startu systemu. Najprostszym sposobem jest dopisanie na końcu pliku /etc/rc.d/rc.local (lub innego pliku konfiguracyjnego maszyny, który jest wykonywany podczas jej startu) ścieżki do demona sshd, czyli najprawdopodobniej /usr/local/sbin/sshd. Posiadacze systemu Mandrake/Mandriva mogę z konta root wykonać polecenie: service sshd start i cieszyć się gotowym serwerem SSH. Konfiguracja klienta SSH: Ogólnosystemowa konfiguracja klienta ssh znajduje się w pliku /etc/ssh/ssh_config, zaś opcje konfiguracyjne sprawdzane są w następującej kolejności: opcje podane w linii komend plik konfiguracyjny użytkownika ($HOME.ssh/config) plik ogólnosystemowy Przykład pliku konfiguracyjnego: ssh_config. Hosts * ForwardAgent yes ForwardX11 yes RhostsAuthentication no RhostsRSAAuthentication no PasswordAuthentication yes RSAAuthentication yes TISAuthentication no PasswordPromptHost yes PasswordPromptLogin yes FallBackToRsh no UseRsh no BatchMode no EscapeChar ~ Cipher 3DES Otwiera sekcję dotyczącą połączeń do danego hosta - * oznacza wszystkie hosty. Określa, czy Agent ma przekazywać klucze, czy nie. Zezwala użytkownikom na przekazywanie połączeń X11 Zezwalanie na autentykację za pomocą mechanizmu rhosts. Autentykacja za pomocą haseł. Wybór metody autentykacji. Zalecane ustawić tylko RSA. Czy program ma pytać o hasła. Możliwość użycia rsh w przypadku niepowodzenia połączenia za pomocą ssh. Zalecane usawić na nie. Możliwość użycia ssh w trybie wsadowym. Wyłączyć gdy nie jest koniecznie potrzebne. Może się przydać tylko w kilku przypadkach. Jaki znak powoduje wyjście z połączenia (jak w telnecie ctrl+]) Algorytm stosowany do szyfrowania przy połączeniu ze zdalną maszyną.

5 of 5 2008-06-14 17:52 Compression yes CompressionLevel 9 IdentityFile ~/.ssh/identity Kompresja - domyślnie jest włączona, poziom - 6. Dziewięć jest najwyższym, 0 wyłącza. Położenie i nazwa pliku identyfikacji Łączenie z serwerem SSH: Do połączenia z serwerami SSH w systemach uniksowych tak naprawdę wystarcza tylko konsola. Wydajemy polecenie: ssh mojserwer.pl i czekamy na połączenie. Klient ssh będzie starał się zalogować nas na serwerze o tym samym nicku jakim aktualnie posługujemy się w lokalnym systemie. Jeśli zalogować się jako inny użytkownik piszemy: ssh mojserwer.pl -l nazwa_użytkownika Po zalogowaniu możemy zobaczyć np. komunikat dnia (MOTD - Message Of The Day): Zwolennicy graficznych porgramów mogą skorzystać z programu Putty. Wygląda on następująco: Bibliografia: www.google.com www.wikipedia.pl http://matrix.umcs.lublin.pl/pusu/2001/referaty/ssh/podstr/konfig.htm Jeśli masz jakieś pytania dotyczące Linuksa lub konfiguracji SSH zapytań na naszym forum Artykuł pochodzi ze strony: Newbie - http://newbie.linux.pl