Mam małą sieć serwerów i chciałbym zwiększyć ogólne bezpieczeństwo. Nie mam wystarczająco dużo czasu / pieniędzy / paranoi, aby skonfigurować VPN - jaki jest podstawowy sposób na zwiększenie bezpieczeństwa mojego systemu?
Jedną rzeczą może być wymaganie, aby użytkownicy przesyłali swój klucz i wprowadzali hasło. Jest to trochę trudne do wyszukania w Google, ponieważ wszystko o „haśle klucza ssh” dotyczy sshing bez hasła. :-)
Jednym ze schematów, w których zawsze chciałem się bawić, jest wymaganie, aby połączenia przychodzące pochodziły tylko z białej listy adresów IP dyndns. Wiem, że niektórzy szefowie bezpieczeństwa zwymiotowaliby na samą myśl o tym pomyśle, ale faktem jest, że korzystanie z pudełka bardzo by skomplikowało.
Co myślisz? Co jeszcze tam jest?
Odpowiedzi:
Login z hasłem i kluczem jest taki sam jak „tylko z kluczem”. Podczas tworzenia klucza zostaniesz poproszony o wprowadzenie hasła. Jeśli pozostawisz to pole puste, nie zostaniesz poproszony o podanie hasła. Jeśli wypełnisz jakieś hasło, będziesz o nie proszony za każdym razem, gdy chcesz się zalogować.
Jeśli obawiasz się o bezpieczeństwo, weź pod uwagę niektóre z tych porad, które wymieniono biliony razy na tym forum:
Itd itd.
Aktualizacja: zapoznaj się z odpowiedzią tutaj, aby dowiedzieć się, jak wymagać zarówno klucza publicznego, jak i hasła lokalnego systemu z serwerem OpenSSH.
źródło
Jednym z pomysłów, który uznałem za interesujący, jest pukanie do portów - w zasadzie, aby ustanowić połączenie ssh, musisz najpierw sprawdzić sekwencję innych portów, zanim serwer ssh potwierdzi żądanie połączenia. Jeśli nie jest używana poprawna sekwencja portów, nie ma odpowiedzi, więc wygląda na to, że nie działa serwer ssh. Sekwencja portów jest konfigurowalna i może być udostępniana docelowym użytkownikom; wszyscy inni skutecznie nie mogliby się połączyć.
Sam tego nie próbowałem, ale z tego, co słyszałem (co właściwie nie jest wiele), koszty ogólne są znikome i znacznie obniżają twój profil widoczności.
źródło
Poprawki związane z włączaniem bezpośrednio w SSH i wiele istotnych dyskusji:
Można to również zrobić bez modyfikacji poprzez połączenie skryptu weryfikacji hasła z użyciem
ForceCommand
opcji konfiguracji.Wreszcie, chociaż nie istnieje dla niego żaden moduł, jeśli przeniesiesz uwierzytelnianie za pomocą klucza publicznego do PAM, będziesz musiał przejść oba kroki, zanim PAM uzna uwierzytelnienie za udane.
źródło
Po prostu użyj
w
sshd_config
przypadku korzystania z ssh.com sshd. Ta funkcja nie jest dostępna w OpenSSH.źródło
RequiredAuthentications
jest zdecydowanie niestandardowym rozszerzeniem do OpenSSHMożesz również użyć haseł jednorazowych, aby zwiększyć bezpieczeństwo. Umożliwiłoby to użytkownikom logowanie się z niepewnego terminala, który może mieć keylogger, jeśli wcześniej wygenerowali następne hasło. Istnieją również generatory haseł, które można zainstalować nawet na starszych telefonach Java MIDP, które zawsze masz przy sobie.
źródło
Polecam, aby nigdy nie uruchamiać sshd, rdp ani takich usług zarządzania bez ograniczeń IP. W rzeczywistości sugerowałbym ograniczenie dostępu do takich usług administratorom łączącym się przez VPN.
źródło
Jeśli chodzi o twoje pierwotne pytanie o wymaganie zarówno klucza, jak i hasła, jeśli używasz RHEL lub CentOS 6.3, jest to teraz możliwe. Te notatki RHEL 6.3 uwolnienia go opisać, to kwestia dodając to do sshd_config
źródło
Zdecydowanie zgadzam się z 3molo. OpenSSH jest domyślnym serwerem SSH dla systemów Linux i Unix. Nie ma powodu, aby to zmieniać, szczególnie ze względu na bezpieczeństwo. VPN powinno być najlepszym rozwiązaniem, które może szyfrować nasz ruch i zapewniać 2-etapową autoryzację hasła.
źródło
Nie jestem pewien, dlaczego nikt o tym nie wspominał, ale - upewnij się, że generujesz klucze dłuższe niż domyślne 1024 bity, co nie jest już uważane za bezpieczne.
źródło