MENU

Aktualno╢ci
Download
Sterowniki
Strefa Zrzutu
Archiwum
Informacje
Linki
 

MENU

SprzΩt
Oprogramowanie
Technologie
Novell Netware
Windows9x
WindowsNT
UNIX/Linux
S│owniczek

Napisz do nas

Je┐eli masz jakie╢ pytania, chcia│by╢ wyraziµ opiniΩ lub nawi▒zaµ wsp≤│pracΩ, napisz do nas:

O P I N I A

P Y T A N  I  E

W S P ╙ ú P R A C A

B A N N E R Y

Informacje

Strona zoptymalizowana
pod IE4.0+ i NN4.0+

 

 
Instalacja i konfiguracja servera SSH (Secure Shell)

linia_1.gif (306 bytes)

Aktualno╢ci | Linux / Unix

Jednym z podstawowych element≤w sieci jest bezpiecze±stwo. Aby je zapewniµ trzeba u┐ywaµ odpowiednich narzΩdzi. Jednym z nich jest bezpieczny shell, inaczej zwany SSH. W standardowych dystrybucjach Linuxa nie dostajemy go. Musimy siΩ sami postaraµ aby go zdobyµ. Postanowi│em opisaµ jedn▒ z implementacji, napisan▒ przez Tatu Ylonen.

Opis dzia│ania serwera SSH

Sk│adnia polecenia sshd

Sk│adnia pliku konfiguracyjnego

Instalacja serwera i dodatkowe informacje

 

Opis dzia│ania 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.

Sssd jest demonem, kt≤ry nas│uchuje na kanale 22 i czeka na po│▒czenia ┐▒dane przez klient≤w. Uruchamiany jest podczas startu systemu przez plik /etc/rc.local lub z innego, r≤wnowa┐nego pliku. Uruchamia on osobne demony dla ka┐dego z po│▒cze±. Ka┐dy z nich ma oddzielne dane dotycz▒ce kodowania, autoryzacji wykonywanych komend i plik≤w.

Sshd dzia│a tak jak opiszΩ poni┐ej. Ka┐dy z host≤w (komputer≤w) posiada sw≤j klucz (host RSA key). Domy╢lnie ma on wielko╢µ 1024 bity. Jest on u┐ywany do identyfikacji komputer≤w w sieci. W dodatku, kiedy serwer startuje, generuje sw≤j prywatny klucz (server RSA key), maj▒cy wielko╢µ 768 bit≤w. Standardowo, je┐eli zostanie on u┐yty , to jest generowany po up│ywie godziny. Nigdy nie jest zapisywany na dysk.

W momencie kiedy klient po│▒czy siΩ z serwerem SSH, demon wysy│a sw≤j publiczny klucz i klucz klienta. Klient por≤wnuje klucze ponownie i sprawdza czy nie zosta│y zmienione. Po tej czynno╢ci generuje on 256 bitowy losowy numer. Koduje t▒ liczbΩ u┐ywaj▒c obu kluczy (host key i server key) i wysy│a zakodowan▒ liczbΩ do serwera. Obie strony od tej chwili u┐ywaj▒ tej liczby jako klucz we wszystkich kodowanych transmisji w danej sesji. Reszta sesji jest kodowana z u┐yciem konwencjonalnych szyfr≤w. Obecnie s▒ zaimplementowane nastΩpuj▒ce algorytmy: IDEA, DES, 3DES, ARCFOUR i TSS. IDEA jest u┐ywany domy╢lnie. Klient mo┐e wybraµ jednak dowolny z powy┐szych.

Po tych czynno╢ciach, server i klient rozpoczynaj▒ autoryzacjΩ. Klient zidentyfikowaµ siebie, u┐ywaj▒c autoryzacji .rhosts, gdzie autoryzacja .rhosts jest kombinacj▒ czterech innych sposob≤w po╢wiadczania autentyczno╢ci. S▒ to: RSA host authentication, RSA challenge-response authentication, TIS challenge response authentication lub standardowy spos≤b wysy│ania has│a.

