OP#1 · 1d ago
DIO 1/3 — Infrastruktura, sigurnost i backup
21.10.2026. | Infrastruktura, sigurnost, server i najava mobilne aplikacije
Igraj. Druži se. Napreduj.
Pozdrav ekipa! :D
Danas smo odradili veliki pregled BCS infrastrukture, popravili konkretne probleme u panelu i automatizaciji, provjerili sigurnosne kopije stvarnim povratom baze, uskladili izvore naših plugina i postavili nove verzije na CS server. Uz to najavljujemo naredni projekat: BCS Community mobilnu aplikaciju.
Želim da zajednica ima precizan pregled rada: šta je bilo zatečeno, šta smo promijenili, šta je već provjereno uživo i šta još ostaje. Ispod su svi današnji radni obuhvati, bez objavljivanja privatnih podataka igrača, pristupnih podataka i internih lokacija sigurnosnih kopija.
Pregledali smo portal, forum, administratorski panel, MySQL bazu, zakazane poslove, privatne izvještaje izvršavanja, sigurnosne kopije i veze između panela i game servera. Nismo se oslonili samo na zelene oznake na dashboardu: upoređivani su stvarni podaci baze, aktivni izvori, redovi za obradu i originalni logovi.
Provjera je obuhvatila:
Osnovni servisi bili su dostupni; nije potvrđen aktivni pad panela ili baze. U uzorku nije bilo trenutnih InnoDB lock čekanja, a broj konekcija bio je ispod limita. VIP provjere nisu pokazale duple aktivne identitete ili istekle VIP-ove koji su ostali aktivni. U trenutku tog pregleda evidentirana su 34 aktivna VIP korisnika.
Ban, gag i cache redovi u početnom uzorku nisu imali pending/failed zaostatak. Rank collector je prijavljivao ready stanje bez neobrađenih spool fajlova i neuspjelih događaja. Donation watcher je završavao provjere bez grešaka; neplaćene narudžbe nisu aktivirane. Pregledane su i dostave Discord obavještenja, uz razlikovanje današnje dostave od historijskih neuspjelih pokušaja. Radi ovog pregleda nije slana testna javna Discord poruka.
Važno: nađeni su stvarni propusti iako su pojedini dashboardi pokazivali 100%. Ocjene različitih ekrana pokrivaju različite mehanizme i nisu dokaz da je cijela infrastruktura bez problema.
Pronađena je jedna stara serverska ovlast koja više nije imala odgovarajući aktivni Admin/VIP/Reserved izvor. Nakon provjere promjene identiteta i odobrenja vlasnika:
Naknadna provjera nije pronašla dodatne aktivne ovlasti bez izvora, duple admin identitete niti aktivne istekle admin/VIP ovlasti. Tri stara neaktivna zapisa s potpuno praznim pravima nisu ponovo aktivirana niti nepotrebno brisana.
Ovo je usklađivanje prava pristupa. Sam nalaz stare ovlasti ne predstavlja dokaz zloupotrebe ili upada.
Iako je petominutni cron postojao, Admin Champions cache ostao je na starim podacima iz juna. Ispravljen je način pokretanja kroz CLI: cron režim sada se postavlja prije učitavanja zajedničke inicijalizacije, uz ispravan kontekst zahtjeva.
Dodani su zapis početka i završetka, rezultat izvršavanja i broj obrađenih redova. Neuspjeh se više ne može predstaviti kao uspješan izlazak skripte.
Potvrđeno je redovno automatsko osvježavanje sva četiri perioda: danas, 7 dana, 30 dana i ukupno. Svaki period imao je po deset osvježenih redova. Postojeći petominutni raspored nije mijenjan.
Dnevni prikaz vidio je nove logove, ali je oktobarski ZIP ostao na starom snimku. Uzrok je bio pogrešan izbor mjeseca kod ranije arhiviranih fajlova: izmijenjeno vrijeme fajla moglo je prevagnuti nad stvarnim arhivskim mjesecom. Worker je određene greške izbora prešutno preskakao.
Ispravljeno je sljedeće:
Kontrolisano izvršavanje istog workera uspješno je izgradilo:
Prijašnji zaostatak od 848 logova izvan oktobarskog ZIP-a više nije prikazan. Logovi nisu bili izgubljeni — bili su dostupni u dnevnom prikazu, a mjesečni paket nije pratio stvarno stanje.
Arhive predstavljaju snimak u trenutku izgradnje. Server nastavlja pisati nove logove. Redovni dnevni raspored ostao je isti; njegova naredna noćna runda još nije dio današnje potvrde.
Cleanup je završavao obradu, ali je svakodnevno ispisivao upozorenje zbog nedostajućeg REQUEST_METHOD u CLI okruženju. Kontekst je sada pravilno postavljen prije inicijalizacije, uz zadržanu CLI-only zaštitu.
Kontrolisano izvršavanje završilo je uspješno, bez tog upozorenja. Prema postojećoj retention politici obrađeno je 511 starih Reserved logova; VIP i queue dio tog izvršavanja nisu imali stavki za uklanjanje.
Rokovi čuvanja i SQL uslovi nisu mijenjani. Postojeći SQL retention i zasebno arhiviranje serverskih logova također su pregledani; razlikujemo te poslove od mjesečne ZIP izgradnje.
Ranije je zbirni prikaz pratio samo dio mehanizama. Sada nadzor obuhvata svih 11 redovnih zadataka:
Uspjeh se utvrđuje prema stvarnom završetku, statusu i izvještaju izvršavanja. Vrijeme izmjene lock fajla više nije zamjena za dokaz uspjeha. Glavni cron sada jasno razlikuje početak, uspješan završetak i grešku te vraća odgovarajući izlazni status.
Provjereni su slučajevi urednog, neuspjelog, zastarjelog, nedostajućeg i budućeg zapisa. Nakon izmjena potvrđeno je 11/11 urednih rezultata, bez zaostalih privremenih testnih cronova. Redovni glavni cron nastavio je uspješno raditi.
Dnevne poslove koji još nisu došli na svoj naredni redovni termin ne predstavljamo kao ponovo noćno testirane.
Ispravljeni su prikazi koji su ranije mogli davati nepotpunu sliku:
Infrastructure Health nakon ciljane korekcije ovlasti prikazao je 100%, odnosno svih 13 provjera tog modula. Odvojena web dijagnostika nakon proširenog pregleda pokazivala je 98% zbog odstupanja sata baze. Početni Performance Center prikazivao je 84%; to nije mjera performansi svih stranica niti rezultat današnjeg ubrzanja.
Ne tvrdimo da je čitava infrastruktura „100% bez greške“ samo zato što je jedan modul zelen.
Dva zahtjeva iz maja ostala su označena kao pending. Provjereno je da se radi o globalnom osvježavanju VIP statusa, a ne o kupovini ili aktivaciji VIP-a. Postojala su kasnija uspješna osvježavanja.
Originali su prvo sačuvani. Ta dva konkretna zapisa zatim su označena kao cancelled zbog zastarjelosti, uz obrazloženje i sačuvanu historiju. Nisu lažno označena kao upravo izvršena.
Nisu slane nove komande serveru niti mijenjani VIP statusi igrača. Provjeren završni prikaz panela: READY / Queue 0 / Failed 0.
Pregledani su i historijski donation statusi: istekli zahtjevi i raniji nepotpuni iznosi nisu tretirani kao nove potvrđene uplate. Današnji audit nije bio novi end-to-end test stvarne plaćene narudžbe i nije korišten za ručnu dodjelu VIP-a bez dokaza.
Nismo stali na tome da backup fajl postoji.
Jutarnja kopija:
Nova kopija nakon današnjih popravki:
Granica potvrde: puni izolovani restore odrađen je za jutarnji backup. Za noviju kopiju potvrđeni su integritet i odabrani sadržaji, ali nije ponovljen puni restore. SQL backup nije kompletna kopija PHP aplikacije i CS servera. Postojeći PC/VPS/Drive backup izvještaji također su pregledani, ali danas nije nezavisno ponovo hashirano svako udaljeno odredište niti pokretan kompletan vraćeni CS server.
Pregledani su aplikacijski zapisi uspješnih i neuspješnih prijava, 2FA/CSRF odbijanja i evidentiranih promjena sesija. Dostupna PHP dijagnostika u svom obuhvatu nije prikazivala fatalne greške ni upozorenja nakon popravki.
Pregledani zapisi ne potvrđuju upad. Istovremeno, ovaj pregled nije potpuna forenzička analiza svih sistemskih i hosting logova. Pojedina blokirana prijava ili promjena sesije nije sama po sebi dokaz kompromitacije.
Danas smo odvojeno istražili i jedan prijavljeni slučaj ponovljenog kicka. Upoređeni su panel, originalni HLDS/AMXX zapisi, aktivna zaštita i njen detaljni dnevnik.
Potvrđeno je da su tri kicka došla iz konzole prema ReChecker pravilu s porukom „SteamID Changer [#10]“. Nisu bili zbog Reserved slota. Broj #10 je oznaka pravila; samo ime poruke nije dokaz da je igrač stvarno mijenjao identitet.
Pravilo u provjerenom slučaju nije bilo vezano isključivo za jedan konkretan poznati cheat hash. Zato opravdanost detekcije ostaje otvorena do pregleda sporne datoteke i porijekla instalacije. Ako se igrač javi na forum, detalji se mogu provjeriti prema sačuvanim dokazima. Zaštita nije isključena, pravilo nije mijenjano i igrač nije javno proglašen krivim.
Nastavak slijedi u narednoj poruci ove teme — dio 2/3.
BCS COMMUNITY — VELIKI DNEVNI CHANGELOG
21.10.2026. | Infrastruktura, sigurnost, server i najava mobilne aplikacije
Igraj. Druži se. Napreduj.
Pozdrav ekipa! :D
Danas smo odradili veliki pregled BCS infrastrukture, popravili konkretne probleme u panelu i automatizaciji, provjerili sigurnosne kopije stvarnim povratom baze, uskladili izvore naših plugina i postavili nove verzije na CS server. Uz to najavljujemo naredni projekat: BCS Community mobilnu aplikaciju.
Želim da zajednica ima precizan pregled rada: šta je bilo zatečeno, šta smo promijenili, šta je već provjereno uživo i šta još ostaje. Ispod su svi današnji radni obuhvati, bez objavljivanja privatnih podataka igrača, pristupnih podataka i internih lokacija sigurnosnih kopija.
1. Kompletan pregled zdravlja BCS infrastrukture
Pregledali smo portal, forum, administratorski panel, MySQL bazu, zakazane poslove, privatne izvještaje izvršavanja, sigurnosne kopije i veze između panela i game servera. Nismo se oslonili samo na zelene oznake na dashboardu: upoređivani su stvarni podaci baze, aktivni izvori, redovi za obradu i originalni logovi.
Provjera je obuhvatila:
- Dostupnost web servisa, SSL, hosting prostor i PHP okruženje.
- Bazu, broj konekcija, aktivna čekanja, stanje podataka i izvještaje performansi.
- Admin, VIP i Reserved ovlasti, identitete i istek prava.
- Ban i gag redove, cache bridge i komunikaciju panela sa serverom.
- Admin Activity, Admin Champions, rank kolektore i automatske rank nagrade.
- Donation watcher, automatizaciju provjere uplata i evidentirane Discord dostave.
- Svih 11 zakazanih cron poslova, arhiviranje, retention i cleanup.
- BlackBox dijagnostiku, RCON dostupnost i izvještaje backupa.
Osnovni servisi bili su dostupni; nije potvrđen aktivni pad panela ili baze. U uzorku nije bilo trenutnih InnoDB lock čekanja, a broj konekcija bio je ispod limita. VIP provjere nisu pokazale duple aktivne identitete ili istekle VIP-ove koji su ostali aktivni. U trenutku tog pregleda evidentirana su 34 aktivna VIP korisnika.
Ban, gag i cache redovi u početnom uzorku nisu imali pending/failed zaostatak. Rank collector je prijavljivao ready stanje bez neobrađenih spool fajlova i neuspjelih događaja. Donation watcher je završavao provjere bez grešaka; neplaćene narudžbe nisu aktivirane. Pregledane su i dostave Discord obavještenja, uz razlikovanje današnje dostave od historijskih neuspjelih pokušaja. Radi ovog pregleda nije slana testna javna Discord poruka.
Važno: nađeni su stvarni propusti iako su pojedini dashboardi pokazivali 100%. Ocjene različitih ekrana pokrivaju različite mehanizme i nisu dokaz da je cijela infrastruktura bez problema.
2. Uklonjena zastarjela administratorska ovlast
Pronađena je jedna stara serverska ovlast koja više nije imala odgovarajući aktivni Admin/VIP/Reserved izvor. Nakon provjere promjene identiteta i odobrenja vlasnika:
- Sačuvan je originalni red za povratak.
- Uklonjena je isključivo zastarjela ovlast.
- Novi identitet i njegova postojeća prava ostali su nepromijenjeni.
- Admin lista osvježena je na serveru bez restarta.
Naknadna provjera nije pronašla dodatne aktivne ovlasti bez izvora, duple admin identitete niti aktivne istekle admin/VIP ovlasti. Tri stara neaktivna zapisa s potpuno praznim pravima nisu ponovo aktivirana niti nepotrebno brisana.
Ovo je usklađivanje prava pristupa. Sam nalaz stare ovlasti ne predstavlja dokaz zloupotrebe ili upada.
3. Admin Champions ponovo se automatski osvježava
Iako je petominutni cron postojao, Admin Champions cache ostao je na starim podacima iz juna. Ispravljen je način pokretanja kroz CLI: cron režim sada se postavlja prije učitavanja zajedničke inicijalizacije, uz ispravan kontekst zahtjeva.
Dodani su zapis početka i završetka, rezultat izvršavanja i broj obrađenih redova. Neuspjeh se više ne može predstaviti kao uspješan izlazak skripte.
Potvrđeno je redovno automatsko osvježavanje sva četiri perioda: danas, 7 dana, 30 dana i ukupno. Svaki period imao je po deset osvježenih redova. Postojeći petominutni raspored nije mijenjan.
4. Popravljeno mjesečno arhiviranje serverskih logova
Dnevni prikaz vidio je nove logove, ali je oktobarski ZIP ostao na starom snimku. Uzrok je bio pogrešan izbor mjeseca kod ranije arhiviranih fajlova: izmijenjeno vrijeme fajla moglo je prevagnuti nad stvarnim arhivskim mjesecom. Worker je određene greške izbora prešutno preskakao.
Ispravljeno je sljedeće:
- Validni arhivski mjesec sada ima prednost pri izboru arhiviranih logova.
- Aktivni, nearhivirani fajlovi zadržali su postojeću datumsku logiku.
- Greške izbora se evidentiraju i vraćaju neuspješan rezultat.
- Dodan je jasan završni izvještaj workera.
- Zadržani su postojeći limiti veličine/broja logova i provjera privremenog ZIP-a prije objave.
Kontrolisano izvršavanje istog workera uspješno je izgradilo:
- Oktobar 2026: 1.245 logova.
- Septembar 2026: 2.250 logova.
Prijašnji zaostatak od 848 logova izvan oktobarskog ZIP-a više nije prikazan. Logovi nisu bili izgubljeni — bili su dostupni u dnevnom prikazu, a mjesečni paket nije pratio stvarno stanje.
Arhive predstavljaju snimak u trenutku izgradnje. Server nastavlja pisati nove logove. Redovni dnevni raspored ostao je isti; njegova naredna noćna runda još nije dio današnje potvrde.
5. Cleanup bez ponavljajućeg CLI upozorenja
Cleanup je završavao obradu, ali je svakodnevno ispisivao upozorenje zbog nedostajućeg REQUEST_METHOD u CLI okruženju. Kontekst je sada pravilno postavljen prije inicijalizacije, uz zadržanu CLI-only zaštitu.
Kontrolisano izvršavanje završilo je uspješno, bez tog upozorenja. Prema postojećoj retention politici obrađeno je 511 starih Reserved logova; VIP i queue dio tog izvršavanja nisu imali stavki za uklanjanje.
Rokovi čuvanja i SQL uslovi nisu mijenjani. Postojeći SQL retention i zasebno arhiviranje serverskih logova također su pregledani; razlikujemo te poslove od mjesečne ZIP izgradnje.
6. Nadzor sada prati svih 11 cron poslova
Ranije je zbirni prikaz pratio samo dio mehanizama. Sada nadzor obuhvata svih 11 redovnih zadataka:
- Admin Champions cache.
- Centralni infrastructure cron.
- Pregled arhive logova.
- BlackBox watch.
- Arhiviranje serverskih logova.
- SQL log retention.
- Cleanup starih logova.
- Mjesečni ZIP cache.
- Dnevni backup baze.
- Rank rewards.
- Donation watcher.
Uspjeh se utvrđuje prema stvarnom završetku, statusu i izvještaju izvršavanja. Vrijeme izmjene lock fajla više nije zamjena za dokaz uspjeha. Glavni cron sada jasno razlikuje početak, uspješan završetak i grešku te vraća odgovarajući izlazni status.
Provjereni su slučajevi urednog, neuspjelog, zastarjelog, nedostajućeg i budućeg zapisa. Nakon izmjena potvrđeno je 11/11 urednih rezultata, bez zaostalih privremenih testnih cronova. Redovni glavni cron nastavio je uspješno raditi.
Dnevne poslove koji još nisu došli na svoj naredni redovni termin ne predstavljamo kao ponovo noćno testirane.
7. Tačniji health prikazi, bridge statusi i upozorenja
Ispravljeni su prikazi koji su ranije mogli davati nepotpunu sliku:
- Reserved bridge sada koristi odgovarajući postojeći heartbeat, umjesto pogrešnog prikaza „No table/data“.
- Kod banova se razlikuje nedostajući poseban heartbeat od dokaza da ban sistem ne radi. Stanje posebne tabele nije samo po sebi dokaz neispravnog enforcementa.
- BlackBox jasnije označava SQL heartbeat kao svoj dokaz kada web okruženje nema pristup lokalnom serverskom filesystemu. To se ne predstavlja kao novo čitanje svih log fajlova.
- VIP Sync prikazuje i ranije izostavljene stare zahtjeve na čekanju.
- Cron greške i stvarni obuhvat nadzora vidljiviji su u dijagnostici.
- PHP prikaz sada razlikuje neučitanu OPcache ekstenziju od slučaja kada samo statistike nisu dostupne.
Infrastructure Health nakon ciljane korekcije ovlasti prikazao je 100%, odnosno svih 13 provjera tog modula. Odvojena web dijagnostika nakon proširenog pregleda pokazivala je 98% zbog odstupanja sata baze. Početni Performance Center prikazivao je 84%; to nije mjera performansi svih stranica niti rezultat današnjeg ubrzanja.
Ne tvrdimo da je čitava infrastruktura „100% bez greške“ samo zato što je jedan modul zelen.
8. Dva stara VIP Sync zahtjeva zatvorena uz sačuvanu historiju
Dva zahtjeva iz maja ostala su označena kao pending. Provjereno je da se radi o globalnom osvježavanju VIP statusa, a ne o kupovini ili aktivaciji VIP-a. Postojala su kasnija uspješna osvježavanja.
Originali su prvo sačuvani. Ta dva konkretna zapisa zatim su označena kao cancelled zbog zastarjelosti, uz obrazloženje i sačuvanu historiju. Nisu lažno označena kao upravo izvršena.
Nisu slane nove komande serveru niti mijenjani VIP statusi igrača. Provjeren završni prikaz panela: READY / Queue 0 / Failed 0.
Pregledani su i historijski donation statusi: istekli zahtjevi i raniji nepotpuni iznosi nisu tretirani kao nove potvrđene uplate. Današnji audit nije bio novi end-to-end test stvarne plaćene narudžbe i nije korišten za ručnu dodjelu VIP-a bez dokaza.
9. Backup provjeren stvarnim povratom baze
Nismo stali na tome da backup fajl postoji.
Jutarnja kopija:
- Nezavisno je provjeren SHA-256, gzip integritet i puna dekompresija.
- Baza je uvezena u zasebnu lokalnu MariaDB instancu.
- Uspješno je vraćeno svih 106 tabela i jedan SQL pogled.
- Sve tabele prošle su provjeru, a pogled je uspješno pročitan.
- Provjereni su kontrolni brojevi podataka za admin, VIP, ban, donation, chat/connect/command logove i round metrics.
- Produkcijska baza tokom restore testa nije mijenjana; testna instanca poslije je ugašena.
Nova kopija nakon današnjih popravki:
- Napravljen je svjež backup sa 108 tabela i jednim pogledom, uključujući dodane sigurnosne kopije redova.
- Potvrđeni su veličina, SHA-256, gzip integritet i puna dekompresija.
- U sadržaju su provjereni zatvoreni VIP Sync zahtjevi, sigurnosna tabela i očekivano stanje stare/nove administratorske ovlasti.
- Kopija je sačuvana privatno na hostingu i lokalno, bez brisanja ranijih arhiva.
- Jednokratni backup cron uklonjen je nakon završetka; redovni raspored nije mijenjan.
Granica potvrde: puni izolovani restore odrađen je za jutarnji backup. Za noviju kopiju potvrđeni su integritet i odabrani sadržaji, ali nije ponovljen puni restore. SQL backup nije kompletna kopija PHP aplikacije i CS servera. Postojeći PC/VPS/Drive backup izvještaji također su pregledani, ali danas nije nezavisno ponovo hashirano svako udaljeno odredište niti pokretan kompletan vraćeni CS server.
10. Pregled pristupa i sigurnosnih logova
Pregledani su aplikacijski zapisi uspješnih i neuspješnih prijava, 2FA/CSRF odbijanja i evidentiranih promjena sesija. Dostupna PHP dijagnostika u svom obuhvatu nije prikazivala fatalne greške ni upozorenja nakon popravki.
Pregledani zapisi ne potvrđuju upad. Istovremeno, ovaj pregled nije potpuna forenzička analiza svih sistemskih i hosting logova. Pojedina blokirana prijava ili promjena sesije nije sama po sebi dokaz kompromitacije.
11. Provjeren prijavljeni automatski kick
Danas smo odvojeno istražili i jedan prijavljeni slučaj ponovljenog kicka. Upoređeni su panel, originalni HLDS/AMXX zapisi, aktivna zaštita i njen detaljni dnevnik.
Potvrđeno je da su tri kicka došla iz konzole prema ReChecker pravilu s porukom „SteamID Changer [#10]“. Nisu bili zbog Reserved slota. Broj #10 je oznaka pravila; samo ime poruke nije dokaz da je igrač stvarno mijenjao identitet.
Pravilo u provjerenom slučaju nije bilo vezano isključivo za jedan konkretan poznati cheat hash. Zato opravdanost detekcije ostaje otvorena do pregleda sporne datoteke i porijekla instalacije. Ako se igrač javi na forum, detalji se mogu provjeriti prema sačuvanim dokazima. Zaštita nije isključena, pravilo nije mijenjano i igrač nije javno proglašen krivim.
Nastavak slijedi u narednoj poruci ove teme — dio 2/3.