// VPS

Jak zabezpieczyć serwer VPS: pierwsze 30 minut

Jak zabezpieczyć serwer VPS: pierwsze 30 minut

Jak zabezpieczyć serwer VPS? Najlepiej od razu po jego otrzymaniu, bo nowy adres IP szybko trafia pod skanery botów, które szukają otwartych portów i słabych haseł. W pół godziny ustawisz podstawy: aktualizacje, własny użytkownik, klucze SSH, wyłączone logowanie hasłem i na roota, firewall z ufw, fail2ban i automatyczne aktualizacje bezpieczeństwa.

Zabezpieczenie VPS to Twoje zadanie: co warto wiedzieć na start

VPS w MC-Node jest self-managed: dostajesz dostęp root i sam zarządzasz aktualizacjami oraz bezpieczeństwem, choć nasz support chętnie doradzi, gdy utkniesz. Poniższe kroki zakładają Ubuntu, które w KVM VPS i VDS wybierasz przy zamówieniu, a w Premium VPS instalujesz samodzielnie w panelu VPS. Dotyczą każdego VPS z Linuksem, od taniego VPS po Premium VPS z Ryzen 9. Wykonuj polecenia jako root albo z sudo na początku, gdy tylko pracujesz jako własny użytkownik. Jeśli używasz Windows Server, przejdź do części o RDP.

Zabezpieczenie VPS w ośmiu krokach: aktualizacje, własny użytkownik, klucz SSH, wyłączone logowanie hasłem, ufw, fail2ban, automatyczne aktualizacje i kopie zapasowe
Pierwsze 30 minut po zamówieniu: osiem kroków, które zabezpieczają nowy VPS.

Krok 1: aktualizacje i własny użytkownik

Zaloguj się danymi z maila z dostępami (zobacz połączenie przez SSH) i najpierw wszystko zaktualizuj:

apt update && apt upgrade -y
[ -f /var/run/reboot-required ] && reboot

Druga linia restartuje VPS tylko wtedy, gdy wymaga tego aktualizacja, zwykle po nowym jądrze. Potem zmień hasło roota poleceniem passwd (albo w panelu VPS, zobacz zmiana hasła root) i utwórz własnego użytkownika z uprawnieniami administratora:

adduser twojanazwa
usermod -aG sudo twojanazwa

Od teraz pracujesz jako twojanazwa i dodajesz sudo przed poleceniami administracyjnymi. Root nie musi już logować się bezpośrednio, a te drzwi zamkniesz w kroku 3.

Krok 2: klucze SSH zamiast haseł

Klucz SSH to para kluczy: część prywatna zostaje na Twoim komputerze, a część publiczną umieszczasz na serwerze. Zgadywanie nie ma wtedy sensu, niezależnie od tego, ile razy bot próbuje. Utwórz parę na swoim komputerze; Windows 10 i 11, macOS i Linux mają wbudowane ssh-keygen:

ssh-keygen -t ed25519

Ustaw hasło do klucza (passphrase), wtedy sam skradziony plik klucza nie wystarczy. Następnie umieść część publiczną na VPS. Na macOS i Linuksie:

ssh-copy-id twojanazwa@twoje-ip

W Windows nie ma ssh-copy-id; w PowerShell zrobisz to samo tak:

type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh twojanazwa@twoje-ip "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

Jeśli wolisz PuTTY, skorzystaj z instrukcji konfiguracja kluczy SSH w PuTTYgen. Przetestuj w nowym oknie: ssh twojanazwa@twoje-ip powinno teraz zalogować Cię bez hasła do konta, tylko z hasłem do klucza.

Krok 3: wyłącz logowanie hasłem i na roota

Skoro klucz działa, drzwi dla haseł można zamknąć. Utwórz własny plik ustawień:

sudo nano /etc/ssh/sshd_config.d/00-bezpieczenstwo.conf

z tymi dwiema liniami:

PasswordAuthentication no
PermitRootLogin no

Po co to 00- w nazwie? OpenSSH bierze dla każdego ustawienia pierwszą wartość, na jaką trafi, a pliki w sshd_config.d są czytane w kolejności alfabetycznej, przed resztą sshd_config. Na obrazach chmurowych bywa plik w rodzaju 50-cloud-init.conf z PasswordAuthentication yes; dzięki 00- Twój plik ma pierwszeństwo. Sprawdź i zrestartuj:

