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.

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 ] && rebootDruga 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 twojanazwaOd 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 ed25519Ustaw 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-ipW 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.confz tymi dwiema liniami:
PasswordAuthentication no
PermitRootLogin noPo 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 verboseLinia 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 sshdJeś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 = 1hPotem 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-upgradesJeś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.