Autoryzacja rhosts jest normalnie wy│▒czona, poniewa┐ zasadniczo nie jest ona bezpieczna, lecz mo┐e byµ w│▒czona przez odpowiedni▒ konfiguracjΩ serwera. Bezpiecze±stwo serwera nie jest dot▒d pe│ne, dok▒d rshd, rlogind, rexecd i rexd s▒ w│▒czone. Najlepiej wiΩc wy│▒czyµ je wszystkie).

Je┐eli klient przejdzie pomy╢lnie proces autoryzacji uruchamiana jest uruchamiany proces przygotowywania sesji. Od tej chwili mo┐e on ┐▒daµ takich rzeczy jak: alokacja pseudo konsoli (pseudo-tty), przekazywania po│▒cze± X11, przekazywania po│▒cze± TCP/IP czy przekazywania innych informacji przez bezpieczny kana│.

W ko±cu, klient mo┐e za┐▒daµ obs│ugi shella, lub wykonania jakiego╢ polecenia. Serwer i klient przechodz▒ w≤wczas w tryb pe│nej sesji. W trybie tym, obie strony mog▒ wysy│aµ i odbieraµ przer≤┐ne dane.

Kiedy u┐ytkownik zechce przerwaµ po│▒czenie, to wszystkie przekierowania zostaj▒ zamkniΩte, serwer wysy│a polecenie ko±cz▒ce sesjΩ (exit status) do klienta i obie strony roz│▒czaj▒ siΩ.

Sshd mo┐e byµ konfigurowany z linii polece± lub za ponoc▒ specjalnego pliku konfiguracyjnego. Opcje wpisywane z linii polece± zamazuj▒ warto╢ci podawane w pliku konfiguracyjnym.

Sshd czyta ponownie sw≤j plik konfiguracyjny po wys│aniu do niego sygna│u SIDGHUP.

Sk│adnia polecenia sshd

sshd [-b bity] [-d ] [-f plik_konfiguracyjny] [-g czas_logowania] [-h plik_host_file] [-i ] [-k czas_genrecji_klucza] [-p port] [-q ] [-V wersja]

-b bity

Ustala ilo╢µ bit≤w w kluczu serwera (standardowo 768)

-d

Tryb Debug. Serwer wysy│a rozleg│y raport o dzia│aniu samego siebie do systemowych log≤w, i nie umieszcza siebie jako procesu pracuj▒cego w tle. Demon w trybie tym nie dzieli siΩ na poszczeg≤lne procesy i obs│uguje tylko jedno po│▒czenie. Opcja ta powinna byµ u┐ywana tylko wtedy, gdy zamierzamy debugowaµ nasz serwer.

-f plik_konfiguracyjny

Podaje nazwΩ pliku konfiguracyjnego. Domy╢lnie jest to: /etc/ssh/sshd_config

-g czas_logowania

Podaje jak▒ ilo╢µ czasu ma klient aby przeprowadziµ autoryzacjΩ. Domy╢lnie jest to 600 sekund. Je┐eli klient nie przeprowadzi jej przez zadany czas serwer roz│▒cza siΩ. Warto╢µ r≤wna zero, wy│▒cza jakiekolwiek limity.

-h plik_host_file

Specyfikuje nazwΩ pliku, z kt≤rego bΩdzie pobierany host key. (Domy╢lnie jest to /etc/ssh/ssh_host_key). Opcja to musi byµ podana, je┐eli nie uruchamiamy procesu sshd z prawami roota . (Standardowo pliku tego nie mo┐e odczytaµ nikt inny)

-i

Podaje, ┐e sshd bΩdzie uruchomiany z inetd. Normalnie sshd nie jest uruchamiany w ten spos≤b, poniewa┐ wymaga to generacji klucza przed odpowiedzi▒ do klienta, co mo┐e wi▒zaµ siΩ z dziesi▒tkami sekund czekania. Klient m≤g│by czekaµ zbyt d│ugo, gdyby klucz regenerowany by│ za ka┐dym razem. Mimo to, przy ma│ych kluczach (np. 512 bit≤w), u┐ywania inetd mo┐e byµ wykonalne.

