
SSH - bezpieczna powłoka
SSH
(Secure Shell), to program umożliwiający zdalny dostęp do serwera, jednak w
przeciwieństwie do zwykłego telneta, wyposażony jest w mechanizmy silnego uwierzytelniania
oraz szyfrowania sesji wykorzystując bezpieczny klucz. Istnieją dwie wersje
protokołu ssh oznaczone jako ssh1 oraz ssh2. Ssh2 jest
nowszy i zarazem bezpieczniejszy. Nie jest zgodny ze starszym ssh1, choć
wspomaga obsługę klientów ssh1, jeśli serwer ssh1 także jest zainstalowany
na danej maszynie. Nic nie stoi więc na przeszkodzie, aby na Twoim serwerze
znalazły się obie wersje oprogramowania.
Pliki, zawierające potrzebne programy, możesz znaleźć m.in. na ftp.icm.edu.pl
w katalogu /pub/security/ssh lub po prostu na www.ssh.com.
Po pobraniu plików sprawdź ich długość i rozpakuj do katalogu tymczasowego,
a następnie przejdź do instalacji.
Zawsze pierwszą czynnością, zanim przystąpisz do kompilacji jakiegokolwiek programu,
jest dokładne przeczytanie plików Readme oraz Install - zawsze
znajdziesz tam to, czego potrzebujesz, by poprawnie skompilować program. W pierwszej
kolejności zainstaluj ssh1, później ssh2. Jeśli tego nie wiesz
(a myślę, że chyba dobrze wiesz), to instalacja oprogramowania ze źródeł zazwyczaj
polega na wydaniu trzech komend z poziomu katalogu, w którym znajduje się rozpakowane
archiwum programu. Komendy te, to: ./configure, make oraz make
install. Jeśli wszystko przebiegło pomyślnie, to oprogramowanie jest prawie
gotowe do użytku. 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.
Możliwe jest także uruchamianie demona sshd za pośrednictwem inetd.
W tym celu musisz dopisać do pliku /etc/inetd.conf wiersz:
ssh stream tcp nowait root /usr/sbin/tcpd /usr/local/sbin/sshd
Należy w tym przypadku także pamiętać o dopisaniu do pilku /etc/services
wiersza:
ssh 22/tcp
choć prawdopodobnie potrzebny wpis już się tam znajduje!. Więcej informacji
na ten temat znajdziesz w dokumentacji programu.
I jeszcze jedno: jeśli chcesz, możesz pobrać ssh w postaci plików archiwów
rpm - znajdują się one w katalogu /pub/security/ssh/rpms serwera ftp.icm.edu.pl.
Nie będziesz się wtedy "męczył" z kompilacją :-), choć nie wiem, czy przypadkiem
nie warto się trochę "pomęczyć" (?).
A teraz słów kilka o konfiguracji. W zasadzie serwer sshd nie wymaga
jakiejś szczególnej konfiguracji :-), niemniej jednak warto wiedzieć, co można
jeszcze zrobić. Dla ssh1 plik konfiguracyjny serwera powinien się znajdować
w /etc/sshd_config, natomiast dla ssh2: /etc/ssh2/sshd2_config.
Forma układu listy opcji w obu plikach jest podobna. Kilka opcji, które warto
wymienić, to:
Port - numer poru wykorzystywanego przez ssh (domyślnie jest to 22),
ListenAdress - parametr ten określa adres IP interfejsu, który ssh będzie
obsługiwać,
PermitRootLogin - określa, czy ssh umożliwia logowanie na konto administratora
(proponuję wpisać wartość no i używać do logowania konta zwykłego użytkownika
i komendy su -l),
AllowHosts - określa hosty, z których można się logować (można używać
listy stosując znaki wieloznaczne * i ?),
DenyHost - hosty, z których nie można się zalogować.
Ponadto w pliku konfiguracyjnym serwera ssh2: /etc/ssh2/sshd2_config
znajdziesz linie:
Ssh1Compatibility - określa, czy ssh2 będzie wspierać starsze klienty
ssh1,
Sshd1Path - podaje ścieżkę do demona sshd1 wspierającego klienty ssh1.
I już wiesz na tyle dużo, że możesz spokojnie korzystać z tego doskonałego narzędzia
nie obawiając się, że ktoś będzie podsłuchiwał, tak, jak może to mieć miejsce,
gdy korzystasz z telneta, gdzie każde komendy są wysyłane jawnym tekstem.
Istnieje jeszcze wiele ciekawych opcji a sam program jest czymś znacznie większym,
niż tylko "bezpiecznym telnetem". Umożliwia również korzystanie z bezpiecznego
ftp (sftp) oraz kopiowania plików (scp).
Warto wspomnieć także, iż komunikacja przy pomocy ssh może odbywać się
bez podawania hasła. W tym celu należy utworzyć klucze szyfrowania: publiczny
i prywatny, korzystając z programów ssh-keygen lub ssh-keygen2
w zależności od wersji ssh. Klucz publiczny należy umieścić na serwerze,
z którym chcemy się łączyć. Jednak wydaje mi się, iż nieco bezpieczniej jest
używać hasła, szczególnie, gdy nie zapominamy o jego zmianie raz na jakiś czas!
I jeszcze kilka słów o używaniu klienta ssh. Klient, czyli programy ssh1
i ssh2 znajdują się prawdopodobnie w katalogu /usr/local/bin/.
Jeśli uruchomiłeś demona sshd, to możesz teraz sprawdzić, czy wszystko
działa poprawnie, przechodząc do katalogu, w którym znajduje się program klienta
ssh i nawiązując połączenie z własną maszyną:
./ssh localhost
System prawdopodobnie poprosi Cię o potwierdzenie (wpisz yes) oraz podanie
hasła użytkownika i już jesteś zalogowany!
Teraz możesz już w pliku /etc/inetd.conf śmiało postawić znaczek # na
początku linii zaczynającej się słowem telnet :-).
Dla klientów ssh także istnieją pliki konfiguracyjne i każdy z użytkowników
może posiadać własny plik konfiguracji klienta. Domyślnym plikiem klienta dla
ssh1 jest /etc/ssh_config, natomiast dla ssh2: /etc/ssh2/ssh2_config.
Zrozumienie opcji konfiguracyjnych w tych plikach z całą pewnością nie sprawi
Ci żadnego kłopotu. W razie problemów: man ssh.
Copyright
(C) 2000-2002 by Grzegorz Lewandowski
All rights reserved