Protokół komunikacyjny używany w sieciach komputerowych do obsługi odległego terminala w architekturze klient-serwer, który nie zapewnia bezpieczeństwa przesyłanych informacji i pracuje wyłącznie w trybie tekstowym, to
A. Secure Shell
B. Telnet
C. Internet Protocol
D. Remote Desktop Protocol
Pytanie z egzaminu CKE, czerwiec 2019 (arkusz E.13-X-19.06).
Telnet to klasyczny protokół zdalnego terminala działający w architekturze klient-serwer, więc opis z pytania pasuje właśnie do niego. Standardowo używa TCP, najczęściej portu 23, a jego działanie opisuje m.in. RFC 854. Telnet udostępnia tekstową sesję terminalową, czyli użytkownik wpisuje polecenia, a serwer odsyła odpowiedzi w formie znaków tekstowych. Nie ma tu graficznego pulpitu ani szyfrowania transmisji. I to jest kluczowe: login, hasło oraz komendy mogą być przesyłane jawnym tekstem, więc osoba podsłuchująca ruch sieciowy, np. przez Wireshark w tej samej sieci, może je odczytać. Z mojego doświadczenia Telnet spotyka się jeszcze przy starszych przełącznikach, routerach, urządzeniach przemysłowych albo w prostych ćwiczeniach laboratoryjnych, gdzie chodzi o pokazanie działania usług TCP. W normalnej administracji dobrą praktyką jest zastępowanie go przez SSH, ograniczanie dostępu przez listy ACL, VLAN zarządzający albo VPN. Telnet warto znać, ale raczej jako przykład protokołu historycznego i niebezpiecznego, a nie jako coś do używania w produkcyjnej sieci.
W tym pytaniu najważniejsze są trzy cechy: zdalny terminal, tryb tekstowy oraz brak ochrony przesyłanych danych. Te warunki spełnia Telnet. Secure Shell, czyli SSH, może wyglądać podobnie, bo też służy do zdalnej pracy w terminalu i też działa w modelu klient-serwer, zwykle na porcie TCP 22. Różnica jest jednak zasadnicza: SSH szyfruje połączenie, uwierzytelnia serwer i może korzystać z haseł albo kluczy kryptograficznych. W praktyce administratorzy Linuksa, urządzeń sieciowych czy serwerów używają właśnie SSH, bo jest zgodny z dobrymi praktykami bezpieczeństwa. Pomylenie SSH z Telnetem jest dość częste, bo oba dają czarne okno z poleceniami, ale bezpieczeństwo transmisji jest zupełnie inne. Internet Protocol nie jest usługą zdalnego terminala. IP pracuje w warstwie sieciowej modelu TCP/IP i odpowiada za adresowanie oraz dostarczanie pakietów między hostami, na przykład z użyciem adresów IPv4 albo IPv6. Samo IP nie daje użytkownikowi sesji tekstowej, nie loguje do serwera i nie obsługuje poleceń terminalowych. Remote Desktop Protocol też nie pasuje do opisu, bo RDP udostępnia zdalny pulpit graficzny, najczęściej w środowisku Windows, standardowo na porcie TCP 3389. Może przenosić obraz, klawiaturę, mysz, schowek czy dźwięk, więc nie jest protokołem wyłącznie tekstowym. Moim zdaniem dobrym sposobem zapamiętania jest proste skojarzenie: Telnet to stary tekstowy terminal bez szyfrowania, SSH to bezpieczny terminal, RDP to zdalny pulpit, a IP to podstawowy protokół dostarczania pakietów w sieci.