MTA:SA sunucusu işletiyorsanız, DDoS saldırısı bir ihtimal değil, zamanla karşılaşacağınız bir gerçektir. Multi Theft Auto topluluğu rekabetçi bir yapıya sahip; rakip sunucu sahipleri, oyundan uzaklaştırılmış oyuncular ya da sadece eğlence için saldıran kişiler, birkaç dakika içinde sunucunuzu oyun oynanamaz hale getirebilir. İyi haber şu: MTA:SA sunucusunu DDoS saldırılarına karşı korumak, doğru katmanlar üst üste konduğunda oldukça mümkün. Bu rehberde saldırının nasıl geldiğinden başlayıp, ağ tarafı, sunucu tarafı ve MTA yapılandırması olmak üzere üç ayrı savunma hattını adım adım kuracağız.
Bir web sitesi saldırı altındayken sayfa birkaç saniye geç açılır ve ziyaretçi bunu çoğu zaman fark etmez bile. Oyun sunucusunda durum farklıdır: MTA:SA, konum ve hareket verisini saniyede onlarca kez gönderip alır. Ağda oluşan 200 milisaniyelik bir gecikme bile araç kontrolünü bozar, oyuncuyu ışınlatır ya da doğrudan bağlantıyı düşürür. Yani sunucuyu tamamen düşürmek gerekmez; sadece rahatsız etmek yeterlidir.
Bunun yanında MTA:SA sunucuları saldırgan açısından kolay hedeftir:
Savunma kurmadan önce neyin savunulduğunu bilmek gerekir. Varsayılan bir MTA:SA sunucusu üç ayrı kapı kullanır:
Asıl oyun trafiği buradan akar. Oyuncu konumu, atış, araç hareketi, senkronizasyon paketleri hep bu porttan gider gelir. Saldırıların büyük kısmı doğrudan bu portu boğmayı hedefler; çünkü buradaki her milisaniye gecikme oyuncuya anında hissettirir.
Bu port, sunucunuzun oyun içi listede görünmesini sağlar. Sunucu adı, oyuncu sayısı, harita bilgisi gibi verileri sorgulayanlara döner. Sorun şu ki bu port küçük bir istek karşılığında büyük bir cevap üretir. Saldırgan kaynak IP'sini sizin sunucunuz gibi göstererek bu portu bir güçlendirme (amplification) aracına dönüştürebilir; ya da doğrudan saniyede binlerce sorgu göndererek sunucu işlemcisini yorabilir. Pratikte en sık göz ardı edilen zayıf halka budur.
Oyuncu sunucuya ilk bağlandığında script, model ve ses dosyalarını buradan indirir. TCP olduğu için SYN flood türü saldırılara açıktır. Bu port boğulduğunda sunucu ayakta kalır ama kimse içeri giremez — oyuncular indirme ekranında takılı kalır. Dışarıdan bakınca sunucu çalışıyor görünür, oysa yeni oyuncu akışı tamamen durmuştur.
En kaba yöntemdir. Oyun portuna kapasiteyi aşacak hacimde rastgele UDP paketi gönderilir. Hat dolduğu anda meşru oyun paketleri kuyrukta bekler; oyuncular ışınlanma, "lag" ve kopma yaşar. Sunucunuzun işlemcisi boşta olsa bile hat tıkalı olduğu için yapabileceğiniz çok şey yoktur — bu saldırı türü sizin sunucunuzda değil, sunucuya giden yolda durdurulmalıdır.
Saldırgan, internet üzerindeki açık DNS, NTP veya benzeri sunuculara sahte kaynak adresiyle küçük istekler gönderir. Cevaplar sizin IP'nize gider ve trafiğin hacmi saldırganın gönderdiğinin kat kat üzerine çıkar. MTA'nın ASE sorgu portu da benzer mantıkla kötüye kullanılabilir.
Hacimsel değil, işlem gücü hedefli bir saldırıdır. ASE portuna sürekli sunucu bilgisi sorgusu gönderilir. Hat dolmaz ama sunucu her sorguya cevap üretmek zorunda kaldığı için işlemci doyar, oyun döngüsü yavaşlar. Grafiklerde bant genişliği normal görünürken oyuncuların "sunucu takılıyor" demesinin tipik sebebidir.
Bazı saldırılar hiç paket seli göndermez. Sunucudaki kötü yazılmış bir script'i, sınırsız veritabanı sorgusuna izin veren bir komutu ya da ağır bir olay (event) tetikleyicisini defalarca çağırarak kaynağı tüketir. Bu, teknik olarak DDoS'tan çok kötüye kullanımdır ama sonucu aynıdır. Saldırı türlerinin katman bazlı ayrımını daha ayrıntılı görmek isterseniz Layer 4 ve Layer 7 saldırılarını karşılaştırdığımız yazıyı okuyabilirsiniz.
Tek bir ayarla çözülen bir problem değil bu. Etkili koruma, birbirini tamamlayan üç hattan oluşur.
Hacimsel saldırılar sunucunuza ulaşmadan, sağlayıcının ağında temizlenmelidir. Sunucunuzun hattı doluysa üzerinde çalıştıracağınız hiçbir güvenlik duvarı kuralı işe yaramaz — paket zaten kapıya gelmiştir. Bu yüzden oyun sunucusu barındırırken DDoS korumalı ağ altyapısı pazarlama cümlesi değil, temel gerekliliktir.
Sağlayıcı seçerken şunları sorun:
Nubitro tarafında oyun sunucuları İstanbul lokasyonunda, DDoS korumalı ağ altyapısı ve 1 Gbps sınırsız trafik ile 7/24 destek kapsamında sunulur. MTA sunucu paketlerini ya da kendi kurulumunuzu yönetmek istiyorsanız AMD Ryzen 9 9950X tabanlı Türkiye VDS seçeneklerini inceleyebilirsiniz.
Ağ katmanından geçen artık trafiği burada temizlersiniz. Linux tarafında iptables veya nftables ile kurabileceğiniz temel önlemler:
hashlimit modülü ile tek bir IP'nin saniyede gönderebileceği UDP paketi sayısına tavan koyun. Normal bir oyuncu bu tavana asla yaklaşmaz.INVALID) paketleri ve anormal boyuttaki UDP datagramlarını en başta eleyin.Kuralları yazarken en sık yapılan hata, sınırları fazla dar tutup gerçek oyuncuları da düşürmektir. Her kuralı önce loglama modunda çalıştırıp bir gün boyunca ne kadar meşru trafiğin eleneceğini gözlemleyin, sonra engellemeye geçin.
mtaserver.conf dosyasında yapabileceğiniz birkaç ayar, özellikle sorgu tabanlı saldırıların etkisini azaltır:
httpdownloadurl ayarıyla kaynak dosyalarını ayrı bir web sunucusundan sunmak, oyun sunucunuzun HTTP portunu tamamen hedef olmaktan çıkarır. Bu, uygulaması kolay ama etkisi büyük bir önlemdir.Sunucunuzdaki kodun kendisi de bir saldırı yüzeyidir. Şunlara dikkat edin:
Panik anında sırayı bilmek çok şey kazandırır. Saldırı başladığında:
Hayır. Cloudflare'in ücretsiz ve standart planları HTTP/HTTPS trafiği için tasarlanmıştır. MTA:SA oyun trafiği UDP üzerinden akar ve bu koruma kapsamına girmez. Web sitenizi Cloudflare arkasına almanız faydalıdır, ancak oyun sunucunuzun korunması için ağ seviyesinde UDP filtrelemesi yapan bir altyapıya ihtiyacınız vardır.
Tamamen gizleyemezsiniz; oyuncuların bağlanabilmesi için bir IP'ye çözümlenmesi gerekir. Ancak alan adı kullanmak, web sitenizi ayrı bir sunucuda barındırmak ve yönetim panellerini farklı bir IP'ye taşımak, saldırganın doğru hedefi bulmasını zorlaştırır.
Genellikle hayır. Saldırı IP'yi hedef alır, sunucu sürecini değil. Sunucuyu kapatmak trafiği durdurmaz, sadece geri dönen oyuncuları da kaybedersiniz. Doğru adım sağlayıcınızla iletişime geçip filtrelemeyi ayarlatmaktır.
Linux yönetimi, güvenlik duvarı kuralları ve güncellemelerle uğraşmak istemiyorsanız hazır oyun sunucusu paketleri daha pratiktir. Kendi kurallarınızı yazmak, birden fazla sunucu çalıştırmak ya da özel yapılandırma yapmak istiyorsanız root erişimi olan bir VDS daha esnektir. Çok yüksek oyuncu sayısına ulaşmış topluluklar için fiziksel sunucu seçeneği de değerlendirilebilir.
Evet. Saldırıların önemli bir kısmı hacimle değil husumetle ilgilidir. Yasaklanan tek bir oyuncu, 20 kişilik bir sunucuyu da saatlerce oynanamaz hale getirebilir. Oyuncu sayınız az diye korumasız kalmak mantıklı değildir.
İyi kurgulanmış bir filtreleme altyapısında oyuncunun hissedeceği bir fark oluşmaz. Ping'i asıl belirleyen sunucu lokasyonudur; Türkiye'den oynayan bir topluluk için İstanbul lokasyonlu bir sunucu, korumasız bir yurt dışı sunucudan çoğu zaman daha iyi gecikme değerleri verir.
MTA:SA sunucusunu DDoS saldırılarına karşı korumak tek bir ürünle değil, üst üste dizilen katmanlarla mümkün olur:
Bu katmanlardan biri eksik olduğunda diğerlerinin etkisi de düşer. Özellikle ağ katmanı, sizin sunucunuzda çözebileceğiniz bir konu olmadığı için sağlayıcı seçimi doğrudan sunucunuzun ayakta kalma süresini belirler.
Sunucunuzu doğru altyapıya taşımak istiyorsanız: İstanbul lokasyonlu, DDoS korumalı ağ altyapısıyla sunulan MTA sunucu paketlerini inceleyebilir, tam kontrol isterseniz Türkiye VDS seçeneklerine göz atabilirsiniz. Hangi paketin topluluğunuza uygun olduğundan emin değilseniz 7/24 destek ekibimize yazın; oyuncu sayınıza ve kaynak yapınıza göre birlikte belirleyelim.