|
SSH
w środowisku Windows
Date:
20-06-2004 Author:
Grzegorz
Niemirowski Number
of Views: 2729 Rate:
2.22
 |
| |
|
Grzegorz
Niemirowski |
|
g.niemirowski@it-faq.pl |
| |
| |
Interesuje się
bezpieczeństwem i administracją systemów
informatycznych. Rozwija program OE Firewall
eliminujący błędy i rozszerzający możliwości
Outlook Express. Najchętniej programuje w Visual
Basicu. Zajmuje się też projektowaniem i budową
układów elektronicznych. |
| |
| | |
|
Instalacja, konfiguracja i podstawy
pracy z SSH w środowisku MS Windows
SSH w środowisku Windows
SSH jest protokołem kryptograficznym
umożliwiającym zdalną pracę na komputerze. Dzięki
silnemu szyfrowaniu uniemożliwia podsłuch przesyłanych
danych i ich modyfikację. Zabezpiecza przed atakami IP i
DNS spoofing i IP source routing. Umożliwia też
tunelowanie innych protokołów, w tym tych, które same z
siebie nie są bezpieczne, jak np. SMTP, POP3, FTP.
Obecnie w użyciu jest wersja 2, która zastąpiła mniej
bezpieczną wersję SSH1.
OpenSSH Jednym z najbardziej
znanych serwerów SSH jest OpenSSH. Jego strona domowa to
http://www.openssh.org/. Wersję dla Windows możemy
ściągnąć ze strony http://lexa.mckenna.edu/sshwindows/.
Należy pamiętać, że OpenSSH stworzono dla OpenBSD, a
następnie rozwijano z myślą o systemach uniksowych.
Wersja dla MS Windows to tak naprawdę tzw. wersja
portable działająca pod kontrolą środowiska Cygwin
okrojonego do niezbędnych bibliotek. W artykule opisano
wersję o numerze 3.7.1p1-1.
Instalacja pakietu Po
rozpakowaniu pliku zip należy uruchomić właściwy plik
instalatora. Do wyboru mamy instalację serwera i
klientów. Najlepiej wybrać wszystko, jednak na Windows
9x/Me instalacja serwera nie jest możliwa.
| |
 Rys. 1: Import grup i kont do
plików konfiguracyjnych
|
| |
| Gdy
instalator zakończy pracę, konieczne jest dodanie wpisów
do plików passwd i group, które znajdują się w
podkatalogu etc, w katalogu, w którym zainstalowaliśmy
OpenSSH. Bez tych wpisów nie będzie się można zalogować.
Należy uruchomić konsolę i przejść do podfolderu bin,
który jest w folderze serwera OpenSSH. Najpierw tworzymy
plik group poleceniem:mkgroup -l >>
..\etc\group Dla grup domenowych używamy
po-lecenia:mkgroup -d >> ..\etc\group Następnie do
pliku passwd wstawiamy wpisy użytkowników, którzy będą
mieli prawo do logowania się przez SSH. Można użyć
polecenia:mkpasswd -l >> ..\etc\passwd dla importu
wszystkich kont. Jednak nie jest to zalecane ze względów
bezpie-czeństwa. Lepiej dodać po kolei tylko tych
użytkowników, którym chcemy dać prawo do logowania się.
Służy do tego dodatkowy parametr -u, np.: mkpasswd -l -u
kowalski >> ..\etc\passwd Przykład opisanej
procedury widać na rysunku 1. W celu zaimportowania kont
domenowych należy użyć przełącznika -d zamiast -l. Po
imporcie kont warto sprawdzić np. notatnikiem, czy w
pliku passwd jest wszystko w porządku, oraz ustawić
katalogi domowe użytkowników i powłokę. Ścieżka katalogu
domowego jest umieszczona na przedostatniej pozycji we
wpisie. Jeśli chcemy wpisać ścieżkę bezwzględną zamiast
względnej w stosunku do foldera serwera OpenSSH, należy
rozpocząć ją od /cygdrive/. Poza tym tak jak w
GNU/Linuksie używamy zwykłych ukośników (znaków slash /)
zamiast odwróconych (backslash \). Nie używamy dwukropka
przy literze dysku, bo dwukropek oddziela pola we wpisie
użytkownika. Ostatnie pole oznacza powłokę (shell)
użytkownika. Przykładowy wpis może wyglądać
tak: Grzegorz:unused_by_nt/2000/xp:1003:513:Grze-gorz,U-NEO\Grzegorz,S-1-5-21-1708537768-1580818891-2146866163-1003:/cygdrive/C/Documents
And Settings/Grzegorz/Moje
doku-menty:/ssh/quietcmd.bat Teraz można
uruchomić serwer SSH poleceniem: net start "OpenSSH
Server" lub korzystając z konsoli Usługi w Narzędziach
administracyjnych w Panelu sterowania. Możemy teraz
dokonać próby logowania na serwer, np. na swoje własne
konto.
Połączenie z
serwerem Jeśli wybraliśmy instalację
klientów, możemy w wierszu poleceń skorzystać z
komendy: ssh localhost Klient będzie się
próbował zalogować na konto bieżącego użytkownika. W
tym momencie klucz publiczny serwera nie jest jeszcze
znany klientowi, więc zostanie wyświetlony
komunikat: The authenticity of host ?localhost
(127.0.0.1)' ca-n't be established. Równocześnie
dostajemy pytanie, czy chcemy kontynuować połączenie. Po
twierdzącej odpowiedzi i uwierzytelnieniu otrzymujemy
dostęp do powłoki. Możemy wydawać polecenia, wykonywać
operacje na plikach, uruchamiać programy. Jeśli w
przyszłości dostaniemy komunikat o nieznanym kluczu
serwera, a nie był on zmieniany, będzie to oznaczać, że
ktoś podszywa się pod serwer. Połączenie kończymy
poleceniem:
| |
 Rys. 2: Logowanie ze zdalnego
