Metin2 server açmak dışarıdan bakınca sadece dosyaları kurup oyunu yayına almak gibi görünüyor ama işin en yorucu kısmı çoğu zaman güvenlik tarafında başlıyor. Bir serverı aylarca, hatta yıllarca ayakta tutmaya çalışınca güvenlik kelimesinin ne demek olduğunu biraz acı şekilde öğreniyorsun. Çünkü saldırı sadece DDoS’tan ibaret değil. Oyunun içinden gelen açıklar var, kötü yazılmış questler var, server core’unu düşüren buglar var, SSH denemeleri var, açık portlar var, bir de işin staff tarafı var.

Burada amaç birine saldırı yöntemi öğretmek değil. Tam tersi, Metin2 server sahiplerinin en azından temel seviyede nelere dikkat etmesi gerektiğini toparlamak. Çünkü hiçbir server %100 güvenli değil. Bu iş biraz karşı tarafın ne kadar uğraşmak istediğine de bağlı. Bugün güvenli görünen bir yöntem, yarın yeni bir açıkla yetersiz kalabilir.

Kısacası bu rehberi “bunu yaptım, artık bana hiçbir şey olmaz” diye değil, minimum güvenlik kontrol listesi gibi düşünmek lazım. Kaynak metinde de konu; oyun içi açıklar, server/OS güvenliği, SSH hardening ve firewall tarafı olarak ele alınıyor.
Metin2’de Güvenlik Neden Bu Kadar Önemli?
Metin2 eski bir oyun. Server yapısı da yıllardır çeşitli revizyonlar, fixler ve yamalarla ayakta tutuluyor. Bu yüzden sadece client koruması almak ya da iyi bir hosting seçmek tek başına yetmiyor. Oyuncunun oyun içinden kullanabileceği bir açık da serverı mahvedebilir, yanlış ayarlanmış bir port da, kötü yazılmış bir quest de.

Özellikle özel server tarafında rekabet olduğu için bazı insanlar sadece oyunu oynamaya gelmiyor. Serverı bozmak, ekonomiyi çökertmek, oyuncuları düşürmek ya da sistemi yormak isteyenler de olabiliyor. O yüzden güvenlik meselesi yayın açıldıktan sonra değil, yayın açılmadan önce düşünülmeli.
1. Oyun İçi Buglar ve Exploitler
Oyun içi açıklar genelde hafife alınıyor ama bazen en tehlikeli saldırı tipi bunlar oluyor. Çünkü dışarıdan gelen bir DDoS saldırısını fark edersin. Makine düşer, ping artar, trafik yükselir. Ama oyun içi ekonomi açığı bazen günlerce fark edilmeden devam eder.
En basit örneklerden biri NPC alış-satış fiyatlarıdır.

Diyelim ki bir itemi dükkandan 100 Yang’a alıyorsun ama NPC’ye 120 Yang’a satabiliyorsun. Bu durumda oyuncu sonsuz Yang basabilir. Üstelik bunu manuel yapmasına bile gerek yok, bu tarz alış-satış döngüsünü otomatik yapan botlar zaten yıllardır var.
Ekonomi Açığı Kontrol Listesi
| Kontrol Edilecek Alan | Neden Önemli? |
|---|---|
| NPC alış fiyatları | Oyuncunun itemi ucuza alıp pahalı satmasını engeller. |
| NPC satış fiyatları | Sınırsız Yang açığının önüne geçer. |
| Market fiyat ortalamaları | Ani fiyat değişimleri gizli exploit işareti olabilir. |
| GM kontrolü | Tek kişinin gözünden kaçan hata başka biri tarafından fark edilebilir. |
| Yeni eklenen itemler | En çok hata genelde sonradan eklenen itemlerde çıkar. |
Bu tarz açıklar uzun süre fark edilmezse server ekonomisi geri dönmesi zor bir hale gelir. Bazı oyuncular sınırsız zenginleşir, normal oyuncu ise farm yapmaya devam eder. MMORPG’de ekonomi dengesi bozuldu mu sadece item fiyatları değil, oyuncu güveni de bozulur.
2. Quest Açıkları
Metin2’de quest sistemi çok güçlü ama yanlış yazıldığında ciddi açık çıkarabiliyor. Özellikle ödül veren questlerde state geçişi doğru yapılmadıysa oyuncu aynı ödülü tekrar tekrar alabilir.
Eski sistemlerde en bilinen sorunlardan biri, oyuncunun quest penceresi açıkken client kapatması ya da bağlantıyı kesmesiyle bazı ödül adımlarını tekrar tetikleyebilmesidir. Bu her questte olmaz ama kötü yazılmış bir quest buna zemin hazırlayabilir.

