index2.pdf

(39 KB) Pobierz
198120394 UNPDF
Linuxwbiznesie - linux w biznesie, linux w firmie
Co to jest SSH?
Autor: Administrator
20.12.2005.
Autor: Kamil Porembiñski - http://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
http://www.linuxwbiznesie.pl
Kreator PDF
Utworzono 11 December, 2009, 13:39
198120394.003.png
 
Linuxwbiznesie - linux w biznesie, linux w firmie
- 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.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-clientLista implementacji SSH
Wieloplatformowe
- 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 Windows
- 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 klientWindows
- 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 klientMacintosh
- MacSSH - klient SSH w terminaluMacintosh
- MacSSH - klient SSH w terminaluUniksopodobne
- 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-serwerUniksopodobne
- 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:
./configureWywoł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 SSHW 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ł
http://www.linuxwbiznesie.pl
Kreator PDF
Utworzono 11 December, 2009, 13:39
198120394.004.png
 
Linuxwbiznesie - linux w biznesie, linux w firmie
- 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
- slogin - secure login - link do ssh
- ssh - secure shell - bezpieczny zamiennik rshW katalogu /usr/local/sbin :
- sshd - serwer sshDodatkowo 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 Ustawienie portu dla serwera. Domy¶lny portem jest port 22.
ListenAddress 0.0.0.0
ListenAddress ::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.
# 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_keyUstawienia ¶cie¿ek, w których znajduj± siê
klucze.KeyRegenerationInterval 1hCzas, po którym maszyna renegocjuje klucze i inne parametry
poł±czenia. Domy¶lnie 1 godzina.
PermitRootLogin noParametr okre¶laj±cy, czy mo¿na logowaæ zdalnie jako root.
IgnoreRhosts yes
IgnoreRootRhosts yes
RhostsAuthentication no
RhostsRSAAuthentication no 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.PrintMotd yesCzy wypisywaæ komunikat powitania (motd - Komunikat ustawiamy
najczê¶ciej w /etc/motd).X11Forwarding no
X11DisplayOffset 10
X11UseLocalhost yes
XAuthLocation /usr/bin/X11/xauth
Czy przekazywaæ dane poł±czenia X11 (graficznego) i za pomoc± którego programu dokonywaæ
autentykacji u¿ytkownika w ¶rodowisku graficznym X-Windows.# {Allow,Deny}Users | Groups
DenyGroups studentZezwolenie dla grup i u¿ytkowników na logowanie siê za pomoc±
ssh.RSAAuthentication yes Wybór metody autentykacji. Zalecane ustawiæ yes tylko dla RSA.
PasswordAuthentication yes
PermitEmptyPasswords no
IdleTimeout 30m Autentykacja za pomoc± haseł - wł±czanie, zezwolenie na puste hasła oraz czas
rozł±czania podczas oczekiwania na podanie hasła.# AllowHosts *.our.com friend.other.com
DenyHosts home.pl *.algonet.se krakow.tpnet.pl opole.tpnet.pl Z których maszyn mo¿na siê ł±czyæ za
pomoc± ssh.CheckMail no Czy po zalogowaniu ma siê odbywaæ sprawdzanie poczty.AllowTcpForwarding
no Przy takim ustawieniu nie jest mo¿liwe tunelowanie ftp, ale maszyna jest
bezpieczniejsza.AccountExpireWarningDays 30 Powiadamianie o koñczeniu siê wa¿no¶ci konta
(dni)PasswordExpireWarningDays 14 Powiadamianie o koñczeniu siê wa¿no¶ci hasła
(dni)ForcedPasswdChange yes 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.
http://www.linuxwbiznesie.pl
Kreator PDF
Utworzono 11 December, 2009, 13:39
198120394.001.png
 
Linuxwbiznesie - linux w biznesie, linux w firmie
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 starti 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 *Otwiera sekcjê dotycz±c± poł±czeñ do danego hosta - * oznacza wszystkie hosty. ForwardAgent
yesOkre¶la, czy Agent ma przekazywaæ klucze, czy nie.
ForwardX11 yesZezwala u¿ytkownikom na przekazywanie poł±czeñ X11
RhostsAuthentication no
RhostsRSAAuthentication no Zezwalanie na autentykacjê za pomoc± mechanizmu
rhosts.PasswordAuthentication yes Autentykacja za pomoc± haseł.RSAAuthentication yes
TISAuthentication noWybór metody autentykacji. Zalecane ustawiæ tylko RSA.
PasswordPromptHost yes
PasswordPromptLogin yesCzy program ma pytaæ o hasła. FallBackToRsh no
UseRsh noMo¿liwo¶æ u¿ycia rsh w przypadku niepowodzenia poł±czenia za pomoc± ssh. Zalecane usawiæ
na nie.
BatchMode noMo¿liwo¶æ u¿ycia ssh w trybie wsadowym. Wył±czyæ gdy nie jest koniecznie potrzebne.
Mo¿e siê przydaæ tylko w kilku przypadkach.EscapeChar ~Jaki znak powoduje wyj¶cie z poł±czenia (jak w
telnecie ctrl+])Cipher 3DESAlgorytm stosowany do szyfrowania przy poł±czeniu ze zdaln± maszyn±.
Compression yes
CompressionLevel 9Kompresja - domy¶lnie jest wł±czona, poziom - 6. Dziewiêæ jest najwy¿szym, 0
wył±cza.IdentityFile ~/.ssh/identityPoł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
http://www.linuxwbiznesie.pl
Kreator PDF
Utworzono 11 December, 2009, 13:39
198120394.002.png
 
Zgłoś jeśli naruszono regulamin