sudo sshd -t && sudo systemctl restart ssh
sudo sshd -T | grep -Ei '^(passwordauthentication|permitrootlogin)'

Ostatnia linia powinna pokazać passwordauthentication no i permitrootlogin no. Zamknij bieżącą sesję dopiero wtedy, gdy w drugim oknie udało Ci się zalogować ponownie.

Krok 4: firewall z ufw (najpierw OpenSSH!)

ufw zamyka wszystko, czego wyraźnie nie otworzysz. Kolejność jest ważna: zezwól na SSH, zanim włączysz firewall, inaczej odetniesz sobie dostęp.

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw allow 25565/tcp
sudo ufw enable
sudo ufw status verbose

Linia z 25565 to przykład dla serwera Minecraft; otwieraj tylko porty, których naprawdę używasz. Dla FiveM to port 30120 po TCP i UDP (zobacz Serwer FiveM na własnym VPS), porty gier ze Steama znajdziesz w artykule Serwer gry na VPS przez SteamCMD. Port administracyjny, taki jak port txAdmin (40120), otwieraj tylko dla własnego adresu IP: sudo ufw allow from twoje-domowe-ip to any port 40120.

Uwaga na Dockera, a więc także na Pterodactyl Wings: porty publikowane przez Dockera według dokumentacji Dockera omijają reguły ufw. Tymi portami zarządzasz więc w Dockerze albo w panelu gier, a nie tylko w ufw. A na tanim VPS przez OpenVZ dzielisz jądro z hostem: sprawdź tam po włączeniu poleceniem sudo ufw status verbose, czy firewall naprawdę jest aktywny.

Krok 5: fail2ban przeciw atakom brute force

fail2ban czyta Twoje logi i tymczasowo blokuje adres IP po zbyt wielu nieudanych próbach logowania. Na Ubuntu ochrona SSH działa od razu po instalacji:

sudo apt install fail2ban
sudo fail2ban-client status sshd

Jeśli chcesz ostrzejszych reguł, utwórz /etc/fail2ban/jail.local. Nie zmieniaj samego jail.conf, bo ten plik może zostać nadpisany przy aktualizacji.

[sshd]
maxretry = 5
bantime = 1h

Potem sudo systemctl restart fail2ban. Przy samych kluczach SSH nikt już nie zgadnie Twojego hasła, ale fail2ban utrzymuje logi w czystości i spowalnia boty. Jeśli zbanowałeś sam siebie, na przykład po kilku próbach z niewłaściwym kluczem, usuniesz swój adres IP przez konsolę poleceniem sudo fail2ban-client set sshd unbanip twoje-ip.

Krok 6: automatyczne aktualizacje bezpieczeństwa

Na Ubuntu Server pakiet unattended-upgrades jest domyślnie zainstalowany i sam instaluje aktualizacje bezpieczeństwa. Sprawdź, czy jest włączony:

cat /etc/apt/apt.conf.d/20auto-upgrades

Jeśli widzisz APT::Periodic::Unattended-Upgrade "1";, wszystko jest w porządku. Jeśli nie, zainstaluj go poleceniem sudo apt install unattended-upgrades i włącz przez sudo dpkg-reconfigure -plow unattended-upgrades. Nowe jądro działa dopiero po restarcie, a automatyczny restart jest domyślnie wyłączony. Jeśli go chcesz, dodaj Unattended-Upgrade::Automatic-Reboot "true"; do /etc/apt/apt.conf.d/50unattended-upgrades, a spokojną porę ustaw przez Automatic-Reboot-Time. Jeśli działa na nim serwer gry, zadbaj o to, żeby systemd sam go ponownie uruchamiał.

Windows Server: zabezpiecz RDP

