Dobre praktyki z OpenSSH

OpenSSH (Otwórz Secure Shell) to zestaw aplikacji, które umożliwiają szyfrowaną komunikację w sieci przy użyciu rozszerzenia Protokół SSH. Powstał jako bezpłatna i otwarta alternatywa dla programu Secure Shell, które jest oprogramowaniem zastrzeżonym. « Wikipedia.

Niektórzy użytkownicy mogą pomyśleć, że dobre praktyki powinny być stosowane tylko na serwerach, a tak nie jest. Wiele dystrybucji GNU / Linuksa domyślnie zawiera OpenSSH i jest kilka rzeczy, o których należy pamiętać.

Bezpieczeństwo

Oto 6 najważniejszych punktów, o których należy pamiętać podczas konfigurowania SSH:

  1. Użyj silnego hasła.
  2. Zmień domyślny port SSH.
  3. Zawsze używaj wersji 2 protokołu SSH.
  4. Wyłącz dostęp do roota.
  5. Ogranicz dostęp użytkowników.
  6. Użyj uwierzytelniania klucza.
  7. Inne opcje

Silne hasło

Un buen password es aquel que contiene caracteres alfanuméricos o especiales, espacios, mayúsculas y minúsculas… etc. Acá en DesdeLinux hemos mostrado varios métodos para generar buenas contraseñas. Pueden visitar ten artykuł y ten inny.

Zmień domyślny port

Domyślny port SSH to 22. Aby go zmienić, wystarczy tylko edytować plik / etc / ssh / sshd_config. Szukamy linii, która mówi:

#Port 22

odkomentowujemy go i zmieniamy 22 na inny numer .. na przykład:

Port 7022

Aby poznać porty, których nie używamy na naszym komputerze / serwerze, możemy wykonać w terminalu:

$ netstat -ntap

Teraz, aby uzyskać dostęp do naszego komputera lub serwera, musimy to zrobić z opcją -p w następujący sposób:

$ ssh -p 7022 usuario@servidor

Użyj protokołu 2

Aby upewnić się, że używamy wersji 2 protokołu SSH, musimy edytować plik / etc / ssh / sshd_config i poszukaj linii, która mówi:

# Protokół 2

Odkomentowujemy go i ponownie uruchamiamy usługę SSH.

Nie zezwalaj na dostęp jako root

Aby uniemożliwić użytkownikowi root zdalny dostęp przez SSH, szukamy w pliku/ etc / ssh / sshd_config linia:

#PermitRootLogin no

i odkomentowujemy to. Myślę, że warto wyjaśnić, że przed wykonaniem tego musimy upewnić się, że nasz użytkownik ma niezbędne uprawnienia do wykonywania zadań administracyjnych.

Ogranicz dostęp dla użytkowników

Nie zaszkodzi też zezwolić na dostęp przez SSH tylko pewnym zaufanym użytkownikom, więc wracamy do pliku / etc / ssh / sshd_config i dodajemy linię:

Zezwalaj użytkownikom na użyciemoslinux kzkggaara

Oczywiście użytkownicy elav, usemoslinux i kzkggaara będą mogli uzyskać dostęp.

Użyj uwierzytelniania klucza

Chociaż ta metoda jest najbardziej zalecana, musimy zachować szczególną ostrożność, ponieważ będziemy uzyskiwać dostęp do serwera bez podawania hasła. Oznacza to, że jeśli użytkownikowi uda się wejść do naszej sesji lub nasz komputer zostanie skradziony, możemy mieć kłopoty. Zobaczmy jednak, jak to zrobić.

Pierwszą rzeczą jest utworzenie pary kluczy (publicznego i prywatnego):

ssh-keygen -t rsa -b 4096

Następnie przekazujemy nasz klucz do komputera / serwera:

ssh-copy-id -i ~/.ssh/id_rsa.pub elav@200.8.200.7

Wreszcie musimy odkomentować w pliku / etc / ssh / sshd_config linia:

AuthorizedKeysFile .ssh/authorized_keys

Inne opcje

Wkład Yukiteru

Możemy skrócić czas oczekiwania, w którym użytkownik może pomyślnie zalogować się do systemu, do 30 sekund

LoginGraceTime 30

Aby uniknąć ataków ssh przez TCP Spoofing, pozostawiając zaszyfrowane aktywne po stronie ssh przez maksymalnie 3 minuty, możemy aktywować te 3 opcje.

