Podstawowe zabezpieczenia serwera SSH

Podstawowe zabezpieczenia serwera SSH

Ostatnimi czasy odbieram zmasowane ataki na wszystkie maszyny, które są pod moją opieką i nie tylko (patrz: serwery (nie)zarządzane przez klientów). Z racji tego, że goła instalacja systemu to otwarta furtka dla wszelkiego rodzaju automatów, botów i domorosłych crackerów poniżej przedstawiam kilka podstawowych porad dotyczących zabezpieczenia serwera na Debianie.

Interesuje nas plik /etc/ssh/sshd_config

  1. Zmieniamy domyślny port logowania (SSH – 22), im bardziej fikuśny tym lepiej:
    Port 5831 teraz aby się zalogować na maszynę trzeba wymusić wejście na port inny: ssh -l user -p 5831 nazwahosta
  2. Zmieniamy adres na którym SSH ma nasłuchwiać, jeżeli maszyna ma więcej niż jeden IP należy wybrać ten na który się logujemy, albo port lokalny serwera, np: ListenAddress 192.168.0.123
  3. Zmieniamy czas przez który można wpisać hasło: LoginGraceTime 45
  4. Nie wiem dlaczego w Debianie ciągle można się zalogować jako root przez SSH, we FreeBSD od dawna domyślnie można wejść na usera a potem SU, więc dodajemy dwie kolejne linijki:
    PermitRootLogin no [ StrictModes yes
  5. Warto zmienić wartość MaxAuthTries 2 – ilość prób logowania, dwie wystarczą – albo znasz hasło, albo nie 🙂
  6. Użytkownicy, którzy mogą się logować to opcja AllowUsers user
  7. Trzeba też zablokować możliwość logowania z pustymi hasłami: PermitEmptyPasswords no
  8. Ostatnia warta dodania opcja to PasswordAuthentication yes o ile nie posługujesz się kluczami do logowania.

Na koniec oczywiście:

/etc/init.d/ssh restart