5.285 pregleda

Projekt Kanta: Minecraft server za sve

9

Kako pretvoriti osakaćeno računalo u izvor zabave, i sve to u duhu zajednice slobodnog i otvorenog softvera? Možda zvuči komplicirano, ali nije nemoguće. Naš forumaš Tomislav001 uspio je u tome, a u nastavku saznajte kako.

U ovom članku ću ukratko opisati sustav koji sam postavio za kontrolu svojih servera. Nadam se da će vam biti zanimljivo, da će ove upute nekome i poslužiti te da ćete naučiti nešto novo o Linuxu i mrežama.

Što je Projekt Kanta?

“Kanta” je od milja zvan moj mali komp kojemu je nažalost “otišla” grafička kartica, Kanta vrti Ubuntu, koji je bio instaliran i prije kvara, a budući da nemam nikakav izlaz slike iz nje nisam mogao učiniti ništa drugo nego ostaviti ju kako jest. Naravno, to nije spriječilo Kantu ni u čemu, te je uz moć Linuxa i mojeg znanja niz godina služila kao moj osobni remote storage i UPnP stream server.

minecraft-kanta-racunalo

 

Međutim, prije par mjeseci sam primijetio da moja mlađa sestra, bratići, i ostali klinci u selu igraju Minecraft. Tada mi je na pamet pala ideja, i pomislio sam: “zašto bi svi oni igrali posebno kad moja Kanta stoji neiskorištena…ionako radi 24/7”?

minecraft-kanta-racunalo-iznutra

 

I tako sam postavio DDNS koristeći domene lokalnih obrtnika čiji se klinci igraju na serveru, otvorio portove na routeru i dao adresu svojoj mlađoj sestri da podijeli u razredu. To je bio jedini način da proširim vijesti o novom serveru među djecom. Odmah prvi dan ih se okupilo 4-5 , i bilo mi je drago što se socijaliziraju, malo za promjenu od uobičajenog. (Nije baš da vidim klince kako se igraju na ulici kao prije. Malo je žalosno što su svi za kompovima, ali s druge strane, na ovaj način se barem nekako druže.)

Kanta 2: Povratak Kante

U početku bijaše originalna Kanta. Kao što sam već spomenuo, to je bio moj stolni komp koji je pogonio dualcore Athlon II 3.0 GHz sa 2 GB RAM-a, a služio je samo za spremanje filmova, slika, glazbe, i ostalog. Da bih lakše pristupao tim podacima (naravno, mogao bih to i kroz SSH, ali prosječan korisnik baš i ne), postavio sam Mediatomb UPnP server s kojim sam mogao pristupiti sadržajima sa svih uređaja spojenih na kućni LAN. (Uz ostalo što slijedi, ovaj setup je još uvijek u upotrebi).

Međutim, jedino usko grlo u tom svemu mi je bio internet. Najbolje rješenje za taj problem bio je VPS s jednako snažnom konfiguracijom. Tako je nastala Kanta 2.

Cijeli Minecraft server sa stare Kante sam kopirao na Kantu 2. Zone na domenama krusec.com i staklork.hr postavio sam da gledaju sa DDNS adrese Kante na IP adresu Kante 2.
Ovo je bilo nužno da igrači ne bi osjetili razliku u kompletnoj promjeni servera. Kantu 2 također pokreće Ubuntu da bi kopiranje s Kante 1 bilo jednostavnije.

Backup i tehnički detalji

Sustav se sada sastoji od mojih skriptica koje se vrte svake sekunde na serveru i provjeravaju je li sve u redu s datotekama Minecraft servera. Radi se o malim Bash skriptama koje primjerice provjeravaju md5 sum datoteka u kojima su zapisana imena administratora. Prije postavljanja ovoga nisam znao da postoji hack koji ubacuje imena igrača u ovu datoteku i daje im administratorske ovlasti.

Kanta i moji drugi uređaji spojeni su na VPN mrežu koja mi osigurava pristup Kanti samo s određenih uređaja.

