Înapoi la blogToate tutorialele Metin2
Tutoriale Metin2 · Lecția 82 din 99

Protecția serverului Metin2 împotriva accesului neautorizat: toate ușile, pe rând

2 noiembrie 2026 6 min de citit

Ai pus chei la SSH și un firewall. Bun început, dar un server Metin2 are mai multe „uși” decât pare: site-ul cu panoul de administrare, baza de date, conturile de GM, serverul de patch, chiar și contul de la firma de hosting. Un hoț intră pe ușa cea mai slabă, nu pe cea mai bine păzită. În această lecție faci lista tuturor ușilor și le închizi pe rând.

Pe scurt: faci un inventar al tuturor intrărilor, schimbi toate parolele implicite, ții sistemul actualizat, nu lași fișiere cu permisiuni 777 și te uiți regulat în jurnale. Protecția DDoS e utilă, dar nu înlocuiește nimic din toate acestea.

Cuvinte pe care le vei întâlni

CuvântCe înseamnă
Acces neautorizatCineva intră unde nu are voie: pe server, în baza de date, într-un cont de GM.
Parolă implicităParola cu care vine un program „din fabrică”. O știe oricine are același pachet.
Jurnal (log)Un fișier în care serverul notează ce s-a întâmplat, de exemplu încercările de logare.
Permisiuni de fișierCine are voie să citească sau să modifice un fișier.
2FAAutentificare în doi pași: pe lângă parolă, un cod de pe telefon.

Pasul 1: Fă lista tuturor ușilor

Gândește-te la o casă: ușa din față, ușa din spate, geamurile, garajul. Încuietoarea de la ușa din față nu ajută dacă geamul e deschis. Scrie într-un document fiecare ușă și cine are cheia:

UșaCine intră pe eaCum o închizi
Contul la firma de hostingtuparolă unică și 2FA, dacă există
SSHtu și echipa tehnicăchei SSH, fără root, fără parole
MySQL 3306doar programele de pe serverport închis în firewall
Panoul de admin al site-uluitu și moderatoriiparole unice, conturi separate
Conturile de GM din jocechipagmlist cu niveluri mici
ADMINPAGE din CONFIGdoar serverul însușiparolă schimbată, IP 127.0.0.1
Serverul de patchtudoar tu poți încărca fișiere
Discord, e-mailtu și echipa2FA pe toate conturile

Primele două uși le-ai rezolvat în lecțiile despre SSH și firewall, iar conturile de GM în lecția despre permisiunile GM.

Pasul 2: Schimbă toate parolele implicite

Pachetele de serverfiles circulă pe internet. Dacă tu ai descărcat un pachet, au mai făcut-o și alte mii de oameni, deci parolele din el nu mai sunt secrete.

Locuri de verificat:

  • Contul de joc admin din pachet (și rândul lui din gmlist).
  • Parola MySQL din CONFIG și din db/conf.txt. Dacă o schimbi, o schimbi în toate fișierele care o conțin, altfel canalele nu mai pornesc.
  • ADMINPAGE_PASSWORD din fiecare CONFIG.
  • Contul de admin al site-ului sau al CMS-ului.

Despre ADMINPAGE: în pachetul pe care l-am verificat, fiecare CONFIG are rândurile:

text
ADMINPAGE_PASSWORD: ***
ADMINPAGE_IP: 127.0.0.1

Este o mică „ușă de administrare” a procesului de joc, prin care se pot trimite comenzi precum anunțuri sau oprirea serverului. În pachetul verificat, parola venea completată implicit, aceeași pentru toată lumea. Schimb-o în toate fișierele CONFIG cu o parolă lungă și lasă ADMINPAGE_IP: 127.0.0.1, adică ușa se deschide doar din interiorul serverului. Vezi rapid ce ai acum:

sh
find /usr/home/game -name CONFIG -exec grep -H "ADMINPAGE" {} +

(Calea e un exemplu.) Schimbarea se aplică după un restart al canalelor.

Pasul 3: Ține sistemul actualizat

Programele au uneori găuri de securitate descoperite după lansare. Producătorii le repară prin actualizări. Pe FreeBSD, comanda care îți spune dacă ai programe instalate cu probleme cunoscute este:

sh
pkg audit -F

Ce ar trebui să vezi: ideal, 0 problem(s) in 0 installed package(s) found. Dacă apare o listă, acele programe trebuie actualizate.