-k czas_genrecji_klucza

Okre╢la jak czΩsto ma byµ generowany klucz serwera (server key). Domy╢lnie jest to 3600 sekund, czyli jedna godzina. Powodem czΩstszej generacji klucza mo┐e byµ to, ┐e nie jest on nigdzie trzymany, i po godzinie staje siΩ │atwa do rozkodowania, co mo┐e prowadziµ do przechwycenia naszej maszyny.

-p port

Okre╢la port, na kt≤rym serwer bΩdzie nas│uchiwa│ (standardowo jest to port nr. 22)

-q

Tryb w kt≤rym ┐adne informacje nie s▒ zapisywane do log≤w systemowych. Normalnie pocz▒tek po│▒czenia, autoryzacja i roz│▒cznie s▒ zapisywane w logach.

-V wersja

Tryb pracy zgodnej z SSH wersj▒ 2.


Sk│adnia pliku konfiguracyjnego

Sshd odczytuje konfiguracjΩ z /etc/ssh/ssh_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.

Poni┐ej znajdziecie listΩ wszystkich dopuszczalnych kluczy. Wielko╢µ liter nie gra w nich roli:

AllowGroups

Po tej dyrektywie mo┐na wypisaµ dowoln▒ ilo╢µ grup u┐ytkownik≤w i wzorc≤w grup oddzielonych od siebie spacjami. Je┐eli wpisze siΩ tutaj cokolwiek, to zalogowaµ siΩ bΩdzie m≤g│ tylko taki u┐ytkownik kt≤rego grupa podstawowa jest zgodna z kt≤rym╢ ze wzorc≤w. We wzorcach mo┐na stosowaµ znaki * i ?. Znacz▒ one to samo co w systemie plik≤w. Domy╢lnie wszystkie grupy s▒ uprawnione do logowania.

UWAGA. Aby proces autoryzacji przebieg│ pomy╢lnie inne elementy musz▒ byµ spe│nione. AllowGroups i DenyGroups s▒ tylko jednymi z opcji.

AllowHosts

Po tej dyrektywie mo┐emy wypisaµ dowoln▒ ilo╢µ numer≤w IP, nazw host≤w i wzorc≤w oddzielonych spacjami. Wymienione hosty bΩd▒ mog│y logowaµ siΩ na serwerze. Domy╢lnie wszystkie adresy IP i nazwy host≤w s▒ dopuszczalne.

AccountExpireWarningDays

Okre╢la kiedy zacz▒µ wy╢wietlaµ ostrzegawcze komunikaty o wyga╢niΩciu konta. Warto╢µ okre╢la ilo╢µ dni przed wyga╢niΩciem wa┐no╢ci. Standardowo jest to 14 dni. Kiedy ustawi siΩ warto╢µ 0, ostrze┐enia s▒ wy│▒czone.

AllowTcpForwarding

Okre╢la, czy 'TCP forwarding' ma byµ u┐ywany. Standardowo opcja to ma warto╢µ 'yes'. Nale┐y zauwa┐yµ, ┐e wy│▒czenie 'TCP forwarding' , nie wp│ywa w ┐adnym razie na poprawΩ bezpiecze±stwa. U┐ytkownik mo┐e sam w ka┐dej chwili zainstalowaµ sw≤j prywatny 'TCP forwarding'

AllowUsers

Klucz ten podaje listΩ u┐ytkownik≤w, kt≤rzy mog▒ logowaµ siΩ na serwer. Mo┐na tutaj wypisaµ dowoln▒ liczbΩ nazw, wzorc≤w lub wzorc≤w w postaci u┐ytkownik@host, Hostem mo┐e byµ te┐ dowolny adres IP.

CheckMail

Okre╢la czy sshd ma wy╢wietlaµ informacje, kiedy dostajesz nowego maila.

DenyGroups

