Instalare automată

Metoda automată: un singur script din contul personal pregătește întregul server (stiva web Apache + PHP, baza de date, instrumentele de securitate, cron). Apoi — desfășurați panoul, emiteți SSL și introduceți licența. Funcționează pe Ubuntu/Debian: pe un VPS nou configurează totul de la zero, pe un server deja configurat — doar aditiv (profilul „Server configurat”, pasul 01). Toate comenzile de mai jos sunt în ordine, doar derulați de sus în jos. Pe un VPS nou se potrivește fiecare pas la rând; dacă serverul este deja configurat sau are instalat un panou de hosting, o parte din muncă scriptul v-o lasă intenționat dumneavoastră — ce anume, scrie la finalul rulării sale (analiza rezultatului — la pasul 01).

Valorile de tip substituent din comenzi înlocuiți-le cu ale dumneavoastră: monitor.example.com — domeniul dumneavoastră; 203.0.113.10 — IP-ul real al serverului; /var/www/monitor — rădăcina panoului (unde se află public/, assets/, config.php); parola pentru baza de date alegeți-o dumneavoastră.
Setul complet („Protecție completă”) este destinat unui VPS nou. Pe o instalare curată de Ubuntu/Debian configurează sistemul de securitate de la zero — Fail2ban (jail.local), root-crontab, reguli UFW, configurația Apache. Dacă serverul este deja configurat (panou funcțional, site-uri, poștă, jail-uri proprii) — alegeți profilul „Server configurat”: acesta aduce doar modificări aditive și nu vă atinge firewallul, Fail2ban, poșta, SSH și sysctl. La detectarea unui panou de hosting, scriptul comută singur pe acest mod. Înainte de prima rulare puteți activa rularea în gol (bifă în cont) — vă va arăta ce se va face, fără a modifica nimic. Pe un server de producție faceți, pentru orice eventualitate, un instantaneu (snapshot).

01. Comanda de configurare automată din cont

Comanda o luați din contul dumneavoastră personal my.arciveo.com → secțiunea „Configurare server” (disponibilă după activarea Arcivéo Security Monitor). Ea este legată de contul dumneavoastră și conține un token personal.

Scriptul pregătește întregul server: stiva web (Apache + PHP), baza de date, instrumentele pentru SSL, setul complet de mijloace de protecție și sarcinile cron (Lynis, SMART, debsums, Logwatch, raport zilnic, actualizare ipsum).

1) Alegeți nivelul de protecție (în cont, înainte de a copia comanda):

  • Protecție completă (recomandat) — UFW (firewall), Fail2ban, CrowdSec + bouncer, ipsum (listă de blocare IP), Suricata (IDS/IPS), Falco, ModSecurity + OWASP CRS (WAF), PSAD, mod_evasive (anti-DoS), AIDE (integritatea fișierelor), debsums, ClamAV + maldet (antivirus), Auditd, AppArmor, Monit, Lynis (audit), Logwatch, actualizări de securitate automate.
  • Ușurată — pentru VPS cu volum mic de RAM: setul de bază fără componente grele.
  • Server configurat (panou de hosting) — pentru un server deja funcțional cu panou (HestiaCP etc.), site-uri și e-mail: doar modificări aditive (instalarea suplimentară de instrumente, cron, reguli sudo), iar firewall-ul, Fail2ban, e-mailul, SSH și sysctl rămân neschimbate. Pe un server cu panou scriptul alege singur acest mod.
Rulare de probă. În cont puteți bifa „Rulare de probă” — atunci comanda doar arată ce va instala și modifica scriptul și se încheie fără să atingă nimic. Utilă pe un server deja configurat: mai întâi proba, apoi rularea reală fără bifă.

2) Executați pe server ca root comanda din cont — ea arată astfel:

curl -fsSL "https://my.arciveo.com/install.php?token=YOUR_TOKEN" | sudo bash
Comanda țineți-o secretă — este legată de contul dumneavoastră. Link-ul are o durată de valabilitate limitată; dacă a expirat, apăsați în cont „Obține un link nou”.
După configurarea automată serverul web este Apache + PHP-FPM, iar instrumentele de securitate și sarcinile cron sunt deja instalate și funcționează „din start”.

3) Citiți rezultatul afișat la final — acolo scrie ce a rămas în sarcina dumneavoastră. Scriptul își încheie rularea cu un bloc de verificări și cu lista „Mai departe — instalarea panoului”. O parte dintre pași nu îi execută intenționat: care anume, depinde de profilul ales și de ceea ce a găsit pe server. Comparați cu lista de mai jos — trebuie să executați doar acele puncte ale căror linii au apărut în rezultatul dumneavoastră.

  • Control panel detected (…) — site-ul se creează cu mijloacele panoului de hosting, scriptul nu face vhost. Pasul 03, ramura „Server cu panou de hosting”.
  • No vhost created (no domain given) — profilul „Server configurat” fără domeniu: un vhost fără nume ar deveni site-ul implicit și v-ar intercepta propriile site-uri, de aceea nu a fost creat. Pasul 03, ramura „Creați vhost-ul manual”.
  • sudo rules NOT written — scriptul nu a putut determina sub ce cont funcționează panoul. Este o situație obișnuită: fișierele panoului se încarcă abia după configurarea automată, așa că nu avea încă după ce să se orienteze. Fără aceste reguli modulele nu vor vedea datele de sistem. Pasul 04, blocul „sudo pentru serverul web”.
  • ! Nginx does not read .htaccess — în fața Apache se află Nginx, iar înscrierea automată a interdicției în configurația lui nu a reușit. Faceți acest lucru obligatoriu: altfel data/, keys/, database/ și config.php sunt servite în exterior, ocolind .htaccess. Pasul 03, blocul „Dacă în fața Apache se află Nginx”.
  • UFW installed but inactive — firewallul este instalat, dar dezactivat: pe un server deja configurat scriptul nu îl pornește singur, ca să nu vă taie accesul. Porniți-l dumneavoastră, permițând obligatoriu portul dumneavoastră SSH:
    sudo ufw allow OpenSSH # port SSH nestandard: sudo ufw allow 2222/tcp sudo ufw allow 80,443/tcp sudo ufw enable
  • Fail2ban installed but not running — porniți-l: sudo systemctl enable --now fail2ban.
  • Database server present … but not running — porniți SGBD-ul înainte de pasul 04: sudo systemctl enable --now mariadb (sau mysql — în funcție de ce este instalat).
  • Certbot skipped — issue SSL in … — certificatul se emite prin comutatorul Let's Encrypt din panoul de hosting; pasul 06 nu vă este necesar.
Dacă în blocul de verificări totul este în regulă, ultima linie este All checks passed. Punctele cu ! necesită atenție; detaliile se scriu în jurnal, a cărui cale scriptul o afișează chiar la final (Log: …).

02. Domeniu și DNS

Pentru a deschide panoul la o adresă de tipul monitor.example.com și pentru a obține un SSL gratuit, domeniul trebuie să indice către server. În panoul de gestiune DNS (la registrator sau la găzduire) creați o înregistrare A:

Tip: A Nume: monitor (subdomeniu → monitor.example.com) sau @ (rădăcina domeniului → example.com) Valoare: 203.0.113.10 ← IP-ul serverului dvs. TTL: 3600

După câteva minute (uneori până la o oră), verificați că domeniul indică către server:

dig +short monitor.example.com # trebuie să returneze IP-ul dvs. # sau, dacă nu există dig: getent hosts monitor.example.com
Certificatul SSL (pasul 06) se emite doar pentru un domeniu — de aceea DNS-ul trebuie să indice către server înainte de emiterea certificatului.

03. Încărcați fișierele panoului

