Jak działa protokół SSH?

ssh vs ftp
Shares

Niezależnie od tego, czy jesteś blogerem, czy właścicielem dużej firmy, musisz zadbać o to, aby Twój wizerunek w oczach klientów był jak najlepszy. Podjęcie środków ostrożności i ochrona swojej strony przed naruszeniami to konieczność. Istnieje kilka sposobów ochrony. Jednym z nich jest protokół SSH.


Czym jest protokół SSH?

Protokół SSH oznacza Secure Shell. Jest to standard dla protokołów komunikacyjnych klient-serwer używanych w sieciach komputerowych TCP/IP. Dzięki protokołowi Secure Shell możesz logować się do zdalnych komputerów i wykonywać polecenia. Jest to model klient-serwer dla zdalnego połączenia. Połączenie SSH jest szyfrowane, w przeciwieństwie do poprzednika protokołu SSH – TELNET.

Przechwytywanie niezaszyfrowanych danych jest proste i wymaga podstawowej wiedzy na temat warstwy połączenia. Korzystanie z niezabezpieczonych protokołów zdalnego dostępu jest ryzykowne, stąd popularność ustawiania warstwy uwierzytelniania użytkownika.

Istnieją dwie główne grupy użytkowników Secure Shell. Administratorzy sieci używają go do zarządzania zdalnymi serwerami SSH. Klienci hostingowi używają połączenia SSH do administrowania swoimi serwerami za pomocą niestandardowych metod uwierzytelniania. Możesz skonfigurować zdalną maszynę, naprawić uszkodzony router lub uzyskać dostęp do zdalnych baz danych. Protokół zapewnia możliwość korzystania z poczty elektronicznej i umożliwia bezpieczny transfer plików.

Protokół Secure Socket Shell jest pomocny w codziennej pracy na zdalnym sprzęcie i znacznie zwiększa bezpieczeństwo warstwy połączenia. Dzięki kryptograficznemu protokołowi sieciowemu możesz walczyć z atakiem na swoją stronę z zewnątrz, np. próbą przechwycenia hasła lub podszywania się pod serwer DNS.

Możesz uzyskać dostęp do swojego VPS lub dedykowanego serwera za pomocą klienta SSH. Możesz modyfikować pliki systemowe na serwerze i instalować nowe narzędzia. W przypadku hostingu współdzielonego możesz przeglądać, przenosić, kopiować i edytować pliki na serwerze, pakować i rozpakowywać pliki bezpośrednio na serwerze oraz tworzyć lub przywracać kopie zapasowe.

Aby poznać różnicę między VPS a serwerem dedykowanym, przeczytaj ten artykuł. Dowiesz się, kiedy warto zainwestować w rozwiązanie dedykowane, a kiedy wystarczy rozwiązanie wirtualne.


Mechanizm protokołu SSH

Już wiesz, czym jest protokół transferu plików SSH. Za pomocą aplikacji klienta Secure Shell możesz pracować w powłoce systemu zdalnego, tak jakby to był system lokalny. Technologia Secure Shell była lekarstwem na brak bezpieczeństwa protokołu Telnet. Działa w architekturze klient-serwer; serwer nasłuchuje na domyślnym porcie 22. Potencjał bezpieczeństwa jest bardzo wysoki i pozwala dwóm komputerom komunikować się bez ryzyka przejęcia danych.

Algorytm wymiany kluczy szyfrujących jest podstawą zrozumienia, jak działa całe połączenie SSH. SSH umożliwia uwierzytelnianie klienta przy użyciu symetrycznych kluczy podczas połączenia z różnymi zdalnymi systemami operacyjnymi, dzięki czemu można korzystać go zarówno na hostingu Linux jak i Windows. Ponadto programy protokołu SSH zapewniają:

  • wybór metody uwierzytelniania hasłem;
  • tunelowanie połączeń TCP w SSH;
  • tunelowanie sesji X-Window;
  • bezpieczny transfer plików SCP;
  • wsparcie dla zewnętrznych metod uwierzytelniania (w tym Kerberos, certyfikaty cyfrowe i SmartCards).

W rezultacie technologia Secure Shell chroni swoich użytkowników przed następującymi atakami:

  • podsłuchanie i przechwycenie sesji,
  • podszywanie się pod serwer DNS,
  • routing źródłowy IP (podszywanie się pod zaufany system),
  • podszywanie się pod źródłowy adres IP (podszywanie się pod zdalny serwer docelowy),
  • przechwycenie hasła.

Nawet jeżeli korzystasz z technologii certyfikatów SSL do zabezpieczenia transmisji, warto dodać kolejną warstwę zabezpieczeń w postaci SSH.

Protokół SSH ma dwie wersje: starszą SSHv1 i nowszą SSHv2 opracowaną przez Internet Engineering Task Force (IETF). Różnią się one metodami szyfrowania, ale podstawowa zasada działania oparta na kryptografii klucza publicznego klienta i serwera jest taka sama.

Skupię się na protokole SSHv2, podkreślając różnice między nim a jego starszym bratem. SSHv1 szybko traci popularność na rzecz swojego następcy, ponieważ można przeprowadzić skuteczny atak przechwycenia sesji na SSHv1, co nie jest możliwe przy zaawansowanym standardzie szyfrowania SSHv2.


