1. Instalacja
i konfiguracja.
2. Pierwsze uruchomienie.
3. Łączymy się przez ssh.
4. Problemy z logowaniem
5. Tworzymy tunel ssh.
Wszystkie informacje zawarte w tekście były
sprawdzone i są używane przeze mnie, jednakże nie biorę odpowiedzialności
za szkody wynikłe z nie właściwego wykorzystania poniższych wskazówek.
1.
Instalacja oprogramowania i konfiguracja.
Instalujemy oprogramowanie OpenSSH for Windows, w chwili
pisania tego tekstu najnowszą wersją była wersja 3.8.1p1-1 (http://www.openssh.com).
Podczas instalacji instalujemy wersję serwer (jeżeli chcemy z tym
komputerem łączyć się z zewnątrz) lub client (gdy chcemy z tego
komputera łączyć się z innym komputerem) albo obie wersje.

Zakładam że instalujemy w domyślnej lokalizacji tzn. C:\Program
Files\OpenSSH.
Pod koniec instalacji ukaże nam się komunikat który informuje nas że
zanim uruchomimy serwer ssh powinniśmy z edytować plik C:\Program
Files\OpenSSH\etc\passwd - co też później zrobimy.
Po zakończeniu instalacji uruchamiamy linie poleceń CMD, następnie
przechodzimy do katalogu z zainstalowanym programem "cd C:\Program
Files\OpenSSH\bin".
W lini poleceń wpisujemy komendę mkgroup aby dodać grupy użytkowników
systemu.
>mkgroup -l >> ..\etc\group (jeśli
chcemy dodać lokalne grupy użytkowników)
>mkgroup -d >> ..\etc\group (jeśli chcemy dodać domenowe
grupy użytkowników)

Jeśli wszystko przebiegło pomyślne to w pliku etc\group
zostały zapisane grupy użytkowników.
W lini poleceń wpisujemy komendę mkpasswd aby dodać hasła
wybranych użytkowników.
>mkpasswd -l -u nazwa_uzytkownika >> ..\etc\passwd (jeśli
chcemy dodać hasło lokalnego użytkownika)
>mkpasswd -d -u nazwa_uzytkownika >> ..\etc\passwd (jeśli
chcemy dodać hasło domenowego użytkownika)

Jeśli wszystko przebiegło pomyślne to w pliku etc\passwd
zostały zapisane hasła wybranych użytkowników.
W katalogu \etc znajduje się plik banner.txt w którym
wpisany jest tekst powitania ukazujący podczas połączenia z serwerem.
Plik ten możemy dowolnie edytować lecz nie jest to konieczne.
Więcej informacji na temat konfiguracji naszego serwer i klienta ssh możemy
znaleźć w plikach readme.txt i innych plikach w katalogu \docs.
2. Pierwsze
uruchomienie.
Zakładam że wszystkie etapy instalacyjne zostały
wykonane pomyślne i możemy uruchomić nasz serwer.
W lini poleceń CMD, wpisujemy:
>net start opensshd

Nasz serwer ssh już działa i od tej chwili możemy
łączyć się z naszym serwerem z zewnątrz. Należy jednak pamiętać że
serwer ssh nasłuchuje na porcie 22 TCP i powinien być on otwarty.
Konfiguracja standardowego firewalla w Windows XP - ustawienia portu ssh:

3. Łączymy
się z serwerem ssh.
W lini poleceń CMD, wpisujemy:
> ssh uzytkownik@serwer_ssh.domena.pl
gdzie:
uzytkownik - oznacza nazwę konta na zdalnym serwerze z którym się
łączymy.
serwer_ssh.domena.pl - oznacza adres serwera z którym się łączymy
(może to być adres IP).

po podłączeniu do serwera zostaniemy poinformowani o kluczu RSA i
dodaniu danego hosta do znanych hostów itd... i zapytani czy
chcemy kontynuować. Potwierdzamy wpisując yes.
Następnie ukaże nam się tekst powitania i zachęta aby wpisać hasło.
Po zatwierdzeniu hasła możemy zdalnie pracować na serwerze. Dostępną
mamy tylko linie poleceń.
4.
Problemy z logowaniem
A) Po podaniu hasła pokazuuje sie komunikat:
Could not create directory '/home/nazwa_konta/.ssh'.
Oznacza to że server ssh nie mógł utworzyć folderu .ssh w
katalogu " /home/nazwa_konta/" gdzie
"/home" - oznacza standardowo katalog "Documents and Settings".
Najprawdopodobniej nie istniej w folderze "Documents and Settings"
dany katalog.
Edycje tych ustawień możemy dokonać w pliku "..\etc\passwd"

