Pobierz spakowaną witrynę gorzow-wlkp.pl/linuxJeżeli pragniesz poznać Linuksa Mandrake (obecnie Mandriva), to... dobrze trafiłeś. Witryna została zauważona przez twórców magazynu KOMPUTER ŚWIAT 5/2004(141) str. 46 poprzez umieszczenie linku oraz magazynu CHIP 4/2004 (str.114) poprzez umieszczenie artykułu opisującego ten serwis internetowy. Jak na hobbystyczną stronę o Linuksie to miłe ;) Acha... na stronie mandrakelinux.pl/informacje podano też link z opisem cytuję "duży zbiór praktycznych informacji o Mandrake" (mam ją w swoim archiwum - klub.chip.pl/twarogal).
Zapraszam do zadawania pytań na FORUM oraz mailem. Chętnie udzielę (bezpłatnie) odpowiedzi. Oficjalne ceny za jedną poradę na stronie MandrakeSoftPL (mam ją w moim archiwum z dnia 2.05.2004) wahają się od 20 do 350 zł.
Otrzymałm grzecznościowo poniższy artykuł od Dawida Ławnickiego. Merytorycznie nie sprawdzałem prawidłowości tekstu, gdyż nie mam tak rozbudowanej sieci i nie mogłem zastosować porad w praktyce.
Niniejsza strona www nie jest więc mojego autorstwa, a jedynie udostępniam jej gościnnie miejsce na witrynie www.
Gdy powstała usługa zdalnego przejmowania Pulpitu na odległym komputerze ( VNC), praca biurowa stała się łatwiejsza.
Można z domu pracować na zakładowym komputerze i wykonać awaryjnie poprawki dla szefa. Bez zbędnego marnowania czasu na dojazdy. Czas więc na poznanie VNC.
Strona domowa VNC to: http://www.realvnc.com/.
Programik pobieramy ze strony: www.realvnc.com/download.html lub z serwera magazynu CHIP: http://download.chip.pl/download_77180.html.
Na początek wykonamy najprostszą konfigurację, czyli zwykłe, nieszyfrowane połączenie dwóch komputerów pracujących w prostym układzie sieci.
Krótki opis jest dostępny na stronie: http://serwety.w.interia.pl/
(mam ją w swoim archiwum). Oryginalny opis (w wersji angielskiej) znajdziesz na stronie: www.realvnc.com/products/free/
Polecam też stronę: http://studianet.pl/so_1_izk/winxp/administracja%20systemem/ (mam ją w swoim archiwum)
Trudności zaczynają się, gdy zechcemy zaszyfrować połączenie, by uniknąć podsłuchania lub wykradzenia danych. Jeszcze
więcej problemów mamy, gdy łącząc
się z domu do zakładowej sieci trzeba przejść przez dwa routery - taki przykład został opisany na niniejszej stronie.

Mam
następujący układ: z domowego komputera (Windows)
łączę się z komputerem w pracy (Windows) i przejmuję jego Pulpit za pomocą
VNC. Transmisja jest szyfrowana.
Zakładowy komputer pracuje
w sieci o schemacie:
Internet---Router1(sprzętowy)---Router2(NND)---Switch----moj_zakładowy_komputer
Dodatkowe informacje o komputerach w zakładowej sieci:
217.96.171.101_Router1_192.168.1.1
Adres
217.96.171.101 to IP widziane w Internecie. Jest to tzw. zewnętrzny
adres Routera1.
Adres 192.168.1.1, to wewnętrzny adres Routera1 (jednocześnie jest bramą
internetową dla Routera2).
192.168.1.5_Router2_192.168.4.1
Adres 192.168.1.5 to zewnętrzny adres Routera2.
Adres 192.168.4.1 to wewnętrzny adres Routera2 (jednocześnie jest bramą
internetową dla komputerów firmy podłączonych do switch'a).
Na Routerze2 jest zainstalowany Linux NND Linux Router, a na nim skonfigurowany linuksowy user antek.
192.168.4.7_mój_zakładowy_komputer
OPIS WYKONANIA POŁĄCZENIA
- W domu uruchamiam klienta SSH. Jest kilka programów tego typu: PuTTy,
SSHWin (linki na dole artykułu). Za pomocą klienta SSH łączę
się (poprzez internet) z zakładowym numerem IP 217.96.171.101 na jego porcie 22. Wpis
połączenia w moim przypadku jest mocno rozbudowany, ale o tym w pkt. 5.
Szczegółowy opis klientów ssh znajdziesz na sąsiedniej stronie.
-
Zakładowy, sprzętowy Router1 ma firewall ustawiony tak, by wezwania
na port 22 (z Internetu) były przekierowywane na port 22 do komputera
Router2. Sposób konfiguracji przekierowania na sprzętowym routerze znajdziesz na instrukcji
dołączonej do sprzętu.
- W
zakładowej sieci Router2 pracuje pod kontrolą Linuksa (NND Linux Router) z uruchomionym
serwerem OpenSSH, który został standardowo skonfigurowany (nasłuchuje
na porcie 22).
Na
Routerze2 jest linuksowy user antek.
Uwaga: na Routerze2 (standardowa instalacja Linuksa NND Linux Router) w firewallu oraz
plikach: /etc/host.allow , /etc/hosts nie
wykonywałem dodatkowych czynności konfiguracyjnych związanych z
opisywanym tutaj tunelowaniem.
-
Na windowsowym kliencie 192.168.4.7 (mój_zakładowy_komputer), na porcie 5900 czai się program (serwer)
VNC, który umożliwia innym komputerom w sieci zdalną pracę na jego
Pulpicie.
- W
domu wpisuję w linii komend zlecenie:
ssh -l antek -L Plok:IP_PRACA:Pzdal IP_R1
ssh -l antek opcja -l (czyli male L), która nakazuje podanie (po spacji) loginu (tu usera_na_NND)
antek - user_na_NND
Plok - port lokalny po którym będę się u siebie łączył
IP_PRACA - IP kompa w pracy
Pzdal - port kompa w pracy, a w zasadzie usługi VNC
IP_R1
zewnętrzne ip w pracy widzine z netu (zewnętrzne IP routera)
czyli
w praktyce:
ssh -l antek -L 1777:192.168.4.7:5900 217.96.171.101
Zatwierdzam klawiszem ENTER i podaję hasło do shellowego konta usera antek.
- Mając
aktywny tunel ssh mogę uruchomić usługę VNC wpisując do windowsowej
przeglądarki VNC:
localhost:1777
Tunel
zajmie się resztą i przekieruje do mojego zakładowego komputera. Takie działanie
jest odpowiednikiem wpisania w sieci lokalnej (w przeglądarce VNC )
adresu mojego komputera 192.168.4.7 (lub 192.168.4.7:5900; port 5900 jest
domyślny).
Wyjaśnienie:
Tunel
ma 2 "końce". Jeden u nas i jeden w odległym komuterze. Aby
dostać się do tunelu odwołujemy się do lokalnego
portu, a tunel nas kieruje do odległego komputera. 1777
to początek tunelu, czyli nasz port lokalny (Plok), a 5900 to koniec tunelu na zdalnym kompie, na którym pracuje usługa VNC
(Pzdal). Przekierowanie
na Routerze1 (R_1) daje to, że z Internetu na porcie 22 jest widoczny Router2 (R_2). Wystarczy mieć konto (np.
antek) na R_2 i można dostać się do każdego kompa w wewnętrznej
sieci za pomocą opisanego juz zlecenia:
ssh -l antek -L 1777:192.168.4.7:5900 217.96.171.101

DODATKOWE WSKAZÓWKI
Tunelowanie na kilka komputerów w sieci.
Oto lista komputerów w mojej zakładowej sieci:
192.168.4.7 (mój komp)
192.168.4.8 (komp Zosi)
192.168.4.9 (komp Kasi)
217.96.171.101 (zewnętrzne IP).
Z
domu uruchamiając klienta SSH wpisuję polecenie:
ssh -l antek -L 1777:192.168.4.7:5900 -L 1888:192.168.4.8:5900 -L 1999:192.168.4.9:5900 217.96.171.101
Wykonuję w ten sposób dwie rzeczy: połączenie z siecią zewnętrzną o IP
217.96.171.101 i jednocześnie (dzięki kilku opcjom -L) ustawienie
przekierowania portów (inny port dla każdego hosta).
Jeśli teraz (po poprawnym
zalogowaniu się na konto antek) w przeglądarce VNC wpiszę:
localhost:1777
(to połączę się z moim komputerem)
localhost:1888
(to połączę się z kompem Zosi)
localhost:1999
(to połączę się z komputerem Kasi)
Połączenie
na lokalny port 1777 (u mnie w domu) przekierowane będzie tunelem do
wewnętrznej sieci firmy na komputer 192.168.4.7 na jego port 5900,
gdzie nasłuchuje serwer VNC.
Wybór
portów jest w zasadzie dowolny, choć należy pamiętać, że porty od 1
do 1024 mogą być zagospodarowane przez system, więc wskazane jest
użycie portów od 1025 do 65535.
SERWER VNC NA LINUXIE
Istotnym jest zrozumienie różnic w pracy serwera VNC na komputerze pracującym pod Windows i Linuksem. Pokażę to na przykładzie komputera
pracującego pod Linuksem Mandrake (w mojej zakładowej sieci).
Jeżeli komputer w firmie jest osadzony na Windows, to osoba
łącząca się z windowsową stacją poprzez VNC musi używać jednego i tego samego portu.
Skutek jest żałosny: Pulpit przejmie zdalny user, a lokalny nie może dalej pracować (pracuje jeden albo drugi).
Natomiast, jeśli komputer w firmie jest osadzony na Linuksie z iksami (okienkami np. KDE), to linuksowy VNC działa inaczej. Tworzone są "sesje" na różnych portach dla każdego
zdalnego usera osobno. Kilka osób może więc pracować nie przeszkadzając sobie.
W mojej zakładowej sieci obok komputera Zosi, Kasi mam jeszcze jeden komputer o adresie IP: 192.168.4.15 - z
zainstalowanym Linuksem Mandrake.
Na Linuksie Mandrake jest skonfigurowany user kaziu oraz zainstalowany serwer VNC. Dodatkowo zainstalowałem (na Linuksie Mandrake) serwer sshd. Nie jest to konieczne, ale przyda się by ręcznie-zdalnie włączyć serwer VNC (patrz poniższe wyjaśnienia).
W domu wydaję polecenie:
ssh -l antek -L 1715:192.168.4.15:5901 217.96.171.101
Zlecenie z domu utworzy jednocześnie tunel z komputerem 192.168.4.15 w zakładowej sieci oraz
połączenie z Routerem2 (na shellowe konto antek).
W tm momencie bardziej
interesuje mnie to, że uzyskałem shellowe konto usera antek na Routerze2.
Z tej konsoli usera antek na Routerze2 nawiazuję łączność z komputerem
192.168.4.15 (Linux Mandrake)
zleceniem:
ssh kaziu@192.168.4.15
Po co przechwytuję shellowe konto kaziu na Linuksie Mandrake?
Gdyż chcę na komputerze z Linuksem Mandrake uruchomić serwer VNC (przyjmuję, że ze względów bezpieczeństwa serwer VNC nie
jest stale włączony).
Server VNC uruchamiam na konsoli usera kaziu zleceniem:
vncserver
Następnie podaję hasło tego użytkownika (w moim przypadku kaziu).
Hasło podajemy tylko przy pierwszym uruchomieniu serwera VNC. W zasadzie jest to ustawienie hasła,
które będzie trzeba wpisywać w przeglądarce VNC.
Uwaga: użytkownikiem może byc nawet root (wtedy dostajemy powłokę X-ów roota), ale nie jest to bezpieczne! Zmiana hasła później jest możliwa poleceniem:
vncpasswd
Linuksowe zlecenie vncserver to tak naprawdę linuksowy skrypt Perla, który uruchamia
server VNC.
Uwaga: zalecanym jest, by ze względów bezpieczeństwa włączać i wyłączać serwer VNC tylko na czas faktycznego używania
(w linuksie nie zauważysz, że ktoś nowy zaczął zdalnie pracować w trybie graficznym).
W tym miejscu wyjaśnię różnice w logowaniu na zakładowy komputer (z serweram VNC) pracującym pod Windows
i komputer pracujący pod Linuksem (np. Mandrake).
Jeżeli na linuksowym komputerze zleceniem vncserver jako pierwsi uruchamiamy serwer VNC (z którym chcemy mieć zdalny dostęp), to otrzymamy komunikat:
[kaziu@serv] vncserver
New 'X' desktop is serv:1
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/serv:1.log
W wierszu: New 'X' desktop is serv:1
informacja serv:1 mówi nam, że jesteśmy pierwszym klientem i pracujemy na porcie
domyślnym 5900+1=5901 . System sam przydziela ten port. Następny wpis zlecenia vncserver uruchomi port 5902 itd.
Zakończenie pracy serwera VNC wykonujemy wpisując do shella usera kaziu zlecenie:
vncserver -kill :1
Kończenie pracy drugiego servera to:
vncserver -kill :2
Pojawi się komunikat (nr procesu 4076 może być inny ;):
[kaziu@serv] vncserver -kill :1
Killing Xvnc process ID 4076
[kaziu@serv]
W Windows działa to wyłącznie na jednym porcie (standardowo 5900) i dlatego nie ma możliwosci pracy pod VNC kilku osób jednocześnie
na jednym komputerze. Inaczej mówiąc, gdy ktoś łączy sie z windowsową stacją, to przerywa prace uzytkownikowi,
który fizycznie siedzi przy komputerze. Widzi on na monitorze co robimy.
Natomiast w Linuksie userzy VNC pracują niezależnie. Problemem będzie jedynie blokada
zapisu tego samego pliku, który wyedytuje kilku użytkowników. Ale to inna opowieść...
JEŻELI NA KOMPUTERZE W DOMU NIE MA PRZEGLĄDARKI VNC
Jeśli na komputerze w domu nie ma przeglądarki VNC, to można połączyć
się przez przegladarkę obsługujacą aplety JAVA.
Zlecenie dla jednego komputera w sieci w pracy wyglada tak (numery portów
dla Windows):
ssh -l antek -L 5800:192.168.4.7:5800 -L 5900:192.168.4.7:5900 217.96.171.101
Z moich doświadczeń wynika, że trzeba przekierowac dwa porty: 5800 - przegladarka na nim pracuje oraz 5900 -
dla komunikacji samego VNC, a w przeglądarce (z obsługą JAVA) wpisać:
http://localhost:5800
Dla linuksa trzeba odpowiednio zmienić numery portów - jeśli
192.168.4.15 to stacja linuskowa, i VNC działa na porcie 5901, to wpisz:
ssh -l antek -L 5801:192.168.4.15:5801 -L 5901:192.168.4.15:5901 217.96.171.101
a w przeglądarce wpisać odpowiednio:
http://localhost:5801
Jak zrobić tunelowanie przy
pomocy programu PuTTy?
W
programie PuTTy warto wykorzystać sekcję Tunel:
Wpisać wartość portów. Kliknąć
przycisk add. Ważne żeby była zaznaczona opcja Local.
Efekt poniżej:
Oczywiście
przekierowań może być kilka - kilka razy możemy dodawać np. jak we
wcześniejszym przykładzie porty 1888, 1999 etc. No
i oczywiście odpowiednio wskazać adres zewnętrzny naszego routera (w
tym wypadku 217.96.171.101).
Sympatyczny opis ustawienia profilu połączenia ssh (autorstwa Rafała Świątkowskiego)
jest na stronie: http://www.pg.gda.pl/OI/var/content.php?n=00024 (mam kopię w swoim archiwum)
Co robić, gdy mamy zmienne IP
zewnętrzne (np. w Neostradzie)?
Jeżeli w pracy mam zmienne IP (np. poprzez łącze Neostrada), to mogę ułatwić sobie tworzenie tulelu ssh
poprzez wykorzystanie stałego adresu domenowego nadanego przez internetowy serwer NO-IP.
Mając taki adres, w okienku logowania programu PuTTy zamiast adresu IP (tu 217.96.171.101)
wpiszę adres domenowy NO-IP.
Jak uzyskać adres NO-IP?
W moim przypadku na Routerze2 (Router1 jest sprzętowy, więc nie można na nim nic instalować)
należy zainstalować aplikację wykorzystującą no-ip.
Serwisów wspierających no-ip jest wiele: www.no-ip.com/ , www.zoneedit.com , www.changeip.com , www.cjb.net . Tutaj opisuję zakładnie konta na www.no-ip.com/
Podczas zakładania konta na www.no-ip.com/
trzeba wybrać jakąś nazwę konta np. mój_zaklad_pracy i jedną z kilku dostępnych domen.
Nazwa takiej domeny będzie wyglądała mniej więcej tak: mój_zaklad_pracy.no-ip.info .
Dzięki temu po NAZWIE_DOMENY_NO-IP mogę mieć dostęp do swojego serwera. Niezależnie ile razy
zmienią mi IP (program co 5 minut aktualizuje IP na zewnętrznym serwerze NO-IP).
Na komputerach z uruchomionym firewallem mogą wystąpić problemy z działaniem klienta no-ip. Przyczyną jest potrzeba otwarcia portu (w no-ip.com jest to port 8245). Aby ustalić numer zablokowanego portu, wyedytuj plik z logami /var/log/messages.
Opis instalacji klienta no-ip na linuksowym Routerze2 (NND) umieszczono na stronie:
http://www.wiki.nnd.freesco.pl/index.php/Opis_instalacji_klienta_no-ip (mam kopię w swoim archiwum).
Inny przydatny link to:
http://pomoc.x.pl/modules.php?name=Reviews&rop=showcontent&id=21 (mam dwie kopie w swoim archiwum: kopia1 oraz kopia2)
Korzystając z darmowych narzędzi można bezpiecznie pracować na odległych komputerach w różnych okolicznościach: w pracy,
podczas udzielania pomocy znajomym, bez fatygowania się by do nich iść.
Zalety są niepodważalne, a czy istnieją jakieś wady?
Praktycznie ich nie ma, poza koniecznością zapewnienia połączenia o dużym transferze, tak by praca
na zdalnym Pulpicie była płynna.
Uwaga: można wykonać prostsze czynności: zainstalować na odległym linuksowym serwerze OpenSSH i konfig serwera sshd ustawić z opcją X11Forwarding yes. Umożliwi to logowanie z komputera pracującego pod Linuksem pod szyfrowanym tunelem, z możliwością uruchomienia programów w wersji okienkowej. Patrz opis na sąsiedniej stronie.
autor:
Dawid
Ławnicki
mail:dvd1(at)epf.pl
LINKI:
http://www.rzg.mpg.de/networking/tunnelling.html (wersja angielska) mam kopię w swoim archiwum
ciekawy link o VNC (mam kopię w swoim archiwum)
SSH w środowisku Windows (mam kopię w swoim archiwum)
http://www.pg.gda.pl/OI/var/content.php?n=00024 (mam kopię w swoim archiwum)
http://gorzow-wlkp.pl/linux/ssh1.php
http://gorzow-wlkp.pl/linux/ssh2.php
http://gorzow-wlkp.pl/linux/dodatkowe/ssh/ssh.txt
http://gorzow-wlkp.pl/linux/ssh1.php#putty
http://www.pcworld.pl/artykuly/25041_1.html (mam kopię w swoim archiwum)

Uwaga: z powodu namnożenia się różnych złodziejskich witryn, które kopiują moje strony i umieszczają je u siebie wraz z komercyjnymi reklamami (na których zarabiają) informuję, że wszelkie prawa są zastrzeżone.
Uwaga.
Aby uniknąć zasysania całej witryny gorzow-wlkp.pl/linux za pomocą programów typu TeleportPro, WebCopier itd. informuję, że udostępniłem spakowaną wersję (w formacie RAR).
|