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:

<code>/etc/init.d/ssh restart</code>