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:
- Użyj silnego hasła.
- Zmień domyślny port SSH.
- Zawsze używaj wersji 2 protokołu SSH.
- Wyłącz dostęp do roota.
- Ogranicz dostęp użytkowników.
- Użyj uwierzytelniania klucza.
- 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
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ć
Ś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ń.
Cóż, za chwilę edytuję post i dodam do posta 😀
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.
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
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?
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
Być może zainteresuje Cię ten film o openssh https://m.youtube.com/watch?v=uyMb8uq6L54
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