Burada temel mantık şu: Oyuncuya ödül veren komutlar mümkün olduğunca kod bloğunun en sonunda olmalı ve ardından state değiştirilmelidir.
Yani önce ödülü verip sonra state değişimini geciktirmek risklidir. Çünkü oyuncu bazı durumlarda aynı ödül adımını tekrar çalıştırabilir.
Quest Yazarken Dikkat Edilmesi Gerekenler
- Ödül veren komutları gereksiz yere başa koyma.
- Ödülden hemen sonra state değişimini yap.
- Aynı questin farklı yollarla tekrar tetiklenip tetiklenmediğini test et.
- Client kapatma, relog, teleport, ölüm gibi durumlarda questin nasıl davrandığını kontrol et.
- Büyük ödül veren questleri canlıya almadan önce test karakterleriyle birkaç kez dene.
Bu biraz sıkıcı bir iş ama sonradan oyuncuların sınırsız item ya da Yang aldığını fark etmekten çok daha iyidir.
3. Core Crash Bugları
Metin2 serverlarında en can sıkıcı problemlerden biri core crash buglarıdır. Oyuncu belirli bir komutu, parametreyi ya da davranışı kullanarak core’u düşürebiliyorsa server sürekli kesintiye uğrar.
Kaynak metinde özellikle birkaç eski ve bilinen problemden bahsediliyor: number_ex bug, war komutu açığı, gold drop core crash ve kickhack / sync position hack gibi konular.
| Açık / Problem | Etkisi | Not |
|---|---|---|
| number_ex bug | Bazı komutlarda özel parametrelerle crash yaratabilir. | 40k/source tarafında fixli kabul edilir. |
| War komutu bugı | Guild savaş komutu üzerinden core crash oluşabilir. | 34k ve daha eski yapılarda dikkat edilmeli. |
| Gold drop crash | Çok büyük miktarda gold veya stack item drop edilince core düşebilir. | Özellikle 2089 tarafında bilinen eski bir sorun. |
| Kickhack / sync position | Kötü niyetli oyuncu başka oyuncuları oyundan düşürebilir. | 40k tarafında kısmi fix, 34k için ek fixler kullanılmış. |
| Genel cheatler | Oyuncuya haksız avantaj sağlar. | Client koruması ve server tarafı kontroller birlikte düşünülmeli. |
Burada en sağlıklı yaklaşım mümkün olduğunca güncel, source tabanlı ve patchlenmiş bir yapı kullanmak. Eski revizyonlarla yayın açılacaksa da bilinen public fixler, diffler ve güvenlik yamaları tek tek kontrol edilmeli.

“Zaten yıllardır böyle çalışıyor” mantığı bu işte tehlikeli. Çünkü çalışan şey güvenli olmak zorunda değil.
4. DDoS Koruması ve Hosting Seçimi
Metin2 serverı büyüdükçe saldırı alma ihtimali de artıyor. Özellikle rekabetçi piyasada bu kaçınılmaz gibi bir şey. Bu yüzden hosting seçerken sadece işlemci, RAM ve disk alanına bakmak yetmez. DDoS koruması ciddi şekilde önemli.

