Minecraft sunucusu ele geçirildiyse yapılacak ilk şey paniğe kapılıp her şeyi silmek değil, sunucuyu ağdan yalıtmak ve kanıt toplamaktır. Saldırının nasıl gerçekleştiğini öğrenmeden yapılan her yeniden kurulum, aynı açığı ikinci kez açar. Bu sayfada olayı fark ettiğiniz andan sunucuyu güvenle yeniden açtığınız ana kadar izlemeniz gereken sırayı adım adım anlatıyoruz.
Rehber işletim sisteminden bağımsızdır; komutların hem Linux hem Windows karşılığı verilmiştir. Ayrıntılı işletim sistemi adımları için ilgili sayfalara iç link bırakıldı.
Gerçekten Ele Geçirildiniz mi? Belirtileri Ayırt Edin#
Her tuhaf olay ihlal değildir. Aşağıdaki tabloda sık karıştırılan durumları ayırdık.
| Belirti | Muhtemel sebep | Bu ihlal mi? |
|---|---|---|
| Spawn yıkılmış, yapılar patlamış | Grief yapan oyuncu | Genelde hayır — grief geri alma |
| Herkes OP olmuş, konsolda vermediğiniz komutlar var | Arka kapılı eklenti veya sızmış konsol erişimi | Evet |
Kurmadığınız bir jar plugins/ içinde | Backdoor yüklemesi | Evet |
| Sunucu erişilemez, oyuncular bağlanamıyor | DDoS saldırısı olabilir | Farklı olay — DDoS koruması |
| SSH/RDP parolanız çalışmıyor | Parola değiştirilmiş | Evet, ciddi |
| Sunucu CPU’su boşken %100 | Kripto madenci veya botnet süreci | Evet, işletim sistemi seviyesinde |
| Dünya kayboldu, dosyalar silindi | Kasıtlı silme veya disk arızası | İncelenmeli |
Ayrım önemlidir: grief olayında sunucu sizindir, saldırgan sadece oyun içinde zarar vermiştir. İhlalde ise sunucu artık sizin kontrolünüzde olmayabilir. İkincisi çok daha ağır bir müdahale gerektirir.
Adım 1: Yalıtım — Erişimi Kesin#
-
Oyun portunu kapatın#
Sunucuyu tamamen kapatmak yerine önce dış erişimi kesin. Böylece süreç ayakta kalır ve bellekteki durumu inceleyebilirsiniz.
# Linux (UFW) sudo ufw deny 25565/tcp sudo ufw status numbered # Linux (firewalld) sudo firewall-cmd --remove-port=25565/tcp sudo firewall-cmd --reload# Windows Server New-NetFirewallRule -DisplayName "MC-Acil-Kapat" -Direction Inbound -LocalPort 25565 -Protocol TCP -Action Block -
Yönetim erişimini kendi IP’nize kilitleyin#
Saldırganın SSH veya RDP ile içeride olma ihtimalini ortadan kaldırın.
sudo ufw delete allow 22/tcp sudo ufw allow from SIZIN.IP.ADRESINIZ to any port 22 proto tcp sudo ufw reload -
Aktif oturumları listeleyin ve düşürün#
who last -20 ss -tunap | grep ESTAB # Şüpheli oturumu düşür sudo pkill -KILL -u supheli_kullaniciWindows tarafında
query userile oturumları görüplogoff <oturum-id>ile düşürebilirsiniz. -
Sunucu sürecini durdurun#
Yalıtım tamamlandıktan sonra Minecraft sürecini düzgün kapatın. Konsola
stopyazın; sürecikill -9ile öldürmek dünya dosyalarını bozabilir.
Adım 2: Kanıt Toplama — Neye Bakılır?#
Temizliğe başlamadan önce sunucunun mevcut halinin bir kopyasını alın. Bu kopya hem soruşturma hem de yanlış bir adım atarsanız geri dönüş içindir.
# Tüm sunucu klasörünü tarihli bir arşive al
cd /opt
sudo tar -czf /root/ihlal-kanit-$(date +%F-%H%M).tar.gz minecraft/
# Sadece kritik kanıtları ayır
mkdir -p /root/kanit
cp -a /opt/minecraft/logs /root/kanit/
cp -a /opt/minecraft/plugins /root/kanit/
cp /opt/minecraft/ops.json /opt/minecraft/whitelist.json \
/opt/minecraft/banned-players.json /opt/minecraft/server.properties /root/kanit/
Log dosyalarında ne aranır?#
logs/latest.log ve sıkıştırılmış eski loglar (logs/*.log.gz) saldırının izini taşır. Şu desenleri arayın:
# OP verme olayları
zgrep -i "made .* a server operator" /opt/minecraft/logs/*.log*
# Konsoldan çalıştırılan komutlar
zgrep -i "issued server command" /opt/minecraft/logs/*.log* | tail -100
# Eklenti yükleme satırları
zgrep -iE "Enabling|Loading .*\.jar" /opt/minecraft/logs/*.log* | tail -50
# RCON bağlantıları
zgrep -i "rcon" /opt/minecraft/logs/*.log*
Windows tarafında aynı aramayı PowerShell ile yapabilirsiniz:
Select-String -Path C:\minecraft\server\logs\*.log -Pattern "server operator","issued server command" | Select-Object -Last 100
Değişmiş dosyaları bulun#
Son 7 günde değişen dosyaları listelemek arka kapının yerini genellikle doğrudan gösterir:
# Son 7 günde değişen jar dosyaları
find /opt/minecraft -name "*.jar" -mtime -7 -ls
# Sunucu klasöründe son 3 günde değişen her şey
find /opt/minecraft -type f -mtime -3 -ls | head -60
# Beklenmedik yürütülebilir dosyalar
find /opt/minecraft -type f -perm -u+x ! -name "*.jar" ! -name "*.sh" -ls
ops.json ve yetki dosyalarını kontrol edin#
ops.json dosyasında tanımadığınız bir UUID varsa saldırgan oyun içi tam yetki almış demektir. bypassesPlayerLimit alanı true yapılmış girdiler özellikle şüphelidir.
[
{
"uuid": "…",
"name": "TanimadiginizIsim",
"level": 4,
"bypassesPlayerLimit": true
}
]
Adım 3: Arka Kapı Avı#
Minecraft sunucularında ihlallerin büyük çoğunluğu sıfırıncı gün açığından değil, kullanıcının kendi eliyle kurduğu zararlı bir jar dosyasından kaynaklanır. En sık kaynaklar şunlardır:
Kırılmış ücretli eklentiler#
“Leaked”, “cracked”, “free download” etiketiyle paylaşılan ücretli eklentiler bir numaralı arka kapı kaynağıdır. Jar’ın içine gizlenen kod, sunucu açıldığında saldırganın belirlediği bir adresten komut çeker.
Hazır sunucu paketleri#
“Hazır skyblock sunucusu”, “kurulu bedwars paketi” gibi indirilen ZIP arşivleri. İçindeki onlarca jar’ın kaynağını doğrulamak imkânsızdır.
Zayıf RCON ve panel parolası#
enable-rcon=true ve tahmin edilebilir bir rcon.password ile internete açık bir port, saldırgana doğrudan konsol verir.
Güvenilmeyen yetkili#
OP verdiğiniz veya panel erişimi tanıdığınız bir kişi. Yetki dağıtımını en aza indirin, her yetkilinin kendi hesabı olsun.
Şüpheli jar’ları inceleme#
Bir jar dosyasının içinde ne olduğunu görmek için arşivi açın ve dış adres aramayı deneyin:
# Jar içeriğini listele
unzip -l plugins/SupheliEklenti.jar | head -40
# Jar içinde geçen URL ve IP dizgilerini ara
mkdir /tmp/jarcoz && cd /tmp/jarcoz
unzip -q /opt/minecraft/plugins/SupheliEklenti.jar
grep -raoE "https?://[a-zA-Z0-9./?=_-]+" . | sort -u | head -40
grep -ra "Runtime.getRuntime" . | head
plugin.yml dosyasındaki main sınıf adı, eklentinin iddia ettiği isimle uyuşmuyorsa bu güçlü bir işarettir. Aynı şekilde jar içinde ikinci bir gömülü jar bulunması da klasik bir gizleme yöntemidir.
İşletim sistemi seviyesinde kalıcılık#
Saldırgan yalnızca oyun sunucusuna değil makineye eriştiyse geride kalıcılık bırakmış olabilir. Şunları kontrol edin:
# Zamanlanmış görevler
crontab -l
sudo crontab -l
ls -la /etc/cron.d/ /etc/cron.daily/
# Yeni oluşturulmuş kullanıcılar
awk -F: '$3 >= 1000 {print $1, $3, $6}' /etc/passwd
# Yetkisiz SSH anahtarları
cat ~/.ssh/authorized_keys
sudo cat /root/.ssh/authorized_keys
# Tanımadığınız systemd servisleri
systemctl list-units --type=service --state=running
# Ağa bağlanan süreçler
sudo ss -tunap | grep -v 127.0.0.1
Windows Server’da karşılığı: Görev Zamanlayıcı’daki (Task Scheduler) yeni görevler, services.msc içindeki tanımadığınız hizmetler, Get-LocalUser çıktısındaki yeni hesaplar ve Get-NetTCPConnection ile dış bağlantılar.
Adım 4: Tüm Kimlik Bilgilerini Yenileyin#
Bu adımı yarım yapmak, kurtarmanın tamamını boşa çıkarır. Aşağıdaki listenin tamamını uygulayın:
- Sistem
- root / Administrator parolası, tüm kullanıcı hesapları, SSH anahtar çiftleri.
- Oyun sunucusu
- RCON parolası, panel (Pterodactyl/Crafty/AMP) hesapları, konsol erişimi olan tüm kullanıcılar.
- Veritabanı
- MySQL/MariaDB kullanıcıları, özellikle eklenti veritabanlarına bağlanan hesaplar.
- Dosya erişimi
- FTP/SFTP hesapları, varsa paylaşılan anahtar dosyaları.
- Dış hizmetler
- Hosting kontrol paneli, domain yönetim paneli, Discord bot token’ları, webhook adresleri, ödeme entegrasyonu API anahtarları.
- E-posta
- Sunucuya kayıtlı e-posta hesabı; ele geçirilmişse tüm parola sıfırlama zinciri saldırganın elindedir.
SSH’ta parola girişini tamamen kapatıp anahtar tabanlı erişime geçmek, aynı olayın tekrarını en çok azaltan tek değişikliktir:
# /etc/ssh/sshd_config
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
Port 2244
sudo systemctl restart sshd
Adım adım anahtar üretimi ve bağlantı için SSH ile sunucuya bağlanma rehberimize, güvenlik duvarı kurallarının tamamı için firewall yapılandırma sayfasına bakın.
Adım 5: Temiz Kurulum ve Seçici Geri Yükleme#
Kurtarmanın en kritik kararı şudur: hangi verinin yedekten geleceği, hangisinin sıfırdan indirileceği. Kural basittir — yürütülebilir her şey yeniden indirilir, yalnızca veri geri yüklenir.
| Bileşen | Ne yapılmalı | Gerekçe |
|---|---|---|
| Sunucu jar (Paper/Purpur/Forge) | Yedekten alma | Resmî siteden yeniden indirin |
Eklentiler (plugins/*.jar) | Yedekten alma | Her birini resmî kaynağından indirin |
Eklenti yapılandırmaları (.yml) | Tek tek gözden geçirip alın | Metin dosyasıdır ama komut çalıştıran alanlar içerebilir |
Dünya klasörleri (world*/) | Yedekten alın | Veri dosyasıdır, kod çalıştırmaz |
Oyuncu verileri (playerdata/, stats/) | Yedekten alın | Oyuncu ilerlemesi burada |
ops.json, whitelist.json | Sıfırdan yazın | Saldırganın eklediği girdiler taşınmasın |
server.properties | Elle yeniden yazın | RCON ve port ayarları değiştirilmiş olabilir |
-
Paper 26.2 sunucu jarÖnerilenİndir
-
Eclipse Temurin JDK 25LTSİndir
-
LuckPermsİndir
-
spark — kurulum sonrası doğrulamaİndir
Bağlantılar resmî kaynaklara gider. Kurtarma sırasında hiçbir dosyayı üçüncü taraf paylaşım sitesinden indirmeyin.
Sıfırdan kurulum adımlarını Paper sunucu kurulumu sayfasında bulabilirsiniz; VDS üzerinde çalışıyorsanız VDS aldıktan sonra yapılması gereken ilk ayarlar rehberi ile başlayın.
Yedeğin temiz olduğunu nasıl doğrularsınız?#
Yedeği doğrudan üretime almayın. Önce yalıtılmış bir test ortamında açın ve şunları kontrol edin: plugins/ içinde beklenmedik jar var mı, ops.json temiz mi, dünya açılışında konsola hata düşüyor mu. Mümkünse ihlal tarihinden en az bir hafta öncesine ait bir yedeği tercih edin. Yedek stratejinizi 3-2-1 kuralına göre kurmadıysanız kurtarmadan sonraki ilk işiniz bu olsun.
Adım 6: Oyunculara Ne Söylemeli?#
Şeffaflık, ihlalden sonra topluluğu tutmanın tek yoludur. Kısa ve net bir duyuru yapın: ne oldu, hangi veriler etkilendi, ne yaptınız, ne zaman geri döneceksiniz. Aşağıdakileri mutlaka söyleyin:
- Oyuncuların sunucuda kullandığı parolalar (giriş eklentisi kullanıyorsanız) sıfırlanmıştır ve yeniden belirlenmelidir.
- Aynı parolayı başka yerlerde kullanan oyuncular oraları da değiştirmelidir.
- Hangi tarihe ait yedeğe dönüldüğü ve ne kadarlık ilerlemenin kaybolduğu.
- Yeniden aynı olayın yaşanmaması için alınan somut önlemler.
Giriş sistemi kullanıyorsanız oyuncu parolalarının saklandığı veritabanını da sıfırlamak gerekir; kurulum ve parola politikası için AuthMe kurulum sayfamıza bakın.
Adım 7: Tekrarını Önleyin#
-
Kırılmış eklenti kullanmayı bırakın#
Bu tek karar, Minecraft sunucusu ihlallerinin büyük bölümünü ortadan kaldırır. Ücretli bir eklentiye bütçeniz yoksa ücretsiz alternatifini kullanın; kırılmış sürüm bedava değildir, bedelini sunucunuzla ödersiniz.
-
OP listesini üç kişiyle sınırlayın#
Yetkilendirmeyi
ops.jsonyerine LuckPerms grupları üzerinden yapın. Moderatörün ban atmak için OP olmasına gerek yoktur, ilgili izni almak yeterlidir.> lp group moderator permission set essentials.ban true > lp group moderator permission set essentials.kick true > lp group moderator permission set minecraft.command.op false -
RCON’u kapatın veya kilitleyin#
enable-rcon=false # Açık tutmak zorundaysanız: # rcon.port=25575 # rcon.password=uzun-rastgele-bir-deger # ve 25575 portunu yalnızca 127.0.0.1 için açın -
Otomatik ve dış konumlu yedek kurun#
Günlük yedek, en az 7 gün saklama ve sunucu dışında ikinci kopya. Kurulum için yedekleme rehberi.
-
Log ve erişim izleme kurun#
Başarısız SSH denemelerini engellemek için Fail2Ban, sistem sağlığı için basit bir izleme aracı yeterlidir. Ayrıntı için sunucu izleme rehberine bakın.
sudo apt install -y fail2ban sudo systemctl enable --now fail2ban sudo fail2ban-client status sshd -
Güncel kalın#
Sunucu yazılımını, eklentileri ve işletim sistemi paketlerini düzenli güncelleyin. Paper 26.2 build’leri düzenli yayınlanıyor; eski bir build’de kalmak gereksiz risktir.
Donanım ve Barındırma Tarafında Ne Değişmeli?#
Temiz kurulum, altyapıyı gözden geçirmek için de iyi bir fırsattır. Paylaşımlı ve kısıtlı kaynaklı ortamlarda hem izolasyon zayıftır hem de yeniden kurulum esnekliğiniz azdır. Kendi kök erişiminiz olan bir sunucuda çalışmak, ihlal sonrası kurtarmayı çok kolaylaştırır.
| Sunucu profili | RAM | İşlemci | Disk |
|---|---|---|---|
| 2-10 oyuncu | 8 GB | Ryzen 9 3900X ve üzeri | 50 GB NVMe SSD |
| 10-30 oyuncu, eklentili Paper | 10-12 GB | Ryzen 9 7900X | 100 GB NVMe SSD |
| 30-60 oyuncu | 16 GB | Ryzen 9 7900X / 7950X | 100 GB+ NVMe SSD |
| 60+ oyuncu veya sunucu ağı | 32 GB ve üzeri | Ryzen 9 7950X | 200 GB+ NVMe SSD |
Java heap değerini pakete göre verin (8 GB pakette -Xms6G -Xmx6G, 16 GB pakette -Xms14G -Xmx14G) ve işletim sistemine mutlaka pay bırakın. Kök erişimli, DDoS korumalı ve NVMe diskli seçenekler için VDS paketlerine veya tam izolasyon isteyenler için dedicated sunuculara bakabilirsiniz.
Özetle#
Bir Minecraft sunucusunun ele geçirilmesi çoğu zaman karmaşık bir saldırıdan değil, kırılmış bir eklentiden, zayıf bir parolaydan ya da fazla dağıtılmış bir OP yetkisinden kaynaklanır. Olay yaşandığında sıra şudur: önce ağdan yalıtın, sonra kanıtı koruyun, ardından tüm kimlik bilgilerini yenileyin, yürütülebilir her şeyi sıfırdan indirin, yalnızca veriyi doğrulanmış yedekten geri yükleyin ve son olarak açığı kapatın.
Kurtarma bittikten sonra Minecraft sunucu güvenliği rehberindeki kontrol listesini baştan sona uygulayın; hile kaynaklı sorunlar için anticheat eklentileri ve oyun içi tahribat için griefing önleme sayfalarımız devam niteliğindedir.