Sieć i praca zdalna

Po podaniu identyfikatora użytkownika -- login, oraz hasła na którymś z komputerów pracujących w sieci unixowej znajdujemy się w sesji lokalnej, tj. uruchamiane przez użytkownika programy wykonują się na tym komputerze, przy którym on siedzi -- niezależnie od tego, że funkcje sieci umożliwiają mu dostęp do szeregu zasobów udostępnianych przez serwer lub serwery sieciowe (głównie plików na dyskach sieciowych). Ta forma dostępu do zasobów sieci nie wymaga żadnych szczególnych zabiegów ze strony użytkownika, praca na dysku sieciowym niczym się w zasadzie nie różni od pracy na dysku podłączonym bezpośrednio do używanego w danej chwili komputera.

Funkcje sieci unixowej pozwalają jednak również na bardziej ,,bezpośredni'' dostęp do komputera zdalnego, polegający na otwarciu zdalnej sesji np. w jednym z okienek terminalowych uruchomionych w ramach systemu okienkowego. Wiąże się to zazwyczaj z ponownym podaniem loginu i hasła (przedstawiamy się innemu komputerowi); programy uruchomione w ramach sesji zdalnej wykonują się na zdalnym komputerze i mają bezpośredni dostęp do jego zasobów -- dysków itp., oczywiście w ramach uprawnień przysługujących danemu użytkownikowi. Zdalny komputer może znajdować się w tej samej sieci lokalnej (tj. np. w OKWF) lub wręcz na drugim końcu świata -- o ile jest dostępny poprzez łącza internetowe. Oczywiście w tym drugim przypadku konieczne jest posiadanie konta uprawniającego do dostępu do tego właśnie komputera.

Poza programami terminalowymi, tj. komunikującymi się z użytkownikiem poprzez terminal znakowy (jakim jest np. okienko xterm), możliwe jest również zdalne uruchamianie programów okienkowych, pracujących w standardzie X Window System -- komunikujących się z użytkownikiem poprzez swoje własne okna (jak np. Netscape). Z reguły możliwe jest to jednak jedynie w ramach sieci lokalnej, odpowiednie kanały komunikacji sieciowej są zazwyczaj blokowane na styku sieć lokalna -- ,,reszta świata'', ze względów bezpieczeństwa. Zresztą komunikacja dalekiego zasięgu przez Internet jest zazwyczaj zbyt powolna aby zapewnić wygodną pracę w zdalnie uruchamianym programie okienkowym.

Omówimy tu również skrótowo inne możliwości wykorzystania sieci czy usługi sieciowe, takie jak transfer plików z wykorzystaniem protokołu FTP, korzystanie z WWW, Usenet, i pocztę elektroniczną.

Praca zdalna: telnet

Najprostszym narzędziem do pracy zdalnej jest program telnet; w dużym uproszczeniu, uruchomienie go zamienia aktualnie używany terminal (okienko typu xterm lub konsolę znakową) w terminal ,,jakby'' bezpośrednio podłączony do komputera zdalnego. Jako argument wywołania telnet podajemy nazwę lub adres zdalnego komputera, z którym chcemy się połączyć; w przypadku (najczęstszym) gdy jest to komputer z tej samej sieci lokalnej (dokładniej: domeny DNS), wystarczy podać pierwszy człon tej nazwy (np. telnet tempac, telnet primus). Po (udanym) przedstawieniu się zdalnemu komputerowi (identyfikatorem użytkownika oraz hasłem), uzyskujemy dostęp do wszelkich zasobów tego komputera (do których dostęp przysługuje danemu użytkownikowi), a więc dysków i zainstalowanych na nim programów. Programy posługujące się interfejsem znakowym możemy uruchamiać tak samo, jak byłoby to możliwe na terminalu podłączonym bezpośrednio do zdalnego komputera.

Zakończenie sesji telnet i powrót do sesji lokalnej następuje przez podanie komendy logout lub exit. Wprowadzenie z klawiatury sekwencji specjalnej (zazwyczaj Ctrl-], oznaczane również jako ^], co znaczy równoczesne wciśnięcie klawiszy Ctrl i ]) umożliwia skorzystanie z szeregu wewnętrznych funkcji samego programu komunikacyjnego telnet, takich jak: close (natychmiastowe zamknięcie sesji), czy z (czasowe ,,zawieszenie'' sesji, powrót do sesji zdalnej przez komendę fg).

Głównym niedostatkiem programu telnet jest fakt, że cała treść komunikacji ze zdalnym komputerem przesyłana jest ,,otwartym tekstem'', włącznie z hasłem użytkownika. W dzisiejszych warunkach uznawane jest to za poważne zagrożenie dla bezpieczeństwa i z tego powodu komunikacja w protokole telnet jest zazwyczaj blokowana na styku sieć lokalna -- reszta świata (firewall). Również komputery OKWF nie są dostępne poprzez telnet z zewnątrz sieci Wydziału Fizyki.

Praca zdalna: ssh i slogin

Nieco lepszą wersję pracy zdalnej umożliwia program ssh, różniący się od telnet głównie tym, że strumień komunikacji pomiędzy klientem a serwerem jest szyfrowany -- dość ,,silnym'', a więc trudnym do złamania algorytmem (w każdym razie złamanie go wprost jest poza zasięgiem możliwości domorosłych ,,hackerów''). Z tego względu komunikacja przez ssh częściej bywa dostępna w połączeniach dalekiego zasięgu (poza siecią lokalną), np. komputer tempac dostępny jest spoza Wydziału Fizyki przez połączenia ssh. Dostępna jest również opcjonalnie kompresja strumienia komunikacyjnego, co istotnie poprawia współpracę z programami okienkowymi uruchomionymi w sesji ssh na odległym komputerze. Zarówno szyfrowanie jak i kompresja odbywają się w sposób ,,przezroczysty'' dla użytkownika i nie wymagają od niego specjalnych zabiegów, poza ew. poinformowaniem programu czy kompresja ma być wykorzystywana czy wyrażeniem preferencji co do stosowanego algorytmu szyfrowania.