Okre╢la grupy kt≤re wykluczaj▒ u┐ywanie sshd. Je┐eli kt≤ry╢ z u┐ytkownik≤w, ma ustawion▒ jako g│≤wn▒ grupΩ kt≤r▒╢ z wymienionych tutaj, to nie bΩdzie m≤g│ korzystaµ z ssh.

DenyHosts

Lista host≤w z kt≤rych nie mo┐na │▒czyµ siΩ z serwerem ssh.

DenyUsers

U┐ytkownicy wymienieni po tej dyrektywie nie mog▒ korzystaµ z ssh.

FascistLogging

Okre╢la czy u┐ywaµ tzw. 'Rozleg│ego logowania'. 'Rozleg│ego logowania' narusza prywatno╢µ u┐ytkownik≤w, wiΩc nie jest czΩsto stosowane. Mo┐na tu wpisaµ 'yes' lub 'no'. Domy╢lnie ustawione jest 'no'.

ForcedEmptyPasswdChange

Okre╢la czy wymuszaµ zmianΩ has│a, je┐eli has│o jest puste (tylko w czasie pierwszego logowania). Mo┐na tu wpisaµ 'yes' lub 'no'. Domy╢lnie ustawione jest 'no'.

ForcedPasswdChange

Okre╢la czy wymuszaµ zmianΩ has│a w wypadku wyga╢niΩcia jego wa┐no╢ci.
Mo┐na tu wpisaµ 'yes' lub 'no'. Domy╢lnie ustawione jest 'yes'.

HostKey

Okre╢la lokalizacjΩ pliku z prywatnym kluczem. Standardowo jest to plik: /etc/ssh/ssh_host_key

IdleTimeout time

Ustawia czas maksymalny czas bezczynno╢ci. Podawana warto╢µ mo┐e byµ w sekundach (s), minutach (m), godzinach (h), dniach (d) i w tygodniach (w). Je┐eli po│▒czenie bΩdzie bezczynne przez ten czas proces sshd jest zabijany, a po│▒czenie roz│▒czane.

IgnoreRhosts

Okre╢la, ┐e pliki rhosts i shosts nie bΩd▒ u┐ywane podczas autoryzacji. Pliki /etc/hosts.equiv i /etc/ssh/shosts.equiv bΩd▒ jednak nadal u┐ywane. Standardowo jest ustawiona warto╢µ 'no'

IgnoreRootRhosts

Okre╢la, ┐e pliki rhosts i shosts nie bΩd▒ u┐ywane podczas autoryzacji roota. Domy╢lnie jest tu ustawiona warto╢µ IgnoreRhosts

KeepAlive

Okre╢la czy serwer ma wysy│aµ komunikaty keepalive do klient≤w. Je┐eli kt≤ry╢ z nich zostanie np. wy│▒czony, to fakt tez zostanie odnotowany. Oznacza to, ┐e w razie przypadkowych i tymczasowych zator≤w w sieci, klienci mog▒ byµ roz│▒czani. Z drugiej strony, gdy komunikaty keepalive nie bΩd▒ wysy│ane, mo┐e to spowodowaµ wzrost ilo╢ci zasob≤w u┐ywanych przez serwer. Domy╢lnie opcja to jest w│▒czona. DziΩki temu unikamy zawieszenia sesji.

KerberosAuthentication

Okre╢la czy autoryzacja za pomoc▒ Kerberos V5 jest dozwolona. Realizowana jest ona za pomoc▒ tzw. Bilet≤w Kerberosa lub je┐eli PasswordAuthentication jest ustawione na 'yes' za pomoc▒ hase│ sprawdzanych przez Kerberos KDC lub DCE Security Server. Domy╢lnie ustawione jest 'no'

KerberosOrLocalPasswd

Je┐eli autoryzacja za pomoc▒ hasel przy pomocy Kerberos nie powiedzie siΩ, to has│o bΩdzie sprawdzone w inny dopuszczalny spos≤b taki jak z pliki /etc/passwd czy SedureID. Domy╢lnie mamy ustawione tutaj 'no'.

KerberosTgtPassing

Okre╢la czy Kerberos V5 TGT ma byµ przekierowywany na ten serwer. Domy╢lnie ustawione jest 'yes'

KeyRegenerationInterval

Okre╢la jak czΩsto ma byµ generowany klucz serwera (server key). Domy╢lnie jest to 3600 sekund, czyli jedna godzina. Powodem czΩstszej generacji klucza mo┐e byµ to, ┐e nie jest on nigdzie trzymany, i po godzinie staje siΩ │atwa do rozkodowania, co mo┐e prowadziµ do przechwycenia naszej maszyny.

ListenAddress

Okre╢la adres IP interfejsu na kt≤rym bΩdzie nas│uchiwa│ sshd.

LoginGraceTime

Serwer roz│▒cza siΩ po podanym tutaj czasie, je┐eli u┐ytkownik nie zalogowa│ siΩ. Je┐eli podamy tu 0 to nie bΩdzie ┐adnego limitu. Domy╢lnie czas ten ustawiony jest na 600 sekund.

PasswordAuthentication

Okre╢la czy autoryzacja za pomoc▒ has│a jest dopuszczalna. Standardowo jest dopuszczalna

PasswordExpireWarningDays

Okre╢la ilo╢µ dni przed up│yniΩciem wa┐no╢ci has│a, przy kt≤rych sshd ma wy╢wietlaµ komunikat to tym fakcie. Standardowo jest to 14 dni. Kiedy ustawi siΩ 0, u┐ytkownik nie bΩdzie powiadamiany o zbli┐aj▒cym siΩ wyga╢niΩciu has│a.

PermitEmptyPasswords

Gry logowanie przy u┐yciu hase│ jest dozwolone, okre╢la czy bΩdzie mo┐na logowaµ siΩ gdy posiada siΩ puste has│o. Domy╢lnie jest 'yes'

PermitRootLogin

Okre╢la czy root mo┐e logowaµ siΩ przy u┐yciu ssh. Mo┐na ustawiµ 'yes', 'nopwd' lub 'no'. Standardowo jest 'yes'. 'nopwd' wy│▒cza logowanie dla roota przez podawanie has│a. 'no' wy│▒cza ca│kowicie mo┐liwo╢µ logowania siΩ roota.

PidFile

Okre╢la po│o┐enie pliku zawieraj▒cego ID procesu g│≤wnego demona sshd. Standardowo jest to : /etc/sshd.pid lub /var/run/sshd.pid.

Port

Okre╢la numer portu na kt≤rym nas│uchuje sshd. Domy╢lnie jest to port numer 22.

PrintMotd

Okre╢la czy sshd powinien wy╢wietlaµ plik /etc/motd po zalogowaniu siΩ u┐ytkownika. Standardowo jest ustawiona warto╢µ 'yes'

QuietMode

Tryb w kt≤rym ┐adne informacje nie s▒ zapisywane do log≤w systemowych. Normalnie pocz▒tek po│▒czenia, autoryzacja i roz│▒cznie s▒ zapisywane w logach.

RandomSeed

Okre╢la po│o┐enie pliku ssh_random_seed. Domy╢lnie jest ustawiony na /etc/ssh/ssh_random_seed Plik tek jest tworzony i upgradowany automatycznie.

RhostsAuthentication

Okre╢la czy autoryzacja przy pomocy rhosts lub /etc/hosts.equiv jest wystarczaj▒ca. Normalnie nie powinna byµ wystarczaj▒ca, poniewa┐ nie jest bezpieczna. Zamiast tej opcji powinno byµ u┐ywane RhostsRSAAuthentication. Domy╢lnie opcja ta ma warto╢µ 'no'.

RhostsRSAAuthentication

Okre╢la czy rhosts lub /etc/hosts.equiv razem z 'RSA host authentication' jest dozwolona. Standartowo jest dozwolona.

RSAAuthentication

Okre╢la czy autoryzacja RSAAuthentication jest dopuszczalna. Standartowo jest dopuszczalna.

