Sponsorlu banner

Ashlar: Paper tabanlı, ücretsiz ve açık kaynak sunucu yazılımı (1.8–26.x, Bedrock, giriş sistemi, web panel)

  • Konuyu Başlatan Konuyu Başlatan KyperSword
  • Başlangıç tarihi Başlangıç tarihi
  • Görüntüleme 56

KyperSword

craftrank.org
Onaylı Satıcı
Katılım
12 Mayıs 2017
Mesajlar
80
Elmaslar
28
Puan
13.420
Yaş
46
Selam herkese,

Birkaç aydır kendi sunucu yazılımım üzerinde çalışıyordum, artık paylaşacak kıvama geldi. Adı Ashlar. Paper’ın üstüne kurulu, yani Paper/Spigot/Bukkit eklentileriniz aynen çalışıyor. Ben LuckPerms ile denedim, hiçbir sorun çıkmadı. Tamamen ücretsiz ve açık kaynak (GPL-3.0).

Neden yaptım? Her sunucu açtığımda aynı şeyi yaşıyordum: anti-bot için bir eklenti, giriş için AuthMe, exploit için ayrı bir şey, oy için NuVotifier, Bedrock için Geyser kurulumu, yedek için başka bir eklenti... Yarısı ücretli, yarısı güncellenmiyor, bir kısmı da nereden indirdiğinize göre içinden ne çıkacağı belli olmayan şeyler. Ben de hepsini sunucunun içine koydum.

Sunucu 26.2'de çalışıyor, Java 25 gerekiyor.

Neler var, kısaca anlatayım:

1.8'den 26.x’e kadar her sürüm girebiliyor. ViaVersion, ViaBackwards ve ViaRewind jar’ın içinde geliyor, ilk açılışta kendisi kuruyor. 1.8.9, 1.12.2, 1.16.5, 1.19.4, 1.20.4, 1.21.4, 1.21.11 ve 26.1 ile aynı anda girip denedim.

Bedrock oyuncuları da girebiliyor. Geyser ve Floodgate’i ilk açılışta kendisi indiriyor ve güncel tutuyor. 19132 portunu (UDP ve TCP) açmanız yeterli. Bedrock’tan gelenler Xbox ile doğrulandığı için şifre sorulmuyor.

Cracked sunucular için giriş sistemi hazır geliyor, AuthMe kurmanıza gerek yok. online-mode=false ise /register ve /login kendiliğinden açılıyor. Şifreler PBKDF2 ile hash’lenip saklanıyor ve logda bile görünmüyor (konsolda /login **** yazıyor). Giriş yapmayan oyuncu yürüyemiyor, yazamıyor, komut kullanamıyor. Sizin isminizle biri girip sizi düşüremiyor. Zaten AuthMe ya da nLogin kullanıyorsanız Ashlar kendi giriş sistemini kapatıyor, çakışma olmuyor.

Bana en çok önem verdiğim kısım şu: eklenti arka kapı koruması. Sızdırılmış ya da “cracked” eklentilerdeki arka kapıların çoğu aynı şeyi yapıyor; sohbete gizli bir kelime yazınca birine op veriyor ya da lp user X permission set * çalıştırıyor. Ashlar’da hiçbir eklenti, siz izin vermedikçe kimseye op veremiyor ve tüm yetkileri dağıtamıyor. Deneme anında engelleniyor, yetkililere de mesaj düşüyor. Bunu kendim sahte bir arka kapı eklentisi yazıp denedim; üç denemesi de engellendi, eklentinin normal komutları çalışmaya devam etti. Ayrıca sunucu açılırken her eklenti jar’ını tarıyor: bilgisayarda program çalıştıran, internetten kod indirip çalıştıran ya da Base64 içine Discord webhook adresi gizleyen kod varsa konsolda uyarıyor. Hangi eklentinin dışarıda nereye bağlandığını da logluyor. /ashlar plugins yazınca hepsini görüyorsunuz.

