FiveM sunucunuzu DDoS'a karşı korumanın tek bir çözümü yoktur; savunma dört ayrı katmanda kurulur: ağ seviyesinde UDP'yi de kapsayan gerçek bir temizleme altyapısı, server.cfg içindeki hız sınırlayıcılar, script tarafında sunucu taraflı doğrulama ve işletim sistemi seviyesinde güvenlik duvarı. Bu dördünden biri eksikse saldırgan diğerlerini dolaşır. Üstelik FiveM'de "DDoS" diye anılan sorunların önemli bir kısmı klasik hacimsel saldırı değil, sunucunuza bağlanan bir oyuncunun içeriden tetiklediği event ya da state bag taşkınıdır — ve bunu hiçbir ağ filtresi durduramaz. Bu rehber, dört katmanın tamamını sırayla ele alıyor.
Üç yapısal sebep var ve üçü de FiveM'e özgü:
Sektör verileri de bunu doğruluyor: oyun sektörü tüm DDoS saldırılarının yaklaşık %19'unu üzerine çekiyor ve ağ katmanındaki saldırıların %56'sı UDP flood tipinde. Yani FiveM'in maruz kaldığı saldırı profili, tam da klasik web korumasının göremediği yerde yoğunlaşıyor.
Hepsini "DDoS" diye tek torbaya koymak, yanlış çözüme para harcamanın en yaygın sebebi. Dördü birbirinden farklı yerde durdurulur.
Oyun portuna (varsayılan 30120) yüksek hacimde paket gönderilir, amaç hattı ya da ağ ekipmanını doldurmaktır. İyi haber: filtrelemesi en kolay saldırı tipi budur — ağ seviyesinde temizleme altyapısı olan bir sağlayıcıda çoğu zaman siz fark etmeden durdurulur.
Hacim düşük olabilir ama paketler sunucunun işlemesi pahalı olacak şekilde seçilir. Sonuç bant genişliği tıkanması değil, CPU sıçraması ve tick süresi bozulması olarak görünür. Oyuncular "sunucu lag yapıyor" der, grafiklerde trafik normal görünür.
Sunucu listesi kaydı, txAdmin arayüzü ya da varsa kendi web API'niz hedeflenir. Oyun portu sağlamdır ama sunucunuz listede görünmez ya da paneliniz açılmaz.
En sinsi olanı budur ve saldırgan geçerli bir oyuncu olarak sunucunuzun içindedir. Kötü korunmuş bir ağ olayı (net event) saniyede binlerce kez tetiklenir ya da state bag'ler doldurulur. Ağ seviyesindeki hiçbir koruma bunu göremez, çünkü trafik meşru bir oyuncudan gelir ve normal görünür. Bu katmanın savunması server.cfg ve script kodunuzdadır.
Savunmayı kurmadan önce neyin açık olduğunu bilmeniz gerekir. FiveM'in temel yapılandırması şudur:
server.cfg içinde endpoint_add_tcp "0.0.0.0:30120" ve endpoint_add_udp "0.0.0.0:30120" satırlarıyla açılır. İkisi de gereklidir; yalnızca birini açmak bağlantı sorunları üretir.Kural basittir: kullanmadığınız her port kapalı olsun. Güvenlik duvarını varsayılan olarak "her şey kapalı" kurup yalnızca gerekli olanları açın.
Hacimsel saldırıları yalnızca sağlayıcınızın altyapısı durdurabilir; sunucu içinde yapabileceğiniz hiçbir ayar 100 Gbps'lik bir taşkını karşılamaz. Bu yüzden hosting seçimi, FiveM'de bir güvenlik kararıdır.
Doğru sorular şunlardır — ve "kaç Gbps" bunlardan biri değildir:
Kapasite rakamlarının pratikte ne anlama geldiğini DDoS koruma kapasitesi rehberimizde, korumanın genel mantığını ise DDoS korumalı sunucu nedir yazımızda ele aldık.
Bu, FiveM topluluğunda en çok yanlış bilinen konu. Cloudflare'in standart hizmetleri HTTP/HTTPS trafiği için tasarlanmıştır. Sunucunuzun web sitesini, forumunu veya panelini korur — ancak oyun trafiği 30120 portundan UDP ile aktığı için oyun portu bu korumanın arkasında değildir.
Pratikte şu senaryo çok yaşanır: sunucu sahibi alan adını Cloudflare'e taşır, korunduğunu düşünür, saldırı geldiğinde oyun sunucusu düşer. Çünkü saldırgan alan adına değil, doğrudan sunucunun IP'sine ve oyun portuna vurmaktadır.
Ayrıntılı açıklama için Cloudflare oyun sunucusunu korur mu — UDP gerçeği yazımıza bakabilirsiniz. Özet: web tarafı için değerli, oyun portu için yeterli değil.
Burası çoğu sunucu sahibinin varlığından bile haberdar olmadığı katman — ve event flood saldırılarına karşı en etkili savunma. FiveM sunucusu, token bucket algoritmasıyla çalışan yerleşik hız sınırlayıcılara sahiptir. Her sınırlayıcının bir rate (saniyedeki token) ve bir burst (azami token) değeri vardır.
Resmî dokümantasyonda belirtilen başlıca sınırlayıcılar ve varsayılan değerleri:
Değerleri şu biçimde değiştirirsiniz:
set rateLimiter_netEvent_rate 40
set rateLimiter_netEvent_burst 150
Nasıl ayarlanmalı? Varsayılanlar çoğu sunucu için makuldür. Değişiklik yaparken iki yönlü risk vardır: çok gevşek bırakırsanız taşkın saldırılarına açık kalırsınız, çok sıkarsanız meşru oyuncular olay tetikleyemez hale gelir ve script'leriniz çalışmaz. Doğru yöntem, önce normal yoğunlukta bir akşam boyunca log tutmak, gerçek event hacminizi görmek ve sınırı bunun makul bir üstüne çekmektir.
challenge sınırlayıcısı ise bağlantı seli (connection flood) saldırılarına karşı doğrudan etkilidir; sürekli bağlanma denemesiyle sunucuyu yoran saldırılarda bu değeri düşürmek işe yarar.
Aynı dosyada yapılandırılan diğer güvenlik değişkenleri:
set sv_endpointPrivacy true — Sunucunun ürettiği genel raporlarda oyuncu IP adreslerini gizler. Bu, sunucunuzdaki bir oyuncunun diğer oyuncuların IP'sini toplamasını (ve onlara saldırmasını) engellemek açısından önemlidir. Roleplay sunucularında bu tip "oyuncuya saldırı" vakaları sanılandan yaygındır.
Varsayılanı false'tur ve öyle kalmalıdır. Resmî dokümantasyonun ifadesiyle etkinleştirmek önerilmez; sunucuyu güvenlik açıklarına karşı savunmasız bırakır.
İkisi de 1–5 aralığında tam sayı alır. sv_authMinTrust (varsayılan 1), kullanıcı kimliğinin kötü niyetli bir istemci tarafından taklit edilmesinin ne kadar zor olduğunu; sv_authMaxVariance (varsayılan 5) ise kimliğin ne kadar değişken olabileceğini ifade eder. Değerleri sıkılaştırmak, tek kullanımlık hesaplarla yapılan bağlantı denemelerini zorlaştırır — ancak aşırı sıkı ayar meşru oyuncuları da dışarıda bırakabileceği için kademeli deneyin.
Enhanced sürümde sv_clientConnectingTimeoutMilliseconds (varsayılan 60.000 ms) ve sv_clientConnectedTimeoutMilliseconds (varsayılan 120.000 ms) değerleri, yarım kalmış ve ölü bağlantıların kaynak tutmasını sınırlar. Bağlantı seli yaşayan sunucularda ilk değeri düşürmek yardımcı olur.
Doğrudan DDoS ile ilgili olmasa da bütünlük tarafında önemlidir. Seviye 1 değiştirilmiş istemci dosyalarının çoğunu engeller ama bilinen grafik modlarına ve ses dosyalarına izin verir; seviye 2 tüm değiştirilmiş dosyaları engeller. Uygulamada seviye 1 ile başlayıp gerçek oyuncularla test etmek, doğrudan 2'ye geçmekten çok daha az destek yükü üretir. Not: pure mode bir anti-cheat değildir — sunucu taraflı izin kontrollerinin, güvenli event'lerin ve loglamanın yerini tutmaz.
RCON kullanmıyorsanız kapalı tutun. Kullanıyorsanız güçlü ve benzersiz bir parola belirleyin; varsayılan bırakılmış bir RCON parolası sunucunun tamamını teslim etmek demektir.
Ağ koruması ve rate limiter'lar hacmi durdurur; ama kötü yazılmış tek bir script, saldırganın sunucunuzu tek bir oyuncuyla düşürmesine izin verir. Cfx.re'nin resmî güvenlik rehberinin temel ilkesi nettir: istemcideki hiçbir şeye güvenilmez, çünkü hile yapan bir istemci onu değiştirebilir.
Sunucu tarafında gelen çağrının gerçekten sunucudan geldiğini doğrulamak için resmî dokümantasyon if source ~= 65535 then return end kontrolünü öneriyor; sunucunun kendi gönderdiği olaylarda netid 65535 olarak gelir.
Her ağ olayında şunları sunucu tarafı yöntemlerle doğrulayın, istemciden gelen değerle değil:
IsPlayerAceAllowed() ileKlasik hata örneği, istemciden gelen "görevi tamamladım, ödülü ver" olayını doğrulamadan işlemektir. Bu olayı saniyede yüzlerce kez tetikleyen bir istemci hem ekonominizi bozar hem veritabanınızı yorar.
State bag'ler kaynaklar arasında veri paylaşır ve istismara açıktır. Güncelleme boyutlarını sınırlayın (16 KB üst sınırı vardır), onStateBagChange ile değişiklikleri izleyin ve şüpheli aktiviteyi loglayın.
En az yetki ilkesini uygulayın: state_bag.write ve entity.control gibi izinleri yalnızca güvendiğiniz gruplara verin. Herkese açık bırakılan bir izin, tek bir kötü niyetli oyuncunun sunucuyu kilitlemesine yeter.
OneSync, sunucu taraflı senkronizasyon sistemi olarak 2048 oyuncuya kadar kapasite sağlar (48 slota kadar ücretsiz, üstü Cfx portalı üzerinden abonelik gerektirir). Güvenlik açısından önemli tarafı, varlık ve oyuncu culling mekanizmasıdır: varsayılan olarak her oyuncunun çevresinde 424 birimlik yarıçap dışındaki varlıkların verisi gönderilmez. Bu, hem bant genişliğini hem işlem yükünü belirgin biçimde düşürür.
Routing bucket özelliği ise dünyayı izole örneklere bölmenizi sağlar; oyuncular yalnızca kendi bucket'larındaki varlıkları görür. Çok modlu sunucularda hem performans hem izolasyon açısından değerlidir.
Dikkat edilecek nokta: kapsam (scope) olaylarının ölçeklenen bir performans maliyeti vardır. Resmî dokümantasyon, güncelleme tetiklemek için mümkün olduğunda state bag'leri tercih etmeyi öneriyor.
Sunucu seviyesinde yapılacaklar:
Yeni bir sunucu teslim aldıysanız temel sertleştirme adımları için sunucu güvenliği için ilk 10 adım yazımızı takip edin.
Saldırıların çoğu dakikalar içinde bittiği için hazırlık her şeydir. Önceden kurulması gerekenler:
resmon), böylece "lag" şikâyetinde ağ mı yoksa script mi olduğunu ayırt edebilirsiniz.Saldırı yaşandığında sıra:
Yukarıdaki dört katmandan ilki — ağ seviyesindeki koruma — tamamen sağlayıcınıza bağlıdır. Nubitro altyapısında 200 Tbps üzeri DDoS koruması standart olarak sunulur ve oyun sunucularının ihtiyaç duyduğu şekilde UDP trafiğini de kapsar.
Sunucular AMD Ryzen 9 9950X işlemciler üzerinde, Türkiye / İstanbul lokasyonunda, NVMe M.2 SSD disk ve 1 Gbps sınırsız trafik ile çalışır. Kaynaklar fiziksel bölümlendirme ile tanımlandığı için komşu bir müşteriye gelen saldırı sizin tick sürenize yansımaz — DDoS bağlamında bu, korumanın kendisi kadar önemli bir tasarım kararıdır.
Paketleri FiveM sunucu kiralama sayfamızdan inceleyebilir, framework kararı için ESX mi QBCore mu Qbox mu yazımıza, genel kaynak seçimi için oyun sunucusu kiralama rehberimize bakabilirsiniz. Tüm hizmetler için nubitro.com ana sayfamızı ziyaret edebilirsiniz.
Tam olarak değil. Sunucu listesinde görünmek adresinizin yayınlanmasını gerektirir. Bir proxy/tünel çözümüyle gerçek IP'yi maskeleyen kurulumlar mümkündür, ancak bu ek gecikme getirir ve yapılandırma hatası sızıntıya yol açar. Çoğu sunucu için doğru yol, IP'yi gizlemeye çalışmak yerine korunan bir IP üzerinde çalışmaktır.
Hayır. Standart Cloudflare hizmetleri HTTP/HTTPS içindir; oyun trafiği 30120 portundan UDP ile aktığı için bu korumanın kapsamı dışındadır. Web siteniz ve forumunuz için kullanabilirsiniz, oyun portu için ağ seviyesinde koruma gerekir.
Büyük olasılıkla klasik hacimsel saldırı değil. İki ihtimal var: netcode/amplifikasyon tipi bir saldırı ya da içeriden gelen event/state bag taşkını. resmon ile hangi resource'un tick süresini yediğini ölçün ve o sırada bağlı oyuncuların loglarına bakın.
Ölçmeden düşürmeyin. Varsayılanlar çoğu sunucu için makuldür. Önce normal bir akşam boyunca gerçek event hacminizi gözlemleyin; sınırı bunun makul bir üstüne çekin. Aşırı sıkı ayar, saldırganı değil kendi oyuncularınızı engeller.
Hayır, bunlar farklı problemler. Anti-cheat hile yapan istemcilerle ilgilenir; hacimsel saldırılar ağ katmanında durdurulur. Ancak iyi bir sunucu taraflı doğrulama ve rate limiting, hem hileyi hem event flood saldırılarını birlikte azaltır — kesişim burasıdır.
Genellikle hayır. Kapatmak saldırganın hedefine ulaşması demektir ve oyuncu verisi açısından risk taşır. Koruma altyapısı çalışıyorsa saldırı süresince bir miktar gecikme yaşanabilir ama hizmet ayakta kalır. Kapatma yalnızca veri bütünlüğü riski varsa düşünülmelidir.
Evet. FiveM sahnesinde saldırı motivasyonu ticari değil rekabetçidir; rakip bir topluluğun üyesi, 30 kişilik bir sunucuyu prime time'da düşürmek için saldırı satın alabilir. Ölçek koruma sağlamaz.
server.cfg, script kodu ve güvenlik duvarı.sv_endpointPrivacy true oyuncu IP'lerini gizler; sv_scriptHookAllowed kapalı kalmalıdır.