Przy uruchamianiu zdalnej sesji w ssh może być konieczne podanie w linii komend identyfikatora konta (login), z którego zamierzamy korzystać na zdalnym komputerze, o ile nie brzmi on tak samo jak login konta lokalnego. Chcąc uruchomić sesję interakcyjną, tj. o własnościach (dla użytkownika) najbardziej zbliżonych do sesji telnet, wywołujemy program slogin, w postaci np. slogin login@tempac (jest to program pomocniczy dla programu ssh).

Aby mieć możliwość uruchamiania w sesji zdalnej programów okienkowych (których okna będą wówczas pojawiały się na naszym aktualnym terminalu, zakładając oczywiście, że pracuje on w trybie graficznym), może być konieczne dodanie opcji -X (np. slogin -X login@primus). Należy jednak wiedzieć, że administrator zdalnego komputera mógł mu ,,zabronić'' uruchamiania programów okienkowych dla sesji ssh.

Istnieje wiele możliwości zmodyfikowania sposobu działania ssh i slogin dla danego użytkownika, poprzez zapisanie odpowiednich opcji i informacji w plikach umieszczonych w katalogu ~/.ssh/. Możliwe jest m. in. zadanie różnych domyślnych identyfikatorów (loginów) dla różnych zdalnych komputerów, kontrolowanie opcji dotyczących szyfrowania, kompresji i możliwości uruchamiania programów okienkowych, oraz wykorzystanie tzw. autoryzacji RSA (metodą klucza publicznego), co pozwala uniknąć każdorazowego podawania hasła do zdalnego konta przy otwieraniu sesji. Dociekliwi znajdą odpowiednie szczegóły w dokumentacji (man ssh).

Program ssh posiada również możliwość wygodnego transferu plików z i do zdalnych komputerów, w czym może często zastąpić ftp (w trybie nieanonimowym, p. poniżej). W tym celu wywołujemy go poleceniem postaci scp [login@]adres:ścieżka_do_pliku_zdalnego plik_lokalny (dla transferu z komputera zdalnego na lokalny), i z odwróceniem kolejności argumentów dla transferu w kierunku odwrotnym. Ścieżka do pliku zdalnego może być podana bądź w postaci bezwzględnej (zaczynając od /), bądź względem katalogu ,,domowego'' dla zdalnego konta.

Transfer plików: ftp

Protokół FTP i obsługujący go program (również o nazwie ftp) służy do przesyłania plików siecią pomiędzy klientem (tj. komputerem z którego inicjujemy połączenie) a serwerem, i to w obu kierunkach. Nie jest on potrzebny w przypadku, gdy chodzi o dwa komputery posiadające wspólny dostęp do dysków sieciowych, natomiast często wykorzystywany jest do udostępniania np. archiwów swobodnie dostępnego oprogramowania poprzez Internet.

W najprostszym przypadku używamy FTP do przesyłania plików z i do komputera, na którym również posiadamy własne konto. Wówczas, po uruchomieniu programu ftp podajemy login i hasło do konta na zdalnym komputerze, uzyskując w ten sposób dostęp do odczytu i zapisu plików w ramach uprawnień danego konta. Najważniejsze komendy dostępne w programie ftp to:

Drugi tryb FTP to tzw. tryb anonimowy. Wykorzystywany on jest w kontaktowaniu się z serwerami publicznymi, na których udostępnione są pliki które można pobrać bez wykazania się jakimikolwiek uprawnieniami. W trybie anonimowym w miejsce identyfikatora konta podajemy anonymous lub (krócej) ftp, a w miejsce hasła można podać cokolwiek, z tym że dobrym zwyczajem jest wpisanie swojego adresu poczty elektronicznej (rzadko jest to jednak w jakikolwiek sposób egzekwowane, o ile w ogóle). Poza tym praca w trybie anonimowym wygląda dokładnie tak samo, jak w ,,zwykłym'', niemożliwe jest jednak na ogół umieszczanie swoich plików na zdalnym serwerze. Interesująca dla ,,gości'' zawartość zdalnego serwera znajduje się na ogół w katalogu /pub i jego podkatalogach.

Uwaga: w wielu przypadkach zabezpieczenia stosowane na firewallach uniemożliwiają transfery FTP spoza sieci lokalnej w domyślnym trybie programu. W takiej sytuacji należy wywoływać program jako ftp -p lub pftp; jeżeli dostępna wersja ftp nie udostępnia żadnej z tych opcji, to może zadziałać podanie na początku sesji FTP komendy quote PASV.

Obecnie przy przeglądaniu publicznych archiwów FTP wykorzystuje się zazwyczaj przeglądarkę WWW (np. Netscape), która również potrafi posługiwać się protokołem FTP, przynajmniej w trybie anonimowym. Jest to wygodne gdy nie wiemy dokładnie, czego szukamy; natomiast gdy znana jest nam lokalizacja plików do przetransferowania, użycie ,,klasycznego'' programu FTP często pozwala wykonać zadanie szybciej i sprawniej.

Czytane razy.