DDoS / bağlantı flood koruması. Bağlantılar, Minecraft daha hiçbir şey işlemeden kapıda kontrol ediliyor:
  • banlı IP’ler direkt düşüyor,
  • her IP’nin saniyede açabileceği bağlantı sınırlı,
  • hiç veri göndermeyen bağlantı 5 saniyede kapanıyor,
  • girmeden çok fazla veri gönderen bağlantı kesiliyor.
Toplam bağlantı patlarsa sunucu “saldırı moduna” geçiyor ve birkaç dakika boyunca sadece daha önce girmiş oyuncular girebiliyor. Kendi testimde tek IP’den 12 saniyede 16 bin bağlantı attım. Hepsi düştü, sunucu 20 TPS’te kaldı, daha önce girmiş bir oyuncu da tam o sırada sorunsuz girdi.

Dürüst olayım: hattınızı tamamen dolduracak büyüklükte bir saldırı zaten sunucuya ulaşmıyor. Onu yazılım değil, hosting firmanızın ağ koruması durdurur. Ashlar sunucunun kendisini korur. Banlanan IP’leri ashlar-blocked-ips.txt dosyasına da yazıyor, isterseniz güvenlik duvarınıza verebilirsiniz. BungeeCord/Velocity arkasındaysanız bu kısım kendini kapatıyor, çünkü orada korumanın proxy’de olması gerekiyor.

Diğerleri:
  • Bot saldırısı koruması: saniyede çok fazla yeni oyuncu gelirse yeniler birkaç dakika bekletiliyor, eski oyuncular girmeye devam ediyor. IP başına dakikada 8 giriş sınırı var, saçma isimler reddediliyor.
  • Sürekli engellenen IP otomatik banlanıyor. Banlar restart’ta silinmiyor. İsteyen için proxycheck.io ile VPN kontrolü de var (varsayılan kapalı).
  • Exploit koruması: dev kitaplar, uzun tabelalar, tab spam’i, chunk başına varlık ve TNT sınırı.
  • Sohbet ve komut spam sınırı.
  • /plugins, /version gibi komutlar normal oyunculara gizli, kimse eklentilerinize bakıp açık arayamıyor.
  • Lag olunca simulation distance’ı kendisi düşürüyor, sunucu rahatlayınca geri açıyor. Görüş mesafesi değişmediği için oyuncular fark etmiyor.
  • /ashlar lag ile lagın nereden geldiğini görüyorsunuz (en kalabalık chunk’lar, en çok olan varlıklar).
  • Sunucu boşken spawn çevresini önceden oluşturuyor, biri girince duruyor.
  • 6 saatte bir otomatik dünya yedeği alıyor, eskileri siliyor, disk dolmak üzereyse atlıyor.
  • Tarayıcıdan açılan sade bir web panel var: konsol, oyuncular, yedek, özellikleri aç/kapa. Varsayılan olarak sadece 127.0.0.1'de açılıyor, dışarıdan SSH tüneli ya da reverse proxy ile girmenizi öneririm.
  • NuVotifier’a gerek yok, Votifier v2 dahili. Oyuncu çevrimdışıysa ödül girene kadar bekliyor.
  • /ashlar preset survival (smp, skyblock, minigames) ile denenmiş ayarları tek komutla yazıyor. Eski dosyaları önce yedekliyor.
  • Kendini güncelliyor: GitHub’da yeni sürüm varsa indiriyor, SHA-256 ile doğruluyor, sunucu kapanırken jar’ı değiştiriyor. İstemeyen kapatabilir.

Bütün ayarlar tek dosyada, ashlar.yml’de. Her özelliğin kendi aç/kapa anahtarı var. Komutların hepsi /ashlar altında (yetki: ashlar.admin). Sadece /ashlar yazınca her şeyin durumunu gösteriyor.

