przekierowanie portów w Windows i Linuksie
Data: 19 wrzesień 2007
Identyfikator: 070126
Tam, gdzie ograniczenia sieci nie pozwalają na bezpośrednią komunikację komputerów, trzeba uciec się do fortelu. Dokonując prostego przekierowania portów, skorzystasz z usług na serwerach niedostępnych w inny sposób.
Załóżmy, że w domowej sieci LAN na jednym komputerze uruchomione są usługi, do których potrzebny jest zdalny dostęp z pracy. Ponieważ maszynie przypisany jest lokalny adres IP i nie jest ona bezpośrednio dostępna z internetu, jedynym wyjściem jest przekierowanie wybranego portu na komputerze, który znajduje się w tej sieci i ma publiczny IP. Często jest to od razu brama internetowa. Jeśli działa na niej zapora sieciowa, możesz dodać odpowiednie reguły przekierowujące pakiety, ale bezpieczniej jest użyć protokołu SSH. Uniemożliwi on tworzenie tuneli osobom trzecim (do forwardowania wymagana będzie autoryzacja), ale jednocześnie pozwoli łączyć się z dowolnym serwerem na jakimkolwiek komputerze w LAN-ie wedle własnych potrzeb. Sprawdźmy, jak to wygląda w praktyce.
Ustawienia bramki
Jeśli bramka działa pod kontrolą systemu Linux, sprawdź, czy serwer SSH jest zainstalowany i uruchomiony. Najprościej jest zbadać, czy polecenie ps ax | grep sshd wyświetli szukany proces (sshd) na liście. Gdy serwera SSH brak, trzeba zainstalować pakiet openssh-server, czyli np. w systemach debianopochodnych wydać polecenie:
sudo apt-get install openssh-server
Domyślnie demon SSH będzie działał na porcie 22, umożliwiając logowanie się dowolnemu użytkownikowi systemowemu bez modyfikacji jakichkolwiek ustawień.
Używanie Windows na bramce oznacza konieczność instalacji serwera OpenSSH (dostępny na http://sshwindows.sourceforge.net). Po instalacji dodaj istniejących użytkowników systemu Windows do konfiguracji usługi. W konsoli systemowej, uruchamianej poleceniem cmd.exe, przejdź do katalogu serwera SSH (domyślnie %programfiles% \OpenSSH) i wydaj następujące polecenia:
bin\mkpasswd -l -u Użytkownik >> etc\passwd
bin\mkgroup -l >> etc\group
Zamiast Użytkownik podaj istniejącą nazwę konta w Windows – co ważne – zabezpieczonego hasłem. Serwer wystartuje na porcie 22 po wydaniu komendy:
net start opensshd
Konfiguracja komputerów zdalnych
Czas odkryć możliwości tunelowania SSH. Załóżmy, że w sieci domowej na komputerze 192.168.1.11 uruchomiony jest serwer WWW, do którego chcemy dostać się z pracy. Działa on zwykle na porcie 80, więc na ten port nasze żądanie musi przekierować bramka.
Jeśli pracujesz na Linuksie, wystarczy użyć domyślnego klienta SSH, za pomocą którego zalogujesz się na bramkę, dokonując od razu przekierowania portu:
ssh user@moja.bramka.net -L 7777:192.168.1.11:80
W tym przykładzie po zalogowaniu się ruch z lokalnego portu 7777 będzie przekierowywany na port 80 wskazanego komputera w sieci domowej. W przeglądarce internetowej wystarczy zaś podać adres localhost:7777, aby móc przeglądać strony WWW hostowane na domowym serwerze. Jednym poleceniem możesz przekierować ruch na wielu portach – wystarczy użyć wielokrotnie opcji -L. Pamiętaj, że jeden port lokalny może być forwardowany tylko raz oraz należy przekazywać tylko porty lokalne o numerze wyższym niż 1024.
Klienty SSH dostępne są także dla Windows. Najlepszym programem do tego celu jest PuTTY (na http://www.chiark.greenend.org.uk/~sgtatham/putty/). Wystarczy rozpakować archiwum z aplikacją do wybranego folderu i uruchomić putty.exe. W wyświetlonym oknie w polu Host Name podaj adres bramki, po czym z listy Category wybierz Tunnels. Tutaj w polu Source port wpisz lokalny port do przekierowania, np. 7777, a w Destination – adres i port docelowy komputera domowego, czyli 192.168.1.11:80. Teraz kliknij Add. Tak można zdefiniować wiele portów.
Po kliknięciu na Open otworzy się zdalny terminal, w którym należy się zalogować, podając nazwę konta i hasło. Od tej chwili skonfigurowane w PuTTY porty są forwardowane na komputer działający w sieci domowej. Forwarding będzie działał tak długo, dopóki aplikacja pozostaje otwarta.
Ocena: 



(aby ocenić, musisz się zalogować w serwisie)
Podobne artykuły: