Najczęstsze niestandardowe konfiguracje SSH serwera OpenSsh

Najczęstsze niestandardowe konfiguracje SSH serwera OpenSsh

OpenSsh Zestaw narzędzi pozwól nam stworzyć bezpieczne, zaszyfrowane połączenia między maszynami. W tym samouczku przyjrzymy się niektórym z najbardziej przydatnych opcji, jakie możemy użyć do zmiany zachowania Sshd, OpenSsh Demon, aby ułatwić zadanie administracji systemu Linux.

W tym artykule zakładamy istnienie już działającego i dostępnego serwera. Jeśli chcesz dowiedzieć się więcej o instalacji OpenSSH, możesz spojrzeć na ten artykuł na temat instalacji serwera SSH na Ubuntu Linux.

W tym samouczku nauczysz się:

  • Jak dostosować zachowanie demona SSHD poprzez manipulowanie opcjami w głównym pliku konfiguracyjnym SSH /etc/ssh/sshd_config
  • Jak zmienić domyślne porty używane przez serwer
  • Jak zmienić adres, na który serwer słucha
  • Jak zmienić maksymalny czas logowania SSH
  • Jak pozwolić lub zaprzeczyć zalogowaniu się jako root
  • Jak zmienić próby logowania maksymalnego i maksymalną liczbę otwartej sesji
  • Jak wyświetlić wiadomość, gdy użytkownik próbuje uwierzytelnić się na serwer
  • Jak włączyć/wyłączyć hasło i uwierzytelnianie pubkey
  • Jak włączyć/wyłączyć HostbaseAuthentication
  • Włączanie/wyłączanie przekazywania x11


Zastosowane wymagania i konwencje oprogramowania

Wymagania oprogramowania i konwencje linii poleceń Linux
Kategoria Wymagania, konwencje lub wersja oprogramowania
System Niezależny od rozkładu
Oprogramowanie Nie jest wymagane żadne dodatkowe oprogramowanie, aby śledzić ten samouczek oprócz OpenSsh
Inny Uruchomiony serwer OpenSsh
Konwencje # - Wymaga, aby podane polecenia Linux są wykonywane z uprawnieniami root bezpośrednio jako użytkownik root lub za pomocą sudo Komenda
$ - Wymaga, aby podane polecenia Linux zostały wykonane jako zwykły użytkownik niepewny

Plik konfiguracji demona SSHD

Domyślnie Sshd, OpenSsh demon, odczytuje swoją konfigurację z /etc/ssh/sshd_config plik. Inną ścieżkę pliku można określić za pomocą -F Opcja podczas uruchamiania demona. Istnieje wiele opcji, które możemy zmienić, aby zmienić zachowanie demona. Chociaż nie można wymienić ich wszystkich tutaj, zobaczymy niektóre z najczęściej używanych i co możemy uzyskać, zmieniając ich wartości. Za każdym razem, gdy opcja jest zmieniana, aby zmiany były skuteczne, demon powinien zostać ponownie uruchomiony. Podczas korzystania z SystemD poleceniem do uruchomienia jest:

$ sudo systemctl restart sshd

Zmiana portów używanych przez serwer

To jest tak się nazywa bezpieczeństwo poprzez niejasność miara: domyślnie Sshd Demon słucha w porcie 22. Zmiana używanego portu nie poprawia bezpieczeństwa samego w sobie, ponieważ wykonanie skanowania portu jest trywialne i zobacz, jakie porty są używane przez maszynę. Często jednak próby logowania Brute Force po prostu są ukierunkowane na port domyślny, więc modyfikacja używanego portu może pomóc. Aby poinstruować demona, aby wysłuchał określonego portu, używamy Port opcja i podaj numer portu:

Port 1024


Można zapewnić wiele wystąpień opcji: serwer będzie słuchać wszystkich określonych portów. Przed ponownym uruchomieniem serwera SSH, aby zmiana była skuteczna, bardzo ważne jest, aby odpowiednio zmodyfikować reguły zapory. Po stronie klienta, aby podłączyć za pomocą określonego portu, musimy określić numer portu za pomocą -P opcja (skrót od -port). Na przykład, aby zalogować się za pomocą portu 1024, napisalibyśmy:

$ ssh -p 1024 egdoc@feanor

Aby uniknąć konieczności określenia portu za każdym razem, gdy łączymy się z serwerem, możemy skonfigurować wpis do niego w ~/.ssh/config Plik (być może będziemy musieli go utworzyć, ponieważ nie istnieje domyślnie i musimy go udostępnić tylko przez użytkownika), jak w poniższym przykładzie:

Gospodarz Feanor HostName 192.168.0.39 Port 1024

W ten sposób, za każdym razem, gdy będziemy próbować SSH w dopasowanie Gospodarz (Feanor w tym przypadku) Parametry określone w powiązanej zwrotce pliku konfiguracji SSH będą stosowane automatycznie.

Zmiana adresu, na którą serwer słucha

Oprócz portu Sshd Demon słucha, możemy również zmienić Słuchaj adresu. Domyślnie serwer słucha wszystkich adresów lokalnych. Przykłady składni do użycia z tą opcją można już znaleźć w pliku konfiguracyjnym SSH:

#ListenAddress 0.0.0.0 #ListenAddress ::

Możemy określić adres na jeden z następujących sposobów:

  • Host | Adres IPv4 | Adres IPv6
  • Host | Adres IPv4: port
  • Host | Adres IPv6: port

Wywołana jest opcja użycia Słuchajaddress Dozwolone jest wiele wystąpień opcji, aby określić wiele adresów. Możemy użyć IPv4 Lub IPv6 adres i opcjonalnie określ port do użycia. Jeśli nie określamy portu, Sshd Daemon będzie słuchać portu określonego za pomocą Port opcja, którą widzieliśmy powyżej.

Zmiana maksymalnego czasu logowania

Możemy skonfigurować OpenSsh demon, aby odłączyć się po określonej ilości czasu, jeśli użytkownik nie z powodzeniem się zaloguje. W takim przypadku wywołana jest opcja, którą chcemy zmienić Logowanie. Wszystko, co musimy zrobić, to zapewnić wartość limitu czasu, na przykład:

LogingraceTime 2M

Wartość domyślna dla tej opcji to 120 (sekundy)

Zezwalaj lub zaprzecz zalogowanie się jako root

Za pomocą Pertrootlogin opcja możemy ustalić, czy Sshd Demon powinien pozwolić użytkownikowi root bezpośrednio zalogować się. Opcja akceptuje jedną z tych wartości:

  • Tak
  • NIE
  • Zakaz słowa
  • Wymuszone tylko commands

Pierwsze dwie wartości są dość oczywiste. Podczas używania Tak Użytkownik root może zalogować się za pośrednictwem SSH, podczas używania NIE Ta możliwość jest odrzucona. Zakaz słowa I Wymuszone tylko commands Wartości są bardziej interesujące.

Kiedy ten pierwszy
jest używany jako wartość Pertrootlogin Opcja, interaktywne loginy hasła i klawiatury są wyłączone, ale użytkownik root może zalogować się za pomocą klucz publiczny. Jeśli Wymuszone tylko commands jest używany, zamiast tego logowanie root za pomocą uwierzytelniania klucza publicznego jest dozwolone, ale tylko wtedy, gdy Komenda Opcja jest określona w autoryzowanym kluczu. Na przykład:

command = "ls -a" ssh -rsa […]


Powyżej określliśmy LS -A jako polecenie klucza SSH, które będzie używane przez root. W ten sposób podczas łączenia za pomocą klucza polecenie zostanie wykonane, a następnie połączenie z serwerem zostanie zamknięte. Sprawdźmy to (tutaj założyłem, że klucz jest już na miejscu i został autoryzowany na serwerze):

$ ssh root@feanor Wprowadź hasło dla klucza/home/egdoc/.ssh/id_rsa ':… bash_history .Bashrc .profil .ssh .krzepa .połączenie Viminfo z Feanor zamknięte.

Zmiana próby logowania maksymalnego i maksymalna liczba otwartej sesji

Kolejne dwa parametry, które możemy chcieć zmienić, to liczba próby logowania na połączenie i dozwolona liczba otwartych powłok, logowania lub sesji podsystemu. Możemy zmienić poprzedni parametr za pomocą Maxauthtries opcja, podając liczbę dozwolonych prób (wartość domyślna to 6). Te ostatnie można zmodyfikować za pomocą Maxsessions opcja. Ta opcja ma również wartość całkowitą, domyślną istotą 10.

Wyświetl wiadomość, gdy użytkownik próbuje uwierzytelnić się na serwer

Możemy użyć Transparent Opcja określenia pliku zawierającego tekst, który chcemy wysłać do użytkownika, zanim uwierzytelni się z serwerem. Wartość domyślna dla opcji to nic, Więc nie wyświetla się żaden baner. Oto przykład. Utworzony przez nas plik/etc/ssh/baner zawiera jakiś tekst, którego używamy jako wiadomość. Jeśli ustawiamy opcję jak poniżej:

Baner/etc/ssh/banner.tekst

Kiedy próbujemy się zalogować, otrzymujemy następujący wynik:

$ ssh egdoc@feanor ############################### # Test Banner # ########## #######################@hasło Feanor: 

Włączanie/wyłączenie hasła i uwierzytelniania pubkey.

Sshd Demon zapewnia wiele sposobów uwierzytelniania użytkowników. Możemy wybrać włączenie lub wyłączenie uwierzytelnienia za pomocą hasła lub klucza publicznego odpowiednio za pomocą HasłoAuthentication I Pubkeyauthentication opcje. Domyślnie obie opcje są zwykle ustawiane Tak: Oznacza to, że użytkownik może połączyć się z serwerem, podając swoje hasło, a także za pomocą klucza publicznego, który jest właścicielem (klucz można również chronić hasłem). Aby wyłączyć jedną z dwóch opcji, których po prostu używamy NIE jako wartość. Na przykład, jeśli tylko chcemy umożliwić zalogowanie się przez klucze publiczne, możemy ustawić:

Hasło Automatyka nr

W ten sposób tylko użytkownicy, którzy mają klucz publiczny zawarty w pliku autoryzowanym klucze będzie mógł zalogować się do serwera. Autoryzowany plik kluczy jest plik, który zawiera dozwolone klucze publiczne. Domyślnie plik jest .ssh/autoryzowane_keys w katalogu domowym użytkownika na serwerze, ale można to zmienić za pomocą Autoryzowany Fiysfile opcja i określenie alternatywnego pliku, zapewniając albo absolutny lub względny ścieżka. Gdy stosuje się ścieżkę względną, jest uważana za w stosunku do katalogu domowego użytkowników. Opcję można również ustawić na nic: W ten sposób serwer nie będzie wyszukiwał kluczy publicznych w plikach.

Włączanie/wyłączanie hostbasedAuthentication

Serwer OpenSSh można ustawić tak, aby zaakceptować oparte na hosta uwierzytelnianie. Podczas korzystania z tego rodzaju uwierzytelnienia host uwierzytelnia się w imieniu wszystkich lub niektórych użytkowników. Opcja jest ustawiona na NIE domyślnie. Ustawienie opcji do Tak nie wystarczy, aby uwierzytelnianie oparte na hostach działało.

Włączanie/wyłączanie przekazywania x11

X11 System okienny ma architekturę klient-serwer: klienci to wiele aplikacji graficznych żądających połączenia z serwerem, który zarządza wyświetlacz. Serwer X11 i jego klienci często działają na tym samym komputerze, ale nie jest to konieczne. Możliwe jest dostęp do zdalnego serwera X11 za pośrednictwem dedykowanego, ale niezabezpieczonego protokołu. OpenSsh Uruchommy połączenie bezpiecznie, tworząc zaszyfrowany tunel. Opcja kontrolująca to zachowanie jest X11fording. Ta funkcja jest ogólnie wyłączona domyślnie, więc jest ustawiona NIE.

Musimy ustawić opcję Tak Jeśli chcemy z tego skorzystać. Po stronie klienta włączamy funkcję za pomocą -X opcja z wiersza poleceń lub ustaw Napastnik11 Do Tak W pliku konfiguracyjnym klienta. Na przykład, powiedzmy, że X11 działa na zdalnej maszynie; Chcemy użyć połączenia SSH do uruchomienia aplikacji „Pluma” (lekki edytor tekstu) i kontrolować ją za pomocą x11Forging. Biegniemy:

$ ssh egdoc@feanor -x pluma


Program zostanie uruchomiony. W pasku tytułu wyraźnie widzimy, że działa on na „Feanor”, ​​który jest nazwą zdalnej maszyny.



Przekazanie x11 w akcji

Wniosek

W tym samouczku widzieliśmy, jakie jest domyślne Sshd Plik konfiguracyjny demona i dowiedzieliśmy się, w jaki sposób możemy użyć alternatywnej, określając jego ścieżkę z -F Opcja podczas uruchamiania usługi. Przyjrzeliśmy się również jednym z najbardziej przydatnych opcji, jakie możemy użyć we wspomnianym pliku, aby zmienić zachowanie SSHD. Widzieliśmy, jak zezwolić na uwierzytelnienia oparte na hasłach lub zaprzeczenie hasłem; Jak włączyć lub zaprzeczyć logowanie korzeni; Jak włączyć lub wyłączyć funkcję przekazywania x11 i jak sprawić, by serwer wyświetlał komunikat, gdy użytkownik próbuje na nią uwierzytelnić.

Widzieliśmy również, jak określić maksymalne dozwolone próby logowania na połączenie i jak zmienić adresy i porty, do których serwer służy. Aby dowiedzieć się więcej o możliwych konfiguracjach serwerów, zapoznaj się z ręką dla SSHD i pliku konfiguracyjnego SSHD_CONFIG.

Powiązane samouczki Linux:

  • Rzeczy do zainstalowania na Ubuntu 20.04
  • Rzeczy do zrobienia po zainstalowaniu Ubuntu 20.04 Focal Fossa Linux
  • Jak w pełni wykorzystać OpenSsh
  • Wprowadzenie do automatyzacji, narzędzi i technik Linuksa
  • Linux: Ustaw ssh
  • Rzeczy do zrobienia po zainstalowaniu Ubuntu 22.04 JAMMY Jellyfish…
  • Rzeczy do zainstalowania na Ubuntu 22.04
  • Jak monitorować aktywność sieciową w systemie Linux
  • Zainstaluj Arch Linux na stacji roboczej VMware
  • Pobierz Linux