Paper’dan geçmek için sunucuyu kapatıp Paper jar’ını ashlar-26.2.jar ile değiştirmeniz yeterli. Dünyalar, eklentiler, ayarlar olduğu gibi kalıyor. En az 2 GB RAM gerekiyor, açık bir sunucu için 4 GB ve üzerini öneririm.

İndirme:
Değerli ziyaretçimiz, içeriği görebilmek için şimdi giriş yapın veya kayıt olun.

Kaynak kod:
Değerli ziyaretçimiz, içeriği görebilmek için şimdi giriş yapın veya kayıt olun.

Tanıtım sayfası:
Değerli ziyaretçimiz, içeriği görebilmek için şimdi giriş yapın veya kayıt olun.


Hata bulursanız ya da “şu da olsa iyi olur” dediğiniz bir şey varsa buraya yazın, okuyorum. Deneyenlerin yorumlarını da merak ediyorum.

İyi oyunlar.
 
Son düzenleme:
Merhaba,


Uzun süredir üzerinde çalıştığım sunucu yazılımı Ashlar’ı tanıtmak istiyorum. Ashlar, Paper üzerine kurulu, Minecraft: Java Edition için ücretsiz ve açık kaynak (GPL-3.0) bir sunucu yazılımı. Paper’ın üstüne, normalde ayrı ayrı eklenti kurarak elde ettiğiniz özellikleri hazır olarak ekliyor. Paper, Spigot ve Bukkit eklentileri olduğu gibi çalışıyor; LuckPerms ile sorunsuz test ettim.


Sunucu Minecraft 26.2 sürümünde çalışıyor ve Java 25 istiyor.


Her sürüm girebilir
ViaVersion, ViaBackwards ve ViaRewind jar’ın içinde geliyor ve ilk açılışta plugins klasörüne kendiliğinden ekleniyor. Java Edition 1.8'den 26.x’e kadar oyuncular girebiliyor. 1.8.9, 1.12.2, 1.16.5, 1.19.4, 1.20.4, 1.21.4, 1.21.11 ve 26.1 istemcileriyle aynı anda bağlanarak test ettim. Bu eklentileri kendiniz kurduysanız Ashlar sizin kopyanıza dokunmuyor.


Bedrock oyuncuları
Ashlar ilk açılışta Geyser ve Floodgate’i GeyserMC’den indiriyor, SHA-256 ile doğruluyor ve güncel tutuyor. Telefon, konsol ve Windows’tan Bedrock oyuncuları 19132 portundan girebiliyor (UDP ve TCP açık olmalı). Bedrock oyuncuları Xbox hesabıyla doğrulandığı için giriş sistemine takılmıyor. İstemeyen ashlar.yml’den kapatabilir.


Cracked sunucular için giriş sistemi
online-mode=false olduğunda /register ve /login kendiliğinden açılıyor.
  • Şifreler PBKDF2-SHA256 ile, rastgele hashle saklanıyor. Düz metin hiçbir yerde tutulmuyor.
  • Sunucu logunda şifreler görünmüyor, /login **** olarak yazılıyor.
  • Giriş yapmayan oyuncu hareket edemiyor, konuşamıyor, komut kullanamıyor, envanter açamıyor ve hasar almıyor. Süre dolunca atılıyor.
  • Giriş yapmış birinin ismiyle ikinci kişi bağlanıp onu düşüremiyor.
  • Aynı IP’den 30 dakika içinde tekrar girene yeniden şifre sorulmuyor.
  • IP başına hesap sınırı ve yanlış şifre sınırı var. Çok yanlış deneme yapan adres otomatik bana düşüyor.
  • AuthMe, nLogin, LibreLogin gibi bir eklenti kuruluysa Ashlar kendi giriş sistemini kapatıp işi ona bırakıyor.

