Mordhau sunucusunu DDoS saldırılarına karşı koruma
Bir Mordhau sunucusunun gerçekten hangi dört UDP portuna ihtiyaç duyduğu, 27015 sorgu portunu, 15000 beacon portunu ve RCON'u nasıl güvene alacağınız ve hangi saldırı büyüklüğünden sonra yalnızca sunucunun önündeki ağda yapılan filtrelemenin işe yaradığı.
Frontline turunun tam ortasında bütün oyuncuları bir anda kaybeden, ardından birkaç dakika çevrimdışı kalan ve sunucu listesinde artık görünmeyen bir Mordhau sunucusunun donanım sorunu yaşaması nadirdir. Vakaların büyük çoğunluğunda, bir Mordhau dedicated sunucusunun dışarıya açık tutmak zorunda olduğu dört UDP portundan birine bir saldırı yapılıyordur. Bu yazı önce Mordhau DDoS korumasında ek maliyet olmadan kendiniz neleri halledebileceğinizi, ardından bu önlemlerin fiziksel olarak nerede bittiğini, sonunda da sunucunun önündeki ağda neler olması gerektiğini gösteriyor.
Tüm bilgiler Debian 12, Debian 13, Ubuntu 22.04 LTS veya Ubuntu 24.04 LTS üzerinde çalışan resmî Mordhau dedicated sunucusu (Steam uygulama kimliği 629800, Unreal Engine 4) içindir. 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 yapılandırmada önce hiçbir şey değiştirmeyin ve sunucuyu yeniden başlatmayın, bunun yerine ölçüm değerlerini kaydedin (9. bölüm), çünkü saldırıdan sonra bu değerler kaybolur. Mordhau'da buna, birçok işletmecinin acı biçimde öğrendiği ikinci bir neden ekleniyor: Sunucu süreci kapanırken bellekteki durumunu Game.ini dosyasına geri yazar. Dosyayı sunucu çalışırken düzenleyen kişi, değişikliklerini bir sonraki duruşta kaybeder.
Mordhau sunucuları neden DDoS korumasına ihtiyaç duyar ve onlara kim saldırır
Mordhau sunucularına, adresleri herkese açık olduğu, bütün oyun trafiği UDP üzerinden çalıştığı ve bir kesinti anında herkes için görünür hâle geldiği için saldırılır. Sunucu tarayıcısındaki kayıt, IP adresi ile oyun portunu düz metin olarak içerir, çünkü oyuncular sunucuyu aksi hâlde bulamazdı. Herkese açık sunucu listeleri ve tracker'lar aynı verileri Steam sorgu portu üzerinden alır ve ikinci kez yayınlar. Adresiniz böylece bir sır değil, bir ürün bilgisidir.
Buna oyunun tekniği ekleniyor. Unreal Engine 4, hareketleri, isabetleri ve savunmaları UDP üzerinden iletir. UDP'de talep edilebilecek bir bağlantı kurulumu yoktur ve bir UDP paketinin 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. Mordhau'da bu, diğer birçok oyundan daha ağır tartıyor: Bir vuruş alışverişi saniyenin onda birleri düzeyinde belirlenir ve ek 200 milisaniyelik bir gecikme, sunucu gerçekten çökmeden çok önce yakın dövüşü oynanamaz hâle getirir. Bir turu yıkmak için küçük bir saldırının yetmesinin nedeni tam olarak budur. Bir DDoS saldırısının ayrıntıda ne olduğunu DDoS saldırısı nedir? yazısı anlatıyor.
Tipik tetikleyiciler gösterişsizdir: topluluklar arasındaki rekabet, banlanmış oyuncular, kaybedilmiş düellolar, Discord'daki kavga. Bir saldırı, kiralanmış booter hizmetleri işi hallettiği için sipariş verene ne beceri ne de anlamlı bir para harcaması getirir. İşletmeciler düzenli olarak, saldırıların tam olarak sunucu dolu olduğunda başladığını ve sunucu boşaldığı anda durduğunu bildiriyor. Bu bir rastlantı değil, birinin sunucu tarayıcısı kaydınızı izlediğine ve oyuncu sayısını tetikleyici olarak kullandığına dair bir ipucudur.
Mordhau'da asıl mesele olan portlar
Bir Mordhau dedicated sunucusu dışarıya tam olarak dört UDP portuna ihtiyaç duyar: 7777, 7778, 15000 ve 27015. Geri kalan her şey ya isteğe bağlıdır ya da açık ağa ait değildir. Portlar başlatma sırasında parametre olarak verilir:
./MordhauServer.sh FFA_ThePit -log -Port=7777 -QueryPort=27015 -BeaconPort=15000 -RconPort=27020
| Port | Protokol | Ne için | Şununla ayarlanır |
|---|---|---|---|
| 7777 | UDP | Oyun portu: Unreal Engine 4 ağ katmanının bütün oyun trafiği | -Port= |
| 7778 | UDP | Steam portu, oyun portu artı bir olarak ortaya çıkar | türetilmiş |
| 15000 | UDP | Beacon portu: oyuncu haritayı yüklerken slotu ayırır | -BeaconPort= |
| 27015 | UDP | Steam sorgu portu (A2S): sunucu tarayıcısına adı, haritayı ve oyuncu sayısını verir | -QueryPort= |
| serbestçe seçilebilir | TCP | Source RCON protokolüne göre RCON, fabrika ayarında açık değil | Game.ini dosyasındaki RconPort= ya da -RconPort= |
| 22 | TCP | İşletim sisteminin SSH erişimi, oyuna ait değil | sistem hizmeti |
Bu sırada iki şey düzenli olarak yanlış anlaşılır. Birincisi: 15000 beacon portu bir yan unsur değildir. Beacon, bir oyuncunun katıldığı anda slotu ayırır, ki oyuncu haritayı yükledikten sonra tekrar dışarı düşmesin. 15000 bloke edilmiş ya da aşırı yüklenmişse, 7777 portu yanıt veriyor olsa bile oyuncular artık içeri giremez. İkincisi: RCON Mordhau'da önceden yapılandırılmış değildir. Ancak RconPassword ve RconPort değerlerini ayarladığınızda etkin olur ve o zaman da UDP değil TCP üzerinden çalışır.
Bir Mordhau sunucusunun en önemli göstergeleri bir bakışta:
| Gösterge | Değer |
|---|---|
| Dedicated sunucunun Steam uygulama kimliği | 629800 (oyun istemcisi: 629760) |
| Linux'ta yapılandırma dizini | Mordhau/Saved/Config/LinuxServer/ |
| Windows'ta yapılandırma dizini | Mordhau\Saved\Config\WindowsServer\ |
| Yapılandırma dosyaları | Game.ini (oyun ve oturum), Engine.ini (ağ ve tickrate) |
| Standart tickrate | 60, NetServerMaxTickRate üzerinden 120'ye çıkarılabilir |
| Yaygın slot sayısı | MaxSlots üzerinden 64'e kadar, koop modlarında belirgin biçimde daha az |
| Tickrate 60'ta oyuncu ve yön başına paket | saniyede 60 paket mertebesinde |
| Dolu bir 64 slotluk sunucunun oyun trafiği | yön başına saniyede 4.000 paket mertebesinde |
| 1 Gbit/s'e sığan paket hızı (64 baytlık paketler) | saniyede yaklaşık 1,49 milyon paket |
| Bir A2S_INFO sorgusunun büyüklüğü | 25 bayt, yanıt ise bunun katlarıdır |
Mordhau'da görülen saldırı kalıpları
Dört kalıp, bir Mordhau sunucusuna karşı yürütülen hemen her şeyi kapsar ve her biri farklı bir portu vurur.
- 7777 oyun portuna UDP flood'u. Bu bir booter'ın standart saldırısıdır: sunucu tarayıcısında yazan porta olabildiğince çok sahte paket. Bir güvenlik açığını değil, bant genişliği ile paket hızını hedefler ve biri bağlantısını kaybetmeden çok önce ilk olarak lag sıçramaları biçiminde kendini gösterir.
- 27015 sorgu portuna sorgu flood'u. Bir A2S_INFO sorgusu 25 bayt büyüklüğündedir, sunucu adı, harita, oyun modu ve oyuncu sayısını içeren yanıt ise bunun katlarıdır. Yani saldırgan az yatırım yapar ve sizde hesaplama işi ile giden trafik zorlar.
- Kendi sorgu portunuz üzerinden yansıtma. Burada sunucunuz hedef değil, araçtır: Saldırgan sahte gönderen adresiyle sorgular gönderir ve sunucunuz kurbana yanıt verir. Bunu 27015 portunda açıklanamayacak kadar yüksek giden trafik ve sağlayıcınızın kötüye kullanım bildirimi olarak fark edersiniz.
- 15000 beacon portu üzerinden katılım ve slot tükenmesi. Bant genişliği yakmak yerine otomatik katılımlar ayrılmış slotları işgal eder. Sunucu çalışmaya devam eder, ama doludur ve gerçek oyuncular artık içeri giremez.
RCON açık biçimde ağda durduğu anda buna beşinci bir kalıp ekleniyor: RCON portuna karşı saniyelik aralıkla oturum açma denemeleri. Bu nadiren hacimseldir, ama işlem zamanına mal olur ve beş vakanın içinde tek bir isabetin sunucuyu tamamen elinizden aldığı tek vakadı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 Mordhau 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: sunucuda ne dinliyor?
Tek bir güvenlik duvarı kuralı yazmadan önce sunucunuzun dışarıya ne sunduğuna bakın. Tahmin etmeyin, bakın:
ss -lntup
İlgi çekici olan, yerel adresi gösteren sütundur. 0.0.0.0:7777 ve [::]:7777 “bütün internetten erişilebilir” anlamına gelir, 127.0.0.1:27020 ise “yalnızca yerel” demektir ve güvenlik duvarı kuralına ihtiyaç duymaz. Oyunun yanında orada sıklıkla bir web paneli, bir veritabanı hizmeti ve çoktan unutulmuş bir ses hizmeti de görünür. Saldırganın bakışını dışarıdan yapılan bir tarama verir; UDP için kısa bir port listesiyle, çünkü tam bir UDP taraması çok yavaştır:
nmap -Pn -sU -p 7777,7778,15000,27015 SUNUCU.IP.ADRESİNİZ
nmap -Pn -p- --min-rate 1000 SUNUCU.IP.ADRESİNİZ
2. Yalnızca Mordhau'nun gerçekten ihtiyaç duyduğu dört portu açık bırakma
Mordhau için dışarıya dört UDP izni yeter, geri kalan her şey 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 7777/udp comment 'Mordhau oyun'
ufw allow 7778/udp comment 'Mordhau Steam'
ufw allow 15000/udp comment 'Mordhau Beacon'
ufw allow 27015/udp comment 'Mordhau Query'
ufw allow from 203.0.113.10 to any port 27020 proto tcp comment 'Mordhau RCON'
ufw default deny incoming
ufw default allow outgoing
ufw --force enable
ufw status verbose
203.0.113.10 adresini kendi adresinizle değiştirin. Önemli olan, burada yazmayan şeydir: bir web paneli için izin yok, bir veritabanı için yok, bir dosya sunucusu için yok. Ek olarak açık her port, oyunla hiçbir ilgisi olmayan ek bir hedeftir. Kurtarma yolu da dâhil tam rehberi Kendinizi dışarıda bırakmadan UFW güvenlik duvarı kurma yazısında bulursunuz.
3. Sunucu listesinden düşmeden 27015 sorgu portunu sınırlama
Sorgu portunu sınırlayabilirsiniz, ama kapatamazsınız. 27015 UDP kapatıldığında sunucunuz sunucu tarayıcısından kaybolur, çünkü oyuncu sayısı, harita adı ve sunucu adı tam olarak bu port üzerinden sorulur. Kaynak adres başına bir üst sınır, görünürlüğe mal olmadan sorunu çözer:
iptables -I INPUT -p udp --dport 27015 -m hashlimit --hashlimit-name mh_query --hashlimit-mode srcip --hashlimit-above 10/sec --hashlimit-burst 20 -j DROP
Düzenli bir sunucu tarayıcısı sunucunuzu dakikada birkaç kez sorar, saniyede birkaç kez değil. Kaynak adres başına saniyede on sorgu böylece her gerçek oyuncu için cömert, her bot için sıkıdır. Ardından eşleşme sayacından kuralın gerçekten etki edip etmediğini kontrol edin:
iptables -L INPUT -n -v | head -20
tcpdump -ni eth0 udp port 27015 -c 200 -q
Yansıtma sorusunun yanıtı da burada. Bir yansıtmada sunucunuza saldırılmaz, amplifikasyon aracı olarak kötüye kullanılır: Sorgular sahte gönderen adresiyle gelir ve yanıtlarınız yabancı bir kurbanı vurur. Buna karşı kaynak adres başına bir hız sınırlaması en etkili yerel önlemdir, çünkü sahte bir gönderen adresi yalnızca sunucunuz gönüllü ve sınırsız biçimde yanıt verdiği sürece işe yarar.
4. RCON'u açık ağdan çekme
RCON Mordhau'da hiçbir durumda sınırsız biçimde internete ait değildir. Erişim Game.ini dosyasında, [/Script/Mordhau.MordhauGameSession] bölümünde açılır:
[/Script/Mordhau.MordhauGameSession]
ServerName=Mordhau Sunucum
MaxSlots=64
ServerPassword=
AdminPassword=UzunRastgeleBirParola
RconPassword=BaşkaUzunRastgeleBirParola
RconPort=27020
Mordhau, Source RCON protokolünü konuşur, yani TCP, ve bu yüzden her yaygın RCON aracıyla birlikte çalışır. Oturum açma bilgilerini tek tek deneyen betikler de tam olarak bunu kullanır. Üç kural bu vakayı kapsıyor. Birincisi: RconPassword ve AdminPassword, sunucu adının varyasyonları değil, iki farklı, uzun ve rastgele paroladır. İkincisi: RCON portu için verdiğiniz izni, yukarıdaki UFW bloğunda olduğu gibi yalnızca kendi adresinizle sınırlarsınız. Üçüncüsü, sabit bir adresiniz yoksa: Portu dışarıdan kapalı bırakın ve ona bir SSH port yönlendirmesi üzerinden ulaşın, ardından yerel olarak 127.0.0.1:27020 adresine bağlanın:
ssh -N -L 27020:127.0.0.1:27020 root@SUNUCU.IP.ADRESİNİZ
RCON buna rağmen açık kalmak zorundaysa, en azından kaynak adres başına eş zamanlı bağlantıları sınırlayın. Bir RCON aracı bir bağlantıya ihtiyaç duyar, bir bruteforce betiği yüzlercesine:
iptables -I INPUT -p tcp --dport 27020 --syn -m connlimit --connlimit-above 3 --connlimit-mask 32 -j DROP
5. 15000 beacon portunu katılım sellerine karşı güvene alma
Beacon portu, bir Mordhau sunucusunun hafife alınan saldırı noktasıdır. Oyun, katılan bir oyuncunun slotunu, oyuncu hâlâ yüklerken bu port üzerinden ayırır. Hızlı biçimde ardı ardına katılım başlatan bir bot böylece, oyuna hiç varmadan slotları işgal eder. Sunucu çevrimiçi kalır ve buna rağmen dolu görünür. Kaynak adres başına bir üst sınır bunu yakalar, çünkü gerçek bir oyuncu katılım başına tam olarak bir kez beacon gönderir, saniyede yirmi kez değil:
iptables -I INPUT -p udp --dport 15000 -m hashlimit --hashlimit-name mh_beacon --hashlimit-mode srcip --hashlimit-above 20/sec --hashlimit-burst 40 -j DROP
iptables -I INPUT -p udp --dport 7777 -m hashlimit --hashlimit-name mh_game --hashlimit-mode srcip --hashlimit-above 400/sec --hashlimit-burst 600 -j DROP
İkinci kural oyun portuna yöneliktir ve ölçülü davranmak gerekir. Tickrate 60'ta sunucu, bağlı her oyuncuyla yön başına saniyede 60 paket mertebesinde alışveriş yapar. Kaynak adres başına saniyede 400 paketlik bir sınır değeri böylece her gerçek oyuncuya bol hava bırakır ve buna rağmen açıkça flood yapan her kaynağı vurur. Daha sıkı ayarlamadan önce normal işletimde bir hafta ölçün: Fazla sıkı ayarlayan kişi kendi oyuncularını dışarı atar ve ardından bunu bir saldırı sanır.
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.
6. Game.ini ve Engine.ini: gerçekten işe yarayanlar
Mordhau'nun iki yapılandırma dosyası var ve ikisi de Linux'ta Mordhau/Saved/Config/LinuxServer/, Windows'ta Mordhau\Saved\Config\WindowsServer\ dizininde durur. Game.ini sunucu adını, slotları, paroları, yönetici listesini, harita rotasyonunu ve mod.io'dan gelen mod kimliklerini düzenler, Engine.ini ise ağ davranışını. İkisini de yalnızca sunucu durdurulmuşken düzenleyin, aksi hâlde sunucu süreci kapanırken değişikliklerinizin üzerine bellekteki durumu yazar.
Saldırı yüzeyi için gerçekten önemli olan üç ayar var. Birincisi bir ServerPassword: Davet edilmemiş olan herkesi uzak tutar, ama herkese açık bulunabilirliğe mal olur ve 7777 portuna gelen bir sele karşı hiç yardımcı olmaz, çünkü saldırgan zaten katılmak istemiyor. İkincisi gerçekçi bir MaxSlots sayısı: Mordhau 64 oyuncuya kadar tasarlanmıştır ve her ek slot, CPU'nuzun hizmet vermek zorunda olduğu ek bir paket kaynağıdır. Üçüncüsü Engine.ini dosyasındaki tickrate:
[/Script/OnlineSubsystemUtils.IpNetDriver]
NetServerMaxTickRate=60
LanServerMaxTickRate=60
[IpDrv.TcpNetDriver]
NetServerMaxTickRate=60
Bir Mordhau sunucusunun standart tickrate değeri 60'tır. 120'ye çıkarmak, oyuncu başına paket hızını ve CPU yükünü iki katına çıkarır ve böylece tam olarak saldırı altında ihtiyaç duymadığınız şeydir. Tickrate 120 ile çalışan bir 64 slotluk sunucu, normal işletimde bile yön başına saniyede 8.000 paket mertebesinde üretir. Kalıcı olarak ateş altında olan kişi, 60 ile 120'ye göre belirgin biçimde daha kararlı gider.
7. Bağlantı izlemesini ve alma arabelleklerini rahatlatma
Sık gözden kaçan bir darboğaz kernel'in bağlantı izlemesidir. Her UDP akışı için kendine ait bir kayıt tutar ve on binlerce sahte gönderen adresinden oluşan bir sel tabloyu saniyeler içinde doldurur. Tablo dolduğunda sunucu meşru paketleri de düşürür ve logda “nf_conntrack: table full” satırı görünür. Durumu ve üst sınırı şu komutlar gösterir:
sysctl net.netfilter.nf_conntrack_count net.netfilter.nf_conntrack_max
dmesg -T | grep -i conntrack | tail -20
Buna karşı iki şey yardımcı olur. Üst sınırı yükseltirsiniz ya da oyun portlarını izlemenin tamamen dışında tutarsınız. İkincisi bir oyun sunucusunda çoğunlukla daha iyi yoldur, çünkü UDP'nin zaten izlenmesi gereken bir durumu yoktur:
iptables -t raw -I PREROUTING -p udp --dport 7777 -j NOTRACK
iptables -t raw -I PREROUTING -p udp --dport 15000 -j NOTRACK
iptables -t raw -I PREROUTING -p udp --dport 27015 -j NOTRACK
Daha büyük alma arabellekleri ve ağ kartının daha derin bir kuyruğu da mantıklıdır, ki kısa zirveler hemen düşürmeye yol açmasın:
sysctl -w net.core.rmem_max=16777216
sysctl -w net.core.rmem_default=4194304
sysctl -w net.core.netdev_max_backlog=5000
Kalıcı olarak bu değerler /etc/sysctl.d/ altındaki bir dosyaya aittir, örneğin 99-gameserver.conf dosyasına. Anlamak açısından önemli: Daha büyük arabellekler büyük bir saldırıya karşı dayanıklılığınızı artırmaz, yalnızca kısa bir sapmanın daha baştan paketlere mal olmasını engeller.
8. Adresiniz sunucu listesinde duruyor ve bu değiştirilemez
Burada hayalcilik yerine dürüstlük işe yarar: Herkese açık bir Mordhau sunucusunun IP adresi gizli tutulamaz. Sunucu tarayıcısı kaydında durur, sorgu portunu düzenli olarak okuyan üçüncü kişilerin herkese açık sunucu listelerinde durur ve bir kez bağlanmış olan her oyuncu onu bilir. Bu yüzden bir adres değişikliği saatler kazandırır, nadiren günler, çünkü saldırgan yeni adresi eskisiyle aynı yolla bulur.
Bunun için üç alışkanlık etkilidir. Ham IP adresini hiçbir yerde kendiniz yayınlamayın, yani ne Discord kanalında ne de proje sayfasında. Oyuncularınızı bir ana bilgisayar adı üzerinden bağlayın, ki kötü durumda bir adres değişikliği bütün bağlantıları kırmasın. Ve eski DNS kayıtlarını temizleyin, çünkü önceki adrese işaret eden, unutulmuş bir A kaydı her değişikliği etkisiz kılar. Aynısı test sunucuları için de geçerlidir: Aynı makinede herkese açık biçimde erişilebilir her ikinci sunucu, ana sunucunun adresini açık eder.
9. Her şey normal çalışırken ölçme
En önemli adım, neredeyse hiç kimsenin önceden atmadığı adımdır: sunucu sakin ç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. apt-get install -y vnstat sysstat ile ölçüm kalıcı olarak arka planda çalışır. 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 7777 or udp port 15000 or udp port 27015' -c 200 -q
tcpdump için şu geçerlidir: her zaman -c ile sınırlayın, çünkü tam yük altında alınan bir paket kaydı hâlihazırda aşırı yüklü bir sunucuya ek yük getirir. Özellikle ip -s link çıktısındaki düşürülen paket sayaçlarına dikkat edin. CPU aynı zamanda sakin dururken artan dropped değerleri, sorunun hesaplama gücü değil paket hızı olduğuna dair en belirgin ipucudur. Değerleri nasıl yorumlayacağınız DDoS saldırısını tanıma yazısında. Sunucuyu SteamCMD ile düzgün biçimde nasıl kurup güncel tutacağınızı ise SteamCMD ile oyun sunucusu kurma yazısı anlatıyor.
Bu önlemler nerede biter: 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.
Bir kez birlikte hesaplayalım. Tipik bir oyun sunucusu 1 Gbit/s'lik bir hatta bağlıdır, bu saniyede 125 megabayt eder ve biri bundan fazlasını gönderdiği anda hat dolar. 64 slotlu dolu bir Mordhau sunucusu bunun yalnızca bir kesrine ihtiyaç duyar: Tickrate 60'ta oyun trafiği yön başına saniyede 4.000 paket mertebesindedir. Kiralanmış bir booter ise zorlanmadan 5 ila 50 Gbit/s verir, yani hattınızın beş ila elli katını. O zaman arkadaki iptables kuralınızın iyi olup olmadığı artık bir rol oynamaz, çünkü oyuncularınızın paketleri daha öncesinde geçemez.
İkinci büyüklük paket hızıdır ve sıklıkla bant genişliğinden önce vurur. 64 baytlık küçük paketlerde 1 Gbit/s'lik bir hatta saniyede yaklaşık 1,49 milyon paket sığar. Normal bir sunucu kernel'i, CPU ve ağ kartına bağlı olarak bunların birkaç yüz binini işler, ardından düşürmeye başlar. Yani hattınızı üçte birine bile doldurmayan bir saldırı, düşürme işlemi için işlem zamanı harcandığı için Mordhau sunucunuzu buna rağmen felç edebilir. İşletmeciler bunu “doluluk hiç de yüksek değildi, buna rağmen her şey gitti” biçiminde yaşar.
Gerçekte hangi mertebelerin görüldüğünü sınıflandırmak için: KernelHost sunucularında bunlar arasında bir ses sunucusuna saniyede 41,5 milyondan fazla pakette 473,4 Gbit/s'nin üzerinde bir saldırı ve bir oyun sunucusuna 112,2 Gbit/s'nin üzerinde bir UDP flood'u filtrelendi. Bunun için yerel bir ayar yoktur. Hacimsel saldırılar sunucunun önündeki ağda son bulmalıdır.
KernelHost buna karşı ne koyuyor
Her sunucuda dâhil olan 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. Konum Frankfurt am Main'dir. Hangi oyunların ve protokollerin kapsandığını Gerçek zamanlı oyun sunucusu DDoS koruması yazısı listeliyor.
Kalıcı olarak ateş altındaki Mordhau sunucuları için Advanced DDoS Protection
Bazı sunuculara 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, asgari süresi ve kurulum ücreti olmayan Advanced DDoS Protection var. Fark, daha fazla kapasitede değil, kontrolde:
- Frankfurt çekirdek ağından verilen ve sunucunuzun kendi ağı içinde geçirildiği dedicated koruma IP'si. Sizin tarafınızda hiçbir değişiklik gerekmez.
- Müşteri panelinde kendiniz yönetebileceğiniz, port ve protokol başına koruma kuralları: 7777 UDP'de neye izin verildiğini, 15000 UDP'de neye ve 27015 UDP'de neye izin verildiğini, bunun için bir talep yazmak zorunda kalmadan ayrı ayrı belirlersiniz.
- Değişiklikler gerçek zamanlı etki eder, yani bir bakım penceresini beklemek yerine süren bir saldırı sırasında ince ayar yapabilirsiniz.
- Oyuna uygun koruma profili. UDP üzerindeki Unreal Engine oyun sunucuları ve Steam sorgu portları için hazır profiller var, aynı şekilde herhangi bir TCP veya UDP portunda çalışan değiştirilmiş ve kendi uygulamalarınız için de.
Advanced DDoS Protection, KernelHost'ta çalışan sunuculara yöneliktir. Mordhau sunucunuz şu anda başka bir yerdeyse ve düzenli olarak ağdan vuruluyorsa, bu filtrelemeye giden yol taşınmadır.
İ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 | yaygın oyunlar için optimize edilmiş profiller, Unreal Engine sunucuları dâhil | oyuna uygun profil, değiştirilmiş uygulamalar 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 |
Mordhau sunucularının çoğu için, dâhil olan sürekli koruma düzgün bir yapılandırmayla birlikte yeterlidir. Advanced DDoS Protection ise birinin meseleyi kişisel almasına verilen yanıttır.
Sık yapılan hatalar ve çözümleri
“27015 portunu kapattım, şimdi sunucum artık listede görünmüyor”: Bu beklenen sonuçtur. Steam sorgu portu sunucu tarayıcısına adı, haritayı ve oyuncu sayısını verir. O olmadan sunucunuz artık görünmez ya da erişilemez olarak gösterilir. Doğru olan, bir kapatma değil kaynak adres başına bir hız sınırlamasıdır.
“Sunucu çalışmasına rağmen oyuncular içeri giremiyor”: Önce 15000 UDP portunu kontrol edin. Beacon, yükleme sırasında slotu ayırır. Port kapalı, fazla sıkı filtrelenmiş ya da aşırı yüklenmişse, 7777 portu yanıt veriyor ve sunucu tarayıcıda duruyor olsa bile katılım askıda kalır.
“Game.ini dosyasındaki değişikliklerim yeniden başlatmadan sonra yine kayboldu”: Dosyayı sunucu çalışırken düzenlediniz. Mordhau sunucu süreci kapanırken bellekteki durumunu geri yazar ve bu sırada sizin sürümünüzün üzerine yazar. Sunucuyu durdurma, düzenleme, başlatma; bu sırayla.
“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 veya /etc/ufw/before.rules dosyasındaki bir kayıt yardımcı olur) ya da saldırı hacimseldir ve kural, çoktan dolmuş 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.
“Sunucu çalışıyor, ama herkeste lag sıçramaları var ve isabetler geç varıyor”: Önce CPU sakin kalırken gelen paket hızının artıp artmadığına bakın. Bir saldırının kalıbı tam olarak budur. Paket hızı normal kalıyor ve CPU %100'de duruyorsa bu bir DDoS saldırısı değil, çoğunlukla fazla yüksek bir tickrate, fazla çok slot ya da bir moddur.
“Sağlayıcım 27015 portundan giden kötüye kullanım bildiriyor”: Sunucunuz bir yansıtma için amplifikasyon aracı olarak kötüye kullanıldı. Sorgular sahte gönderen adresiyle geldi, yanıtı ise sunucunuz yabancı bir kurbana verdi. 27015 UDP portunda kaynak adres başına bir hız sınırlaması bunu bitirir.
“Ö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 Mordhau dedicated sunucusunun dışarıya tam olarak dört UDP portuna ihtiyacı vardır: 7777 (oyun), 7778 (Steam), 15000 (beacon) ve 27015 (Steam sorgusu). Geri kalan her şey kapalı kalır.
- RCON Mordhau'da Source RCON protokolüne göre TCP üzerinden çalışır ve ancak
Game.inidosyasındakiRconPasswordileRconPortdeğerleriyle etkin olur. Portu kendi adresinizle sınırlayın. - 27015 UDP portunu sınırlayabilirsiniz, ama kapatamazsınız: O olmadan sunucunuz sunucu tarayıcısından kaybolur, çünkü oyuncu sayısı, harita ve ad bu port üzerinden sorulur.
- 15000 UDP beacon portudur ve yükleme sırasında slotu ayırır. Bloke edilmiş ya da aşırı yüklenmişse, sunucu çalışıyor olsa bile oyuncular içeri giremez.
Game.iniveEngine.inidosyalarını yalnızca sunucu durdurulmuşken düzenleyin, çünkü sunucu süreci kapanırken bellekteki durumu geri yazar.- Yerel güvenlik duvarı kuralları bant genişliğinde son bulur: 1 Gbit/s saniyede 125 megabayt eder ve 64 baytlık paketlerde saniyede yaklaşık 1,49 milyon paket demektir. Bunun üzerinde yalnızca sunucunun önündeki ağ belirleyicidir.
- KernelHost'ta iki kademeli sürekli koruma her sunucu paketinde ek ücret olmadan dâhildir, teslimden itibaren etkindir ve null routing kullanmaz. Filtrelemeyi kendisi yönetmek isteyen kişi bunu ayda 50,00 EUR'dan başlayan Advanced DDoS Protection ile alır.
Mordhau sunucunuz 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
Bir Mordhau sunucusu için hangi portları açık bırakmam gerekir?
Mordhau sunucum şu anda çevrimdışı. Bir DDoS saldırısının sürdüğünü nasıl anlarım?
Sorgu flood'larını durdurmak için 27015 portunu öylece kapatabilir miyim?
Bir Mordhau sunucusunda 15000 portu ne için var?
Bir Mordhau sunucusunda RCON'u nasıl güvene alırım?
Şimdi hızlıca IP adresini değiştirmek işe yarar mı?
Game.ini dosyasındaki değişikliklerim bir yeniden başlatmadan sonra neden kayboluyor?
Mordhau sunucum hangi saldırı büyüklüğünden sonra bunu tek başına başaramaz?
Mordhau sunucum KernelHost'ta bir saldırı sırasında çevrimdışı olur mu?
KernelHost'ta DDoS koruması ek ücretli mi?
Mordhau sunucum için ek olarak 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.