lub w rejestrze zmieniając wartości w
kluczach: "HKEY_LOCAL_MACHINE/SOFTWARE/Cygnus Solutions/Cygwin/mounts v2/" :
"/"
"/home"
"/usr/bin"
Przed dokonanie zmian w rejestrze należy zrobić backup.

B) Przy próbie połączenia pokazuje się komunikat:
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle
attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is |

Oznacza on że w pliku "./ssh/know_hosts"
znajduje się już wpis z tego komputera. Dzieje się tak gdy już wcześniej
(gdy wcześniej łączono się z tego komputera i został wygenerowany
klucz) został wygenerowany inny klucz. Server ssh odbiera to jako próbę
ataku i nie zezwala na połączenie. Aby rozwiązać ten problem należy
z edytować plik "./ssh/know_hosts" i
usunąć wpis dotyczący danego komputera lub jeśli nie wiemy co usunąć
to możemy skasować cały plik. Jednakże musimy się liczyć z tym
że po skasowaniu pliku, ssh będzie musiał jeszcze raz wygenerować
klucze do wszystkich połączeń.
5. Tworzymy tunel
ssh.
Postaram się wyjaśnić jak połączyć się zdalnym
pulpitem w Windows XP który pracuje na porcie 3389 na komputerem
Windows Xp z zainstalowanym oprogramowaniem ssh server i otwartym portem TCP
22. Z informacji które posiadam usługa zdalny pulpit jest szyfrowana
128 bitowym kluczem, jednakże kolejne zabezpieczenia nie zaszkodzą.
Utworzymy tunel ssh poprzez który będziemy nawiązywać połączenie
z usługą zdalnego pulpitu na komputerze docelowym.
|
KOMPUTER 1
-zainstalowany ssh client
-aplikacja zdalny pulpit
|
Łączenie:
ssh -L 1000:localhost:3389 uzytkownik@serwer_ssh.domena.pl
--------------------->
|
KOMPUTER 2
(serwer_ssh.domena.pl)(Windows XP)
-otwarty port TCP 22
-usługa zdalny pulpit
-usługa ssh serwer
|
W lini poleceń CMD, wpisujemy:
>ssh -L 1000:localhost:3389 uzytkownik@serwer_ssh.domena.pl
Po połączenie serwer zażąda hasła. Po wpisaniu i
zatwierdzeniu hasła tunel zostanie nawiązany i możemy z niego korzystać.
Według tego co wpisaliśmy podczas połączenia tunelem ssh
transportujemy ruch portu 3389 hosta docelowego poprzez nasz
komputer na porcie 1000. Więc połączenie z hostem zdalnym nasłuchującym
na porcie 3389 będzie wyglądało tak: 127.0.0.1:1000 lub localhost:1000

Jeżeli próba połączenia zdalnym pulpitem powiedzie
się to znaczy wszystko jest w porządku, a jeżeli nie uda się połączyć
to znaczy że tunel nie działa. W tunelu ssh cały ruch jest szyfrowany
tak więc przesyłanie danych jest bezpieczne. Tunelowanie można również
wykorzystać do transportowania innych usług np. VNC lub poczty
email protokołami SMTP i POP3. Można wtedy być pewnym że
nikt nie podejrzy naszych danych.
Autor: Marcin Mazurek 06.12.2004
|