Backup na serveru pokreće se svaki sat. Koristim Attic i skriptu kućne izrade koju sam napisao za čuvanje kompletnog sadržaja servera zguranog u što manji prostor. Attic je pak Python skripta koja podržava deduplikaciju, što znači da nikada ne sprema višestruke kopije iste datoteke, već samo jednu, a dalje sprema samo razlike između njih. U praksi to znači da 10 sigurnosnih kopija jednog te istog foldera veličine 50 MB s Atticom ne zauzima 500 MB prostora, nego samo 120.

Budući da sada imam 2 servera, backup se svaki dan u 00:00 s Kante 2 sprema na Kantu, a obje čuvaju backup mjesec dana kako bih osigurao sigurnost servera čak i u najgorem slučaju.

Zabbix i ostali alati za administraciju

Dva servera dala su mi ideju da postavim Zabbix sustav za praćenje, čiji demo možete pogledati ovdje kao guest. Zabbix je open source, profesionalni sustav za praćenje rada servera i ostalih komponenti mreže. Kanta je Zabbix server, dok je Kanta 2 klijent koji šalje podatke serveru, a on ih zatim pohranjuje u obliku grafova. Kao guest na mojem Zabbixu možete pogledati trenutne podatke o Kanta 2 serveru kao što su opterećenje procesora, zauzeće RAM-a, swap, i slično.

Postavio sam triggere koji mi javljaju kada nešto nije u redu sa Kantom 2, te mi Kanta odmah pošalje push notifikaciju na mobitel i desktop notifikaciju na računala koja su spojena na VPN (ako su uključena i dostupna). Vrlo praktično, notifikacija sadrži i opis problema.

Uz pomoć Zabbixa također pratim i stanje zauzeća RAM-a na sustavu. Ako slobodna memorija padne ispod 300 MB, Zabbix pokreće skriptu koja obavještava igrače da je server ostao bez RAM-a te da se mora restartati. Zatim automatski restarta server i također pošalje notifikacije o tome. Ogromna prednost ovoga je automatizacija u slučaju problema.

Za ilustraciju, ovako izgleda jednostavna mapa mojeg ZABBIX sustava:

minecraft-kanta-jednostavna-mapa

Na Kanti 2 se pokreće i Apache2 web server koji služi samo za prikazivanje male HTML datoteke s objašnjenjem za slučaj da netko otvori adresu u web pregledniku. (Osim Apache2, za pokretanje web stranica postoji i Nginx, koji inače preferiram zato što je brži i daje više kontrole nad sadržajem stranica.)

Kanta 2 također vrti Ajenti panel za kontrolu izvana, ali rijetko ga koristim budući da se oslanjam na kontrolu kroz SSH. Ajenti je odličan panel za game i storage servere; olakšava posao onima koji ne znaju koristiti Linux kroz SSH i vole klikati na dugmiće. Spomenut ću još i ISPConfig – odličan open source panel za hosting providere. Daje vam potpunu kontrolu nad web stranicama i mail računima, FTP korisnicima, DNS zonama i ostalim mrežnim začkoljicama.

Fail2ban je poznata skripta koja skenira logove i pronalazi rezultate koji odgovaraju upitima napisanim korištenjem regularnih izraza. Postavljena je da štiti server od bruteforce i sličnih napada na SSH portu i Ajenti panelu. Obje kante su zaštićene na ovaj način, a postavljanje je relativno jednostavno. Potrebno je urediti datoteku /etc/fail2ban/jail.local i naznačiti da prati određene logove, te u slučaju da naiđe na triger koji smo postavili poduzima određene mjere. Naprimjer, ako je netko s istog IP-a više puta unio pogrešnu adresu u SSH login, skripta uzima taj IP i trajno ga blokira.

Održavanje Minecraft servera