Kaynak metinde OVH örneği üzerinden Basic ve Pro Anti-DDoS ayrımından bahsediliyor. Basic koruma saldırı algılandığında trafiği mitigation sistemine yönlendirebilir ama bu süreçte server birkaç dakika etkilenebilir. Pro tarafında ise trafiği sürekli mitigation üzerinden yönlendirme ve donanımsal firewall gibi avantajlar vardır.
Hosting Seçerken Bakılacaklar
| Kriter | Neden Önemli? |
|---|---|
| Kalıcı DDoS mitigation | Saldırı algılanana kadar serverın düşmesini engellemeye yardımcı olur. |
| Hardware firewall | Gereksiz portları dışarıdan kesmek için işe yarar. |
| Trafik kapasitesi | Büyük saldırılarda zayıf altyapı hızlı çöker. |
| Lokasyon | Oyuncuların ping değerini etkiler. |
| Destek kalitesi | Saldırı anında sağlayıcının hızlı dönüş yapması önemlidir. |
| Ek ücretler | Firewall, mitigation veya IP özellikleri ekstra ücretli olabilir. |
Ciddi bir proje açılacaksa en ucuz makineyi seçip geçmek genelde uzun vadede daha pahalıya patlar. Çünkü server bir kez saldırı altında kalıp sürekli düşerse oyuncu bunu unutmaz.
5. Firewall Mantığı
Firewall tarafında yapılması gereken en temel şey, sadece gerekli portları açık bırakmaktır. Metin2 serverlarında yapılan büyük hatalardan biri, neredeyse bütün portları public bırakmak.

Game portları ve auth portları oyunculara açık olmalı, evet. Ama P2P portları, DB core portları ve MySQL portu herkese açık olmamalı.
Özellikle MySQL portu olan 3306’nın public bırakılması çok riskli. Web server bağlanacaksa bile sadece web server IP’sine izin vermek daha mantıklı. Navicat gibi araçlarla bağlanmak gerekiyorsa da doğrudan MySQL portunu açmak yerine SSH Tunnel kullanmak çok daha güvenli olur.
Açık Olması Gereken ve Olmaması Gereken Portlar
| Port / Servis | Public Olmalı mı? | Açıklama |
|---|---|---|
| SSH | Sınırlı olmalı | Mümkünse sadece belirli IP’lere açık olsun. |
| Game portları | Evet | Oyuncuların bağlanması için gerekli. |
| Auth portları | Evet | Login sistemi için gerekli. |
| MySQL 3306 | Hayır | Sadece web server veya localhost erişmeli. |
| P2P portları | Hayır | Core iç iletişimi için kullanılır, public olmamalı. |
| DB core portu | Hayır | Dışarıya açılması ciddi risktir. |
| UDP | Genelde hayır | Gerçekten gerekmiyorsa kapalı tutulmalı. |

Kaynak metinde UDP için oldukça net bir uyarı var: gerekmiyorsa kapatın. Eski client tarafında server status kontrolü için UDP kullanımı olmuş olabilir ama bu yapı çoğu durumda değiştirilebilir ya da TCP tarafına alınabilir.
6. SSH Güvenliği
SSH güvenliği server kurulumunun ilk gününde yapılmalı. Çünkü internete açık bir makinede SSH portu varsa, kısa süre içinde botlar deneme yapmaya başlar. Bunu loglarda görmek zaten moral bozucu.

