Blog
FiveM Sunucunuzu Güvende Tutmanın 7 Yolu
Yayın tarihi:
1. Lisans anahtarı ve şifreler dışarı çıkmasın
server.cfg dosyasında sunucunuzun lisans anahtarı (sv_licenseKey), veritabanı bağlantı bilgisi ve varsa Steam Web API anahtarı durur. Bu dosyayı ekran görüntüsüyle paylaşmayın, herkese açık bir GitHub deposuna yüklemeyin; yanlışlıkla paylaşıldıysa anahtarları hemen yenileyin.
Ekipteki herkesin her şeye erişmesi gerekmez. Geliştiriciye yalnız işi için gereken klasörü ya da bir test sunucusunu açmak, ana şifreleri paylaşmaktan çok daha güvenlidir.
2. txAdmin paneline kimin girdiğini bilin
txAdmin, sunucuyu tarayıcıdan yönettiğiniz paneldir ve varsayılan olarak 40120 portunda çalışır. Her yöneticiye ayrı hesap açın, yetkileri işi kadar verin ve ekipten ayrılan kişinin hesabını hemen silin. Herkesin kullandığı ortak bir yönetici şifresi, kimin ne yaptığını bilmeyi imkânsız kılar.
Panelin adresini ve şifresini Discord kanallarında paylaşmayın. Mümkünse güvenlik duvarında panel portuna yalnız sizin IP adresinizden erişilebilecek bir kural koyun.
3. Sunucuda yalnız gereken kapılar açık olsun
Oyuncuların bağlanması için FiveM'in kendi portu (varsayılan 30120, TCP ve UDP) yeterlidir. Veritabanı (MySQL ya da MariaDB, varsayılan 3306) internete açık olmamalı; ona yalnız sunucunun kendisi bağlanmalıdır. Uzak masaüstü ya da SSH kullanıyorsanız güçlü bir şifre ya da anahtarla girin, kullanmadığınız servisleri kapatın.
Barındırma firmanıza oyun sunucuları için DDoS koruması olup olmadığını sorun. Korumalı bir altyapı, ev bağlantısından ya da korumasız bir sunucudan çok daha dayanıklıdır.
4. İstemciye güvenmeyin: sunucu olaylarını doğrulayın
FiveM'de oyuncunun bilgisayarı değiştirilebilir ve hile menüleri sunucuya istedikleri olayı gönderebilir. Para veren, eşya ekleyen ya da meslek değiştiren her sunucu olayı, isteği gönderen oyuncunun buna gerçekten hakkı olup olmadığını sunucuda kontrol etmelidir: yetkisi, mesafesi, envanterinde gerçekten ne olduğu ve istenen miktar. Kontrolsüz tek bir olay, sunucu ekonomisini bozmaya yeter.
Kendi scriptimiz Gunrack'te her koyma ve alma isteğinde meslek, araç, koltuk, mesafe ve envanter sunucuda kontrol edilir, istekler sınırlanır. Aldığınız ya da yazdırdığınız her scriptte aynı soruyu sorun: hangi işlemler sunucuda doğrulanıyor?
-- Fiyat istemciden geliyor: hile menüsü
-- istediği sayıyı gönderebilir
RegisterNetEvent('shop:sell', function(item, price)
local src = source
RemoveItem(src, item, 1)
AddMoney(src, price)
end)-- Fiyat sunucuda; istemciden yalnız eşya adı gelir
-- (HasItem, RemoveItem, AddMoney: çerçevenizdeki karşılığı)
local PRICES = { bread = 5, water = 3 }
local SHOP = vector3(25.7, -1347.3, 29.5)
local last = {}
RegisterNetEvent('shop:sell', function(item)
local src = source
local price = PRICES[item]
if not price then return end
-- Envanterde gerçekten var mı?
if not HasItem(src, item, 1) then return end
-- Dükkânın yanında mı?
local pos = GetEntityCoords(GetPlayerPed(src))
if #(pos - SHOP) > 3.0 then return end
-- Saniyede en çok bir satış
local now = GetGameTimer()
if last[src] and now - last[src] < 1000 then return end
last[src] = now
RemoveItem(src, item, 1)
AddMoney(src, price)
end)5. Sızdırılmış (leak) scriptlerden uzak durun
Ücretli scriptlerin izinsiz dağıtılan kopyaları sık sık arka kapı içerir: okunmasın diye şifrelenmiş kod parçaları ya da sunucu açılınca dışarıdaki bir adresten kod indirip çalıştıran satırlar. Böyle bir arka kapı, başkasına sunucunuzda istediğini yapma imkânı verebilir.
Scriptleri yalnız satıcısından ya da güvendiğiniz bir kaynaktan alın. Kaynağı belirsiz bir scripti kurmanız gerekiyorsa önce test sunucusunda deneyin ve dışarıya istek atan (PerformHttpRequest) ya da metinden kod çalıştıran (load) satırlarını inceletin.
6. Oyuncu tarafı ayarlarını sıkılaştırın
OneSync açık sunucularda sv_entityLockdown ayarı, oyuncuların kendi bilgisayarlarından araç ya da nesne oluşturmasını sınırlar; hile menülerinin haritaya nesne yağdırması bununla büyük ölçüde engellenir. Sıkı modu (strict) açmadan önce scriptlerinizin buna uygun olup olmadığını test sunucusunda deneyin; bazı eski scriptler nesneleri oyuncu tarafında oluşturur.
sv_scriptHookAllowed ayarını kapalı (0) tutun; bu, oyuncuların ScriptHook tabanlı modlarla sunucunuza girmesini engeller. Hile koruma scriptleri ek bir katman olabilir, ama sunucu tarafındaki doğrulamanın yerini tutmaz.
7. Güncelleyin, yedekleyin, önce test edin
FiveM sunucu sürümünü (artifacts) ve scriptlerinizi güncel tutun; güvenlik düzeltmeleri çoğu zaman güncellemeyle gelir. Veritabanını düzenli yedekleyin ve yedeği aynı sunucuda değil başka bir yerde saklayın; bir saldırıdan ya da hatalı bir güncellemeden sonra geri dönebileceğiniz tek şey odur.
Yeni bir scripti ya da güncellemeyi doğrudan canlı sunucuya kurmak yerine önce oyuncusuz bir test sunucusunda deneyin. Sunucunuzun ve scriptlerinizin güvenliğinden emin değilseniz, sizin izninizle inceleyip bulduğumuz açıkları önceliğiyle birlikte rapor olarak verebiliriz; bize yazabilirsiniz.
Ürün
GunrackFiveM için araç silah rafı. Memurlar silah ve mermiyi departman araçlarında saklar.
İlgili hizmet
Siber Güvenlik Hizmetleri