Aşağıda tek tek nasıl düzgün ve güvenli bir yapı kurabileceğini anlatıyorum.
Genel Mantık
Amaç şu:
- Dış dünyaya olabildiğince az port açmak
- Açmak zorunda olduklarımızı da:
- Mümkünse reverse proxy arkasından,
- Değilse IP kısıtlama + firewall + rate-limit ile korumak.
Şu an muhtemel durum:
- 25565 → Proxy IP (korumalı)
- Dynmap portu (ör: 8123) → Doğrudan makinenin gerçek IP’sinde açık
- Vote portu (ör: 8192 vs) → Doğrudan makinenin gerçek IP’sinde açık
Bu ikisini “korumalı” hissettirmenin tek yolu:
Gerçek IP’ye doğrudan erişimi azaltmak / kapatmak + doğru firewall.
Dynmap Portu – En Güvenli Yayınlama Şekli
Hedef yapı (önerilen, stabil ve güvenli):
- Dynmap’i sadece localhost’ta dinlet:
- configuration.txt veya ilgili ayarda dinlediği adresi:
- 0.0.0.0 yerine 127.0.0.1 yap.
- Böylece:
- Port dışarıya tamamen kapanır
- Sadece aynı makineden erişilebilir.
- Önüne web reverse proxy (nginx / Caddy / Traefik) koy:
- Reverse proxy 80/443 portunu dinler.
- Dynmap’e localhost:8123 üzerinden erişir.
- Dışarıdan oyuncu şu şekilde girer:
- http(s)://map.ornekdomain.com
- Avantajlar:
- HTTPS (Let’s Encrypt ile ücretsiz)
- Cloudflare gibi bir CDN kullanırsan:
- Gerçek IP gizlenir (DNS sadece Cloudflare IP’lerini gösterir)
- HTTP-level rate limit ve WAF kullanabilirsin.
- Firewall’da şu kural:
- 8123 portu tamamen kapalı (sadece localhost’tan dinlediğin için zaten dışarıya çıkmıyor)
- Dışarıya sadece:
- 80 (HTTP – zorunluysa)
- 443 (HTTPS – tercih edilen)
- Eğer Cloudflare kullanıyorsan:
- Opsiyonel olarak sadece Cloudflare IP bloklarından gelen istekleri kabul edebilirsin (bir tık uğraştırıcı ama mümkün).
“Reverse proxy şart mı?”
- En güvenli ve düzgün yöntem için evet, fiilen şart.
- Alternatifler var ama ya kullanışsız ya da çok kısıtlayıcı:
- Sadece IP sınırlaması:
- Dinmap’e sadece kendin mi bakıyorsun?
- O zaman evet: IP whitelist (kendi ev IP’n) + portu dışarıya aç.
- Dezavantaj: IP değişirse uğraş, oyunculara açık bir web haritası mümkün değil.
- VPN/SSH tunnel:
- Public yayın istemiyorsan, sadece admin/map için istiyorsan harika çözüm:
- Dynmap 127.0.0.1:8123
- Sen SSH tunnel ile localhost:8123’e bağlanırsın.
- Ama oyunculara açık bir web haritası istiyorsan bu uygun değil.
Özet Dynmap:
- Public ve stabil istiyorsan:
Dynmap → localhost + reverse proxy (HTTPS, mümkünse Cloudflare) + firewall ile 8123’ü tamamen kapat.
Vote Listener Portu – Ne Yapmalı?
Vote listener’lar genelde:
- Dışarıdan vote sitelerinin TCP bağlantısı yaptığı bir portta dinler.
- Çoğu zaman oyuncuların direkt bağlanması gerekmiyor; sadece vote siteleri bağlanıyor.
. Bu port saldırı alabilir mi?
- Evet:
- Port açıksa:
- Tarama, brute force, exploit denemesi, hatta volumetrik olmayan ama CPU’yu zorlayan trafik alabilir.
- DDoS koruması genelde sadece Minecraft portunda olduğundan:
- Vote portu DDoS’a daha açık kalır.
En mantıklı yaklaşım
- IP whitelist kullanmak (mümkünse):
- Kullandığın vote sitelerinin IP listelerini al:
- (Docs sayfalarında genelde “Our IPs” kısmı olur.)
- Firewall’da kural yaz:
- ALLOW → sadece bu IP blokları + vote portu
- DENY/DROP → diğer tüm IP’ler için vote portu
- Basit mantık şu:
- “Bu porta sadece vote siteleri dokunabilsin, başka hiç kimse.”
- “Sadece whitelist yeterli mi?”
- Güvenlik açısından:
- Fakat ekstra sağlamlık için:
- IP’ler değişirse oylar gelmemeye başlar, bunu takip etmek lazım.
- Bazı vote siteleri çok sayıda IP / load balancer kullanıyor, hepsini güncel tutman gerekiyor.
- Firewall + Rate-limit gerekli mi?
- Önerilir, özellikle paylaşımlı altyapıdaysan.
- Neden?
- IP whitelist yapamıyorsan veya IP’ler sık değişiyorsa:
- En azından:
- SYN flood / connection flood gibi şeylere karşı temel koruma
- connection limit & rate-limit ile yükü azaltırsın.
- Örnek mantık (iptables tarafında):
- Aynı IP’den saniyede X’ten fazla bağlantı isteğini drop et.
- Ama “temel güvenlik + stabilite” için esas kritik olan:
- Ya IP whitelist ile tamamen kapatmak,
- Ya da vote portunu fiziksel olarak farklı korumalı bir IP / sunucu üzerinden geçirmek (daha karmaşık topoloji).
“Sadece IP sınırlamasıyla çözülür mü?”
Dynmap için:
- Hayır / nadiren evet:
- Eğer:
- Sadece kendin kullanacaksan,
- Ev IP’n sabitse,
- Evet, IP whitelist ile iş yaparsın.
- Ama:
- Oyunculara açık bir web haritası isteniyorsa:
- Tek başına IP whitelist pratik değil.
- Orada reverse proxy (+ CDN) çok daha mantıklı.
Vote listener için:
- Evet, en mantıklı yöntem direkt IP whitelist.
- Çünkü bu porta:
- Normal kullanıcıların bağlanmasına gerek yok,
- Sadece belirli vote siteleri bağlanmalı.
Bu iki portu hem açık tutup hem de saldırıya kapatmanın “doğru ve stabil” yöntemi
Toparlayalım:
Dynmap (web haritası)
- Dynmap portu → 127.0.0.1:8123 (dışa kapalı).
- Önüne reverse proxy (nginx/Caddy):
- map.ornekdomain.com → localhost:8123
- HTTPS aktif.
- Mümkünse Cloudflare / benzeri:
- Gerçek IP gizleme.
- HTTP rate-limit, basic WAF.
- Firewall:
- 8123 → tamamen kapalı.
- 80/443 → sadece reverse proxy için açık.
- İstersen sadece belli IP bloklarına izin verebilirsin.