Actualizarea sistemului (freebsd-update) și a programelor (pkg upgrade) le faci într-o mentenanță anunțată, după un backup și ideal după ce ai încercat pe serverul de test. O actualizare poate schimba versiunea MySQL sau a unor librării de care depinde jocul. Vezi și cum pregătești o mentenanță fără pierderi.

Pasul 4: Permisiunile fișierelor

Nu face niciodată chmod -R 777 pe folderul jocului. 777 înseamnă „oricine de pe server poate citi, modifica și rula orice”. Pare că rezolvă probleme, dar de fapt lasă ușa larg deschisă.

Fișierele cu parole (CONFIG, db/conf.txt) trebuie să poată fi citite doar de utilizatorul care rulează jocul. Caută fișierele pe care le poate modifica oricine:

sh
find /usr/home/game -perm -o+w -type f

Ideal, comanda nu afișează nimic. Dacă afișează fișiere, scoate dreptul de scriere pentru „ceilalți”:

sh
chmod o-w /usr/home/game/channel1/first/CONFIG

(Exemplu pentru un fișier; repetă doar pentru fișierele găsite și testează pornirea după.)

Pasul 5: Uită-te în jurnale

Încercările de logare SSH apar în /var/log/auth.log. Ultimele încercări eșuate:

sh
grep -E "Failed|Invalid user" /var/log/auth.log | tail -n 20

Ce ar trebui să vezi: probabil multe încercări de la IP-uri necunoscute. Dacă ai închis parolele, ele nu au cum să reușească. Ce te interesează sunt logările reușite pe care nu le recunoști:

sh
grep "Accepted" /var/log/auth.log | tail -n 20

Fiecare rând trebuie să fie al tău sau al cuiva din echipă. În joc, uită-te și în log.command_log (comenzile GM-ilor), cum ai văzut în lecția despre conturile GM.

Pasul 6: Clientul nu păstrează secrete

Tot ce pui în client ajunge pe calculatorul fiecărui jucător și poate fi deschis. În client nu pui niciodată parole de bază de date, chei de acces sau adrese de panouri interne. Iar orice verificare importantă (prețuri, drop, permisiuni) trebuie făcută pe server, nu în client.

Protecția DDoS nu e același lucru

Un atac DDoS încearcă să-ți „înece” serverul în trafic, ca să cadă. Protecția Anti-DDoS de la Zentaris Host filtrează acest trafic la nivel de rețea (vezi protecția DDoS). Dar nu te apără de o parolă implicită uitată sau de un GM care creează iteme. Sunt probleme diferite, cu soluții diferite.

Greșeli des întâlnite

  • Aceeași parolă peste tot. Dacă scapă una, scapă toate. Folosește un manager de parole.
  • Ai dat parola MySQL pe Discord „ca să te ajute cineva”. Schimb-o imediat.
  • Ai lăsat copii de rezervă ale bazei de date în folderul public al site-ului. Oricine le poate descărca. Backup-urile stau în afara site-ului.
  • Ai uitat conturile oamenilor care au plecat din echipă. Le scoți accesul în aceeași zi: SSH, gmlist, panou, Discord.

Întrebări frecvente

Cum îmi dau seama că cineva a intrat pe server?

Semne: logări „Accepted” pe care nu le recunoști, iteme apărute din nimic, comenzi GM neașteptate în command_log, fișiere modificate pe care nu le-ai atins. Dacă vezi așa ceva, schimbă imediat toate parolele și cere ajutor firmei de hosting.

E suficient să schimb parolele o singură dată?

Le schimbi la lansare și de fiecare dată când pleacă cineva din echipă sau bănuiești o scurgere.

Pot să-mi „testez” singur serverul?

Da, cu verificări defensive pe serverul tău: lista de porturi cu sockstat, testul de port din lecția de firewall, comenzile din această lecție. Nu testa niciodată serverele altora.

Ce urmează

Acum ai toate ușile închise. Le punem pe toate, împreună cu restul pregătirilor, într-un checklist tehnic de lansare. Toate lecțiile sunt în lista tutorialelor Metin2.

Server Metin2 gata de joc

Găzduire Metin2 în România, cu instalare de serverfiles, bază de date MySQL și protecție Anti-DDoS inclusă.

DiscordWhatsApp