TCPKeepAlive no ClientAliveInterval 60 ClientAliveCountMax 3

Wyłącz używanie plików rhosts lub shosts, których ze względów bezpieczeństwa odradza się.

IgnoreRhosts tak IgnoreUserKnownHosts tak RhostsAuthentication no RhostsRSAAuthentication nie

Sprawdź obowiązujące uprawnienia użytkownika podczas logowania.

StrictModes yes

Włącz rozdzielanie uprawnień.

UsePrivilegeSeparation yes

Wnioski:

Wykonując te czynności, możemy zwiększyć bezpieczeństwo naszych komputerów i serwerów, ale nigdy nie możemy zapominać, że istnieje ważny czynnik: co jest między krzesłem a klawiaturą. Dlatego polecam lekturę ten artykuł.

źródło: Jak wykuwać


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.

  1.   jukiteru powiedział

    Świetny post @elav i dodam kilka ciekawych rzeczy:

    Zaloguj sięGraceTime 30

    Pozwala to skrócić czas oczekiwania, w którym użytkownik może pomyślnie zalogować się do systemu do 30 sekund.

    TCP KeepAlive nr
    ClientAliveInterval 60
    KlientAliveCountMax 3

    Te trzy opcje są całkiem przydatne, aby zapobiegać atakom na ssh przez TCP Spoofing, pozostawiając aktywną zaszyfrowaną stronę ssh na maksymalnie 3 minuty.

    Ignoruj ​​Rhosty tak
    Ignoruj ​​​​UserKnownHosts tak
    Numer uwierzytelnienia hosta
    HostyRSAAUwierzytelnianie nr

    Wyłącza korzystanie z plików rhosts lub shosts, których nie zaleca się ze względów bezpieczeństwa.

    StrictModes tak

    Ta opcja służy do sprawdzenia aktualnych uprawnień użytkownika podczas logowania.

    UsePrivilegeSeparation tak

    Włącz rozdzielanie uprawnień.

    1.    pełen życia powiedział

      Cóż, za chwilę edytuję post i dodam do posta 😀

  2.   Eugenio powiedział

    Odkomentowanie, aby nie zmieniać linii, jest zbędne. Skomentowane wiersze pokazują domyślną wartość każdej opcji (przeczytaj wyjaśnienie na początku samego pliku). Dostęp do roota jest domyślnie wyłączony itp. Dlatego odkomentowanie go nie ma absolutnie żadnego efektu.

    1.    pełen życia powiedział

      # Strategia używana dla opcji w domyślnym sshd_config dostarczanym z
      # OpenSSH polega na określeniu opcji z ich wartością domyślną gdzie
      # możliwe, ale zostaw je w komentarzu. Opcje bez komentarza zastępują opcje
      # domyślna wartość.

      Tak, ale na przykład, skąd wiemy, że używamy tylko wersji 2 protokołu? Ponieważ równie dobrze moglibyśmy używać 1 i 2 w tym samym czasie. Jak mówi ostatni wiersz, na przykład odkomentowanie tej opcji nadpisuje opcję domyślną. Jeśli domyślnie używamy wersji 2, to dobrze, jeśli nie, to używamy TAK lub TAK 😀

      Dzięki za komentarz

  3.   Sli powiedział

    Bardzo dobry artykuł, wiedziałem kilka rzeczy, ale jedna rzecz, która nigdy nie jest dla mnie jasna, to użycie kluczy, czym tak naprawdę są i jakie są ich zalety, jeśli używam kluczy, czy mogę używać haseł ??? Jeśli tak, dlaczego zwiększa to bezpieczeństwo, a jeśli nie, jak uzyskać do niego dostęp z innego komputera?

  4.   PA powiedział

    Witam, zainstalowałem Debiana 8.1 i nie mogę połączyć się z komputera z systemem Windows do Debiana przez WINSCP, czy będę musiał używać protokołu 1? jakakolwiek pomoc .. dzięki
    PA

  5.   franksanabria powiedział

    Być może zainteresuje Cię ten film o openssh https://m.youtube.com/watch?v=uyMb8uq6L54

  6.   Płytka powiedział

    Chcę tutaj spróbować kilku rzeczy, kilka już wypróbowałem dzięki Arch Wiki, inne z lenistwa lub braku wiedzy. Zachowam to na czas, kiedy uruchomię moje RPi