ServerKeyBits

Standardowa ilo╢µ bit≤w klucza serwera (server key). Domy╢lnie jest to 768 bit≤w. Minimalna warto╢µ to 512 bit≤w.

SilentDeny

Okre╢la czy nie dozwolone po│▒czenie maj▒ byµ roz│▒czane bez ┐adnych komunikat≤w i zapis≤w w plikach log.

StrictModes

Okre╢la czy sshd ma sprawdzaµ prawa dostΩpu to katalogu domowego u┐ytkownika i pliki rhosts przed jego zalogowaniem. Opcja ta jest po┐▒dana, poniewa┐ mo┐e uchroniµ nowicjuszy przed przypadkowym zostawieniem kt≤ry╢ plik≤w z prawami zapisu dla ca│ego ╢wiata

SyslogFacility

Dodaje dodatkowe udogodnienia podczas logowania z sshd. Mo┐liwe warto╢ci to:
DAEMON, USER, AUTH, LOCAL0, LOCAL1, LOCAL2, LOCAL3, LOCAL4, LOCAL5, LOCAL6, LOCAL7.
Domy╢lnie ustawiona jest warto╢µ DEAMON

TISAuthentication

Okre╢la czy autoryzacja za pomoc▒ TIS authsrv jest dopuszczalna. Domy╢lnie nie jest.

Umask

Ustawia domy╢ln▒ warto╢µ umask dla sshd i jego dzieci. PamiΩtaj o dodaniu 0 'przed liczb▒ (inaczej nie bΩdzie to liczba oktalna).

X11Forwarding

Okre╢la czy 'X11 forwarding ' jest dozwolone. Standardowo jest dozolone.

X11DisplayOffset

Okre╢la numer pierwszego ekranu dostΩpnego dla sshd pod X11.
Zapobiega to wp│ywaniu sshd na prawdziwego X11

XAuthLocation

Okre╢la ╢cie┐kΩ do programu xauth

Instalacja serwera i dodatkowe informacje

Instalacja serwera jest zale┐na od rodzaju pliku jaki posiadamy. Z naszej strony mo┐na pobraµ wersjΩ specjalnie przygotowan▒ dla RedHat Linux i innych pochodnych od niej dystrybucji. Jest to plik RPM. Przed instalacj▒ w│a╢ciwego serwera nale┐y pobraµ i zainstalowaµ plik ssh-1.2.27-7us.i386.rpm   Aby go zainstalowaµ nale┐y wpisaµ w linii polece±:

rpm --install ssh-1.2.27-7us.i386.rpm
rpm --install ssh-server-1.2.27-7us.i386.rpm

Ca│y proces instalacji przebiegnie samemu i zostanie tylko konfiguracja demona, kt≤rej opis znajdziecie powy┐ej.

Gdy posiagamy wersjΩ ╝r≤d│ow▒ serwera, to musimy najpierw j▒ rozpakowaµ i skompilowaµ. Aby rozpakowaµ archiwum wykonujemy polecenie:

zcat ssh-1.2.27-7us.i386.tar.gz|tar xvf -

NastΩpnie konfigurujemy plik Makefie:

./configure

kompilujemy server:

make

i w ko±cu instalujemy go w systemie:

make install

Identycznie podtΩpujemu z plikiem ssh-server-1.2.27-7us.i386 .Teraz pozastaje nam jedynie odpowiednio go skonfiurowaµ i pracowaµ.

WersjΩ instalacyjn▒ tego serwera, specjalnie  przygotowan▒ pod RedHata mo┐na pobraµ z dzia│u Download. Najnowsz▒ wersjΩ programu, oraz dodatkowe informacje na jego temat znajdziecie pod adresem: http://www.cs.hut.fi/ssh

Artyku│ napisany przez D.Kowalskiego

linia_1.gif (306 bytes)

Aktualno╢ci | Linux / Unix

.

Copyright (c) 1999-2000 by DREAM N-E-T-W-O-R-K