DayZ sunucusunu DDoS saldırılarına karşı koruma
Bir DayZ sunucusunun gerçekten hangi portlara ihtiyaç duyduğu, Steam sorgu portunu, BattlEye RCon'u, giriş kuyruğunu ve yeniden başlatmadan sonraki başlangıç aşamasını nasıl güvene alacağınız ve hangi saldırı hacminden sonra yalnızca sunucunun önündeki ağda yapılan filtrelemenin işe yaradığı.
Akşam oyunun tam ortasında bütün oyuncuları atan ve ardından dakikalarca sunucu tarayıcısından kaybolan bir DayZ sunucusunun donanım sorunu yaşaması nadirdir. Çoğunlukla bir saldırı sürüyordur, hem de tam oyuncuların en kalabalık olduğu ya da planlı yeniden başlatmanın yaklaştığı anda. DayZ sunucusunu DDoS saldırılarına karşı korumak isteyen kişi bu yüzden iki şeye birden ihtiyaç duyar: sunucuda temiz bir port açma düzeni ve sunucunun önündeki ağda yapılan filtreleme. Bu yazı önce ek maliyet olmadan kendiniz neleri güvene alabileceğinizi, ardından bu önlemlerin teknik olarak nerede bittiğini, sonunda da sunucunun önünde neler olması gerektiğini gösteriyor.
Tüm bilgiler, serverDZ.cfg dosyasıyla çalışan kendi DayZ dedicated sunucunuz içindir; Windows Server üzerinde mi yoksa Debian ve Ubuntu üzerinde bir uyumluluk katmanı üzerinden mi çalıştığı fark etmez. Bohemia Interactive, stable dal için üretime hazır yerel bir Linux sunucu programı dağıtmıyor; deneysel Linux derlemesi yalnızca deneysel istemcileri kabul ediyor. Linux komutları root kullanıcısı için yazılmıştır, normal kullanıcı olarak başlarına sudo ekleyin.
Saldırı şu anda sürüyorsa: serverDZ.cfg dosyasında şimdi hiçbir şey değiştirmeyin ve sunucuyu yeniden başlatmayın. Bir DayZ yeniden başlatması modları ve merkezi ekonomiyi yeniden yükler ve size, sunucunun kesinlikle çevrimdışı olduğu birkaç dakikaya mal olur. Önce ölçüm değerlerini kaydedin (“Kayıt tutma” bölümüne bakın), saldırıdan sonra bunlar kaybolur.
DayZ sunucuları neden bu kadar sık DDoS saldırılarının hedefi olur
DayZ, bir sunucuyu rahat bir hedefe dönüştüren birkaç özelliği bir arada taşıyor. Birincisi, bir topluluk sunucusu adresini kendiliğinden yayınlıyor: Oyunun sunucu tarayıcısında ve DZSA Launcher'da görünebilmesi için Steam sorgularını yanıtlaması gerekiyor ve bu yanıt IP adresi ile portu düz metin olarak taşıyor. Yani bir saldırganın hiçbir şeyi ortaya çıkarması gerekmez, yalnızca bir listeyi okuması yeter.
İkincisi, bir DayZ sunucusunun günlük akışı herkese açıktır. Pratikte bütün projeler her üç ila dört saatte bir otomatik olarak yeniden başlıyor, bunu sohbet mesajıyla duyuruyor ve planı Discord'a yazıyor. Tam bu zaman aralığına denk gelen bir saldırı iki kat etkili olur: Sunucu zaten o anda erişilebilir değildir ve bekleme alanında takılı kalan oyuncular başka yere gider.
Üçüncüsü, oyuncular için ortada duran şey büyüktür. DayZ'de yanlış dakikada yaşanan bir kesinti yalnızca hayal kırıklığı değil, kaybolan ekipman, yarıda kalan raidler ve dünyada korumasız duran bir üs anlamına gelir. İşte bu yüzden banlanmış oyuncular, birbirine düşman gruplar ve rakip projeler en sık görülen sipariş verenlerdir. Yaygın booter hizmetlerinden biri üzerinden yapılan bir saldırı, tetikleyen kişiye ne beceri ne de anlamlı bir para harcaması getirir.
Dördüncüsü, DayZ trafiğinin tamamı UDP üzerinden çalışır. UDP'de talep edilebilecek bir bağlantı kurulumu yoktur ve gönderen adresi sahte olabilir. Yani bir saldırganın yük oluşturmak için sunucunuza girmesi de sunucunuza doğru biçimde seslenmesi de gerekmez. Bundan üreticinin bile etkilendiğini Şubat 2025 gösterdi: Bohemia Interactive'in DayZ ve Arma Reforger için çevrimiçi hizmetleri bir haftadan uzun süre DDoS ateşi altında kaldı, 3 Şubat 2025'te doğrulandı ve 6 Şubat 2025'te hâlâ sona ermemişti, topluluk sunucuları da bundan etkilendi. Bir DDoS saldırısının ayrıntıda ne olduğunu DDoS saldırısı nedir? yazısı anlatıyor.
Bir DayZ sunucusunun portları: bilgi tablosu
Bir DayZ sunucusu yalnızca UDP konuşur. TCP oyun portu yoktur. DayZ'de gerçekten sabit olan tek değer, oyun portu olarak 2302 UDP'dir; geri kalan her şey yapılandırılabilir ve barındırıcıya göre değişir. Bu yüzden bir standart değere güvenmek yerine kendi başlatma satırınıza ve kendi serverDZ.cfg dosyanıza bakın.
| Port | Protokol | Ne için | Nerede ayarlanır | Açık ağa ait mi |
|---|---|---|---|---|
| 2302 | UDP | Oyun portu, sesli iletişim dâhil bütün oyun trafiği | başlatma satırındaki -port=2302 |
evet |
| 2303 ila 2305 | UDP | Engine'in birlikte kullandığı, oyun portunun üzerindeki blok | -port değerinden türer |
genellikle evet |
| 2305 veya 27016 | UDP | Steam sorgu portu: sunucu tarayıcısındaki ve DZSA Launcher'daki kayıt | serverDZ.cfg dosyasındaki steamQueryPort |
evet, yoksa sunucu görünmez olur |
| serbestçe seçilebilir, yaygın olarak 2305 veya 2310 | UDP | BEC ya da DaRT gibi yönetim araçları için BattlEye RCon | BEServer_x64.cfg dosyasındaki RConPort |
hayır |
| 22 | TCP | İşletim sisteminin SSH erişimi | sshd_config |
yalnızca kendi adresiniz için |
| 3389 | TCP | Windows sunucularında uzak masaüstü | sistem ayarı | hayır |
| 8080 ve 2022 | TCP | Bir oyun panelinin web arayüzü ve SFTP'si, burada Pterodactyl örneğinde | panel yapılandırması | hayır |
İki değer düzenli olarak karışıklık yaratıyor, bu yüzden açıklaması burada. Steam sorgu portu: Bohemia'nın birlikte verdiği örnek yapılandırma steamQueryPort = 2305; ayarlarken barındırıcıların büyük bir bölümü 27016 UDP kullanıyor. İki değer de geçerlidir, belirleyici olan yalnızca kendi dosyanızdaki değerdir. BattlEye RCon portu: Burada hiçbir bağlayıcı standart yoktur. Yaygın kural oyun portu artı üç, yani 2305'tir, başka barındırıcılar 2310 kullanır. DayZ 1.13'ten bu yana BattlEye, BEServer_x64.cfg dosyasındaki RConPort parametresini güvenilir biçimde değerlendiriyor, öncesinde port zor tahmin edilirdi.
Bundan, birçok işletmecinin düştüğü bir tuzak çıkar: steamQueryPort ile RConPort değerlerini asla aynı değere ayarlamayın. Yapılandırmanız Steam sorgusu için 2305'i öngörüyorsa RCon başka bir porta, örneğin 2310'a aittir.
Steam sorgu portu neden en hassas porttur
Steam sorgu portu üç sorguyu yanıtlar: A2S_INFO, A2S_PLAYERS ve A2S_RULES. A2S_INFO sunucu adını, haritayı, oyuncu sayısını ve sürümü verir, A2S_PLAYERS bağlı oyuncuların adlarını, A2S_RULES ise ayarlanmış sunucu değişkenlerini. Bu yanıtların her biri, kendisini tetikleyen istekten belirgin biçimde daha büyüktür ve portu iki kat tehlikeli yapan tam olarak budur.
Hedef olarak sizin için bu şu anlama gelir: Bir saldırgan istek başına birkaç baytla sorgu portunuzu meşgul edebilirken sunucunuz her seferinde eksiksiz bir yanıt derleyip gönderir. Üçüncü kişiler için ise şu anlama gelir: Bir saldırgan sunucunuzu sahte gönderen adresiyle sorgulayıp yanıtları asıl hedefine yönlendirebilir. Sunucunuz o zaman yalnızca kurban değil, aynı zamanda amplifikasyon aracıdır. Valve bu yüzden Aralık 2020'de A2S_INFO'ya bir challenge sorgusu ekledi: Sunucu önce bir rastgele sayıyla yanıtlar ve soran tarafın bu sayıyı geri göndermesi gerekir. Bu, amplifikasyonu zayıflatır ama sona erdirmez, çünkü her sorgu bu yoldan geçmez.
DayZ'nin burada başka oyunlarda olmayan bir özelliği var: Size iki ayrı sunucu listesi sorgu gönderir, yerleşik topluluk sunucu tarayıcısı ve yaygın olarak kullanılan DZSA Launcher. Bu yüzden sorgu portunu öylece kapatmak bir seçenek değildir, çünkü o zaman doğrudan bağlantı çalışmaya devam ettiği hâlde projeniz iki listeden de kaybolmuş olur. Doğru yanıt, kapatmak değil sınırlamaktır.
Para harcamadan önce kendiniz neler yapabilirsiniz
Bu bölüm en uzunu ve bu bilinçli bir tercih. Düzgün yapılandırılmış bir DayZ sunucusu, nerede barındırıldığından bağımsız olarak küçük ve orta ölçekli saldırılara kendi gücüyle dayanır.
1. Envanter: DayZ sunucunuz gerçekten hangi portları açıyor
Tek bir güvenlik duvarı kuralı yazmadan önce sunucunuzun dışarıya ne sunduğuna bakın. Tahmin etmeyin, bakın. Linux altında:
ss -lnup
ss -lntup
Windows Server altında komut istemi aynı tabloyu verir:
netstat -ano -p UDP | findstr "2302 2303 2304 2305 27016"
İlgi çekici olan, yerel adresi gösteren sütundur. 0.0.0.0:2302 “bütün internetten erişilebilir” anlamına gelir, 127.0.0.1:2310 ise “yalnızca yerel” demektir ve bir açma kuralına ihtiyaç duymaz. Ardından bir rehbere güvenmek yerine gerçek değerleri doğrudan yapılandırma dosyalarınızdan okuyun:
grep -iE "steamQueryPort|maxPlayers|password|enableWhitelist|verifySignatures" serverDZ.cfg
grep -iE "RConPort|RestrictRCon" battleye/BEServer_x64.cfg
Saldırganın bakışını, başka bir makineden çalıştırılan ve dışarıdan yapılan bir UDP port taraması verir:
nmap -Pn -sU -p 2302-2310,27015-27020 SUNUCU.IP.ADRESİNİZ
2. Yalnızca başlatma satırının ve serverDZ.cfg dosyasının gerçekten ihtiyaç duyduğu portları açma
DayZ için dışarıya iki açma yeter: oyun portu bloğu ve sorgu portu. Geri kalan her şey kendi adresinize kısıtlanır ya da hiç yayınlanmaz. UFW ile bu şöyle görünür, hem de tam bu sırayla, ki kendinizi dışarıda bırakmayın:
ufw allow 22/tcp comment 'SSH'
ufw allow 2302:2305/udp comment 'DayZ oyun portu'
ufw allow 27016/udp comment 'DayZ Steam Query'
ufw allow from 203.0.113.10 to any port 2310 proto udp comment 'BattlEye RCon'
ufw default deny incoming
ufw default allow outgoing
ufw --force enable
ufw status verbose
203.0.113.10 adresini kendi adresinizle, 27016'yı ise gerçekten kendi steamQueryPort satırınızda duran değerle değiştirin. Kurtarma yolu da dâhil tam rehberi Kendinizi dışarıda bırakmadan UFW güvenlik duvarı kurma yazısında bulursunuz. Bir Windows sunucusunda aynı ilke geçerlidir: port grubu başına bir gelen kural, kendi adresinize sınırlanmış uzak masaüstü, geri kalan her şey engelli.
3. Steam sorgu portunu kapatmak yerine sınırlama
Kaynak adres başına bir üst sınır, gerçek sunucu listelerini sorgu flood'undan ayırır. Bir sunucu tarayıcısı size saniye aralıklarıyla sorar, bir saldırgan milisaniye aralıklarıyla:
iptables -I INPUT -p udp --dport 27016 -m hashlimit --hashlimit-name dayz_query --hashlimit-mode srcip --hashlimit-above 10/sec --hashlimit-burst 20 -j DROP
iptables -I INPUT -p udp --dport 2302 -m hashlimit --hashlimit-name dayz_game --hashlimit-mode srcip --hashlimit-above 600/sec --hashlimit-burst 900 -j DROP
İlk kural, aynı kaynaktan gelen Steam sorgularını saniyede kalıcı olarak ondan fazla olduğunda düşürür, ikincisi oyun paketlerini saniyede 600'den fazla olduğunda. İki sayı da başlangıç değeridir, kesin doğrular değil. 60 oyuncuyla dolu bir sunucu boş bir sunucudan belirgin biçimde daha fazla paket üretir ve fazla sıkı ayarlayan kişi kendi oyuncularını dışarı atar ya da sunucu listesinden düşer. Önce normal işletimde bir hafta ölçün.
Salt iptables kuralları bir yeniden başlatmadan sonra kaybolur. Debian ve Ubuntu'da şöyle kaydedilir:
apt-get install -y iptables-persistent
netfilter-persistent save
UFW altında bu tür kurallar /etc/ufw/before.rules dosyasına aittir, çünkü aksi hâlde bir sonraki ufw reload komutunda kaybolurlar. Buna ek olarak Steam sunucu kütüphanesi, bağlantısız paketler için kendi frenini taşır: STEAM_GAMESERVER_RATE_LIMIT_200MS ortam değişkeni, 200 milisaniyelik bir pencerede ayarlanan değerden fazlası geldiği anda bir adresin bütün A2S paketlerini düşürür.
Üçüncü nokta hiçbir şeye mal olmaz: Discord botunuz ya da proje sayfanız oyuncu durumunu gösteriyorsa sunucuyu ziyaretçinin tarafından sorgulamayın, sonucu sabit aralıklarla önbelleğe alın. Böylece çok ziyaret edilen bir durum sayfası, ziyaretçi başına bir sorgu yerine aralık başına bir sorgu üretir.
4. BattlEye RCon'u açık ağdan çekme
BattlEye, DayZ'nin anti-cheat bileşenidir ve serverDZ.cfg dosyasında BattlEye = 1; ile açılır. Uzaktan yönetim ise kendi dosyasında durur: BEServer_x64.dll dosyasının yanındaki BattlEye dizinindeki BEServer_x64.cfg dosyasında, ki bu dizini başlatma satırı -BEpath= ile belirler:
RConPassword UzunRastgeleParolanız
RConPort 2310
RestrictRCon 0
Buna dair üç kural. Birincisi: RCon portu UDP'dir, TCP değil. Yanlışlıkla proto tcp diyen bir güvenlik duvarı kuralı hiçbir şeyi filtrelemez ve aynı zamanda yönetim araçlarını boşa çalıştırır. İkincisi: Portu yöneticilerinizin adreslerine sınırlayın. Sabit adresi olmayan kişi portu dışarıdan tamamen kapatır ve yönetim aracını, SSH ya da uzak masaüstü üzerinden erişilebilen sunucunun kendisinde başlatır. Üçüncüsü: RestrictRCon 1, RCon üzerinden yürütülebilen komutları sınırlar ve birden fazla kişinin erişimi olduğu anda doğru ayardır.
Açık bir RCon portu aynı anda iki şeydir: parola denemeye bir davet ve flood yapılabilecek bir başka UDP portu. Açma yalnızca bir avuç adres için geçerli olduğu anda ikisi de ortadan kalkar.
5. Giriş kuyruğu, beyaz liste ve slot tükenmesi
DayZ bağlantıları hepsini aynı anda değil, bir kuyruk üzerinden işler. serverDZ.cfg dosyasındaki beş değer bu kuyruğu yönetir:
maxPlayers = 60;
loginQueueConcurrentPlayers = 5;
loginQueueMaxPlayers = 100;
guaranteedSlots = 10;
maxPing = 200;
loginQueueConcurrentPlayers kaç oyuncunun aynı anda içeri alınacağını belirler (ön ayar 5), loginQueueMaxPlayers kuyruğun kendisini sınırlar (yaygın değerler 100 ile 500 arasında). Slot tükenmesi tam burada başlar: Bir saldırganın bant genişliğine ihtiyacı yoktur, yalnızca kuyruğu doldurmaya yetecek kadar hesaba ya da bağlantı denemesine ihtiyacı vardır. Sunucu teknik olarak kusursuz çalıştığı hâlde gerçek oyuncular artık içeri giremez. guaranteedSlots, tam bu durumda sunucuya kendiniz girebilmeniz için ekibinize yer ayırır.
Buna karşı yerleşik beyaz liste yardımcı olur. enableWhitelist = 1; ile etkinleştirilir ve ardından, satır başına bir Steam64 kimliği içeren profiles/whitelist.txt dosyasını okur. Listede olmayan her kimlik bağlantıda reddedilir. Dosya sunucu başlangıcında okunur, yani değişiklikler bir yeniden başlatma gerektirir. serverDZ.cfg dosyasındaki ek bir password benzer biçimde çalışır ama daha zayıftır, çünkü bir parola elden ele geçer, bir Steam64 kimliği ise geçmez.
Bu arada bir şey net olmalı: Beyaz liste oyuncu yerlerinizi korur, hattınızı korumaz. Sunucunuzu flood ile dolduran bir saldırgan zaten katılmak istemiyor. Paketleri reddedilir, ama buna rağmen ulaşmıştır ve mesele tam olarak budur.
6. Modlar, imza doğrulaması ve yeniden başlatmadan sonraki zaman aralığı
Modlar DayZ'de yalnızca bir konfor konusu değil, aynı zamanda saldırı yüzeyinin bir parçasıdır. serverDZ.cfg dosyasındaki dört ayar her durumda yapılmış olmalıdır:
verifySignatures = 2;
forceSameBuild = 1;
allowFilePatching = 0;
BattlEye = 1;
verifySignatures = 2 her PBO dosyasını ilgili .bisign imzasına karşı denetler ve bunun için keys klasöründe uygun .bikey dosyalarına ihtiyaç duyar. forceSameBuild = 1 sunucudakiyle tam olarak aynı oyun sürümünü talep eder. allowFilePatching = 0 değiştirilmiş oyun dosyalarıyla başlayan istemcileri reddeder. Bu ayarların hiçbiri hacimsel bir saldırıyı durdurmaz, ama üçü birlikte, değiştirilmiş bir istemcinin sunucunuzu yoldan çıkardığı yolu kapatır.
İkinci nokta daha önemlidir ve neredeyse her zaman gözden kaçar: başlangıç aşaması. Bir DayZ sunucusu başlangıçta önce başlatma satırındaki mod listesini, ardından bütün loot tablolarıyla merkezi ekonomiyi yükler. Çok sayıda modu olan bir sunucuda bu rahatça birkaç dakika sürer ve bu süre boyunca sunucu tek bir Steam sorgusunu bile yanıtlamaz:
./DayZServer -config=serverDZ.cfg -port=2302 -profiles=./profiles -BEpath=./battleye -mod=@CF;@Modunuz;@BirBaskaMod -cpuCount=4 -dologs -adminlog -netlog -freezecheck
Pratikte her proje her üç ila dört saatte bir yeniden başladığı ve bu planı bir de duyurduğu için, zaman aralığını bir saldırganın yakalaması çok kolaydır. Üç karşı önlem etkilidir ve hiçbir şeye mal olmaz. Mod listesini mümkün olduğunca kısa tutun, her ek mod tam bu aralığı uzatır. Yeniden başlatma saatlerini tam saat yerine küsuratlı değerlere koyun. Ve başlangıcınızın gerçekten ne kadar sürdüğünü tahmin etmek yerine bir kez ölçün: timeStampFormat = "Full"; ve ayarlanmış bir logFile ile süre daha sonra logda durur.
7. Bağlantı izleme, alma arabelleği ve kernel parametreleri
Sık gözden kaçan bir darboğaz, kernel'in bağlantı izlemesidir. UDP bağlantı tanımasa da kernel yine de kaynak ve hedef adres çifti başına bir kayıt oluşturur. Tablo dolduğunda sunucu meşru paketleri de düşürür ve logda “nf_conntrack: table full” yazar. Durumu ve üst sınırı şu komut gösterir:
sysctl net.netfilter.nf_conntrack_count net.netfilter.nf_conntrack_max
Salt bir oyun sunucusu için temiz çözüm, oyun trafiğini hiç izlettirmemek ve buna ek olarak ağ kartının alma arabelleğini ile kuyruğunu büyütmektir:
iptables -t raw -A PREROUTING -p udp --dport 2302 -j NOTRACK
iptables -t raw -A OUTPUT -p udp --sport 2302 -j NOTRACK
sysctl -w net.core.rmem_max=16777216
sysctl -w net.core.rmem_default=1048576
sysctl -w net.core.netdev_max_backlog=5000
sysctl -w net.netfilter.nf_conntrack_max=524288
Dikkat: NOTRACK ile durum bilgisi tutan kurallar birbirini dışlar. Oyun portunu izlemeden çıkaran kişi bu port için artık -m conntrack --ctstate içeren bir kural kullanamaz, yoksa açma kuralı işlemez. Kalıcı olması için sysctl değerleri /etc/sysctl.d/ dizinine aittir, yoksa bir sonraki yeniden başlatmadan sonra kaybolurlar.
8. IP adresiniz sunucu tarayıcısında duruyor
Burada hayalcilik yerine dürüstlük işe yarar: Herkese açık bir DayZ sunucusunun IP adresi gizli tutulamaz. Bir kez bağlanmış her oyuncu onu bilir, sunucu tarayıcısı onu yayınlar ve DZSA Launcher onu önbelleğe alır. Bir adres değişikliği size saatler kazandırır, nadiren günler.
Daha etkili olan iki alışkanlıktır. Ham IP adresini hiçbir yerde ayrıca yayınlamayın, yani ne sabitlenmiş Discord gönderisinde ne de proje sayfasında. Ve DNS kayıtlarınızı temizleyin: Önceki adrese işaret eden, unutulmuş bir A kaydı her değişikliği etkisiz kılar ve değişikliklerin çoğu tam bunda başarısız olur. Eski sunucuda hâlâ bir durum hizmeti çalıştıran kişi yeni adresi de hemen ele verir.
9. Kayıt tutma, böylece saldırı anında tahmin yürütmek zorunda kalmazsınız
En önemli adım, neredeyse hiç kimsenin önceden atmadığı adımdır: her şey normal çalışırken bir karşılaştırma temeli oluşturmak. Normal değer olmadan bir olaydan sonra saniyede 40.000 paketin çok mu olduğunu yoksa sadece cumartesi akşamı mı olduğunu söyleyemezsiniz. Sunucu tarafında bunun için yerleşik logları açarsınız:
timeStampFormat = "Short";
logAverageFps = 300;
logPlayers = 300;
logFile = "server_console.log";
logAverageFps burada DayZ'nin verdiği en dürüst değerdir. Oyuncu sayısı aynı kalırken sunucu kare hızı düşüyorsa bu bir mod ya da ekonomi sorunudur. Kare hızı sabit kalırken oyuncular dışarı atılıyorsa sorun ağdadır. Sistem tarafında ölçümler apt-get install -y vnstat sysstat ile kalıcı olarak arka planda çalışır ve bir olay sırasında dört komut yeter:
sar -n DEV 1 10
ip -s link show eth0
dmesg -T | tail -50
tcpdump -ni eth0 udp port 2302 -c 200 -q
tcpdump için şu geçerlidir: her zaman -c ile sınırlayın, tam yük altında alınan bir paket kaydı hâlihazırda aşırı yüklü bir sunucuya ek yük getirir. Değerleri nasıl yorumlayacağınız DDoS saldırısını tanıma yazısında.
Kendi korumanızın bittiği yer: bant genişliği ve paket hızı
Şimdi hiçbir yapılandırma dosyasının çözemeyeceği bölüm. Buraya kadarki tüm önlemler sizin sunucunuzda, yani hattın sonunda çalışır. Bir güvenlik duvarı kuralı, kabloyu çoktan geçmiş bir paket hakkında karar verir. Paketi düşürebilirsiniz, ama gönderilmemiş hâle getiremezsiniz.
| Gösterge | Değer | Bunun DayZ sunucunuz için anlamı |
|---|---|---|
| Tipik bir oyun sunucusunun bağlantısı | 1 Gbit/s | saniyede 125 megabayt, sonrasında hat dolar |
| 64 baytlık paketlerde paket hızı | 1 Gbit/s içinde saniyede yaklaşık 1,49 milyon paket | normal bir sunucu kernel'i bunların yalnızca birkaç yüz binini işler |
| Oyun sunucusu projelerine yönelik yaygın saldırı hacmi | 5 ila 50 Gbit/s | bağlantınızın beş ila elli katı |
| KernelHost sunucularında filtrelenen zirve değer | saniyede 41,5 milyondan fazla pakette 473,4 Gbit/s'nin üzerinde | bu büyüklükte hiçbir yerel ayar artık işlemez |
| KernelHost'ta bir oyun sunucusuna karşı filtrelenen UDP flood'u | 112,2 Gbit/s'nin üzerinde | sunucunun önündeki ağda son bulmalıdır |
| serverDZ.cfg dosyasında maxPlayers ön ayarı | 60 | saniyedeki paket cinsinden kendi normal değerinizi ölçmeniz gerekir, o değer proje başına farklıdır |
DayZ'de paket hızı çoğu zaman bant genişliğinden önce vurur ve bunun basit bir nedeni var: Oyun trafiği az sayıda büyük paketten değil, çok sayıda küçük UDP paketinden oluşur. Bu yüzden hattınızı üçte birine kadar bile doldurmayan bir saldırı yine de sunucunuzu felç edebilir, çünkü işlem zamanı düşürme işine gider. İşletmeciler bunu “doluluk hiç de yüksek değildi, buna rağmen herkeste lag sıçramaları oldu ve sırayla dışarı atıldılar” biçiminde yaşar.
Hacimsel saldırılar sunucunun önündeki ağda son bulmalıdır. Bu bir ürün iddiası değil, fizik.
DayZ DDoS koruması: KernelHost buna karşı ne koyuyor
Her sunucuda çalışan sürekli koruma
KernelHost'un DDoS koruması iki kademeli kuruludur ve siz herhangi bir şeyi açmak, sipariş etmek veya yapılandırmak zorunda kalmadan kalıcı olarak etkindir:
- 1. kademe: küresel scrubbing ağında 17 Tbps mitigasyon kapasitesi. Hacimsel saldırılar, veri merkezine ulaşmadan önce kaynaklarına yakın bir noktada temizlenir.
- 2. kademe: Frankfurt am Main'de 3,2 Tbps ile Arbor gerçek zamanlı filtreleme. Doğrudan sunucunun önünde protokole özgü kalıplar tanınır ve paket paket düşürülür.
İki özellik belirleyicidir. Koruma kalıcı olarak çalışır ve önce bir saldırıya tepki vermek zorunda değildir, yani başlangıçta sunucunun kayıp olduğu dakikalar yaşanmaz. Ayrıca null routing kullanılmaz: IP adresiniz ağda kalır, yalnızca zararlı paketler düşürülür. IP adresini ağdan çeken kişi, sizin açınızdan saldırganla aynı sonuca ulaşır. Hangi oyunların ve protokollerin kapsandığını Gerçek zamanlı oyun sunucusu DDoS koruması yazısı listeliyor.
Sürekli ateş altındaki projeler için Advanced DDoS Protection
Bazı projelere ara sıra değil, hedefli biçimde ve haftalar boyunca saldırılır. Bunun için ayda 50,00 EUR'dan başlayan, PrePaid ve asgari süresi olmayan Advanced DDoS Protection var. Fark, daha fazla kapasitede değil, kontrolde:
- Dedicated koruma IP'si: Frankfurt çekirdek ağından verilir ve sunucunuz kendi ağı içinde bu adrese geçirilir. Sizin tarafınızda hiçbir değişiklik gerekmez.
- Kendiniz yönetebileceğiniz, port ve protokol başına koruma kuralları: Müşteri panelinde 2302 UDP'de neye izin verildiğini, sorgu portunda neye ve RCon portunda neye izin verildiğini ayrı ayrı ayarlarsınız. DayZ'de kaldıraç tam olarak bu ayrımdır, çünkü oyun trafiği ile sorgu trafiği tamamen farklı görünür.
- Değişiklikler gerçek zamanlı etki eder, yani bir talep açıp beklemek yerine süren bir saldırı sırasında ince ayar yapabilirsiniz.
- Oyuna uygun koruma profili, çok sayıda modu olan sunucular ve herhangi bir TCP ya da UDP portundaki kendi uygulamalarınız için de.
İki kademenin karşılaştırması
| Özellik | Dâhil olan sürekli DDoS koruması | Advanced DDoS Protection |
|---|---|---|
| Fiyat | her sunucu paketinde dâhil, ek ücret olmadan | ayda 50,00 EUR'dan başlar, PrePaid |
| Filtreleme kapasitesi | 17 Tbps küresel scrubbing artı Frankfurt am Main'de 3,2 Tbps ile Arbor gerçek zamanlı filtreleme | aynı iki kademeli filtreleme |
| IP adresi | sunucunuzun IP adresi | ek dedicated koruma IP'si |
| Kural seti | otomatik profiller, yapılandırma gerekmez | müşteri panelinde port ve protokol başına kendi kurallarınız |
| Değişiklikler | otomatik olarak birlikte ilerler | gerçek zamanlı etki eder, bir saldırı sırasında da |
| Oyun profili | DayZ dâhil yaygın oyunlar için optimize edilmiş profiller | oyuna uygun profil, çok sayıda modu olan sunucular için de |
| Null routing | hayır | hayır |
| Süre | sunucu paketine bağlı | PrePaid, asgari süre yok, fesih bildirim süresi yok, kurulum ücreti yok |
DayZ projelerinin çoğu için, dâhil olan sürekli koruma düzgün bir sunucu yapılandırmasıyla birlikte yeterlidir. Advanced DDoS Protection ise birinin meseleyi kişisel almasına verilen yanıttır. DayZ sunucusunu şu anda başka bir yerde işleten kişi bu korumayı sonradan ekleyemez: Koruma ağın bir parçasıdır ve KernelHost'ta duran sunucular için geçerlidir. Oraya giden yol bir taşınmadır, bir ek ürün değil.
Sık yapılan hatalar ve çözümleri
“Sunucum DZSA Launcher'dan ve sunucu tarayıcısından kayboldu, ama doğrudan bağlantıyla girebiliyorum”: Bu çoğu durumda bir saldırı değil, sorgu portudur. Ya steamQueryPort içinde güvenlik duvarındakinden farklı bir değer duruyordur ya da fazla sıkı bir hız sınırlaması sunucu listesinin sorgularını düşürüyordur. Bir saldırıdan şüphelenmeden önce iki değeri birbirine karşı kontrol edin.
“Portları filtrelediğimden beri RCon bağlanmıyor”: BattlEye RCon UDP üzerinden çalışır. Aynı porta proto tcp ile yapılan bir açma hiçbir şey sağlamaz. Ayrıca RConPort ile steamQueryPort değerlerinin yanlışlıkla aynı değerde olup olmadığını kontrol edin.
“IP adresini değiştirdim ve iki saat sonra yine çevrimdışıydım”: Saldırgan yeni adresi eskisiyle aynı kaynaktan almıştır, çoğunlukla sunucu tarayıcısından, bir Discord durum botundan ya da eski bir DNS kaydından. Bir adres değişikliği zaman kazandırır, çözüm değildir.
“Saldırı her gün tam yeniden başlatma anında geliyor”: Bu tesadüf değil. Yeniden başlatma planı Discord'da duruyor ve oyun içinde duyuruluyor, modlar ile ekonomi yüklenirken sunucu da zaten yanıt vermiyor. Daha kısa bir mod listesi, küsuratlı yeniden başlatma saatleri ve bir saldırıya tepki vermek yerine kalıcı olarak çalışan bir filtreleme bu kalıbın etkisini alır.
“Bütün oyuncularda lag sıçramaları var, ama ağ sakin”: O zaman bu bir DDoS saldırısı değildi. Önce logAverageFps içinde sunucu kare hızının düşüp düşmediğine, ardından merkezi ekonomiye ve mod listesine bakın. sar -n DEV 1 10 dikkat çekmiyorsa sorun ağda değildir.
“iptables kurallarım etki etmiyor”: Üç neden sıktır. Kurallar UFW zincirlerinin arkasında duruyor ve hiç ulaşılmıyordur, son yeniden başlatmadan sonra kaybolmuşlardır (o zaman netfilter-persistent save komutu ya da /etc/ufw/before.rules dosyasındaki bir kayıt yardımcı olur) ya da saldırı hacimseldir ve kural, zaten dolu olan bir hatta doğru biçimde çalışıyordur. iptables -L INPUT -n -v komutuyla eşleşme sayaçlarının artıp artmadığını kontrol edin. Sayaçlar sıfırda kalıyorsa kurala ulaşılmıyor.
“Önceki sağlayıcım IP adresimi kapattı”: Bu null routing'dir. Sağlayıcı bununla kendi ağını korur, sizin için sonuç başarılı bir saldırıyla aynıdır, genellikle sonrasında saatlerce de sürer. Tereddüt ederseniz filtreleme mi yapıldığını yoksa null routing mi uygulandığını sorun. Yanıt, erişilebilirliğiniz hakkında herhangi bir donanım bilgisinden daha çok şey belirler.
“tcpdump çıktısında dikkat çekici bir şey görmüyorum”: Trafik zaten önündeki ağda filtreleniyorsa sunucuya beklendiği gibi hiçbir şey ulaşmaz. Filtreleme çalışırken normal durum budur. Tersi de geçerlidir: Hat doyuma ulaştığında, ölçüm yapmak istediğiniz SSH oturumu bile size ulaşmayabilir. O durumda müşteri panelindeki, konuk sistemin ağından bağımsız çalışan VNC konsolunu kullanın.
Kısaca özetle
- Bir DayZ sunucusunun dışarıya tam olarak iki şeye ihtiyacı vardır: 2302 UDP'den başlayan oyun portu bloğu ve kendi
steamQueryPortsatırınızdaki Steam sorgu portu. Geri kalan her şey kısıtlanır ya da kapatılır. - BattlEye RCon portunun bağlayıcı bir standardı yoktur, UDP üzerinden çalışır ve
BEServer_x64.cfgdosyasındaRConPortile ayarlanır. Asla açık ağa ait değildir ve asla sorgu portuyla aynı değerde olmamalıdır. - Sorgu portunu kapatmak yerine sınırlayın: Onu kapatan kişi, doğrudan bağlantı çalışmaya devam etse de sunucu tarayıcısından ve DZSA Launcher'dan kaybolur.
- Beyaz liste,
guaranteedSlotsve giriş kuyruğu oyuncu yerlerinizi slot tükenmesine karşı korur, ama hattınızı bant genişliğine karşı korumaz. - Bir DayZ sunucusunun en tehlikeli zaman aralığı, her üç ila dört saatte bir yapılan planlı yeniden başlatmadır, çünkü modlar ile merkezi ekonomi dakikalarca yüklenir ve bu anın ne zaman olduğu herkese açıktır.
- Yaklaşık 1 Gbit/s saldırı hacminden ya da saniyede birkaç yüz bin paketten sonra kararı yalnızca sunucunun önündeki ağ verir, artık güvenlik duvarınız değil.
- KernelHost'ta iki kademeli sürekli koruma her sunucu paketinde dâhildir, ek ücret olmadan ve null routing olmadan. Ayda 50,00 EUR'dan başlayan Advanced DDoS Protection ise kuralları port başına kendiniz yönetmek istediğinizde buna eklenir.
Projeniz hâlihazırda KernelHost'ta çalışıyorsa filtreleme, siz hiçbir şey yapmak zorunda kalmadan etkindir. Buna rağmen dikkat çekici bir durum fark ederseniz, IP adresiniz için filtreleme kurallarının yeniden ayarlanması amacıyla bir destek talebi açın. Süren bir saldırı sırasında bize ek olarak +43 650 8209883 numarasındaki WhatsApp acil durum sohbeti üzerinden ulaşabilirsiniz.
Sıkça sorulan sorular
DayZ sunucum şu anda çevrimdışı. Bunun bir DDoS saldırısı olduğunu nasıl anlarım?
Bir DayZ sunucusu gerçekten hangi portlara ihtiyaç duyar?
DayZ'de Steam sorgu portu 2305 mi yoksa 27016 mı?
BattlEye RCon portunu nerede ayarlarım ve açık ağa ait midir?
DayZ'de beyaz liste bir DDoS saldırısına karşı işe yarar mı?
DayZ sunucularına yapılan saldırılar neden sıklıkla tam yeniden başlatma anında geliyor?
Bir DDoS saldırısına iptables veya UFW ile karşı koyabilir miyim?
DayZ sunucum hangi saldırı büyüklüğünden sonra bunu tek başına başaramaz?
KernelHost'taki DayZ sunucum bir saldırı sırasında çevrimdışı olur mu?
KernelHost'ta DDoS koruması ek ücretli mi ve Advanced DDoS Protection'a ne zaman ihtiyaç duyarım?
2026 KernelHost GmbH. Tüm hakları saklıdır. Bu rehber telif hakkıyla korunmaktadır. Yazının başka web sitelerinde tamamen, kısmen ya da düzenlenmiş biçimde yayımlanması, yazılı iznimiz olmadan serbest değildir. Kaynak belirtilerek ve bağlantı verilerek yapılan alıntılar ise memnuniyetle karşılanır.