Bot saldırısı koruması
  • Saniyede gelen yeni oyuncu sayısı sınırı aşılırsa (varsayılan 6), yeni oyuncular 5 dakika bekletiliyor. Daha önce girmiş oyuncular bu sırada girmeye devam ediyor.
  • Her IP dakikada en fazla 8 kez bağlanabiliyor.
  • Geçersiz karakterli isimler reddediliyor.
  • /ashlar unlock ile bekletme erken bitirilebiliyor.
Otomatik IP ban
Sürekli engellenen bir adres (varsayılan 20 engelden sonra) 60 dakikalığına banlanıyor. Banlar dosyada tutuluyor, sunucu yeniden başlasa da kalkmıyor. İsteyen için proxycheck.io ile VPN/proxy kontrolü de var. Oyuncu IP’sini dış servise gönderdiği için varsayılan olarak kapalı.

Exploit koruması
  • Aşırı büyük kitaplar (sayfa ve karakter sınırı) ve uzun tabela satırları engelleniyor.
  • Tab-complete spam’i sınırlanıyor.
  • Chunk başına varlık sınırı (varsayılan 300) ve TNT/düşen blok sınırı (varsayılan 80) var.
Spam sınırı
Saniyede sohbet ve komut sınırı var (varsayılan 4 mesaj, 6 komut). Aşan uyarılıyor, devam eden atılıyor. ashlar.bypass.spam yetkisi olanlar sınırlanmıyor.

Eklenti listesini gizleme
Normal oyuncular /plugins, /version, /about gibi komutlarda “Unknown command” uyarısı alıyor. Bu komutlar tab-complete’te de görünmüyor, böylece kimse eklentilerinize bakıp açık arayamıyor. ashlar.seeplugins yetkisi olan yetkililer görmeye devam ediyor.

Lag kontrolü
Bir tick 45 ms’yi geçince Ashlar oyuncuların etrafında işlenen alanı (simulation distance) adım adım küçültüyor, sunucu rahatlayınca geri büyütüyor. Görüş mesafesi (view distance) değişmediği için oyuncular dünyanın küçüldüğünü görmüyor.
/ashlar lag en kalabalık chunk’ları koordinatlarıyla ve en çok bulunan varlıkları listeliyor. Sunucu yavaşlamadan önce nereye bakacağınızı biliyorsunuz.

Boşken chunk oluşturma (pregen)
Sunucuda kimse yokken ve sunucu boştayken spawn çevresindeki alanı (varsayılan 1000 blok) önceden oluşturuyor. Bir oyuncu girince duruyor, ilerlemesini kaydediyor ve kaldığı yerden devam ediyor.

Otomatik yedek
Dünyaları varsayılan olarak 6 saatte bir zip’leyip backups klasörüne yedekliyor ve en yeni 8 yedeği tutuyor. Yedek alınırken dünyalar kaydediliyor ve otomatik kayıt bekletiliyor, böylece yedek tutarlı oluyor. Disk dolmak üzereyse yedeği atlıyor ve uyarıyor. /ashlar backup ile elle de alınabiliyor.

Web panel
Tarayıcıdan konsolu görebiliyor, komut çalıştırabiliyor, çevrimiçi oyuncuları ve dünyaları görebiliyor, yedek alabiliyor ve özellikleri açıp kapatabiliyorsunuz. Sade bir panel, gereksiz süs yok.
Varsayılan olarak sadece 127.0.0.1:8180 adresinde açılıyor; dışarıdan erişmek için SSH tüneli ya da HTTPS reverse proxy kullanmanızı öneririm. Giriş token’ı sadece konsolda /ashlar panel ile görünüyor. Yanlış token denemesi dakikada 5 ile sınırlı.

Dahili oy alıcı (Votifier v2)
NuVotifier kurmanıza gerek yok. Token ve HMAC imzalı Votifier v2 protokolünü destekliyor. Oy ödülü komutlarınızı çalıştırıyor ve oyu duyuruyor. Oyuncu çevrimdışıysa ödül, oyuncu girene kadar bekliyor. Varsayılan olarak kapalı; NuVotifier kullanıyorsanız kapalı bırakın.

