
Ataki DDoS i exploity to jedne z największych zagrożeń dla stabilności i bezpieczeństwa każdego serwera FiveM. Mogą prowadzić do niedostępności usług, utraty danych graczy, a nawet przejęcia kontroli nad serwerem. W tym poradniku przeprowadzimy Cię przez kluczowe kroki, które musisz podjąć, aby wzmocnić obronę swojej infrastruktury i zapewnić płynną rozgrywkę dla swojej społeczności.
Dzięki temu artykułowi nauczysz się implementować wielowarstwową strategię bezpieczeństwa, od ochrony na poziomie hostingu, przez konfigurację firewalla, aż po zabezpieczenie kodu LUA i plików konfiguracyjnych. To niezbędna wiedza dla każdego administratora, który poważnie podchodzi do zarządzania serwerem RP.
Wymagania Wstępne
- Dostęp z uprawnieniami administratora (root/sudo) do serwera VPS lub dedykowanego (przez SSH lub RDP).
- Podstawowa znajomość linii komend systemu operacyjnego (np. Linux).
- Dostęp do plików serwera FiveM, w tym do pliku server.cfg.
- Edytor kodu, taki jak Visual Studio Code lub Notepad++.
Przewodnik Krok po Kroku
Krok 1: Wybór odpowiedniego hostingu z ochroną Anti-DDoS
To absolutna podstawa. Żadne programowe zabezpieczenia nie pomogą, jeśli Twój dostawca hostingu nie filtruje zmasowanych ataków na poziomie sieci. Wybieraj renomowanych dostawców (np. OVH, Hetzner, NFOservers), którzy w standardzie oferują zaawansowaną ochronę Anti-DDoS. To Twoja pierwsza i najważniejsza linia obrony.
Krok 2: Konfiguracja systemowego firewalla
Ogranicz powierzchnię ataku, zamykając wszystkie porty, które nie są niezbędne do działania serwera. Na serwerach Linux najprostszym narzędziem jest UFW (Uncomplicated Firewall). Otwórz tylko porty dla FiveM (domyślnie 30120 TCP/UDP) oraz port SSH (zazwyczaj 22 TCP), aby zachować dostęp administracyjny.
Krok 3: Zabezpieczenie pliku server.cfg
Wiele wektorów ataków wykorzystuje błędną lub niezabezpieczoną konfigurację serwera. Zwróć uwagę na następujące zmienne:
- rcon_password: Ustaw bardzo długie i skomplikowane hasło. Nigdy nie zostawiaj go pustego ani nie używaj prostych fraz. To hasło daje pełną kontrolę nad serwerem.
- sv_scriptHookAllowed 0: Wyłącz tę opcję, jeśli nie jest absolutnie konieczna. Pozwala ona na ładowanie po stronie klienta modyfikacji, które mogą być wykorzystywane do cheatowania i exploitów.
- sv_master1 „”: Usunięcie serwera z publicznej listy może zmniejszyć liczbę przypadkowych ataków i botów skanujących sieć, choć nie ukryje serwera przed zdeterminowanym napastnikiem.
Krok 4: Implementacja skryptów Anti-Exploit
Społeczność FiveM stworzyła wiele zasobów chroniących przed popularnymi exploitami w grze (tzw. triggerami, spawnem obiektów, atakami na eventy). Zainwestuj w sprawdzony, aktywnie rozwijany skrypt typu anti-cheat/anti-exploit. Zawsze weryfikuj jego źródło i opinie, aby nie zainstalować czegoś, co samo w sobie jest backdoorem.
Krok 5: Walidacja zdarzeń po stronie serwera
Nigdy nie ufaj danym przychodzącym od klienta. Każde zdarzenie serwerowe (Server Event) wywoływane przez gracza musi być walidowane. Sprawdzaj, czy gracz (identyfikowany przez
source) ma uprawnienia do wykonania danej akcji i czy przesłane dane są poprawne. To zapobiega nadużyciom, takim jak przyznawanie sobie pieniędzy czy przedmiotów.Krok 6: Regularne aktualizacje
Utrzymuj swój serwer w najnowszej wersji. Regularnie aktualizuj artefakt serwera FiveM, system operacyjny oraz wszystkie używane skrypty. Aktualizacje często zawierają poprawki bezpieczeństwa, które łatają nowo odkryte luki.
Przykładowy Kod / Konfiguracja
Konfiguracja firewalla UFW (Linux)
Poniższe komendy skonfigurują podstawowe reguły firewalla, blokując wszystko poza niezbędnymi usługami.
# Instalacja UFW (dla Debian/Ubuntu)
sudo apt-get update
sudo apt-get install ufw
# Ustawienie domyślnych reguł
sudo ufw default deny incoming
sudo ufw default allow outgoing
# Otwarcie portu SSH (zmień 22, jeśli używasz innego)
sudo ufw allow 22/tcp
# Otwarcie portów dla FiveM
sudo ufw allow 30120/tcp
sudo ufw allow 30120/udp
# Włączenie firewalla
sudo ufw enablePrzykład walidacji zdarzenia w LUA
Prosty przykład sprawdzania, czy gracz jest administratorem, zanim wykona chronioną akcję.
-- Rejestrujemy event, który może być wywołany przez klienta
RegisterNetEvent('mojSerwer:dajPieniadze')
AddEventHandler('mojSerwer:dajPieniadze', function(kwota)
-- Pobieramy źródło (gracza), który wywołał zdarzenie
local _source = source
-- WAŻNE: Sprawdzamy uprawnienia po stronie serwera!
-- Nigdy nie ufaj sprawdzeniu po stronie klienta.
if IsPlayerAceAllowed(_source, 'group.admin') then
-- Gracz ma uprawnienia, wykonujemy akcję
local gracz = ESX.GetPlayerFromId(_source)
gracz.addMoney(tonumber(kwota))
else
-- Gracz nie ma uprawnień, logujemy próbę i ewentualnie wyrzucamy
print('Gracz ' .. GetPlayerName(_source) .. ' próbował użyć eventu admina bez uprawnień!')
-- DropPlayer(_source, 'Próba nieautoryzowanego dostępu.')
end
end)Podsumowanie
Zabezpieczenie serwera FiveM to proces ciągły, a nie jednorazowa konfiguracja. Kluczem do sukcesu jest stosowanie obrony w głąb (ang. *defense in depth*), czyli implementacja wielu warstw zabezpieczeń. Pamiętaj, że najsłabszym ogniwem jest często człowiek – dbaj o silne hasła, regularne aktualizacje i świadomość potencjalnych zagrożeń.
Zastosowanie się do powyższych kroków znacząco podniesie poziom bezpieczeństwa Twojego serwera, chroniąc go przed większością popularnych ataków i zapewniając stabilne środowisko dla Twojej społeczności. Bądź proaktywny i nie czekaj, aż stanie się coś złego.