En temel güvenlik adımları şunlar:
- Root ile direkt SSH girişini kapat.
- Şifreyle login yerine SSH key kullan.
- Gerekiyorsa SSH portunu değiştir.
- Sadece belirli IP’lerden SSH erişimine izin ver.
- ssh-guard veya benzeri ek koruma kullan.
- Yeni ayarları test etmeden mevcut oturumu kapatma.
Kaynak metinde root login’i kapatmak ve password authentication’ı devre dışı bırakmak öneriliyor. Bunun amacı brute force denemelerini büyük ölçüde etkisiz hale getirmek.
Örnek SSH Güvenlik Ayarları
| Ayar | Önerilen Değer | Ne İşe Yarar? |
|---|---|---|
| PermitRootLogin | no | Root hesabıyla direkt SSH girişini kapatır. |
| PasswordAuthentication | no | Şifreyle giriş yerine key kullanımını zorlar. |
| SSH key | Aktif | Brute force ihtimalini ciddi şekilde azaltır. |
| Ayrı kullanıcı | Önerilir | Günlük işlemler için root yerine sınırlı kullanıcı kullanılır. |
| wheel grubu | Gerektiğinde | Kullanıcının su ile root yetkisi almasını sağlar. |
Burada dikkat edilmesi gereken nokta şu: SSH ayarlarını değiştirdikten sonra eski oturumu kapatmadan önce yeni bir Putty/terminal penceresi açıp giriş yapmayı test et. Yanlış ayar yaparsan kendi serverına erişimi kaybedebilirsin.
7. Dosya Yetkileri ve Kullanıcı Mantığı
Server dosyalarını root altında çalıştırmak yerine özel bir kullanıcı altında tutmak daha sağlıklı bir yaklaşımdır. Örneğin game adında bir kullanıcı oluşturup server dosyalarını /home/game altında tutmak gibi.
Bu yapı hem düzen sağlar hem de gereksiz root kullanımını azaltır. Dosya yetkilerinin doğru verilmesi gerekir. Kaynak metinde dosyaların game kullanıcısı tarafından okunup yazılabilmesi için sahipliğin düzenlenmesinden bahsediliyor.
Örnek mantık:
| İşlem | Amaç |
|---|---|
| Ayrı game kullanıcısı oluşturmak | Server dosyalarını root dışında yönetmek |
| Dosya sahipliğini düzenlemek | Game kullanıcısının dosyaları okuyup yazabilmesi |
| Root kullanımını sınırlamak | Gereksiz yönetici yetkisini azaltmak |
| su komutunu kontrollü kullanmak | Gerektiğinde admin yetkisine geçmek |
Bu tarz şeyler küçük detay gibi görünür ama güvenlikte küçük detaylar üst üste gelince ciddi fark yaratır.
8. Software Firewall: pf
Donanımsal firewall iyi bir başlangıçtır ama tek başına yeterli olmayabilir. Software firewall ikinci savunma hattı gibi düşünülebilir. FreeBSD tarafında pf bu iş için kullanılan güçlü araçlardan biri.

