Komutları üretim sunucusunda çalıştırmadan önce yedek alın ve mümkünse bir test ortamında deneyin. Yönetim erişiminizi (SSH, panel) kaybetmemek için ayar değişikliklerinde açık bir ikinci oturum bulundurun.
Bu rehberde ne yapacağız?
Bu rehberde bir oyun sunucusuna gelen DDoS trafiğinin etkisini hafifletmek (mitigation) için sunucu tarafında yapabileceğiniz ayarları uygulayacaksınız: çekirdek (kernel) parametreleri, bağlantı hızı sınırlama, saldırıyı fark etmek için izleme ve olay anında izlenecek yol. Hosting veya oyun sunucusu yöneten, temel Linux komutlarını bilen yöneticilere yöneliktir. Tahmini süre 30-45 dakikadır.
Önemli bir gerçeği baştan söyleyelim: büyük hacimli (volumetrik) saldırılar, sunucunuzun ağ kartına ulaşmadan önce sağlayıcı veya ağ tarafında süzülmelidir. Sunucu içindeki kurallar küçük ve orta ölçekli saldırılarda, uygulama katmanı kötüye kullanımında ve gürültüyü azaltmada işe yarar; hiçbir yapılandırma saldırıyı tamamen engellemeyi garanti etmez.
Gereksinimler
- Debian/Ubuntu veya AlmaLinux/Rocky çalıştıran bir VPS ya da dedicated sunucu
- sudo yetkili bir kullanıcı ve ikinci bir açık SSH oturumu (kural hatası yaparsanız kendinizi kilitlemeyin)
- Oyunun kullandığı port ve protokolün bilgisi (örneğin TCP 25565 ya da UDP 27015)
- Sağlayıcınızın DDoS koruma seçeneklerini ve destek kanalını bilmek
- Yapılandırma dosyalarının yedeği:
sudo cp /etc/sysctl.conf /etc/sysctl.conf.yedek
Adım adım DDoS hafifletme
1. Önce sağlayıcı tarafı korumayı doğrulayın
Saldırı hacmi bağlantınızın kapasitesini aştığında sunucu içinde yapılacak hiçbir şey yetmez. Sağlayıcınıza hangi koruma katmanının (ağ kenarında filtreleme, oyun portlarına özel profil, saldırı anında trafiği temizleme) hizmete dahil olduğunu sorun. Gerçek sunucu IP adresinizi mümkün olduğunca gizli tutun; oyuncuya yalnızca korumalı adres veya alan adı verin, panel ve SSH erişimini ayrı bir yönetim adresine veya IP kısıtlamasına bağlayın.
2. Çekirdek ağ ayarlarını sertleştirin
SYN taşması ve sahte kaynak adresli paketlerin etkisini azaltmak için aşağıdaki ayarları ayrı bir dosyaya yazın.
sudo tee /etc/sysctl.d/90-ddos-hafifletme.conf > /dev/null <<'EOF'
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.all.accept_redirects = 0
EOF
sudo sysctl --systemBu ayarlar çoğu ortamda güvenlidir; yine de çok yönlü bir ağ yapınız (asimetrik yönlendirme gibi) varsa rp_filter değerini sağlayıcı belgelerine göre gözden geçirin.
3. Yalnızca oyun portunu açın
Saldırı yüzeyini küçültmek için gereksiz tüm portları kapatın. Güvenlik duvarını değiştirmeden önce ikinci bir SSH oturumu açık tutun. Debian/Ubuntu için ufw örneği:
sudo ufw allow 22/tcp
sudo ufw allow 25565/tcp
sudo ufw default deny incoming
sudo ufw enableAlmaLinux/Rocky için firewalld karşılığı:
sudo firewall-cmd --permanent --add-port=25565/tcp
sudo firewall-cmd --reload
sudo firewall-cmd --list-allfirewalld'nin varsayılan bölgesinde ssh servisi açıktır; bu servisi kaldırmayın. Oyununuz UDP kullanıyorsa (örneğin 27015) ilgili portu 27015/udp biçiminde ayrıca açın.
4. UDP oyunlarında kaynak başına hız sınırlaması koyun
UDP tabanlı oyunlarda tek bir kaynaktan gelen aşırı paket sayısını sınırlayabilirsiniz. Aşağıdaki iptables kuralı, saniyede 50 paketi aşan kaynak adreslerin paketlerini düşürür. Değeri oyunun normal trafiğine göre ayarlayın; çok düşük bir sınır meşru oyuncuları da atar.
sudo iptables -I INPUT -p udp --dport 27015 -m hashlimit --hashlimit-above 50/sec --hashlimit-mode srcip --hashlimit-name oyunudp -j DROPBu kural yeniden başlatmada kalıcı değildir. Kalıcı hale getirmek için Debian/Ubuntu üzerinde iptables-persistent paketini, RHEL tabanlı sistemlerde ise firewalld kurallarını veya nftables yapılandırmasını kullanın; firewalld çalışan bir sistemde elle eklenen iptables kurallarıyla firewalld kurallarını karıştırmak beklenmeyen sonuçlar doğurabilir. Test edene kadar kuralı kalıcılaştırmayın.
5. TCP bağlantı sayısını kaynak başına sınırlayın
TCP oyun portlarında (örneğin Minecraft) tek bir IP adresinden açılabilecek eşzamanlı bağlantıyı sınırlamak, basit bağlantı taşmalarını yavaşlatır.
sudo iptables -I INPUT -p tcp --dport 25565 -m connlimit --connlimit-above 20 --connlimit-mask 32 -j REJECT --reject-with tcp-resetAynı ağ çıkışını (NAT) paylaşan oyuncular tek IP görünebilir; sınırı çok düşük tutmayın.
6. Saldırıyı fark etmek için izleme kurun
Anormal trafiği erken görmek, tepki süresini kısaltır. Anlık durumu şu komutlarla inceleyin:
ss -s
sudo tcpdump -nn -c 100 udp port 27015
sudo apt install iftop
sudo iftop -i eth0Ağ arayüzü adı sisteminize göre eth0, ens3 gibi değişir; ip -br a ile kontrol edin. RHEL tabanlı sistemlerde sudo dnf install iftop (EPEL gerekebilir) kullanın. Bant genişliği ve paket sayısı grafikleri için sağlayıcı panelindeki trafik grafiğine de bakın.
7. Saldırı anında izlenecek yol
Saldırı başladığında sakin kalın ve sırayla ilerleyin: trafiğin türünü (SYN, UDP, uygulama katmanı) belirleyin, sağlayıcının destek kanalına örnek paket kaydıyla bildirin, geçici olarak oyun portunu yalnızca bilinen oyuncu IP aralıklarına açmayı değerlendirin ve olay sonrası kayıtları saklayın. Saldırı sürerken sunucuyu sürekli yeniden başlatmak durumu genellikle iyileştirmez.
Doğrulama
Ayarların yüklendiğini ve kuralların etkin olduğunu kontrol edin:
sysctl net.ipv4.tcp_syncookies
sudo iptables -L INPUT -n -v --line-numbers
sudo ss -tulpnBeklenen sonuç: net.ipv4.tcp_syncookies = 1 çıktısı, INPUT zincirinde hashlimit/connlimit kurallarının paket sayaçlarıyla görünmesi ve ss çıktısında yalnızca beklediğiniz portların dinlemede olması. Oyuna normal bir istemciyle bağlanıp kuralların meşru trafiği düşürmediğini de doğrulayın.
Sık karşılaşılan sorunlar
- Oyuncular rastgele kopuyor: hashlimit veya connlimit eşiği çok düşüktür; değeri yükseltin ve sayaçlara bakın.
- Kuralları eklediniz ama yeniden başlatmada kayboldu: iptables kuralları kalıcı değildir;
iptables-persistentveya firewalld/nftables kullanın. - SSH bağlantısı koptu: SSH portuna izin vermeden varsayılan reddi etkinleştirdiniz; sağlayıcının konsol erişimiyle kuralı düzeltin.
- Saldırı sürüyor ama sunucu CPU değeri düşük: hat kapasitesi dolmuştur; sunucu içi kural işe yaramaz, sağlayıcıyla iletişime geçin.
- Sysctl değerleri uygulanmadı: dosya adının
.confile bittiğini vesudo sysctl --systemçalıştırdığınızı kontrol edin.
Güvenlik ve bakım notları
- Gerçek sunucu IP adresini herkese açık sitelerde, forumlarda ve DNS kayıtlarında gereksiz yere paylaşmayın.
- Yönetim servislerini (SSH, panel, RCON) oyun portundan ayırın ve IP kısıtlamasıyla koruyun.
- İşletim sistemi ve oyun sunucusu yazılımını güncel tutun; bilinen açıklar uygulama katmanı saldırılarında kullanılır.
- Hız sınırlama eşiklerini oyuncu sayınız arttıkça gözden geçirin.
- Saldırı olay günlüklerini ve zaman damgalarını saklayın; sağlayıcı ve olası hukuki süreçler için gerekebilir.
- Düzenli yedek alın; saldırı sırasında veri bozulursa hızlı dönüş sağlar.
Sık sorulan sorular
Sunucu içi kurallar DDoS saldırısını tamamen engeller mi?
Hayır. Sunucu içi kurallar küçük ve orta ölçekli saldırıların etkisini azaltır; ancak hat kapasitesini dolduran saldırılar ancak sağlayıcı veya ağ tarafı korumayla hafifletilebilir.
Oyun sunucusu için ayrı bir DDoS koruma hizmeti gerekli mi?
Herkese açık ve rekabetçi bir sunucu işletiyorsanız genellikle evet. Barındırma sağlayıcınızın koruma kapsamını öğrenin; yetersizse oyun trafiğini destekleyen bir koruma hizmetini değerlendirin.
Hız sınırlama meşru oyuncuları etkiler mi?
Eşikler çok düşük ayarlanırsa etkiler. Normal oyuncu trafiğini ölçüp biraz üzerinde bir değer seçin ve ilk günlerde paket sayaçlarını izleyin.
İlgili sözlük terimleri
Bu kategorideki diğer rehberler
- Oyun sunucusunda DDoS saldırısı sırasında olay yönetimi: ilk 30 dakikaOyun sunucusunda DDoS saldırısı sırasında ilk 30 dakikada tespit, sağlayıcı iletişimi, hafifletme, kayıt toplama ve oyuncu bilgilendirmesini düzenli bir olay planıyla yönetin.
- Pterodactyl oyun sunucusu paneli güvenliğiPterodactyl oyun sunucusu panelini genel ilkelerle güvenli hale getirin: HTTPS, iki adımlı doğrulama, Wings port kısıtlaması, yedekleme, güncelleme ve yetki ayrımı.
- Oyun sunucusunda gecikme ve performans izlemeOyun sunucusunda CPU, bellek, ağ ve paket kaybını Linux araçlarıyla izleyin; tick veya FPS düşüşlerini ve gecikme artışlarını sistem metrikleriyle ilişkilendirmeyi öğrenin.
- SteamCMD ile Linux’ta oyun sunucusu kurulumuSteamCMD ile Linux üzerinde ayrıcalıksız bir kullanıcıyla oyun sunucusu kurun; güncellemeyi otomatikleştirin, systemd servisi tanımlayın ve yalnızca gereken portları açın.