Uruchomienie SSH
na alternatywnym porcie nie jest już traktowane jako bezpieczeństwo. Daje to tylko odrobinę niejasności i dodatkowy stopień złożoności dla użytkowników. Dodaje zero przeszkód dla osób chcących złamać sieć, które korzystają ze zautomatyzowanych skanerów portów i nie dbają o to, na jakim porcie działa.
Jeśli chcesz wzmocnić bezpieczeństwo w systemie, który zezwala na zdalny przychodzący SSH przez Internet, kontroluj swoich użytkowników sshd_config
zgodnie ze wskazaniami @Anthon, a następnie wdrażaj zabezpieczenia bezpośrednio w PAM.
Utwórz dwie grupy lusers
i rusers
. Dodaj zdalnych użytkowników mobilnych do rusers
grupy. Użyj modułu PAM pam_succeed_if.so , aby zezwolić na dostęp tym użytkownikom. Dodaj linie do konfiguracji pam dla ssh:
account sufficient pam_succeed_if.so user ingroup lusers
account sufficient pam_succeed_if.so user ingroup rusers
Niektóre moduły pam_succeed_if.so mogą wymagać użycia nieco innej składni, np group = lusers
.
Wówczas nie tylko sshd
ogranicza użytkowników, którzy mogą się połączyć, ale w przypadku błędu sshd
nadal masz ochronę, którą oferują ograniczenia oparte na PAM.
Dodatkowym krokiem dla zdalnych użytkowników jest wymuszenie użycia ssh_keys z hasłami. Tak więc lokalni użytkownicy mogą logować się przy użyciu kluczy lub haseł, ale użytkownicy zdalni muszą mieć klucz, a jeśli utworzysz dla nich klucze, możesz upewnić się, że klucz ma skojarzone hasło. Ograniczając w ten sposób dostęp do lokalizacji, które faktycznie posiadają klucz SSH i hasło. I ograniczenie potencjalnych wektorów ataku, jeśli hasło użytkownika zostanie naruszone.
W sshd_config
:
zmień 2 ustawienia:
ChallengeResponseAuthentication yes
i
PasswordAuthentication yes
do:
ChallengeResponseAuthentication no
i
PasswordAuthentication no
Tak więc domyślnie jest teraz dozwolone tylko uwierzytelnianie klucza. Następnie dla użytkowników lokalnych możesz użyć match
ustawienia konfiguracji, aby zmienić ustawienie domyślne dla użytkowników lokalnych. Zakładając, że Twoja lokalna sieć prywatna to 192.168.1.0/24, dodaj do sshd_config
:
Match Address 192.168.1.0/24
PasswordAuthentication yes
Teraz użytkownicy lokalni mogą łączyć się za pomocą haseł lub kluczy, a użytkownicy zdalni będą zmuszeni do korzystania z kluczy. To od Ciebie zależy, czy utworzysz klucze ze zdaniami.
Jako dodatkową korzyść, musisz zarządzać tylko jednym sshd_config
, i musisz uruchomić ssh tylko na jednym porcie, co ułatwia twoje własne zarządzanie.
edycja 2017-01-21 - Ograniczenie użycia authorized_keys
plików.
Jeśli chcesz się upewnić, że użytkownicy nie mogą po prostu samodzielnie wygenerować klucza ssh i użyć go z authorized_keys
plikiem do logowania, możesz kontrolować, ustawiając określoną lokalizację dla sshd, aby szukał autoryzowanych kluczy.
W /etc/ssh/sshd_config
zmień:
AuthorizedKeysFile %h/ssh/authorized_keys
do czegoś takiego:
AuthorizedKeysFile /etc/.ssh/authorized_keys/%u
Wskazanie kontrolowanego katalogu, do którego użytkownicy nie mają uprawnień do zapisu, oznacza, że nie mogą wygenerować własnego klucza i użyć go do obejścia wprowadzonych reguł.
lusers
grupie, ale nie wrusers
grupie, wygeneruje parę kluczy i zaktualizuje ją~/.ssh/authorized_keys
, będzie mógł zalogować się zdalnie.Możesz dodać coś takiego do
/etc/ssh/sshd_config
:Powyższe zakłada, że dozwoleni użytkownicy zdalni są nazywani
mobileuser1
imobileuser2
, a twoja zaufana sieć ma 10.0.0.0 z maską podsieci 255.0.0.0.Pozwala to dwóm użytkownikom mobilnym zalogować się z dowolnego miejsca, a wszyscy mogą zalogować się z zaufanej sieci. Każdemu użytkownikowi, który nie pasuje do żadnego z tych wzorców (np.
foo
Logując się zdalnie) zostanie odmówiony dostęp.źródło
Możesz to zrobić, uruchamiając dwa demony ssh i dwa
sshd_config
pliki. Skopiuj istniejący (np. Z/etc/ssh/sshd_config
/etc/ssh/sshd_alt_config
alternatywnej konfiguracji konfiguracji (zeman
strony dlasshd_config
:Port
AllowUsers
Prawdopodobnie chcesz mieć alternatywny dziennik ssh do innego pliku, i np. Postępuj zgodnie z tym, co zapisano w tym pliku, aby zauważyć nieprawidłowe próby logowania.
źródło