Wyszukiwanie w witrynie

Jak zainstalować i skonfigurować serwer OpenSSH w systemie Linux


Bycie administratorem sieci wymaga głębokiej wiedzy na temat protokołów zdalnego logowania, takich jak rlogin, telnet i ssh. W tym artykule omówię protokół ssh.

SSH to bezpieczny protokół zdalny, który służy do zdalnej pracy na innych komputerach lub przesyłania danych pomiędzy komputerami za pomocą polecenia SCP (Secure Copy). Ale czym jest OpenSSH i jak go zainstalować w swojej dystrybucji Linuksa?

Co to jest OpenSSH?

OpenSSH to bezpłatny zestaw narzędzi komputerowych o otwartym kodzie źródłowym, służący do zapewnienia bezpiecznej i szyfrowanej komunikacji w sieci komputerowej przy użyciu protokołu ssh. Wiele osób, które nie mają doświadczenia z komputerami i protokołami, tworzy błędne wyobrażenie na temat OpenSSH, myślą, że jest to protokół, ale tak nie jest. Jest to zestaw programów komputerowych korzystających z protokołu ssh.

OpenSSH jest rozwijany przez grupę Open BSD i udostępniany na uproszczonej licencji BSD. Głównym czynnikiem, który umożliwił tak częste wykorzystanie OpenSSH wśród administratorów systemów, jest jego wieloplatformowość i bardzo przydatne, ciekawe funkcje, jakie posiada.

Najnowsza wersja to OpenSSH 9.3, która została wydana 15 marca 2023 i zawiera wiele nowych funkcji i poprawek, więc jeśli już korzystasz z OpenSSH do administrowania maszynami sugeruję wykonanie aktualizacji lub zainstalowanie ssh ze źródła.

Dlaczego warto używać OpenSSH przez Telnet lub FTP?

Najważniejszym powodem, dla którego warto używać narzędzi OpenSSH przez ftp i Telnet, jest to, że cała komunikacja i dane uwierzytelniające użytkownika korzystają z OpenSSH > są szyfrowane i chronione przed atakami typu man-in-middle. Jeśli osoba trzecia spróbuje przechwycić Twoje połączenie, OpenSSH to wykryje i poinformuje Cię o tym.

Funkcje OpenSSH

  • Bezpieczna komunikacja
  • Silne szyfrowanie (3DES, Blowfish, AES, Arcfour)
  • Przekazywanie X11 (szyfruj ruch X Window System)
  • Przekierowanie portów (szyfrowane kanały dla starszych protokołów)
  • Silne uwierzytelnianie (klucz publiczny, hasło jednorazowe i uwierzytelnianie Kerberos)
  • Przekazywanie agentów (Single-Sign-On)
  • Interoperacyjność (zgodność ze standardami protokołów SSH 1.3, 1.5 i 2.0)
  • Obsługa klienta i serwera SFTP w protokołach SSH1 i SSH2.
  • Kerberos i Przekazywanie biletów AFS
  • Kompresja danych

Zainstaluj serwer OpenSSH w systemie Linux

Aby zainstalować OpenSSH, otwórz terminal i uruchom następujące polecenia z uprawnieniami superużytkownika.

Na Debianie/Ubuntu/Linux Mint

W dystrybucjach opartych na Debianie możesz użyć następującego polecenia apt, aby zainstalować serwer i klienta openssh, jak pokazano.

sudo apt install openssh-server openssh-client

Na RHEL/Centos/Fedora

W dystrybucji opartej na RedHat wpisz następujące polecenie yum, aby zainstalować serwer i klienta openssh.

yum -y install openssh-server openssh-clients

Skonfiguruj serwer OpenSSH w systemie Linux

Czas skonfigurować nasze zachowanie OpenSSH poprzez plik ssh config, ale przed edycją pliku /etc/ssh/sshd_config musimy wykonać kopię zapasową jego kopię, więc w przypadku popełnienia błędu mamy oryginał.

Otwórz terminal i uruchom następujące polecenie cp, aby utworzyć kopię oryginalnego pliku konfiguracyjnego sshd.

sudo cp /etc/ssh/sshd_config  /etc/ssh/sshd_config.original_copy

Jak widać z wpisanego polecenia, dodałem sufiks_oryginalnej kopii, więc za każdym razem, gdy widzę ten plik, wiem, że jest to oryginalna kopia pliku konfiguracyjnego sshd.

Jak połączyć się z OpenSSH

Zanim przejdziemy dalej, musimy sprawdzić, czy nasz serwer openssh działa, czy nie. Jak to zrobić? Możesz spróbować połączyć się z serwerem openssh ze swojego localhost poprzez swojego klienta openssh lub wykonać skanowanie portów za pomocą nmap, ale ja lubię używać małego narzędzia o nazwie netcat, znanego również jako szwajcarski scyzoryk TCP/IP . Uwielbiam pracować z tym niesamowitym narzędziem na mojej maszynie, więc pozwól, że ci je pokażę.

nc -v -z 127.0.0.1 22

Odnosząc się do wyników netcat, usługa ssh działa na porcie 22 na moim komputerze. Bardzo dobry! A co jeśli będziemy chcieli użyć innego portu zamiast 22? Możemy to zrobić edytując plik konfiguracyjny sshd.

Zmień port SSH

Ustaw swój OpenSSH tak, aby nasłuchiwał na porcie TCP 13 zamiast na domyślnym porcie TCP 22. Otwórz plik sshd_config w swoim ulubionym edytorze tekstu i zmień dyrektywę portu na 13.

Port 13

Uruchom ponownie serwer OpenSSH, aby można było wprowadzić zmiany w pliku konfiguracyjnym, wpisując następujące polecenie i uruchamiając netcat, aby sprawdzić, czy port ustawiony do nasłuchiwania jest otwarty, czy nie.

sudo systemctl restart sshd

Czy powinniśmy sprawdzić, czy nasz serwer openssh nasłuchuje na porcie 13, czy nie? Ta weryfikacja jest konieczna, dlatego wzywam moje urocze narzędzie netcat, aby pomogło mi wykonać tę pracę.

nc -v -z 127.0.0.1 13

Czy chcesz, aby Twój serwer openssh wyświetlał ładny baner logowania? Można to zrobić modyfikując zawartość pliku /etc/issue.net.

nano /etc/issue.net

Wklej następujący komunikat banerowy.

Authorized access only!

If you are not authorized to access or use this system, disconnect now!

Następnie dodaj następujący wiersz w pliku konfiguracyjnym sshd.

Banner /etc/issue.net

Po wprowadzeniu zmian w konfiguracji SSH pamiętaj o ponownym uruchomieniu.

sudo systemctl restart sshd
Wniosek

Jest wiele rzeczy, które możesz zrobić za pomocą narzędzi openssh, jeśli chodzi o sposób konfiguracji serwera openssh. Mogę powiedzieć, że Twoja wyobraźnia jest granicą!