Cazul obișnuit (VPS nou). Configurarea automată a creat deja directorul panoului /var/www/monitor și a configurat site-ul Apache (DocumentRoot spre rădăcina panoului, PHP-FPM, AllowOverride pentru .htaccess). În rezultatul scriptului aceasta este linia vhost … → DocumentRoot …. Nu trebuie să creați separat directorul și vhost-ul — pur și simplu încărcați fișierele și setați permisiunile.
Două cazuri în care vhost-ul NU este creat — scriptul vă anunță direct despre asta la finalul rulării. Atunci executați mai întâi ramura potrivită de mai jos și abia apoi încărcați fișierele.

Ramura „Server cu panou de hosting” (în rezultat: Control panel detected (…)). Pe un astfel de server de site-uri se ocupă panoul, iar scriptul nu creează intenționat vhost propriu — acesta ar fi șters la prima reconstruire a configurațiilor de către panou. Ordinea este următoarea:

  1. Creați un domeniu web în panoul de hosting (HestiaCP etc.) — DocumentRoot-ul acestuia rămâne neschimbat.
  2. Încărcați distribuția integral în public_html al acestui domeniu: alături de index.php, api/, assets/ trebuie să se afle și fișierele de serviciu config.php, includes/, data/, tmp/, logs/, keys/, cron/, database/. Nu trebuie scos nimic deasupra rădăcinii web: folderele de serviciu sunt închise de fișierul .htaccess din distribuție, iar sub Nginx — de interdicția pe care scriptul a înscris-o în configurația domeniului.
  3. SSL-ul se emite prin comutatorul Let's Encrypt din panoul însuși — pasul 06 îl omiteți.
  4. Mai departe — permisiunile (mai jos, la acest pas), baza de date (pasul 04) și config.php (pasul 05). Căile din comenzi înlocuiți-le cu /home/cont/web/domeniu/public_html, iar proprietarul — cu utilizatorul acestui domeniu în locul lui www-data.

Ramura „Creați vhost-ul manual” (în rezultat: No vhost created (no domain given)). Asta se întâmplă doar pe profilul „Server configurat”, când domeniul nu a fost transmis. Cel mai simplu este să relansați comanda din cont, indicând domeniul:

curl -fsSL "https://my.arciveo.com/install.php?token=YOUR_TOKEN&profile=existing" | sudo bash -s -- monitor.example.com

Rularea repetată este sigură: ceea ce s-a făcut deja nu se dublează. Iar dacă vhost-ul trebuie creat manual — iată aceeași configurație pe care o scrie programul de instalare:

sudo mkdir -p /var/www/monitor # Socketul PHP-FPM îl determinăm automat — versiunea PHP diferă de la server la server. PHPSOCK=$(ls -1 /run/php/php*-fpm.sock 2>/dev/null | head -1) sudo tee /etc/apache2/sites-available/arciveo-monitor.conf > /dev/null <<'EOF' <VirtualHost *:80> ServerName monitor.example.com DocumentRoot /var/www/monitor <Directory /var/www/monitor> Options -Indexes +FollowSymLinks AllowOverride All Require all granted </Directory> <FilesMatch "\.php$"> SetHandler "proxy:unix:__PHPSOCK__|fcgi://localhost" </FilesMatch> ErrorLog ${APACHE_LOG_DIR}/arciveo-monitor_error.log CustomLog ${APACHE_LOG_DIR}/arciveo-monitor_requests.log combined </VirtualHost> EOF sudo sed -i "s#__PHPSOCK__#${PHPSOCK}#" /etc/apache2/sites-available/arciveo-monitor.conf sudo a2ensite arciveo-monitor.conf sudo apache2ctl configtest sudo systemctl reload apache2
ServerName este aici obligatoriu. Un vhost fără nume devine site-ul implicit al Apache și începe să răspundă pentru domenii străine de pe același server. Din același motiv nu dezactivați 000-default.conf pe un server deja configurat: acest site putea fi transformat în site-ul de producție al cuiva — pe un VPS nou programul de instalare îl elimină singur, aici nu este nevoie să faceți asta.
Dacă în fața Apache se află Nginx (în rezultat: ! Nginx does not read .htaccess). Nginx servește fișierele statice direct de pe disc și nu citește .htaccess — folderele de serviciu vor rămâne deschise în exterior, deși Apache le închide corect. Scriptul a pregătit din timp un fișier cu interdicții; el trebuie inclus în blocul server{} al site-ului dumneavoastră, apoi reîncărcat Nginx:
include /etc/nginx/snippets/arciveo-deny.conf;
sudo nginx -t && sudo systemctl reload nginx # Verificare: trebuie să returneze 403, nu conținutul fișierului curl -sI https://monitor.example.com/config.php | head -1
Fișierele panoului (arhiva distribuției) se descarcă după cumpărare din contul my.arciveo.com → „Descărcări”. Dezarhivați arhiva înainte de a o încărca pe server.

