Minecraft sunucu güvenliği, çoğu yöneticinin sandığının aksine DDoS saldırılarıyla değil, yetki yönetimi ve denetlenmemiş eklentilerle başlar. Sunucuların ezici çoğunluğu dışarıdan gelen bir saldırıyla değil, içeriden verilen fazla yetkiyle veya bilinmeyen bir kaynaktan indirilen bir jar dosyasıyla kaybedilir.
Bu rehber, uygulanabilir bir kontrol listesi sunar. Her başlık altında yapılacak işi, gerekçesini ve gerçek komut ya da yapılandırma satırlarını bulacaksınız. Sırayla ilerlerseniz birkaç saat içinde sunucunuzun güvenlik seviyesini belirgin şekilde yükseltirsiniz.
1. OP Yetkisini Sınırlayın#
OP yetkisi Minecraft’ta “her şeyi yapabilir” anlamına gelir: dünyayı silmek, oyuncuları banlamak, eklenti yeniden yüklemek ve bazı eklentiler aracılığıyla dosya sistemine dokunmak. Bu yüzden OP listesi mümkün olan en kısa liste olmalıdır.
op --> sadece sunucu sahibi
deop kullanici_adi
whitelist on
Doğru yaklaşım, OP vermek yerine LuckPerms ile ihtiyaç kadar izin tanımlamaktır. Moderatörünüzün ban komutuna erişmesi için OP olması gerekmez.
lp creategroup moderator
lp group moderator permission set minecraft.command.ban true
lp group moderator permission set minecraft.command.kick true
lp group moderator permission set essentials.mute true
lp user oyuncu_adi parent add moderator
ops.json dosyasını düzenli olarak gözden geçirin. Bilmediğiniz bir isim varsa bu ciddi bir olay göstergesidir.
[
{
"uuid": "8f3c1a52-...",
"name": "sunucu_sahibi",
"level": 4,
"bypassesPlayerLimit": false
}
]
Yetki yönetiminin tamamı için OP ve yetki rehberimize, LuckPerms yapılandırması için izin sistemi sayfamıza bakın.
2. Eklentileri Yalnızca Resmî Kaynaklardan İndirin#
Backdoor içeren eklentiler, Minecraft sunucularının kaybedilmesinin bir numaralı sebebidir. Ücretli bir eklentinin “ücretsiz” sürümünü paylaşan forumlar ve rastgele indirme siteleri, arka kapı dağıtımının en yaygın kanalıdır.
| Kaynak | Güvenilirlik | Not |
|---|---|---|
| SpigotMC Resources | Güvenilir | En büyük topluluk deposu |
| Hangar (PaperMC) | Güvenilir | Paper’ın resmî deposu |
| Modrinth | Güvenilir | Açık kaynak platform |
| CurseForge | Güvenilir | Mod ve eklenti arşivi |
| Geliştiricinin kendi sitesi | Güvenilir | Resmî proje sayfası |
| Sızdırma forumları, “crack” siteleri | Tehlikeli | Backdoor dağıtımının ana kanalı |
| Discord üzerinden gelen jar dosyası | Tehlikeli | Kaynağı doğrulanamaz |
-
Hangar (PaperMC resmî eklenti deposu)ÖnerilenAç
-
ModrinthAç
-
LuckPerms (yetki yönetimi)İndir
-
CoreProtect (blok kaydı ve geri alma)İndir
-
AuthMe Reloaded 6.0.0 (cracked sunucular için)İndir
Bağlantılar resmî kaynaklara gider. Sızdırma forumlarından jar indirmeyin.
3. Sunucuyu Ayrı Bir Kullanıcıyla Çalıştırın#
Minecraft sunucusunu yönetici veya root yetkisiyle çalıştırmayın. Bir güvenlik açığı kullanıldığında, sürecin yetkisi kadar zarar verilebilir.
sudo adduser --system --group --home /opt/minecraft minecraft
sudo chown -R minecraft:minecraft /opt/minecraft
sudo chmod 750 /opt/minecraft
sudo -u minecraft /usr/lib/jvm/temurin-25-jdk/bin/java -Xms10G -Xmx10G -jar paper-26.2.jar nogui
Windows tarafında sunucuyu sınırlı yetkili bir hesapla çalıştırın; NSSM ile servis oluştururken servis hesabını yönetici yerine özel olarak açılmış bir hesap olarak tanımlayın. Servis hesabının yalnızca sunucu klasörüne yazma yetkisi olsun, sistem dizinlerine dokunamasın.
4. Konsol ve Panel Erişimini Koruyun#
Sunucu konsoluna erişebilen kişi, sunucunun tamamına erişebilir. Bu erişimin korunması OP yetkisinden bile önemlidir.
- SSH
- Parola girişini kapatıp anahtar tabanlı kimlik doğrulamaya geçin. Kök kullanıcıyla doğrudan girişi kapatın.
- RDP
- Varsayılan port yerine farklı bir port kullanın, ağ düzeyinde kimlik doğrulamayı zorunlu tutun ve erişimi belirli IP’lerle sınırlayın.
- Panel (Pterodactyl, Pelican, Crafty)
- Her yöneticiye kendi hesabını açın, iki adımlı doğrulamayı zorunlu kılın, ortak hesap kullanmayın.
- FTP / SFTP
- Kişi başına ayrı hesap açın. Ayrılan personelin erişimini aynı gün kapatın.
# SSH sertleştirme örneği
sudo nano /etc/ssh/sshd_config
# PermitRootLogin no
# PasswordAuthentication no
# AllowUsers minecraftadmin
sudo systemctl restart ssh
Değişiklikten sonra mevcut oturumunuzu kapatmadan yeni bir oturum açıp erişimi doğrulayın. Anahtar dosyanızı kaybederseniz sunucuya giremezsiniz; yedek anahtarı güvenli bir yerde saklayın.
5. RCON’u Kapalı Tutun#
RCON, sunucu konsoluna uzaktan komut göndermenizi sağlar. Şifresi server.properties dosyasında düz metin olarak durur ve protokol şifrelenmemiştir.
enable-rcon=false
rcon.port=25575
rcon.password=
enable-query=false
broadcast-rcon-to-ops=true
Zorunlu olarak açmanız gerekiyorsa üç şart: uzun ve rastgele bir şifre, güvenlik duvarında yalnızca belirli IP’lere açık bir port ve mümkünse yalnızca localhost bağlantısı.
sudo ufw allow from 10.0.0.20 to any port 25575 proto tcp
sudo ufw deny 25575/tcp
6. online-mode ve Kimlik Doğrulama#
Varsayılan olarak online-mode=true ayarlıdır ve bağlanan her oyuncunun kimliği Mojang sunucularında doğrulanır. Bu ayarı kapatmak, herhangi birinin istediği kullanıcı adıyla girebilmesi demektir.
online-mode=true
enforce-secure-profile=true
prevent-proxy-connections=false
Proxy arkasında çalışan arka uç sunucularda online-mode=false zorunludur. Bu durumda arka uç sunucuların internete kapalı olması hayati önemdedir; aksi hâlde saldırgan doğrudan arka uca bağlanıp yönetici adıyla girebilir.
Cracked sunucu işletiyorsanız AuthMe gibi bir giriş eklentisi kurun ve yönetici hesaplarına ek IP kısıtlaması uygulayın. Kurulum için AuthMe rehberimize bakın.
7. Güvenlik Duvarı: Sadece Gerekli Portlar#
Açık her port bir saldırı yüzeyidir. Minecraft sunucusunda dışarıya açık olması gereken port listesi çok kısadır.
| Port | Hizmet | Dışa açık olmalı mı |
|---|---|---|
| 25565/TCP | Minecraft Java Edition | Evet |
| 19132/UDP | Bedrock / Geyser | Bedrock kullanıyorsanız evet |
| 25575/TCP | RCON | Hayır |
| 25565 dışı arka uç portları | Proxy arkası sunucular | Hayır |
| 3306/TCP | MySQL | Hayır |
| 22/TCP veya RDP | Yönetim erişimi | IP kısıtlamalı olmalı |
sudo ufw default deny incoming
sudo ufw allow 25565/tcp
sudo ufw allow from GUVENLI_IP to any port 22 proto tcp
sudo ufw enable
sudo ufw status numbered
New-NetFirewallRule -DisplayName "Minecraft 25565" -Direction Inbound `
-Protocol TCP -LocalPort 25565 -Action Allow
Get-NetFirewallRule -Direction Inbound -Enabled True | Select-Object DisplayName
UFW, iptables ve Windows Güvenlik Duvarı için ayrıntılı yapılandırma adımlarını firewall rehberimizde bulabilirsiniz.
8. Veritabanı Güvenliği#
Ekonomi, izin ve istatistik eklentileri sıklıkla MySQL veya MariaDB kullanır. Veritabanı sunucusu internete açıksa, eklenti şifreniz saldırgana veri tabanınızın tamamını verir.
# /etc/mysql/mysql.conf.d/mysqld.cnf
bind-address = 127.0.0.1
CREATE USER 'mc_luckperms'@'localhost' IDENTIFIED BY 'uzun-rastgele-parola';
GRANT SELECT, INSERT, UPDATE, DELETE ON luckperms.* TO 'mc_luckperms'@'localhost';
FLUSH PRIVILEGES;
Her eklentiye ayrı kullanıcı ve yalnızca kendi veritabanına yetki verin. Tüm eklentilerin aynı root kullanıcısını paylaşması, tek bir eklenti açığının tüm verinizi riske atması demektir.
9. Yedekleme: Güvenliğin Temeli#
Hiçbir önlem yüzde yüz koruma sağlamaz. Bir olay yaşandığında sizi kurtaracak tek şey, geri yüklenebilir bir yedektir.
-
Otomatik yedek kurun#
Günlük dünya yedeği ve haftalık tam yedek. Yedek işlemi sunucunun düşük yoğunluklu saatinde çalışmalı.
tar -czf /yedek/mc-$(date +%F).tar.gz /opt/minecraft/world /opt/minecraft/plugins -
Yedeği başka bir yerde saklayın#
Sunucunun kendi diskindeki yedek, disk arızasında veya sunucu ele geçirildiğinde işe yaramaz.
-
Geri yüklemeyi test edin#
Hiç test edilmemiş bir yedek, yedek sayılmaz. Ayda bir kez test ortamında geri yükleyin.
-
Yedek erişimini kısıtlayın#
Yedek deposuna sunucu kullanıcısının yazma yetkisi olsun ama silme yetkisi olmasın. Böylece ele geçirilen bir sunucu yedekleri silemez.
Otomatik görev kurulumu, geri yükleme adımları ve saklama süresi planlaması için Minecraft yedekleme rehberimize bakın.
10. Blok Kaydı ve Griefing Koruması#
Griefing teknik bir güvenlik açığı değildir ama sonucu aynıdır: veri kaybı. Blok kaydı tutan bir eklenti, kimin neyi ne zaman değiştirdiğini kaydeder ve geri almanızı sağlar.
co inspect
co lookup u:oyuncu_adi t:3d r:50
co rollback u:oyuncu_adi t:2h r:100
Bölge koruma için WorldGuard ile spawn ve önemli yapıları koruyun:
//wand
region define spawn
region flag spawn build deny
region flag spawn pvp deny
region flag spawn use allow
Ayrıntılar WorldEdit ve WorldGuard rehberinde, önleyici stratejiler griefing önleme sayfasında.
11. Hile ve İstismar Kontrolü#
Hile kullanan oyuncular yalnızca oyun dengesini değil, sunucu kaynaklarını da tehdit eder. Item duplikasyonu ekonomiyi çökertir ve kontrolsüz entity üretimiyle TPS’i düşürür.
unsupported-settings:
allow-permanent-block-break-exploits: false
allow-piston-duplication: false
allow-unsafe-end-portal-teleportation: false
allow-tripwire-disarming-exploits: false
Bu ayarlar config/paper-global.yml dosyasındadır ve kapalı tutulmalıdır. Anticheat eklentisi seçimi için anticheat rehberimize bakın.
12. Güncel Kalın#
Sunucu yazılımı, Java ve eklentiler düzenli olarak güncellenmelidir. Güvenlik yamaları çoğu zaman sessizce yayınlanır.
| Bileşen | Güncel sürüm | Kontrol sıklığı |
|---|---|---|
| Paper | 26.2 build #112 | Haftalık |
| Purpur | 26.2 build 2620 | Haftalık |
| Java | Java 25 LTS | Aylık |
| LuckPerms | 5.5.57 | Aylık |
| WorldGuard | 7.0.18 | Aylık |
| İşletim sistemi | Güvenlik yamaları | Haftalık |
13. Logları İzleyin#
Bir olayın erken fark edilmesi, sonuçlarını belirgin şekilde azaltır. logs/latest.log dosyasında dikkat edeceğiniz kalıplar:
grep -iE "issued server command|op |deop|stop|reload" /opt/minecraft/logs/latest.log
grep -iE "logged in with entity id" /opt/minecraft/logs/latest.log | tail -50
Select-String -Path C:\minecraft\server\logs\latest.log -Pattern "issued server command|op |deop"
Şüpheli işaretler: gece saatlerinde çalıştırılan yönetici komutları, tanımadığınız bir oyuncunun OP olması, arka arkaya başarısız giriş denemeleri ve beklenmedik eklenti yükleme mesajları.
Sunucu izleme ve uyarı kurmak için monitoring rehberimize bakabilirsiniz.
14. Personel Yönetimi#
Teknik önlemler, insan tarafı ihmal edildiğinde işe yaramaz. Sunucu ekibine dair pratik kurallar:
- Her yöneticiye kendi hesabını verin; ortak hesap kullanmayın. Kim ne yaptı bilinmelidir.
- Yetkiyi ihtiyaca göre verin. Bir moderatörün konsol erişimi olması gerekmez.
- Ayrılan personelin tüm erişimlerini aynı gün kapatın: oyun içi yetki, panel, FTP, veritabanı, Discord rolü.
- Yeni yöneticileri deneme süresiyle başlatın ve kritik yetkileri kademeli verin.
- Şifre paylaşımını yasaklayın; şifre yöneticisi kullanımını teşvik edin.
15. Olay Müdahale Planı Hazırlayın#
Bir gün bir şey ters gidecek. O gün ne yapacağınızı önceden yazılı hâle getirin.
-
Durdur ve izole et#
Sunucuyu durdurun, dışarıya açık portları kapatın. Aceleyle yeniden başlatmayın.
save-all stop -
Kanıt topla#
latest.log, plugins klasörü listesi, ops.json ve son değiştirilen dosyaların listesini alın.
find /opt/minecraft -type f -mtime -3 -ls | head -50 -
Tüm şifreleri değiştir#
Panel, SSH, FTP, veritabanı, RCON ve varsa API anahtarları.
-
Temiz kurulum yap#
plugins klasörünü sıfırdan, bilinen temiz sürümlerle oluşturun. Şüpheli hiçbir jar’ı taşımayın.
-
Yedekten geri dön#
Dünyayı olay öncesi bir yedekten yükleyin. Ayrıntılar kurtarma rehberinde.
-
Kök sebebi bul ve kapat#
Aynı açık kapatılmazsa olay tekrarlanır. Nasıl girildiğini bulmadan sunucuyu açmayın.
Hızlı Kontrol Listesi#
| Kontrol | Beklenen durum |
|---|---|
| ops.json içeriği | Yalnızca tanıdığınız isimler |
| online-mode | true (proxy arkası hariç) |
| enable-rcon | false |
| Eklenti kaynakları | Tamamı resmî |
| Sunucu süreç kullanıcısı | root / yönetici değil |
| Açık portlar | Yalnızca 25565 (ve gerekiyorsa 19132) |
| Veritabanı bind-address | 127.0.0.1 |
| Son yedek | 24 saatten yeni ve test edilmiş |
| Paper / Java sürümü | 26.2 / Java 25 |
| Panel hesapları | Kişi başına ayrı, iki adımlı doğrulamalı |
Bu listeyi ayda bir gözden geçirin. Sunucunuzu Batihost üzerinde barındırıyorsanız altyapı seviyesindeki DDoS filtresi ve ağ güvenliği bizim tarafımızdadır; uygulama katmanı güvenliği ise yukarıdaki adımlarla sizin kontrolünüzdedir. Şüpheli bir durumda destek talebi açarak yardım isteyebilirsiniz.
Özetle#
Minecraft sunucu güvenliği bir ürün değil, alışkanlıklar bütünüdür. En büyük riskler dışarıdan gelen egzotik saldırılar değil, fazla verilmiş OP yetkisi, sızdırma sitesinden indirilen bir jar ve internete açık bırakılmış bir RCON portudur.
Uygulama sırası şudur: OP listesini kısaltın ve LuckPerms’e geçin, eklentileri yalnızca resmî kaynaklardan indirin, sunucuyu ayrı bir kullanıcıyla çalıştırın, RCON’u kapatın, güvenlik duvarında yalnızca gerekli portu açın, veritabanını localhost’a bağlayın ve test edilmiş bir yedek düzeni kurun. Son olarak bir olay müdahale planı yazın; onu kullanmak zorunda kaldığınız gün, hazırlıklı olmanın değerini anlarsınız.