Minecraft server na Kanti 2 je standardni Bukkit 1.8 (ime nije utjecalo na odabir) sa samo par osnovnih dodataka za zaštitu igrača od krađe identiteta. Tu su i još neki dodaci koji dobro dođu za zaštitu određenih područja od rušenja. Igrače sam podijelio u grupe da bih lakše kontrolirao masu, pa tako imam grupu za administratore, grupu u kojoj su članovi servera, i jednu grupu za pridošlice da ne bi došlo do neželjenih, destruktivnih interakcija. Svaka grupa ima pravo pokretati određene naredbe i uređivati određene dijelove Minecraft svijeta.

Detaljnija mapa mog sustava izgleda otprilike ovako:

minecraft-kanta-mapa

Dođite i igrajte Minecraft na Kanti!

Budući da sada imam dovoljnu brzinu, odlučio sam otvoriti Kantu za ostatak Hrvatske. Šteta je da bude samo za Donji Miholjac i okolicu, i da se ne iskoristi.

Želim stvoriti server koji će biti siguran i na kojem će svatko moći ostaviti svoje klince da se igraju online u prijateljskom okruženju bez cyber-bullyinga i sličnog nepristojnog ponašanja. Isto tako, cilj je da igranje bude dovoljno jednostavno, da se je lako snaći, i naravno, da u konačnici svima bude zabavno. Takvih sigurnih zona nema mnogo na internetu, pogotovo za Minecraft, a ako i postoje, za njih se plaća članarina ili neke slične stvari.

minecraft-kanta-lzs

Ekipa na serveru je u dobi od 6 do 13 godina, što je tipično za tu igru, ali i oko njih ima poprilično posla. Server administriram uz pomoć i dobru volju moje djevojke i jednog prijatelja. Mi smo tu uglavnom da rješavamo svađe – nazovimo to kao mali online vrtić. Igrači imaju punu slobodu igranja, uz par pravila koja je nužno poštovati.

Ako znate nekog tko igra Minecraft, imate djecu koja igraju, ili možda vi sami želite zaigrati, pozivam vas da nam se pridružite!

Adrese servera su kanta.staklork.hr ili kanta.krusec.com – izaberite si kantu koja vam je draža. 🙂

Za kraj, zahvaljujem ekipi sa LZS foruma jer bez njih ja vjerojatno ne bih postao sysadmin. Hvala vam! 🙂

Cheers,

Tomislav001

VN:F [1.9.22_1171]
Rating: 4.8/5 (4 votes cast)
Projekt Kanta: Minecraft server za sve, 4.8 out of 5 based on 4 ratings

Povezani članci:

Ubuntu 12.04 donosi pet g...
Objavljen Speed Dreams 2....
Nakon par godina kontrove...
Gameplay Football - Zaigr...
Valve najavio Steam Machi...

9 komentara

  1. vlado napisao:

    jbg od gore napisanog ne razumijem ništa

  2. citatelj2 napisao:

    Odlično. Svaka čast na trudu. Što mora biti instalirano na računalu krajnjeg korisnika ( igrača ) da bi mogao igrati, i trebaju li mu kakvi pristupni podaci ?

  3. Tomislav001 napisao:

    Jedan mali update, postavio sam Zabbix na Kanta1 da prati jeli port 25565(Minecraft server)
    otvoren i ako port nije otvoren pokreće skriptu koja se kroz ssh spaja na Kanta2 i pokreće drugu skriptu koja provjerava vrti li se minecraft server, ako se ne vrti ponovo ga pokreće

    Zabbix provjera to radi svakih 30 sekundi tako da bude što manji downtime u slucaju crash-a Minecraft servera

  4. hrx napisao:

    Ili mogu igrati besplatni minetest koji je u ubuntu repozitorijima

  5. hrx napisao:

    Probao spojiti djecu. Izbaci mi failed to connect, outdated server, im still on 1.11.2

Ostavi komentar

© 2017 Linux Za Sve. | Impressum | Sadržaj je licenciran pod CC-SA-3.0 ako nije drugačije naznačeno.
Proudly designed by Theme Junkie.