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 oyun sunucunuz için güvenlik duvarı ve port ayarlarını düzenleyeceksiniz: varsayılan olarak her şeyi kapatıp yalnızca oyun portunu ve yönetim erişimini açacaksınız. Debian/Ubuntu için ufw, AlmaLinux/Rocky için firewalld komutları verilmiştir. Tahmini süre 15-20 dakikadır.
Hedef basit: dışarıdan erişilebilen her port bir saldırı yüzeyidir. Oyun için gerekmeyen servisleri kapatmak, SSH erişimini kısıtlamak ve ayarları doğrulamak, sunucunuzu pek çok otomatik taramaya karşı sağlamlaştırır.
Gereksinimler
- Debian/Ubuntu (ufw) veya AlmaLinux/Rocky (firewalld) çalıştıran sunucu
- sudo yetkili kullanıcı
- Oyunun kullandığı port ve protokol listesi (oyunun belgesine bakın)
- Sağlayıcının web konsolu veya VNC erişimi (kilitlenirseniz geri dönmek için)
- Bir ikinci SSH oturumu: güvenlik duvarını etkinleştirirken mevcut oturumu kapatmayın
Adım adım güvenlik duvarı ve port ayarı
1. Açık portları ve dinleyen servisleri listeleyin
Önce sunucuda hangi servislerin dışarıya açık olduğunu görün.
sudo ss -tulpnÇıktıda 0.0.0.0 veya [::] üzerinde dinleyen satırlar dışarıya açıktır. Oyun dışındaki veritabanı, panel veya test servislerini kapatmayı ya da yalnızca 127.0.0.1 üzerinde dinletmeyi düşünün.
2. Oyun portlarını belirleyin
Her oyunun port ve protokolü farklıdır. Örneğin Minecraft Java sürümü varsayılan olarak TCP 25565 kullanır. Diğer oyunlar için oyunun resmi belgesine bakın; emin olmadığınız bir portu açmayın. Port numarasını ve protokolü (TCP veya UDP) bir yere not edin.
3. ufw ile kuralları yazın (Debian/Ubuntu)
ufw yüklü değilse sudo apt install ufw ile kurun. Uyarı: SSH portuna izin vermeden ufw'yu etkinleştirirseniz bağlantınız kopar.
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp
sudo ufw allow 25565/tcp
sudo ufw enable
sudo ufw status verboseSSH'a yalnızca belirli bir IP adresinden izin vermek için sudo ufw allow from 203.0.113.10 to any port 22 proto tcp biçimini kullanın. Burada IP, belgelendirme için ayrılmış bir örnektir; kendi sabit adresinizi yazın.
4. firewalld ile kuralları yazın (AlmaLinux/Rocky)
firewalld genellikle kuruludur; değilse sudo dnf install firewalld ve sudo systemctl enable --now firewalld çalıştırın.
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --permanent --add-port=25565/tcp
sudo firewall-cmd --reload
sudo firewall-cmd --list-allGereksiz servisleri kaldırmak için sudo firewall-cmd --permanent --remove-service=servis_adi komutunu kullanın ve ardından --reload yapın. ssh servisini kaldırmayın; aksi halde bağlantınız kopar.
5. Yönetim erişimini oyun portundan ayırın
RCON, web paneli veya veritabanı gibi yönetim servislerini internete açmayın. Bunları 127.0.0.1 üzerinde dinletin ve gerekirse SSH tüneliyle erişin. Güvenlik duvarında bu portlar için izin kuralı eklemeyin.
6. Brute force denemelerini azaltın
SSH portuna yönelik otomatik deneme trafiği kaçınılmazdır. ufw ile hız sınırlaması ekleyebilirsiniz:
sudo ufw limit 22/tcpEk olarak SSH'ta parola yerine anahtar kimlik doğrulamayı kullanmak ve fail2ban gibi bir aracı değerlendirmek iyi bir pratiktir. SSH ayarlarını değiştirirken de ikinci oturumu açık tutun.
7. IPv6 durumunu kontrol edin
Sunucunuzda IPv6 etkinse kurallarınızın IPv6 için de geçerli olduğundan emin olun. ufw, /etc/default/ufw dosyasında IPV6=yes ise kuralları iki protokole de uygular. firewalld varsayılan olarak her iki protokolü yönetir. IPv6 kullanmıyorsanız dışarıdan açık IPv6 servisi bırakmayın.
Doğrulama
Kuralları sunucudan ve dışarıdan doğrulayın:
sudo ufw status numbered
sudo firewall-cmd --list-all
sudo ss -tulpnİlk iki komuttan dağıtımınızda kullandığınız güvenlik duvarına ait olanı çalıştırın. Beklenen sonuç: yalnızca SSH ve oyun portunuzun izinli görünmesi. Dışarıdaki başka bir makineden nc -zv SUNUCU_IP 25565 komutuyla oyun portunun açık, yönetim portlarının kapalı olduğunu da sınayın. UDP portlarında nc sonucu güvenilir değildir; oyun istemcisiyle bağlanarak doğrulayın.
Sık karşılaşılan sorunlar
- SSH bağlantısı koptu: SSH kuralı eklenmeden güvenlik duvarı etkinleştirilmiştir; sağlayıcı konsolundan
sudo ufw allow 22/tcpyapın. - Oyuncular bağlanamıyor: protokol (TCP/UDP) yanlış olabilir; oyunun UDP kullanıp kullanmadığını kontrol edin.
- Kural eklediniz ama etkisiz: firewalld'de
--permanentile ekleyip--reloadyapmayı unutmuş olabilirsiniz. - Sağlayıcının ağ güvenlik grubu ayrıca engelliyor: bulut sağlayıcılarda panel tarafındaki güvenlik grubu kuralını da açın.
- Docker ile açılan portlar ufw'yu atlıyor: Docker kendi iptables kurallarını ekler; yayımlanan portları kontrol edin ve gerekirse
127.0.0.1:portbiçimiyle bağlayın.
Güvenlik ve bakım notları
- Varsayılan politika olarak gelen trafiği reddedin, izinleri tek tek verin.
- Güvenlik duvarı kurallarını değiştirdiğinizde nedenini ve tarihini bir notta saklayın.
- Kullanılmayan oyun sunucularını kapattığınızda ilgili port kurallarını da silin.
- Dışarıdan düzenli port taraması yaparak beklenmeyen açık port olup olmadığını kontrol edin.
- Çıkış (outgoing) trafiğini ihtiyaca göre kısıtlamak, ele geçirilmiş bir sunucunun zararını azaltabilir.
- Sağlayıcı tarafı güvenlik duvarı veya ağ koruması varsa sunucu içi kurallarla birlikte kullanın.
Sık sorulan sorular
Oyun sunucusu için hangi portları açmalıyım?
Yalnızca oyunun belgesinde yazan oyun portunu ve yönetim için gereken SSH erişimini açın. Diğer her şeyi varsayılan olarak kapalı tutun.
ufw mu firewalld mi kullanmalıyım?
Dağıtımınızın varsayılanı hangisiyse onu kullanın: Debian/Ubuntu için genellikle ufw, AlmaLinux/Rocky için firewalld. İkisini birlikte çalıştırmayın.
Güvenlik duvarı DDoS saldırısını engeller mi?
Tek başına engellemez. Güvenlik duvarı gereksiz erişimi kapatır; hacimli saldırılar için ayrıca sağlayıcı veya ağ tarafı koruma gerekir.
İ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.