Automatska instalacija

Automatski način: jedna skripta iz korisničkog naloga priprema ceo server (veb-stek Apache + PHP, baza podataka, bezbednosni alati, cron). Zatim — postavite kontrolnu tablu, izdajte SSL i unesite licencu. Radi na Ubuntu/Debian: na novom VPS-u podešava sve od nule, a na već podešenom serveru — samo aditivno (profil „Podešeni server“, korak 01). Sve komande ispod idu po redu, samo listajte odozgo nadole.

Rezervisane vrednosti u komandama zamenite svojima: monitor.example.com — vaš domen; 203.0.113.10 — stvarna IP adresa servera; /var/www/monitor — koren kontrolne table (gde se nalaze public/, assets/, config.php); lozinku za bazu smislite sami.
Kompletan set („Potpuna zaštita“) namenjen je novom VPS-u. Na čistom Ubuntu/Debian sistemu podešava bezbednosni sistem od nule — Fail2ban (jail.local), root-crontab, UFW pravila, Apache konfiguraciju. Ako je server već podešen (radna kontrolna tabla, sajtovi, pošta, sopstveni jail-ovi) — izaberite profil „Podešeni server“: on unosi samo aditivne izmene i ne dira vaš firewall, Fail2ban, poštu, SSH i sysctl. Kada otkrije hosting-tablu, skripta se sama prebacuje na ovaj režim. Pre prvog pokretanja možete uključiti probni prolaz (kvačica u nalogu) — on prikazuje šta će biti urađeno, bez ikakvih izmena. Na radnom serveru za svaki slučaj napravite snimak (snapshot).

01. Komanda za automatsko podešavanje iz naloga

Komandu preuzimate u svom korisničkom nalogu my.arciveo.com → odeljak „Podešavanje servera“ (dostupan nakon aktivacije Arcivéo Monitor). Vezana je za vaš nalog i sadrži lični token.

Skripta priprema ceo server: veb-stek (Apache + PHP), bazu podataka, alate za SSL, kompletan set zaštitnih sredstava i cron-zadatke (Lynis, SMART, debsums, Logwatch, dnevni izveštaj, ažuriranje ipsum).

1) Izaberite nivo zaštite (u nalogu, pre kopiranja komande):

  • Puna zaštita (preporučuje se) — UFW (zaštitni zid), Fail2ban, CrowdSec + bouncer, ipsum (blok-lista IP), Suricata (IDS/IPS), Falco, ModSecurity + OWASP CRS (WAF), PSAD, mod_evasive (anti-DoS), AIDE (integritet fajlova), debsums, ClamAV + maldet (antivirus), Auditd, AppArmor, Monit, Lynis (audit), Logwatch, automatska bezbednosna ažuriranja.
  • Olakšana — za VPS sa malo RAM-a: osnovni set bez teških komponenti.
  • Podešeni server (hosting-panel) — za već aktivan server sa panelom (HestiaCP i sl.), sajtovima i poštom: samo aditivne izmene (doinstalacija alata, cron, sudo-pravila), a zaštitni zid, Fail2ban, pošta, SSH i sysctl ostaju kakvi jesu. Na serveru sa panelom skripta sama bira ovaj režim.
Probni prolaz. U nalogu možete štiklirati „Probni prolaz“ — tada će komanda samo prikazati šta će skripta instalirati i izmeniti i završiti se, ne dirajući ništa. Korisno na već podešenom serveru: prvo probni prolaz, pa stvarno pokretanje bez štikliranja.

2) Izvršite na serveru pod root komandu iz naloga — izgleda ovako:

curl -fsSL "https://my.arciveo.com/install.php?token=YOUR_TOKEN" | sudo bash
Komandu držite u tajnosti — vezana je za vaš nalog. Link ima ograničen rok važenja; ako je istekao, kliknite u nalogu „Dobavi novi link“.
Nakon automatskog podešavanja veb-server je — Apache + PHP-FPM, a bezbednosni alati i cron-zadaci već su instalirani i rade „iz kutije“ — ništa dodatno ne treba podešavati.

02. Domen i DNS

Da biste kontrolnu tablu otvarali na adresi poput monitor.example.com i dobili besplatan SSL, domen mora da pokazuje na server. U kontrolnoj tabli za DNS (kod registratora ili hostinga) napravite A-zapis:

Tip: A Ime: monitor (poddomen → monitor.example.com) ili @ (koren domena → example.com) Vrednost: 203.0.113.10 ← IP vašeg servera TTL: 3600

Nakon nekoliko minuta (ponekad i do sat vremena) proverite da li domen pokazuje na server:

dig +short monitor.example.com # treba da vrati vaš IP # ili, ako nema dig: getent hosts monitor.example.com
SSL-sertifikat (korak 06) izdaje se samo za domen — zato DNS mora da pokazuje na server pre izdavanja sertifikata.

03. Otpremite fajlove kontrolne table

Automatsko podešavanje je već napravilo direktorijum kontrolne table /var/www/monitor i podesilo Apache sajt (DocumentRoot na koren kontrolne table, PHP-FPM, AllowOverride za .htaccess). Ne morate posebno da pravite direktorijum i vhost — samo otpremite fajlove i podesite dozvole.
Fajlovi kontrolne table (arhiva distribucije) preuzimaju se nakon kupovine u korisničkom nalogu my.arciveo.com„Preuzimanja“. Raspakujte arhivu pre otpremanja na server.

Otpremite sadržaj distribucije u /var/www/monitor (tako da se unutra nađu public/, assets/, config.php itd.) — preko SFTP/SCP (FileZilla / WinSCP) ili komandom scp sa lokalnog računara:

scp -r ./monitor/* deploy@203.0.113.10:/var/www/monitor/
Da bi se u vhost odmah upisao vaš domen (ServerName), prosleđuje se u komandu automatskog podešavanja još u koraku 01: … | sudo bash -s -- monitor.example.com (ili se domen navodi u polju „Domen kontrolne table“ u korisničkom nalogu). Ako domen nije prosleđen — kontrolna tabla odgovara na bilo koji host i po IP adresi, a ServerName će upisati certbot pri izdavanju SSL sertifikata (korak 06); ništa ne treba ponovo instalirati.
Podesite dozvole za fajlove — ovo je obavezan korak. Ako ste otpremali kao root ili preko SFTP, fajlovi pripadaju korisniku root, pa ih veb-server (www-data) neće moći da pročita — kontrolna tabla će se otvoriti prazna ili sa greškom 403 (u logu: .htaccess unreadable / directory not executable). Komanda ispod to rešava:
# Normalizujemo dozvole celog veb korena: direktorijum koji je napravio root nije dostupan # veb-serveru (www-data) — bez ovoga kontrolna tabla prikazuje praznu stranicu ili 403. cd /var/www/monitor # Radne foldere pravimo PRE chown — inače će novi direktorijumi ostati root:root # i pri chmod 750 veb-server (www-data) neće moći da piše u njih. sudo mkdir -p data/lynis data/logwatch tmp logs sudo chown -R www-data:www-data /var/www/monitor sudo find /var/www/monitor -type d -exec chmod 755 {} \; sudo find /var/www/monitor -type f -exec chmod 644 {} \; sudo chmod 640 /var/www/monitor/config.php sudo chmod 750 data tmp logs

Otvorite sebi otpremanje fajlova preko SFTP. Nakon gornje komande svi fajlovi pripadaju korisniku www-data, dok se FileZilla / WinSCP povezuju pod vašim sopstvenim korisnikom — otpremanje tada pada uz SSH_FX_PERMISSION_DENIED (Permission denied). Izaberite jednu od dve varijante.

Varijanta A — ACL samo za vašeg korisnika (preporučeno). Pravo upisa dobijate samo vi; veb-server i dalje ne može da prepiše kôd kontrolne table:

sudo apt install -y acl # Pravo upisa za vašeg korisnika na ceo direktorijum kontrolne table: sudo setfacl -R -m u:deploy:rwX /var/www/monitor # Isto pravilo kao podrazumevano — za fajlove i foldere napravljene kasnije: sudo setfacl -R -d -m u:deploy:rwX /var/www/monitor

Varijanta B — preko grupe www-data. Jednostavnija, ali pravo upisa u fajlove kontrolne table dobija i veb-server: uz ranjivost u PHP-u kôd bi mogao da se podmeni. Redosled komandi je bitan — config.php i radni folderi se zatvaraju poslednji:

sudo usermod -aG www-data deploy # Upis za grupu + setgid (bit 2): fajlovi otpremljeni preko SFTP ostaju # u grupi www-data — inače kontrolna tabla ne može da ih prepiše. sudo find /var/www/monitor -type d -exec chmod 2775 {} \; sudo find /var/www/monitor -type f -exec chmod 664 {} \; sudo chmod 640 /var/www/monitor/config.php sudo chmod 2750 /var/www/monitor/data /var/www/monitor/tmp /var/www/monitor/logs
Posle varijante B povežite se ponovo u FileZilli (Server → Prekini vezu, pa se ponovo prijavite) — nova grupa važi tek pri novoj prijavi, do tada dozvole i dalje nećete imati. Provera: id deploy — na spisku grupa mora da se pojavi www-data; ls -ld /var/www/monitor — dozvole drwxrwsr-x, slovo s umesto x znači da je setgid postavljen.

04. Baza podataka

Kreirajte bazu i korisnika, zatim uvezite šemu. Blok sa bazom se u terminal umeće u celini (sudo mysql prijavljuje root preko unix-soketa — lozinka za root nije potrebna). monitor_db i monitor_user su primeri imena, možete zadati bilo koja svoja; zapamtite ime baze, korisnika i lozinku — upisaćete ih u config.php u sledećem koraku:

# 1. Baza podataka. Lozinka se zadaje JEDNOM u DBPASS i ubacuje u sve linije. # Blok se u terminal umeće U CELINI; sudo mysql prijavljuje root preko unix-soketa # (lozinka za root nije potrebna). NE koristite interaktivni `sudo mysql -u root -p` # sa copy-paste — pri umetanju SQL linije će otići u upit za lozinku i nestati. DBPASS='CHOOSE_A_PASSWORD' # ← izmenite samo ovu liniju sudo mysql <<SQL CREATE DATABASE IF NOT EXISTS monitor_db CHARACTER SET utf8mb4; CREATE USER IF NOT EXISTS 'monitor_user'@'localhost' IDENTIFIED BY '$DBPASS'; GRANT ALL ON monitor_db.* TO 'monitor_user'@'localhost'; FLUSH PRIVILEGES; SQL # Provera (treba da prikaže monitor_db): mysql -u monitor_user -p"$DBPASS" -e "SHOW DATABASES;" # Istu ovu lozinku upišite u config.php → DB_PASS.
Šemu ne treba uvoziti — kontrolna tabla sama kreira tabele i nalog admin pri prvom otvaranju u pregledaču (iz database/db.sql), ako je baza prazna.
sudo za veb-server automatska podešavanja su već zadala — moduli odmah vide sistemske podatke. Zasebno podešavanje sudo je potrebno samo ako PHP radi pod nestandardnim korisnikom (ne www-data).

05. Podešavanje config.php

config.php u korenu kontrolne table (/var/www/monitor/config.php) — jedini je fajl koji treba ručno urediti. Sva podešavanja kontrolne table zadata su u njemu kao define() konstante. Otvorite ga u uređivaču:

sudo nano /var/www/monitor/config.php

Unesite svoje vrednosti tamo gde su podsvetljena mesta; ostalo ostavite kako jeste:

// --- Baza podataka (iz koraka 04) --- define('DB_HOST', 'localhost'); // ostaviti define('DB_NAME', 'db_name'); // ono što ste kreirali u koraku 04 define('DB_USER', 'user'); // ono što ste kreirali u koraku 04 define('DB_PASS', 'db_password'); // ono što ste zadali u koraku 04 define('DB_CHARSET', 'utf8mb4'); // ostaviti // --- Aplikacija --- define('APP_URL', 'https://monitor.example.com'); // adresa kontrolne table, bez kose crte na kraju define('TIMEZONE', 'Europe/Belgrade'); // vaša vremenska zona // --- Trajanje sesije --- define('SESSION_LIFETIME', 28800); // neaktivnost do ponovne prijave, sek (28800 = 8 č)

Šta menjati:

  • DB_NAME, DB_USER, DB_PASS — tačno ista imena baze, korisnika i lozinke koje ste zadali pri kreiranju baze u koraku 04 (ako ste ostavili primere — monitor_db / monitor_user). DB_HOST i DB_CHARSET ne dirajte.
  • APP_URL — puna adresa kontrolne table sa https://, bez kose crte na kraju i bez www. Mora se poklapati sa domenom na kom aktivirate licencu (korak 07), inače će ključ biti odbijen.
  • TIMEZONE — vaša vremenska zona (spisak — timedatectl list-timezones). Utiče samo na to kako kontrolna tabla prikazuje datume; na vreme pokretanja cron-zadataka ne utiče (tamo važi zona sistema).
  • SESSION_LIFETIME — nakon koliko sekundi neaktivnosti kontrolna tabla traži ponovnu prijavu (podrazumevano 8 sati). Npr. 3600 = 1 sat, 86400 = jedan dan.
  • Blok za logovanje grešaka (display_errors, log_errors, error_log) — ostavite podrazumevano.

Sačuvajte fajl (Ctrl+O, Enter, zatim Ctrl+X) i ponovo pokrenite PHP-FPM — inače se zbog OPcache izmene neće primeniti:

sudo systemctl restart php*-fpm
config.php je tajni fajl (sadrži lozinku baze). Nalazi se u korenu kontrolne table, koji je ujedno i veb-koren, ali je zaštićen: prava 640 (postavljena u koraku 03) i eksplicitna zabrana u korenskom .htaccess. Ne postavljajte ga u javne repozitorijume i ne prosleđujte podršci sa stvarnom lozinkom.
Detaljan opis svih parametara — u FAQ: „Fajl config.php — sva podešavanja kontrolne table“.

06. Izdavanje SSL (HTTPS)

Kontrolna tabla radi samo preko HTTPS. Sesija prijave koristi zaštićeni kolačić, a WebAuthn (2FA) po standardu radi samo na HTTPS. Preko http:// nećete moći da se prijavite.

certbot i dodatak za Apache već su instalirani automatskim podešavanjem. DNS domena već treba da pokazuje na server (korak 02). Izdavanje jednom komandom:

sudo certbot --apache -d monitor.example.com
Šta će certbot pitati:
  1. Enter email address — vaš e-mail (tu stižu obaveštenja o isteku sertifikata).
  2. Terms of Service … (Y)es/(N)oY.
  3. Share email with the EFF … (Y)es/(N)o — po vašem izboru.
Dalje certbot sam izdaje sertifikat, upisuje <VirtualHost *:443>, podešava preusmeravanje http→https i automatsko obnavljanje. Na kraju — Successfully enabled HTTPS.
Ako izdavanje ne uspe — proverite da dig +short monitor.example.com vraća IP servera i da su otvoreni portovi 80/443 (sudo ufw allow 80,443/tcp).

Nakon izdavanja: https://monitor.example.com otvara se s katancem, http:// preusmerava na https://.

07. Prijava i početno podešavanje

Otvorite https://monitor.example.com, prijavite se admin / useradmin i prođite kroz čeklistu:

  1. Promenite admin lozinku — odeljak „Korisnici“ u meniju.
  2. Uključite WebAuthn (2FA) — „WebAuthn ključevi“ → registrujte ključ/passkey (zahteva HTTPS). Registrujte odmah dva: ako izgubite jedini ključ, prijava putem njega neće biti moguća. Više informacija.
  3. Ograničite pristup po IP-u — „Podešavanja“ → „Ograničenje pristupa po IP-u“ (upišite svoj IP pre uključivanja, inače ćete sebi zatvoriti pristup).
  4. Unesite licencu — kod za aktivaciju ARCIVEO-… iz naloga aktivirajte na svoj domen i unesite ključ u „Podešavanja“ → „Licenca“. Više informacija.
  5. Podesite obaveštenja — Telegram i/ili Email u „Podešavanjima“. Više informacija.
  6. Obrišite instalater public/start_db.php ako je ostao: omogućava da se baza ponovo kreira bez autorizacije. Dok se fajl nalazi u korenu kontrolne table ili u public/, kontrolna tabla upozorava na njega crvenim banerom.
Gotovo. Bezbednosni alati već rade — kontrolna tabla odmah prikazuje njihov status i Ocenu bezbednosti. Priručnik za svaki alat nalazi se u FAQ.
Arcivéo - Security Monitor © 2026