Zyskaj pełną kontrolę nad swoim serwerem

Wybierz nasz Samozarządzany Hosting VPS SSH dla pełnej kontroli nad infrastrukturą serwera. Ciesz się niezrównaną wydajnością, przystępną ceną i szybkim wdrożeniem serwera w 55 sekund. Dzięki pełnemu dostępowi root z kluczami SSH, masz całkowitą kontrolę i nielimitowany ruch.


Autoryzacja klienta SSH i serwera SSH

Autoryzacja Secure Shell gwarantuje bezpieczne szyfrowanie połączeń.

Każdy system komputerowy korzystający z najnowszego protokołu klienta SSH ma unikalny plik klucza publicznego RSA lub DSA. SSHv1 ma tylko serwer RSA. Takie klucze SSH mają długość co najmniej 1024 bitów. W SSHv1 serwer okresowo generuje parę kluczy publiczno-prywatnych o długości co najmniej 768 bitów. Serwer zdalnej maszyny generuje dwa klucze SSH: jeden to klucz hosta, a drugi to klucz serwera.

Podczas połączeń SSH, klienci SSH otrzymują swoje klucze publiczne; 1024-bitowy klucz stały przypisany do serwera oraz 768-bitowy klucz okresowo zmieniany. Klient porównuje klucz stały ze swoim głównym i określa, czy połączył się z właściwym serwerem SSH.

Następnie klient szyfruje numer przy użyciu otrzymanych kluczy publicznych z serwera i odsyła zaszyfrowany numer. Serwer następnie deszyfruje otrzymaną wartość przy użyciu swoich kluczy prywatnych. Wyjściowa wartość staje się kluczem dla symetrycznych algorytmów używanych do szyfrowania właściwej sesji komunikacyjnej. Najpopularniejsze algorytmy szyfrujące sesje to Blowfish i Triple DES.

Z kolei w przypadku SSHv2 klucz serwera nie jest generowany. Zamiast tego algorytm Diffie-Hellmana autonomicznie generuje klucz sesji. SSHv2 szyfruje dane za pomocą wielu algorytmów: AES (128, 192, 256 bitów), Blowfish, Triple DES, CAST128 i Arcfour. Ponadto integralność sesji jest zapewniana przez jeden z algorytmów haszujących – SHAv1 lub MD5.

Po pomyślnej autoryzacji użytkownik może uzyskać dostęp do zdalnego serwera i rozpocząć transfer danych. Metody uwierzytelniania użytkownika to głównie protokoły szyfrowania oparte na wymianie danych za pomocą kluczy publicznych i autoryzacja rhosts.

Autoryzacja rhosts

Zakłada, że serwer SSH ma wpis w plikach /etc/hosts.equiv lub /etc/shosts.equiv albo w plikach .shosts lub .rhosts zawierających nazwy komputerów klienta i użytkowników. Jeśli wymienione pliki zawierają te same informacje, bezpieczny dostęp jest automatycznie przyznawany (bez pytania o hasło).

Autoryzacja klucza publicznego

Klucz publiczny użytkownika znajduje się na serwerze Secure Shell z RSA. Na początku połączenia klient deklaruje, które klucze publiczne chce użyć. W odpowiedzi serwer wysyła losowy numer zaszyfrowany kluczem publicznym wybranym przez klienta. Klient musi go odszyfrować za pomocą swojego tajnego klucza odpowiadającego danemu kluczowi publicznemu.

Jeśli ten krok się powiedzie, klient szyfruje numer swoim kluczem prywatnym, a serwer musi go odszyfrować przy użyciu odpowiadającego klucza publicznego. Jeśli serwer otrzyma numer, który wcześniej wysłał do klienta (zaszyfrowany jego kluczem publicznym), autoryzacja klienta jest pomyślna. Nie ma znaczeniu tutaj czy serwer jest fizyczny czy może też jest to wirtualny serwer VDS lub VPS.

W systemach opartych na SSHv2 szyfrowanie i deszyfrowanie za pomocą autoryzacji klucza publicznego różni się. Po pierwsze, używa zarówno kluczy RSA, jak i DSA. Kiedy serwer wysyła zaszyfrowany losowy numer do klienta, podpisuje klucz sesji uzgodniony przy użyciu algorytmu Diffie-Hellmana swoim kluczem prywatnym. Połączenie jest weryfikowane przez serwer SSH przy użyciu klucza publicznego użytkownika.

Ponadto systemy oparte na SSHv2 mogą używać zewnętrznych metod uwierzytelniania opartych na Kerberos, X.509 i SmartCards.

Przejście przez etapy autoryzacji użytkownika pozwala rozpocząć pracę na zdalnym komputerze. Pierwszy tryb to nieinteraktywne wykonywanie poleceń SSH wydawanych z poziomu klienta. Drugi, bardziej zaawansowany tryb, to udostępnienie użytkownikowi zdalnej powłoki. Jest to mechanizm zdalnego dostępu do zdalnego komputera.