Hazır ayar paketleri
/ashlar preset survival, smp, skyblock veya minigames komutu; görüş ve simulation mesafesi, mob sınırları, entity activation, item birleştirme, patlamalar ve redstone için denenmiş değerleri server.properties, bukkit.yml, spigot.yml ve paper-world-defaults.yml dosyalarına yazıyor. Eski dosyalar önce yedekleniyor. Yeni ayarlar yeniden başlatınca geçerli oluyor.

Otomatik güncelleme
12 saatte bir GitHub’daki sürümlere bakıyor ve aynı Minecraft sürümü için daha yeni bir build varsa indiriyor. İndirdiği dosyayı GitHub’ın verdiği SHA-256 ile doğruluyor ve sunucu kapanırken jar’ı değiştiriyor. İsteyen sadece bildirim alacak ya da tamamen kapatacak şekilde ayarlayabilir.

Komutlar (yetki: ashlar.admin)

/ashlar: tüm özelliklerin durumu, TPS, MSPT, bellek, dünya bilgileri
/ashlar lag: lag raporu
/ashlar reload: ashlar.yml’yi yeniden yükler
/ashlar preset <isim>: hazır ayar yazar
/ashlar unlock: bot korumasındaki bekletmeyi bitirir
/ashlar pregen [pause|resume|reset]: chunk oluşturma
/ashlar backup : yedek al / yedekleri listele
/ashlar bans, /ashlar ban-ip <ip> [dakika], /ashlar unban-ip <ip>: IP banları
/ashlar unregister <oyuncu>: giriş hesabını siler
/ashlar update: güncellemeyi hemen kontrol eder
/ashlar token, /ashlar panel: oy ve panel token’ları (sadece konsol)

Ayarlar
Her şey sunucu klasöründeki tek dosyada, ashlar.yml’de. Her özelliğin kendi aç/kapa anahtarı var.

Paper’dan aktarma
Sunucunuzu kapatın, Paper jar’ını ashlar-26.2.jar ile değiştirin ve tekrar açın. Dünyalarınız, eklentileriniz ve ayarlarınız olduğu gibi kalır. Ashlar ilk açılışta ashlar.yml dosyasını oluşturur.

Gereksinimler
Hata bulursanız ya da eklenmesini istediğiniz bir şey varsa bu konuya ya da GitHub’a yazabilirsiniz. Geri bildirimleriniz için şimdiden teşekkürler.
Güzel düşünülmüş emek kokan bir proje eline sağlık abi
 
Flamecord'un ücretsiz alternatifi gibi olmuş gerçekten harika olmuş GPL 3.0 lisansına sahip olması da ekstra süper olmuş gayet başarılı bir proje.
 
Flamecord'un ücretsiz alternatifi gibi olmuş gerçekten harika olmuş GPL 3.0 lisansına sahip olması da ekstra süper olmuş gayet başarılı bir proje.
Çok teşekkürler, güzel sözlerin için sağol.

Küçük bir not düşeyim: Flamecord bir proxy (BungeeCord tabanlı), Ashlar ise sunucunun kendisi, yani Paper’ın yerine kuruluyor. Anti-bot ve bağlantı flood koruması gibi kısımlar benziyor ama Ashlar bunları doğrudan sunucuda yapıyor. Tek sunuculu yapılarda araya proxy koymadan bu korumaları almış oluyorsun. Velocity ya da BungeeCord arkasında da sorunsuz çalışıyor; o durumda bağlantı korumasını kendisi kapatıyor, çünkü o iş proxy’ye düşüyor.
 

Hala Discord sunucumuza katılmadın mı?

Büyük bir topluluğun parçası ol, etkinliklere katıl ve özel hediyeler kazanma şansı yakala!

Şimdi Katıl