Na VPS z Windows to Pulpit zdalny (RDP, port 3389) jest drzwiami, do których pukają boty. Podstawy:

  • Długie, unikalne hasło dla Administratora i żadnych dodatkowych kont ze słabymi hasłami.
  • Windows Update zostaw włączony i naprawdę kończ aktualizacje restartem.
  • W Zaporze Windows Defender ogranicz regułę Pulpitu zdalnego do własnego adresu IP, na karcie Zakres (Scope) tej reguły.
  • Zostaw włączone uwierzytelnianie na poziomie sieci (Network Level Authentication): wtedy trzeba się najpierw zalogować, zanim ruszy sesja.

Więcej o licencji, RDP i o tym, kiedy Linux jest lepszym wyborem, przeczytasz w artykule VPS Windows: licencja, RDP i kiedy Linux jest lepszym wyborem; samo logowanie opisujemy w instrukcji połączenie przez Pulpit zdalny.

Co ochrona DDoS robi, a czego nie

Każdy VPS w MC-Node ma ochronę DDoS przez sieć PletX, zawsze włączoną i wliczoną w cenę (zobacz jak działa ochrona DDoS). Filtruje ona ataki, które chcą zalać Twoje łącze falą ruchu. Ale filtr DDoS patrzy na ruch, a nie na to, kto się loguje: nie zatrzyma odgadniętego hasła, wycieku tokena ani luki w przestarzałym pluginie. Do tego służą kroki powyżej. O serwerach gier więcej przeczytasz w artykułach czym jest atak DDoS i zabezpiecz swój serwer Minecraft.

Twoja siatka bezpieczeństwa: konsola i kopia zapasowa

Włączyłeś ufw bez reguły dla SSH albo zrobiłeś literówkę w ustawieniach SSH? Wtedy Twój VPS nie jest zepsuty, tylko nieosiągalny przez SSH. W panelu VPS jest konsola: pracujesz w niej tak, jakbyś siedział przed ekranem serwera, niezależnie od SSH i firewalla. Zaloguj się tam i cofnij zmianę, na przykład poleceniem sudo ufw disable albo usuwając 00-bezpieczenstwo.conf.

Oprócz tego zadbaj o kopie zapasowe, najlepiej zanim wprowadzisz duże zmiany: trzymaj kopię konfiguracji i danych w innym miejscu niż sam VPS, żeby pomyłka albo włamanie nie oznaczały końca Twojego projektu.

Najczęściej zadawane pytania

Jak zabezpieczyć nowy serwer VPS?

Najpierw wszystko zaktualizuj i utwórz własnego użytkownika z uprawnieniami sudo. Potem loguj się kluczem SSH, wyłącz logowanie hasłem i na roota, zamknij w ufw wszystkie porty poza SSH i tymi, których naprawdę używasz, i zainstaluj fail2ban. Na koniec sprawdź, czy automatyczne aktualizacje bezpieczeństwa są włączone.

Czy powinienem zmienić port SSH?

Możesz, ale to nie jest prawdziwe zabezpieczenie. Inny port zmniejsza szum w logach, bo mniej botów go znajduje; kto szuka celowo, i tak go znajdzie. Prawdziwą robotę robią klucze SSH, wyłączone logowanie hasłem i fail2ban. Jeśli zmieniasz port, najpierw otwórz nowy port w ufw.

Co zrobić, jeśli odciąłem sobie dostęp?

Użyj konsoli w panelu VPS. Działa niezależnie od SSH i firewalla, więc możesz się tam zalogować i cofnąć zmianę, na przykład poleceniem ufw disable albo usuwając nowy plik ustawień SSH.

Czy ochrona DDoS chroni przed hakerami?

Nie, nie przed włamaniem. Ochrona DDoS filtruje ataki, które chcą zalać Twoje łącze ruchem, i w MC-Node jest zawsze włączona na każdym VPS. Przed odgadniętymi hasłami i lukami w oprogramowaniu chronią aktualizacje, klucze SSH, firewall i fail2ban.

Czy VPS w MC-Node jest zarządzany czy niezarządzany?

Self-managed: dostajesz dostęp root lub Administrator i sam zarządzasz aktualizacjami oraz bezpieczeństwem. Nasz support chętnie doradzi, gdy utkniesz. Jeśli wolisz nie zajmować się administracją, gotowy serwer gier jest często lepszym wyborem.

Czytaj dalej

// WYPRÓBUJ SAM
Twój serwer Minecraft online w 60 sekund
Zobacz pakiety →