komputera
|
| |
| exit Jeśli
chcemy się zalogować na inne konto, używamy
polecenia: ssh
nazwaużytkownika@adresserwera lub ssh -l
nazwaużytkownika adresserwera Jako nazwę
użytkownika podajemy nazwę konta, na które chcemy się
zalogować, a jako adresserwera jego adres IP lub
domenowy. W przypadku, gdy jest to ten sam komputer,
możemy użyć adresu localhost lub adresu IP 127.0.0.1
Jeśli logowanie przebiegło bez problemów, możemy
spróbować zalogować się z innego komputera. Na rysunku 2
widać jak przebiega logowanie ze zdalnego komputera z
systemem Windows 98, na serwer OpenSSH, pracujący pod
Windows XP. Dzięki serwerowi SSH, będziemy mogli
zdalnie pracować na maszynie, na której jest on
zainstalowany. Wygląda to prawie tak samo, jak praca na
systemie lokalnym. Możemy uruchamiać programy oraz
komendy systemowe, wykonywać operacje na plikach itd.
Oczywiście wszystko to odbywa się w trybie tekstowym.
Jeśli ktoś wcześniej używał telnetu, SSH nie będzie dla
niego nowością. Zdalna praca przez SSH jest podobna,
jednak nieporównywalnie bezpieczniejsza.
| |
 Rys. 4: Ściąganie pliku przez SCP
|
| |
|
Forwardowanie portów Jak
zestawić takie połączenie? Najpierw należy uruchomić
tunel. W tym celu za pomocą klienta SSH nawiązujemy
połączenie z serwerem SSH, musimy jednak przekazać mu
dodatkowe parametry dotyczące tunelu. Używamy do tego
parametru -L. Załóżmy, że chcemy tunelować połączenia do
serwera pocztowego pop3.poczta.onet.pl i wykorzystamy do
tego lokalny port 110. Przykładowe polecenie będzie
wyglądać tak:ssh -L 110:pop3.poczta.onet.pl:110
Grzegorz@192.168.0.1."Grzegorz" to przykładowe konto na
które odbywa się logowanie, 192.168.0.1 to adres IP
komputera, na którym uruchomiony jest serwer SSH. Po
zalogowaniu się dostajemy dostęp do wiersza poleceń,
analogicznie, jak to było wcześniej. Dodatkowo na
komputerze, z którego zostało wydane to polecenie
zostanie otwarty port 110. Połączenia przychodzące na
ten port zostaną zaszyfrowane, przesłane do komputera o
adresie 192.168.0.1, działający na nim serwer SSH
odszyfruje je i przekaże do serwera pocztowego
pop3.poczta.onet.pl. W ten sposób pomiędzy maszyną, na
której uruchomiony jest klient SSH, a tą, na której jest
uruchomiony serwer, połączenie będzie szyfrowane; dane
będą nieczytelne i bezużyteczne dla innych użytkowników
| |
 Rys. 5: Generowanie klucza z linii
komend
|
| |
| sieci
lokalnej, którzy by je ewentualnie przechwycili. Tunel
będzie tak długo istniał, jak długo będziemy zalogowani.
Pozostaje jeszcze sprawa, co zrobić, aby Outlook, albo
inny klient poczty korzystał z naszego tunelu. Należy
zmienić ustawienia serwera POP3. Normalnie program łączy
się z serwerem pop3.poczta.onet.pl na porcie 110. Jeśli
ma korzystać z tunelu, musi się łączyć z komputerem, na
którym uruchomiony jest klient i na port podany przy
logowaniu. W przykładzie program pocztowy i klient SSH
działają na tym samym komputerze, jako serwer podajemy
więc localhost.
| Rating: 2,22 |
 |
 |
 |
 |
 |
|
1 |
2 |
3 |
4 |
5 |
| Number of ratings: 9 |
| Comments
|
Add
comment Title:
Name: Comment:
Save
|
Return |