Bezpieczeństwo jest podstawą prowadzenia biznesu. Szyfrowanie danych jest ważne, ale musisz również zabezpieczyć swoją stronę. Dowiedz się, jak zabezpieczyć WordPress!


Jak korzystać z Secure Shell?

Możesz użyć różnych programów, aby połączyć klientów SSH z serwerami. Najpopularniejsze to PuTTY i OpenSSH. Oprócz nich możesz używać innych programów na różnych systemach operacyjnych. SSHdos (dla DOS), NiftyTelnet SSH (dla macOS), MindTerm (dla Java), MSSH, WinSCP, TTSSH i SecureCRT (dla Windows).

Konfiguracja PuTTY

Aby umożliwić połączenie, przejdź do zakładki Session. W polu Signed Host Name wpisz nazwę skonfigurowanej domeny lub adres IP serwera. W typie połączenia wybierz opcję SSH, polecenie Open i wprowadź login oraz hasło. Od teraz możesz korzystać ze swojego serwera hostingowego za pomocą protokołu SSH.

Aby zarządzać serwerem, wykonuj polecenia powłoki w konsoli powłoki:

  • find – wyszukaj plik po nazwie;
  • ls – wyświetl katalog lub plik;
  • mkdir – utwórz nowy katalog;
  • mv – przenieś katalog lub plik;
  • cp – skopiuj katalog lub plik;
  • rm – usuń katalog lub plik.

Warto sprawdzić opcję Logging turned off i Ask the user every time, a w zakładce Terminal wybrać:

  • Auto wrap mode initially on;
  • Use background color to erase screen;
  • Local echo – Auto;
  • Local line editing – Auto.

W zakładce Keyboard należy pozostawić domyślne opcje. Jeśli chcesz używać akcentów w innym języku (takich jak polskie litery, np. ą, ę), zaznacz dwie ostatnie opcje pod Enable extra keyboard features. Zakładka Appearance pozwala wybrać odpowiednią czcionkę. Możesz wprowadzić zmiany, naciskając opcję Change, dzięki czemu będziesz mógł modyfikować interfejs użytkownika graficznego: wybierać rodzaj, styl i rozmiar czcionki.

W zakładce Translation polecam wybrać Use font in both ANSI and OEM modes. Następnie, z zakładki Connection, wybierz opcję xterm i wprowadź login w polu auto-login username. W kliencie PuTTY można zmienić protokół z SSHv1 na SSHv2. Jeśli chcesz wybrać protokół SSHv2, przejdź do opcji SSH i wybierz wersję 2.


Podsumowanie

Najbardziej powszechny sposób łączenia się z serwerem to FTP (File Transfer Protocol) i jego bezpieczna alternatywa: FTPS. Jednak przy FTP/FTPS możesz tylko kopiować pliki na serwer i pobierać je na swoje urządzenie, podczas gdy sesja SSH oferuje więcej możliwości niż tylko bezpieczeństwo warstwy transportowej: możesz pracować na serwerze i wykonywać różne polecenia.

Co powinienneś wiedzieć o FTP?

Korzystając z technologii Secure Shell, plik nie musi być edytowany lokalnie – możesz działać na serwerze, co jest wygodniejszym rozwiązaniem. Zadaniem protokołu SSH jest także zabezpieczenie połączenia przez szyfrowane połączenie proxy.

Wyższe bezpieczeństwo i ogromny potencjał sprawiają, że Secure Shell jest najlepszym rozwiązaniem do zarządzania hostingiem dedykowanym lub VPS. A że bezpieczeństwo jest jednym z kluczowych zagadnień, nie muszę Ci chyba tego tłumaczyć. Dlatego oprócz wyboru uwierzytelniania SSH, musisz również wybrać odpowiedniego dostawcę hostingu.

Jednym z najbezpieczniejszych dostawców hostingu jest UltaHost. Bezpieczeństwo jest absolutnym priorytetem UltaHost. Kilka warstw ochrony przed wszystkimi zagrożeniami, od malware po DDoS, oraz najnowszej generacji sprzęt z dyskami NVMe SSD sprawiają, że UltaHost jest liderem w bezpieczeństwie hostingu. W UltaHost możesz wybrać uwierzytelnianie serwera za pomocą protokołów Secure Shell i FTPS.

UltaHost zabezpiecza Twoją obecność online, chroniąc reputację Twojej strony i odwiedzających przed zagrożeniami cybernetycznymi, oraz skanuje Twoją stronę pod kątem malware i innych luk w zabezpieczeniach.

Ale UltaHost to nie tylko bezpieczna platforma hostingowa dla WordPressa. Otrzymasz całodobowe wsparcie od naszego zespołu ekspertów. Nasza zaawansowana infrastruktura koncentruje się na automatycznym skalowaniu i wydajności. Pozwól nam pokazać różnicę! Sprawdź nasze plany!

Previous Post
DDoS-Protected VPS

Jak działa VPS z ochroną przed DDoS?

Next Post
NVMe Hosting

Wyjaśnienie czym jest pamięć NVMe oraz hosting NVMe

Related Posts
 25% off   Enjoy Powerful Next-Gen VPS Hosting from as low as $5.50