Încărcați conținutul distribuției în /var/www/monitor (astfel încât înăuntru să ajungă public/, assets/, config.php etc.) — prin SFTP/SCP (FileZilla / WinSCP) sau cu comanda scp de pe computerul local:

scp -r ./monitor/* deploy@203.0.113.10:/var/www/monitor/
Pentru ca în vhost să fie înscris imediat domeniul dumneavoastră (ServerName), acesta este transmis comenzii de configurare automată încă de la pasul 01: … | sudo bash -s -- monitor.example.com (sau indicați domeniul în câmpul „Domeniul panoului” din cont). Dacă domeniul nu a fost transmis — panoul răspunde la orice host și după IP, iar ServerName îl va înscrie certbot la emiterea SSL (pasul 06); nu trebuie să reinstalați nimic.
Setați permisiunile pe fișiere — este un pas obligatoriu. Dacă ați încărcat sub root sau prin SFTP, fișierele aparțin lui root, iar serverul web (www-data) nu le va putea citi — panoul se va deschide gol sau cu eroarea 403 (în jurnal: .htaccess unreadable / directory not executable). Comanda de mai jos rezolvă asta:
# Normalizăm permisiunile întregului webroot: directorul creat de root este inaccesibil # serverului web (www-data) — fără asta panoul returnează o pagină goală sau 403. cd /var/www/monitor # Creăm folderele de lucru ÎNAINTE de chown — altfel directoarele noi rămân root:root # și la chmod 750 serverul web (www-data) nu va putea scrie în ele. 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

Deschideți-vă încărcarea fișierelor prin SFTP. După comanda de mai sus toate fișierele aparțin lui www-data, în timp ce FileZilla / WinSCP se conectează cu utilizatorul dumneavoastră — încărcarea va eșua atunci cu SSH_FX_PERMISSION_DENIED (Permission denied). Alegeți una dintre cele două variante.

Varianta A — o ACL doar pentru utilizatorul dumneavoastră (recomandat). Dreptul de scriere îl primiți numai dumneavoastră; serverul web tot nu poate rescrie codul panoului:

sudo apt install -y acl # Drept de scriere pentru utilizatorul dumneavoastră pe tot directorul panoului: sudo setfacl -R -m u:deploy:rwX /var/www/monitor # Aceeași regulă ca implicită — pentru fișierele și folderele create ulterior: sudo setfacl -R -d -m u:deploy:rwX /var/www/monitor

Varianta B — prin grupul www-data. Mai simplă, dar dreptul de scriere asupra fișierelor panoului îl primește și serverul web: la o vulnerabilitate în PHP codul ar putea fi înlocuit. Ordinea comenzilor contează — config.php și folderele de lucru se închid la final:

sudo usermod -aG www-data deploy # Scriere pentru grup + setgid (bitul 2): fișierele încărcate prin SFTP rămân # în grupul www-data — altfel panoul nu le va putea rescrie. 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
După varianta B reconectați-vă în FileZilla (Server → Deconectare, apoi autentificați-vă din nou) — grupul nou se aplică abia la o autentificare nouă, până atunci tot nu veți avea drepturi. Verificare: id deploy — în lista de grupuri trebuie să apară www-data; ls -ld /var/www/monitor — drepturi drwxrwsr-x, litera s în locul lui x înseamnă că setgid este activat.

04. Baza de date

Creați baza și utilizatorul, apoi importați schema. Blocul cu baza de date se inserează în terminal integral (sudo mysql intră ca root prin socket unix — parola root nu este necesară). monitor_db și monitor_user sunt nume de exemplu, puteți alege oricare doriți; rețineți numele bazei, utilizatorul și parola — le veți introduce în config.php la pasul următor:

# 1. Baza de date. Numele bazei, utilizatorul și parola se setează O SINGURĂ dată mai jos și se inserează în toate liniile. # Blocul se inserează în terminal INTEGRAL; sudo mysql intră ca root prin socket unix # (parola root nu este necesară). NU folosiți `sudo mysql -u root -p` interactiv # cu copy-paste — la inserare liniile SQL vor ajunge în prompturile de parolă și se vor pierde. DBNAME='monitor_db' # ← numele bazei, poate rămâne DBUSER='monitor_user' # ← utilizatorul bazei, poate rămâne DBPASS='CHOOSE_A_PASSWORD' # ← parola, alegeți-o pe a dvs. sudo mysql <<SQL CREATE DATABASE IF NOT EXISTS $DBNAME CHARACTER SET utf8mb4; CREATE USER IF NOT EXISTS '$DBUSER'@'localhost' IDENTIFIED BY '$DBPASS'; GRANT ALL ON $DBNAME.* TO '$DBUSER'@'localhost'; FLUSH PRIVILEGES; SQL # Verificare (trebuie să afișeze $DBNAME): mysql -u "$DBUSER" -p"$DBPASS" -e "SHOW DATABASES;" # Aceleași trei valori scrieți-le în config.php → DB_NAME, DB_USER, DB_PASS.
De obicei nu este nevoie să importați schema — panoul creează singur tabelele și contul admin la prima accesare din browser (din database/db.sql), dacă baza de date este goală.

Dacă tabelele nu au fost create (panoul afișează o eroare de conectare la baza de date sau un ecran gol în locul formularului de autentificare) — importați schema manual. Comanda se execută în rădăcina panoului, iar valorile se iau din blocul de mai sus:

# Importul schemei: cd /var/www/monitor && mysql -u "$DBUSER" -p"$DBPASS" "$DBNAME" < database/db.sql # Verificare — trebuie să apară lista tabelelor: mysql -u "$DBUSER" -p"$DBPASS" "$DBNAME" -e "SHOW TABLES;"
Dacă variabilele $DBNAME / $DBUSER / $DBPASS s-au „pierdut” deja (o sesiune nouă de terminal) — introduceți valorile în comandă manual sau setați-le din nou cu aceleași trei linii din blocul de mai sus.
sudo pentru serverul web. De obicei regulile sunt deja scrise de configurarea automată, iar modulele văd imediat datele de sistem. Dar dacă în rezultatul scriptului a apărut linia sudo rules NOT written — nu avea după ce să determine contul panoului (fișierele nu erau încă încărcate), iar regulile nu au fost create. Fără ele secțiunile precum firewallul, Fail2ban și CrowdSec vor rămâne goale. Acum, când fișierele sunt la locul lor, rulați încă o dată comanda din cont, numind contul explicit:
curl -fsSL "https://my.arciveo.com/install.php?token=YOUR_TOKEN&profile=existing" | sudo ARCIVEO_USER=www-data bash -s -- monitor.example.com
www-data înlocuiți-l cu utilizatorul sub care rulează PHP-ul site-ului dumneavoastră (pe un panou de hosting acesta este de obicei proprietarul domeniului). Îl puteți vedea astfel:
ps -o user= -C php-fpm8.3 | sort -u # versiunea puneți-o pe a dumneavoastră # sau: ps aux | grep -m3 '[p]hp-fpm'
Verificare după relansare: fișierul /etc/sudoers.d/monitor există și conține linii cu utilizatorul dumneavoastră.

05. Configurarea config.php

config.php din rădăcina panoului (/var/www/monitor/config.php) este singurul fișier care trebuie editat manual. Toate setările panoului sunt definite în el prin constante define(). Deschideți-l în editor:

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

Introduceți valorile dumneavoastră în locurile evidențiate; restul lăsați-l așa cum este:

// --- Baza de date (din pasul 04) --- define('DB_HOST', 'localhost'); // se lasă define('DB_NAME', 'db_name'); // ce ați creat la pasul 04 define('DB_USER', 'user'); // ce ați creat la pasul 04 define('DB_PASS', 'db_password'); // ce ați setat la pasul 04 define('DB_CHARSET', 'utf8mb4'); // se lasă // --- Aplicație --- define('APP_URL', 'https://monitor.example.com'); // adresa panoului, fără slash la final define('TIMEZONE', 'Europe/Bucharest'); // fusul dumneavoastră orar // --- Durata sesiunii --- define('SESSION_LIFETIME', 28800); // inactivitate până la reautentificare, sec (28800 = 8 h)

Ce trebuie modificat:

  • DB_NAME, DB_USER, DB_PASS — exact aceleași nume de bază, utilizator și parolă pe care le-ați setat la crearea BD în pasul 04 (dacă ați păstrat exemplele — monitor_db / monitor_user). DB_HOST și DB_CHARSET nu le atingeți.
  • APP_URL — adresa completă a panoului cu https://, fără slash la final și fără www. Trebuie să coincidă cu domeniul pe care activați licența (pasul 07), altfel cheia va fi respinsă.
  • TIMEZONE — fusul dumneavoastră orar (lista — timedatectl list-timezones). Afectează doar modul în care panoul afișează datele; asupra momentului de rulare a sarcinilor cron nu influențează (acolo se aplică fusul sistemului).
  • SESSION_LIFETIME — după câte secunde de inactivitate panoul va cere reautentificarea (implicit 8 ore). De ex. 3600 = 1 oră, 86400 = o zi.
  • Blocul de jurnalizare a erorilor (display_errors, log_errors, error_log) — lăsați-l implicit.

Salvați fișierul (Ctrl+O, Enter, apoi Ctrl+X) și reporniți PHP-FPM — altfel, din cauza OPcache, modificările nu se vor aplica:

sudo systemctl restart php*-fpm
config.php — fișier secret (conține parola BD). Se află în rădăcina panoului, care este chiar rădăcina web, dar este protejat: drepturi 640 (setate la pasul 03) și interdicție explicită în .htaccess-ul din rădăcină. Nu-l publicați în depozite publice și nu-l trimiteți la suport cu parola reală.
Analiza detaliată a tuturor parametrilor — în FAQ: „Fișierul config.php — toate setările panoului”.

06. Emiterea SSL (HTTPS)

Panoul funcționează doar prin HTTPS. Sesiunea de autentificare folosește un cookie securizat, iar WebAuthn (2FA) funcționează conform standardului doar pe HTTPS. Prin http:// nu vă veți putea autentifica.
Pe un server cu panou de hosting acest pas nu este necesar (în rezultatul scriptului: Certbot skipped — issue SSL in …). Certificatul se emite prin comutatorul Let's Encrypt de pe domeniul web din panoul însuși — astfel, de reînnoirea lui se ocupă tot panoul.

certbot și pluginul pentru Apache sunt deja instalate prin autoconfigurare. DNS-ul domeniului trebuie deja să indice către server (pasul 02). Emitere printr-o singură comandă:

sudo certbot --apache -d monitor.example.com

Dacă panoul trebuie să se deschidă și cu www. — enumerați ambele nume într-o singură comandă, altfel la a doua adresă browserul va afișa un avertisment despre certificat:

sudo certbot --apache -d monitor.example.com -d www.monitor.example.com
Adăugați al doilea nume doar dacă și pentru el există o înregistrare A care indică spre acest server (pasul 02). Altfel Let's Encrypt nu îl va putea verifica și nu va emite deloc certificatul — inclusiv pentru domeniul principal.
Ce va întreba certbot:
  1. Enter email address — e-mailul dumneavoastră (acolo vor sosi notificările despre expirarea certificatului).
  2. Terms of Service … (Y)es/(N)o — Y.
  3. Share email with the EFF … (Y)es/(N)o — la alegerea dumneavoastră.
Mai departe, certbot va emite singur certificatul, va înscrie <VirtualHost *:443>, va configura redirecționarea http→https și reînnoirea automată. La final — Successfully enabled HTTPS.
Dacă emiterea eșuează — verificați că dig +short monitor.example.com returnează IP-ul serverului și că porturile 80/443 sunt deschise (sudo ufw allow 80,443/tcp).

După emitere: https://monitor.example.com se deschide cu lacăt, iar http:// redirecționează către https://.

07. Autentificare și configurare inițială

Deschideți https://monitor.example.com, autentificați-vă cu admin / useradmin și parcurgeți lista de verificare:

  1. Schimbați parola admin — secțiunea „Utilizatori” din meniu.
  2. Activați WebAuthn (2FA) — „Chei WebAuthn” → înregistrați o cheie/passkey (necesită HTTPS). Înregistrați imediat două: la pierderea singurei chei, autentificarea cu ea va fi imposibilă. Detalii.
  3. Restricționați accesul după IP — „Setări” → „Restricționarea accesului după IP” (introduceți-vă propriul IP înainte de activare, altfel vă blocați accesul).
  4. Introduceți licența — activați codul ARCIVEO-… din cont pe domeniul dumneavoastră și inserați cheia în „Setări” → „Licență”. Detalii.
  5. Configurați notificările — Telegram și/sau Email în „Setări”. Detalii.
  6. Ștergeți programul de instalare public/start_db.php, dacă a rămas: permite recrearea bazei fără autentificare. Cât timp fișierul se află în rădăcina panoului sau în public/, panoul avertizează despre el printr-un banner roșu.
  7. Rulați manual primele verificări — altfel o parte dintre secțiuni vor rămâne goale până noaptea (vezi blocul de mai jos).
De ce „Auditul Lynis” și „Logwatch” sunt goale la început. Configurarea automată a instalat instrumentele și a creat sarcinile cron, dar nu a rulat verificările în sine — ele vor porni conform programului: Lynis la 03:00, Logwatch la 06:00, debsums la 04:30, ClamAV la 01:30. Până atunci secțiunile arată corect că încă nu există rapoarte. Ca să nu așteptați o zi întreagă, rulați-le o dată manual:
# Auditul Lynis — primul raport (câteva minute): sudo /usr/local/bin/lynis-scan.sh # Raportul Logwatch pe ultimele 24 de ore: sudo /usr/local/bin/logwatch_daily.sh # Integritatea pachetelor (debsums) — pe un server mare durează mult: sudo /usr/local/bin/debsums-scan.sh
Lynis poate fi rulat și direct din panou — butonul „Pornește auditul” de pe pagina „Auditul Lynis”: el execută același script în fundal și actualizează singur raportul. Mai departe totul merge conform programului, nu mai trebuie rulat nimic manual.
Prima scanare antivirus (sudo /usr/local/bin/clamav-scan.sh) încarcă puternic discul și procesorul și poate dura o oră sau mai mult — pe un server de producție este mai bine să așteptați rularea de noapte de la 01:30. Secțiunile „Discuri (SMART)”, „Performanță” și „Actualizări de securitate” se completează singure: la fiecare 30 de minute, 5 minute și, respectiv, o dată pe oră.
Gata. Ghidul pentru fiecare instrument se află în FAQ.
Dacă aveți nevoie să găzduiți pe acest server încă un site cu domeniu propriu, consultați FAQ: „Un al doilea site pe acest server (încă un domeniu)”.