Project Zomboid sunucusunu DDoS saldırılarına karşı koruma
Dedicated bir Project Zomboid sunucusunun gerçekten hangi portlara ihtiyaç duyduğu, servertest.ini dosyasının hangi direktiflerinin önemli olduğu, bağlanma anındaki mod karşılaştırmasının neden saldırıya açık hâle getirdiği ve hangi saldırı hacminden sonra yalnızca sunucunun önündeki ağda yapılan filtrelemenin işe yaradığı.
Project Zomboid sunucusunu DDoS saldırılarına karşı korumak isteyen kişinin önce bir saldırganın neye ateş ettiğini bilmesi gerekir. Dedicated bir sunucu tam olarak iki UDP portu kullanır: 16261 ve 16262. İkisi de açık ağda durmak zorundadır, çünkü aksi hâlde kimse katılamaz. Bu yazı, ciddi durumda önemli olan sırayla ilerliyor: önce önümüzdeki on dakika içinde ek maliyet olmadan kendiniz neleri yapabileceğinizi, ardından bu önlemlerin teknik olarak nerede bittiğini, en 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 dedicated sunucu (Steam uygulaması 380870) içindir, Build 41 için de Build 42 için de geçerlidir. Yapılandırma dosyasının adı servertest.ini olup ~/Zomboid/Server/ dizininde bulunur, dünya verileri ise ~/Zomboid/Saves/Multiplayer/ altında durur. 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: servertest.ini dosyasında şimdi hiçbir şey değiştirmeyin ve sunucuyu yeniden başlatmayın. Önce ölçüm değerlerini kaydedin (9. bölüm), saldırıdan sonra bunlar kaybolur. Bir yeniden başlatma, sunucunun dünyayı yüklemek için ihtiyaç duyduğu süreyi ek olarak götürür ve saldırgan sizden tam olarak o süreyi almak istiyor.
Project Zomboid sunucuları neden DDoS saldırılarının hedefi olur
Project Zomboid, kalıcı ölümü olan ve dünyası aylar boyunca sürüp giden bir oyundur. Tehlikeli bir durumun ortasında yaşanan bir bağlantı kopması burada neredeyse her türden daha pahalıya gelir: Karakter gitmiştir ve dünya bunu hatırlar. Bir kesintiyi silaha dönüştüren tam olarak budur. Akşam saat 20.00'deki bir saldırı sıradan oyunculara değil, sabit bir topluluğa denk gelir ve onlara en çok kaybedecekleri yerden vurur.
Buna, saldırının kendisinin hiçbir maliyeti olmaması ve beceri gerektirmemesi ekleniyor. Bu çevrede booter ya da stresser denen, satın alınan saldırı hizmetleri birkaç tıklamayla bir IP adresine ve bir porta yöneltilir; Project Zomboid'de hedef her zaman aynıdır: 16261 UDP. Banlanmış bir oyuncuyla anlaşmazlığı olan ya da rakip bir topluluk işleten kişi, böylece ne bilgi ne de anlamlı bir para gerektiren bir araca sahip olur.
Buna bir de bir oyun sunucusunun adresini yayınlamak zorunda olması ekleniyor. servertest.ini dosyasında Public=true yazıyorsa sunucu oyunun kendi tarayıcısında görünür ve Steam bağlantısı olan bir sunucu zaten Steam sunucu tarayıcısında görünür durumdadır. Yani soru hiçbir zaman bir saldırganın IP adresinizi bulup bulamayacağı değil, yalnızca ona ateş ettiğinde ne olacağıdır.
Teknik tarafta en tatsız bölüm en sona kalıyor: Oyun trafiğinin tamamı UDP üzerinden çalışır. UDP'de talep edilebilecek bir bağlantı kurulumu yoktur, her paket kendi başınadır 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. Bir DDoS saldırısının ayrıntıda ne olduğunu DDoS saldırısı nedir? yazısı anlatıyor.
Bir Project Zomboid sunucusunun gerçekten hangi portlara ihtiyacı var
Dedicated bir Project Zomboid sunucusu tam olarak iki açık porta ihtiyaç duyar: 16261 UDP ve 16262 UDP. Oyunun resmî port listesi üçüncü bir port saymaz. servertest.ini dosyasında bunlar iki ayrı direktif olarak durur, ikinci port birincisinden kendiliğinden türemez:
DefaultPort=16261
UDPPort=16262
SteamPort1=8766
SteamPort2=8767
RCONPort=27015
RCONPassword=
İş bölümü nettir. 16261 UDP oyun trafiğini ve bağlantı kurulumunu taşır, ayrıca sunucu tarayıcısının sorgularını yanıtlar. 16262 UDP ise istemcilerin doğrudan bağlantısı için kullanılan porttur. Birincisi eksikse sunucuyu kimse bulamaz; ikincisi eksikse oyuncularınız kaydı görür ama buna rağmen içeri giremez. Oyunun en bilinen hata mesajı, yani 16262 portunun kapalı olduğu uyarısı, tam olarak buradan gelir.
| Port | Protokol | Görev | servertest.ini içindeki direktif | İnternetten erişilebilir mi? |
|---|---|---|---|---|
| 16261 | UDP | Oyun trafiği, bağlantı kurulumu, sunucu tarayıcısının sorguları | DefaultPort=16261 |
evet, zorunlu |
| 16262 | UDP | İstemcilerin doğrudan bağlantısı | UDPPort=16262 |
evet, zorunlu |
| 8766 ve 8767 | UDP | Sunucunun Steam bağlantısı | SteamPort1, SteamPort2 |
hayır, resmî zorunlu listede yalnızca 16261 ve 16262 var |
| 27015 | TCP | RCON uzaktan yönetimi | RCONPort=27015 |
hayır, yalnızca kendi adresiniz için |
| 22 | TCP | İşletim sistemine SSH erişimi | servertest.ini içinde yok | kısıtlı |
Düzenli olarak sorun çıkaran iki nokta var. Birincisi: Her sunucu örneği iki boş UDP portuna ihtiyaç duyar. Aynı makinede ikinci bir dünya işleten kişi bunun için ikinci bir çift ayırır (örneğin 16274 ve 16275) ve iki değeri de ikinci örneğin servertest.ini dosyasına yazar. İkincisi: SteamPort1 ve SteamPort2 yapılandırma dosyasında 8766 ve 8767 olarak durur, ama Steam bağlantısına aittir, oyun trafiğine değil. Bunları yalnızca sunucunuz onlar olmadan Steam listesinde görünmüyorsa açın, ihtiyaten değil.
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 sunucu, 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. Hacimsel bir saldırıyı sizden almaz, ama ucuz saldırıların etkisiz kalmasını ve ciddi durumda tahmin yerine elinizde sayıların olmasını sağlar.
1. Envanter: gerçekten ne dinliyor?
Tek bir 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:16261 ve [::]:16261 “bütün internetten erişilebilir” anlamına gelir, 127.0.0.1:27015 ise “yalnızca yerel” demektir ve bir güvenlik duvarı izni gerektirmez. Sonucu, standart değerlere güvenmek yerine kendi yapılandırmanızla karşılaştırın:
grep -E "^(DefaultPort|UDPPort|SteamPort1|SteamPort2|RCONPort|Public|Open|MaxPlayers|MaxAccountsPerUser)=" ~/Zomboid/Server/servertest.ini
Saldırganın bakışını, dışarıdan yapılan bir port taraması verir. Project Zomboid yalnızca UDP kullandığı için burada UDP taraması gerekir; salt TCP taraması oyun portunu hiç göstermez:
nmap -Pn -sU -p 16261,16262,8766,8767 SUNUCU.IP.ADRESİNİZ
nmap -Pn -p- --min-rate 1000 SUNUCU.IP.ADRESİNİZ
2. Yalnızca 16261 ve 16262'yi açık bırakma
Dışarıya iki izin 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 16261/udp comment "Project Zomboid"
ufw allow 16262/udp comment "Project Zomboid doğrudan bağlantı"
ufw allow from 203.0.113.10 to any port 27015 proto tcp comment "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. Güvenlik duvarını devreye alırken izlenen sıra, kendinizi dışarıda bırakıp bırakmadığınıza karar verir. Bu sıra, kurtarma yolu da dâhil olmak üzere Kendinizi dışarıda bırakmadan UFW güvenlik duvarı kurma yazısında. Yine de olursa: KernelHost'un KVM root sunucularında ve dedicated sunucularında sisteme, müşteri panelinde bulunan ve konuk sistemin ağından bağımsız çalışan VNC konsolu üzerinden ulaşırsınız.
Veritabanları ve ek hizmetler için tek bir söz: Project Zomboid bunlara ihtiyaç duymaz. Oyunun yanında 0.0.0.0 üzerinde dinleyen her şey ya daha eski bir kurulumdan ya da bir yönetim panelinden gelir; ya 127.0.0.1 adresine bağlanmalı ya da kapatılmalıdır.
3. 27015 portundaki RCON'u internetten çekme
RCON, sunucunun uzaktan yönetimidir ve Project Zomboid'de 27015 TCP üzerinde çalışır. Teslim edilen servertest.ini dosyasında RCONPassword= değersiz durur. RCON kullanan kişi uzun ve rastgele bir parola belirler, çünkü protokol şifresiz iletir ve zayıf parolalı, erişilebilir bir RCON portu tek bir paket saldırı trafiği gerekmeden sunucuyu tümüyle teslim eder.
Güvenli yol, portu dışarıya hiç açmamak ve ona SSH üzerinden bir port yönlendirmesiyle ulaşmaktır. Ardından yerel olarak 127.0.0.1:27015 ile konuşursunuz:
ssh -N -L 27015:127.0.0.1:27015 root@SUNUCU.IP.ADRESİNİZ
RCON'a ihtiyacı olmayan kişi parola alanını boş, portu da kapalı bırakır. Erişilemeyen bir hizmete karşı ne deneme yanılma yapılabilir ne de flood gönderilebilir.
4. Kaynak adres başına paket hızlarını sınırlama
Küçük saldırılara ve özensiz botlara karşı kaynak adres başına bir üst sınır işe yarar. İki oyun portu yan yana olduğu için aralığın tamamı için tek bir kural yeter:
iptables -I INPUT -p udp --dport 16261:16262 -m hashlimit --hashlimit-name pz_udp --hashlimit-mode srcip --hashlimit-above 400/sec --hashlimit-burst 600 -j DROP
iptables -L INPUT -n -v
Kural, aynı kaynak adres kalıcı olarak saniyede 400'den fazla paket gönderdiği anda UDP paketlerini düşürür. Bu değer bir başlangıç değeridir, kesin bir doğru değil: Aynı şehirde 30 oyuncusu olan bir sunucu, haritanın farklı köşelerinde dört oyuncusu olan bir sunucudan belirgin biçimde daha fazla trafik üretir ve fazla sıkı ayarlayan kişi kendi oyuncularını dışarı atar. Önce normal işletimde bir hafta ölçün, sonra sınırı zirve değerin katı olarak belirleyin.
Buna dair iki not. 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. iptables -L INPUT -n -v çıktısındaki eşleşme sayaçlarıyla kurala hiç ulaşılıp ulaşılmadığını kontrol edin. Sayaçlar sıfırda kalıyorsa kural yanlış yerde duruyor.
5. Bağlantı izlemesinin yükünü azaltma
Sık gözden kaçan bir darboğaz kernel'de oturur. Bağlantı izleme, UDP için de her kaynak adres ve port başına bir kayıt oluşturur ve sahte göndericilerle yapılan bir flood bu 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 komut gösterir:
sysctl net.netfilter.nf_conntrack_count net.netfilter.nf_conntrack_max
Project Zomboid'in oyun trafiği durum takibine ihtiyaç duymaz, çünkü UDP'nin durumu yoktur. Bu yüzden iki oyun portunu tablonun dışında tutabilirsiniz:
iptables -t raw -I PREROUTING -p udp --dport 16261:16262 -j NOTRACK
Bu, kernel'in yükünü hissedilir biçimde azaltır. Önemli: Kural yalnızca sunucu paketleri doğrudan aldığı sürece uygundur. Sunucunun önünde bir adres dönüşümü işleten, örneğin port aktarmalı bir konteyner yapısı kullanan kişi bu kuralı koymamalıdır, çünkü o durumda geri yön artık eşleştirilemez.
6. Katılımı ve slotları güvene alma
Sıradaki satırların hiçbir maliyeti yoktur ve normal katılım yolundan gelen her şeye karşı etki eder:
Password=UZUN-RASTGELE-BİR-PAROLA
Open=false
MaxAccountsPerUser=1
MaxPlayers=32
DenyLoginOnOverloadedServer=true
Password ortak sunucu parolasıdır ve tek tek oyuncuların hesabından ayrıdır. Open=false, yalnızca bir yöneticinin önceden oluşturduğu hesapların katılabileceği anlamına gelir; bu, oyunun beyaz listesidir. MaxAccountsPerUser, tek bir Steam kullanıcısının sunucunuzda kaç hesap oluşturabileceğini sınırlar; ön ayar olan 0 sınırsız demektir. MaxPlayers fabrika ayarında 32'dir ve belgelendirme, bunun üzerine çıkıldığında haritanın kötü yüklenmesine ve desenkronizasyona karşı açıkça uyarır.
Bu noktadaki tuzak PingLimit direktifidir. Bu direktif, milisaniye cinsinden belirli bir gecikmeden sonra oyuncuları dışarı atar ve fabrika ayarında 0, yani kapalıdır. Bir saldırı altında ilk olarak kendi oyuncularınızın gecikmesi yükselir; yani sıkı bir değer tam olarak tutmak istediğiniz kişileri atar. Sınırı kapalı bırakın ya da cömert belirleyin.
Ve bir şey net olmalı: Beyaz liste oyun mantığınızı korur, hattınızı korumaz. Sunucunuza flood gönderen bir saldırgan zaten katılmak istemiyordur. Paketleri reddedilir, ama buna rağmen ulaşmıştır ve mesele tam olarak budur.
7. Bağlanma anındaki mod karşılaştırması sunucunuzun en pahalı saniyesidir
Project Zomboid bağlanma sırasında bir paroladan fazlasını denetler. Sunucunun mod listesi servertest.ini dosyasının iki satırında durur: WorkshopItems numaralı Workshop kimliklerini, Mods ise modların yükleme kimliklerini içerir, ikisi de noktalı virgülle ayrılmıştır. Katılım sırasında istemci bu listeyi karşılaştırır, eksik Workshop içeriklerini Steam üzerinden otomatik olarak indirir ve dünya verileri ona ancak bundan sonra akıtılır. Buna ek olarak sunucu, DoLuaChecksum=true ayarında oyun dosyalarının sağlama toplamlarını karşılaştırır ve dosyaları kendisininkilerle uyuşmayan istemcileri dışarı atar.
Bir saldırgan için ilgi çekici olan tam olarak budur, çünkü iş asıl oyuna katılımdan önce yapılır. Her bağlantı denemesi sunucuya sürüm, sağlama toplamı, mod listesi ve harita verileri için işlem zamanına mal olur; sonunda reddedilen deneme de dâhil. Uzun bir mod listesi bu denemelerin her birini daha pahalı hâle getirir. Bu yüzden bir katılım flood'u, yoğun biçimde modlanmış bir sunucuda değiştirilmemiş bir sunucudan daha etkilidir ve bunun için hacimsel bir saldırının bant genişliğinin küçük bir bölümü yeter. Oyun buna karşı iki yerleşik fren getiriyor:
DenyLoginOnOverloadedServer=true
LoginQueueEnabled=true
LoginQueueConnectTimeout=60
DenyLoginOnOverloadedServer, sunucu aşırı yüklü olduğu sürece yeni girişleri reddeder ve süren turu birlikte koparmaz. LoginQueueEnabled katılanları aynı anda işlemek yerine bir kuyruğa alır, LoginQueueConnectTimeout ise bir katılımın ne kadar sürebileceğini belirler: ön ayar 60 saniye, izin verilen aralık 20 ila 1200.
Sık yanlış çözüldüğü için bir ayrıntı buraya ait: Linux sunucularında, DoLuaChecksum ayarının yanlış alarm verip oyuncuları içeri almadığı belgelenmiş bir hata var. İşletmeciler bu yüzden denetimi kapatıyor. Bu anlaşılır, ama değiştirilmiş oyun dosyalarına sahip istemcileri uzak tutan bir denetimi ortadan kaldırır. Onu kapatmak zorunda olan kişi sunucu parolasını, beyaz listeyi ve hesap sınırını o ölçüde daha sıkı belirlemelidir.
8. Sunucu listesi, UPnP ve kendi adresiniz
Burada hayalcilik yerine dürüstlük işe yarar: IP adresiniz gizli tutulamaz. Public=true sunucuyu oyunun kendi tarayıcısında gösterir ve belgelendirmeye göre Steam bağlantısı olan bir sunucu zaten Steam sunucu tarayıcısında görünür durumdadır. Yani Public=false sizi görünmez kılmadan, yeni oyuncular için görünürlüğünüzü alır.
Public=true
PublicName=Zomboid Sunucum
UPnP=false
server_browser_announced_ip=
UPnP fabrika ayarında true olarak gelir ve sunucunun bir internet geçidinde kendi başına port izni oluşturmayı denemesine yol açar. Kiralanan bir sunucuda böyle bir geçit yoktur, deneme boşa gider ve kapatılması gerekir. server_browser_announced_ip boş kalır; tek istisna, sunucunuzun birden fazla adresi varsa ve hedefli biçimde bunlardan biriyle görünmesi gerekiyorsa. Dedicated bir koruma IP'sine geçtiğinizde tam olarak bu alan size yeniden gerekir.
İki alışkanlık her ayardan daha çok yardımcı olur. Çıplak IP adresini hiçbir yerde kendiniz yayınlamayın, yani ne Discord kanalında ne de proje sayfasında; oyuncularınıza bir hostname verin. Adres değişiminde klasik olan, eski DNS kayıtlarıdır: Önceki adrese işaret eden, unutulmuş bir A kaydı her değişikliği etkisiz kılar.
9. Her şey normal çalışırken ölçme
En önemli adım, neredeyse hiç kimsenin önceden atmadığı adımdır: her şey sakinken 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
tcpdump -ni eth0 "udp port 16261 or udp port 16262" -c 200 -q
journalctl -u zomboid --since "-15 min" | tail -50
İlk ikisi arayüzün paket hızını ve düşürülen paket sayaçlarını gösterir, üçüncüsü trafikten kısa bir örnek, dördüncüsü de sunucu systemd hizmeti olarak çalışıyorsa onun mesajlarını (hizmetin adını kendinize göre ayarlayın). 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 Sunucuda DDoS saldırısını tanıma yazısında.
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. İkinci büyüklük paket hızıdır ve çoğu zaman bant genişliğinden daha önce vurur: 64 baytlık küçük paketlerde 1 Gbit/s'ye saniyede yaklaşık 1,49 milyon paket sığar, buna karşılık normal bir sunucu kernel'i CPU ve ağ kartına bağlı olarak bunların yalnızca birkaç yüz binini işler, ardından düşürmeye başlar. Yani hattınızı üçte birine kadar bile doldurmayan bir saldırı sunucunuzu felç edebilir. İşletmeciler bunu “doluluk hiç de yüksek değildi, buna rağmen her şey gitti” biçiminde yaşar.
| Gösterge | Değer |
|---|---|
| Bayt cinsinden 1 Gbit/s | saniyede 125 megabayt |
| 64 baytlık paketlerde 1 Gbit/s'ye sığan paket sayısı | saniyede yaklaşık 1,49 milyon |
| Bir sunucu kernel'inin bunlardan işlediği miktar | saniyede birkaç yüz bin |
| Topluluk oyun sunucularına yönelik tipik saldırı hacmi | 5 ila 50 Gbit/s |
| KernelHost'ta bir oyun sunucusuna yönelik filtrelenen UDP flood'u | 112,2 Gbit/s'nin üzerinde |
| Bir KernelHost sunucusuna yapılan, belgelenmiş en büyük saldırı | saniyede 41,5 milyondan fazla pakette 473,4 Gbit/s'nin üzerinde |
Oyun sunucusu topluluklarına yönelik tipik saldırılar 5 ila 50 Gbit/s arasındadır, yani normal bir hattın beş ila elli katı. Bunun için yerel bir ayar yoktur. Hacimsel saldırılar sunucunun önündeki ağda son bulmalıdır.
Oyun sunucularına yönelik DDoS saldırılarına karşı KernelHost 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. 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, asgari süresi ve kurulum ücreti 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, yeni adresi yalnızca oyuncularınızın sunucuyu bulduğu yere yazarsınız.
- Müşteri panelinde, port ve protokol başına kendiniz yönetebileceğiniz koruma kuralları: 16261 ve 16262 UDP üzerinde neye izin verildiğini siz belirlersiniz, geri kalan her şey kapalı kalır ve bunun için destek talebi yazmanız gerekmez.
- Değişiklikler gerçek zamanlı etki eder, yani süren bir saldırı sırasında ince ayar yapabilirsiniz.
- Uygun koruma profili. Yaygın oyunlar için hazır profiller var; değiştirilmiş ve kendi uygulamalarınız için kuralları port ve protokol başına kendiniz belirlersiniz. Project Zomboid bu konuda özellikle kesin biçimde sınırlanabilir, çünkü oyun trafiğinin tamamı yan yana duran iki UDP portu üzerinden çalışı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 |
| 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 |
Project Zomboid 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
“Oyuncularım 16262 portunun kapalı olduğu mesajını alıyor”: Bu bir saldırı değil, eksik bir güvenlik duvarı izni. Sunucu iki porta da ihtiyaç duyar, 16261 UDP ve 16262 UDP, hem de UDP kuralı olarak. Aynı numaralara verilen bir TCP izni hiçbir işe yaramaz. ufw status verbose ile ve dışarıdan yapılan bir UDP taramasıyla ikisinin de gerçekten açık 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 bulmuştur; çoğunlukla liste kaydından, durum gösteren bir Discord botundan ya da eski bir DNS kaydından. Project Zomboid'de bu değişim ayrıca maliyetlidir: İstemciler harita verilerini yerel olarak adres ve porta göre, Zomboid/Saves altında 123.45.0.12_16261_... kalıbındaki bir dizine kaydeder. Bir değişimden sonra her oyuncu keşfettiği haritayı sunucudan yeniden indirir. Yani adres değişimi ek maliyetli bir zaman kazancıdır, çözüm değil.
“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, 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.
“Oyuncular katılırken atılıyor, ama sunucu normal çalışmaya devam ediyor”: Bu neredeyse her zaman karşılaştırmadır, bir saldırı değil. Nedenleri istemci ile sunucu arasındaki bir sürüm farkı, eksik ya da güncelliğini yitirmiş bir Workshop kaydı veya uyuşmayan bir sağlama toplamıdır. İstemci kural olarak uyuşmayan modları bildirir. WorkshopItems ve Mods satırlarını satır satır karşılaştırın.
“Her birkaç dakikada lag sıçramaları oluyor, sonra yine düzeliyor”: Bu, yalnızca oyuncular bıkıp bırakana kadar süren kısa saldırıların olağan kalıbıdır. Önce CPU yüküne değil, ağ sayaçlarına bakın. sar -n DEV 1 10 çıktısı ve düşürülen paket sayaçları dikkat çekmiyorsa bu bir saldırı değil, yüktü: aynı hücrede fazla oyuncu, pahalı bir mod ya da Java örneği için fazla az bellek.
“Ö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 sunucunun ö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 VNC konsolunu kullanın.
Kısaca özetle
- Dedicated bir Project Zomboid sunucusu tam olarak iki açık porta ihtiyaç duyar: 16261 UDP (
DefaultPort) ve 16262 UDP (UDPPort). İkisi deservertest.inidosyasında ayrı direktifler olarak durur. - RCON 27015 TCP üzerinde çalışır ve fabrika ayarında parolasız kayıtlıdır. Bu port açık internete ait değildir; kendi adresinize sınırlanmalı ya da kapatılmalıdır.
- Bağlanma anındaki mod karşılaştırması en pahalı yerdir: sürüm, sağlama toplamı, Workshop listesi ve harita verileri, reddedilen her denemede de işlem zamanına mal olur. Buna karşı yerleşik frenler
DenyLoginOnOverloadedServerve katılım kuyruğudur. - Sunucu parolası,
Open=falseveMaxAccountsPerUser=1oyun mantığını korur. Doyuma ulaşmış bir hatta karşı bu ayarların hiçbiri etki etmez. - Fiziksel sınır bellidir: 1 Gbit/s saniyede 125 megabayttır ve 64 baytlık paketlerde saniyede yaklaşık 1,49 milyon paket eder. Oyun sunucularına yönelik tipik saldırılar 5 ila 50 Gbit/s arasındadır.
- Hacimsel saldırılar sunucunun önündeki ağda son bulmalıdır. KernelHost'ta bu, küresel scrubbing ağında 17 Tbps mitigasyon kapasitesi ve Frankfurt am Main'de 3,2 Tbps ile Arbor gerçek zamanlı filtreleme demektir; ek ücret olmadan ve null routing olmadan.
- Sürekli ateş altında olan kişi filtrelemeyi Advanced DDoS Protection ile kendisi yönetir: dedicated koruma IP'si, port ve protokol başına kurallar, gerçek zamanlı değişiklikler, ayda 50,00 EUR'dan başlayan fiyat.
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
Project Zomboid sunucum şu anda çevrimdışı. Bu bir DDoS saldırısı mı?
Bir Project Zomboid sunucusu için hangi portları açmam gerekir?
16262 portu ne için var ve istemcim neden onun kapalı olduğunu bildiriyor?
8766 ve 8767 portlarına ihtiyacım var mı?
Project Zomboid'de 27015 RCON portu bir risk mi?
Bağlanma anındaki mod karşılaştırması sunucuyu neden saldırıya açık hâle getirir?
Şimdi hızlıca IP adresini değiştirmek işe yarar mı?
Bir DDoS saldırısına UFW veya iptables ile karşı koyabilir miyim?
Sunucum hangi saldırı hacminden sonra bunu tek başına başaramaz?
KernelHost'taki 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.

