Zabezpieczenie serwera VPS: pierwsze pięć minut
Nowy serwer w internecie w ciągu kilku minut zostaje przeskanowany przez boty, które próbują odgadnąć hasła. Dzięki poniższym krokom będą Państwo o krok przed nimi. Prosimy wykonać je jako root.
1. Zaktualizować wszystko i włączyć automatyczne aktualizacje
- Ubuntu i Debian:
apt update && apt upgrade -y, następnieapt install -y unattended-upgradesorazdpkg-reconfigure -plow unattended-upgrades. - AlmaLinux i Rocky Linux:
dnf upgrade -y, następniednf install -y dnf-automaticorazsystemctl enable --now dnf-automatic-install.timer.
2. Logowanie kluczem, hasła wyłączone
Najpierw prosimy umieścić swój klucz SSH na serwerze (zob. Logowanie do VPS przez SSH) i sprawdzić, czy logowanie kluczem działa. Następnie należy utworzyć własny plik ustawień /etc/ssh/sshd_config.d/00-eigen.conf z następującymi wierszami:
PasswordAuthentication no KbdInteractiveAuthentication no
Prosimy nie wpisywać tego w samym pliku /etc/ssh/sshd_config: pliki w sshd_config.d mają pierwszeństwo, a w Ubuntu plik 50-cloud-init.conf ponownie włącza tam hasła. Państwa plik 00-eigen.conf jest wczytywany wcześniej i wygrywa. Prosimy sprawdzić konfigurację poleceniem sshd -t (nic nie wyświetla, jeśli wszystko jest w porządku) oraz sshd -T | grep -i passwordauthentication (powinno pokazać no). Następnie należy ponownie uruchomić SSH poleceniem systemctl restart ssh (AlmaLinux i Rocky: systemctl restart sshd). Prosimy nie zamykać bieżącej sesji, dopóki w drugim oknie nie sprawdzą Państwo, że nadal mogą się zalogować.
3. Zapora sieciowa
- Ubuntu i Debian:
apt install -y ufw, następnieufw allow OpenSSH, ewentualnieufw allow 80,443/tcpdla strony internetowej, orazufw enable. - AlmaLinux i Rocky Linux: firewalld jest już zainstalowany. Na przykład
firewall-cmd --permanent --add-service=http --add-service=httpsorazfirewall-cmd --reload.
Prosimy zawsze pozostawić otwarty SSH (port 22), w przeciwnym razie odetną Państwo sobie dostęp.
4. Fail2ban przeciwko próbom odgadnięcia hasła
apt install -y fail2ban lub dnf install -y epel-release && dnf install -y fail2ban, następnie systemctl enable --now fail2ban. Domyślnie blokuje on adresy IP, z których zbyt często próbowano wpisać błędne hasło. W Debianie 12 należy w pliku /etc/fail2ban/jail.local w sekcji [sshd] dodać także backend = systemd i zainstalować python3-systemd, w przeciwnym razie monitorowanie SSH nie zostanie uruchomione. Debian 13 i Ubuntu robią to automatycznie.
5. Snapshot jako zabezpieczenie

Przed wprowadzeniem większych zmian prosimy wykonać snapshot w panelu VPS. Jeśli coś pójdzie nie tak, przywrócą go Państwo jednym kliknięciem. Zob. Snapshoty i kopie zapasowe VPS.
Prosimy nie usuwać qemu-guest-agent
Program qemu-guest-agent jest instalowany domyślnie. Dzięki niemu mogą Państwo ustawić nowe hasło root w panelu VPS oraz widzieć wykorzystanie dysku. Prosimy go nie usuwać.
Szczegółowe objaśnienia ze zrzutami ekranu: Logowanie hasłem i jako root: wyłączanie oraz fail2ban przeciwko próbom odgadnięcia hasła w podręczniku VPS.
Chcą Państwo dowiedzieć się więcej? Zapraszamy na bezpłatny kurs VPS i administracja serwerem Linux, lekcja 2.2 Bezpieczna konfiguracja serwera SSH lub lekcja 10.4 Kontrola końcowa: sprawdzenie serwera.