pf ile sadece port açıp kapatmak değil, aynı zamanda scrubbing ve rate limiting gibi ek kontroller de yapılabilir. Bu da hardware firewall’un tek başına sağlayamadığı bazı avantajları verir.
Kaynak metinde pf ayarlarında doğru interface’in seçilmesi, sadece SSH ve game portlarının açık bırakılması, P2P ve DB core portlarının public olmaması gerektiği vurgulanıyor. Ayrıca web server IP’si trusted_hosts altına girilerek MySQL erişiminin herkese açılmaması öneriliyor.
pf Kullanırken Dikkat Edilecekler
- Doğru network interface’i kullandığından emin ol.
- SSH portunu açık bırakmayı unutma.
- Game ve auth portlarını doğru gir.
- P2P portlarını public açma.
- DB core portunu public açma.
- MySQL erişimini sadece gerekli IP’lere ver.
- Kuralları uyguladıktan sonra bağlantıyı test et.
- Boot sırasında pf’nin otomatik açıldığından emin ol.
Firewall ayarı yaparken en büyük risk kendi kendini dışarıda bırakmaktır. Bu yüzden özellikle SSH portu değişikliği, deny kuralı ve global block ayarları yaparken dikkatli olmak gerekiyor.
9. Client Koruması Tek Başına Yetmez
Metin2 özel server piyasasında client koruması önemli, evet. Hileleri, injectleri, bazı botları, pack açmayı veya memory müdahalelerini zorlaştırabilir. Ama server tarafı zayıfsa client koruması tek başına yeterli olmaz.
Çünkü oyuncunun client üzerinden yapamadığını bazen paket seviyesinde, quest açığında, server komutunda veya ekonomi hatasında yapması mümkün olabilir.
Bu yüzden güvenliği katmanlı düşünmek gerekiyor:
| Katman | Koruma Amacı |
|---|---|
| Client koruması | Hile, bot ve client müdahalelerini azaltmak |
| Server-side kontroller | Oyuncudan gelen veriyi doğrulamak |
| Quest güvenliği | Ödül ve state açıklarını engellemek |
| Ekonomi takibi | Yang ve item dengesini korumak |
| Firewall | Gereksiz dış erişimi kapatmak |
| SSH güvenliği | Yönetici erişimini korumak |
| DDoS koruması | Trafik saldırılarına karşı ayakta kalmak |
Tek bir katmana güvenmek yerine hepsini birlikte düşünmek daha doğru.
10. Staff Tarafı da Güvenliğin Parçası
Kaynak metin staff bölümüne kadar tam devam etmese de girişte güvenliğin oyun içi, website, server ve staff olarak bölüneceğini söylüyor. Bu önemli, çünkü birçok server sadece teknik açıkla değil, insan hatasıyla da zarar görüyor.
GM yetkileri fazla geniş verilirse, panel şifreleri zayıf olursa, herkes database erişimine sahipse ya da log tutulmuyorsa risk artar. Staff tarafı güvenli değilse en iyi firewall bile seni kurtarmaz.
Staff İçin Basit Güvenlik Kuralları
- Her GM’ye ihtiyacı kadar yetki ver.
- Admin panel erişimini sınırlı tut.
- Ortak şifre kullanma.
- GM komut loglarını tut.
- Database erişimini herkese verme.
- Eski staff hesaplarını kapatmayı unutma.
- Yetki verilen kişileri dikkatli seç.
- Oyuncu şikayetlerini ve ekonomi loglarını düzenli kontrol et.
Server güvenliği sadece teknik ekip işi değil. Yönetim tarafı da en az teknik taraf kadar önemli.
Genel Güvenlik Kontrol Listesi
| Alan | Yapılması Gereken |
|---|---|
| Ekonomi | NPC alış-satış fiyatlarını kontrol et. |
| Market | Ortalama item fiyatlarını takip et. |
| Quest | Ödül tekrar açıklarını test et. |
| Core | Bilinen crash bug fixlerini uygula. |
| Client | Hile ve bot koruması kullan. |
| Hosting | DDoS korumalı sağlayıcı tercih et. |
| Firewall | Sadece gerekli portları aç. |
| MySQL | Public erişime kapat. |
| SSH | Root login ve password login kapat. |
| Kullanıcı | Server dosyalarını ayrı kullanıcı altında çalıştır. |
| pf / Firewall | P2P ve DB portlarını dışarıya kapat. |
| Staff | Yetkileri sınırlı ve loglu tut. |
| Yedek | Düzenli database ve dosya yedeği al. |
| Test | Yeni sistemleri canlıya almadan önce test et. |
Metin2 server güvenliği tek bir ayar, tek bir fix ya da tek bir programla çözülecek bir iş değil. Oyun içi ekonomi, questler, core stabilitesi, işletim sistemi, SSH, firewall, DDoS koruması, client güvenliği ve staff yönetimi birlikte düşünülmeli.
Yeni server açanların yaptığı en büyük hata, önce reklamı basıp oyuncuyu çekmek, sonra güvenlik tarafını düşünmek oluyor. Aslında bunun tam tersi yapılmalı. Önce altyapı sağlam olacak, sonra test yapılacak, sonra oyuncuya açılacak.
Siz de kendi Metin2 serverınızı kurmak mı istiyorsunuz?
Metin2 server dosyaları, kurulum rehberleri, sistem geliştirmeleri ve özel sunucu dünyasına dair teknik içerikler için dev.mmooyun.com adresini ziyaret edebilirsiniz.
dev.mmooyun.com’a GitÇünkü server bir kez patladıktan sonra sadece teknik sorun yaşamıyorsun. Oyuncunun güveni de gidiyor. Ekonomi bozulduysa, bazı oyuncular haksız kazanç elde ettiyse ya da server sürekli crash yiyorsa bunu sonradan toparlamak çok zor.
Kısacası, Metin2 server sahibi olmak istiyorsan güvenlik tarafını en baştan ciddiye al. Oyuncu gelmeden önce açıkları kapatmak, oyuncu geldikten sonra kriz yönetmeye çalışmaktan her zaman daha iyidir.
Paylaş :








