De ce verificarea din exterior nu este suficientă
Dacă rulezi Nextcloud, probabil cunoști scanarea oficială de securitate care îți privește instanța din internet și raportează ce poate vedea un străin: header-e, TLS, expunerea versiunii. Nici pagina de administrare nu lipsește din treabă. Nextcloud se ocupă deja de throttling, hashing de parole, header-e, autentificare în doi factori, semnături de integritate și așa mai departe, și o face bine.
Ce nu vede niciuna dintre ele este starea care se adună în timp ce serverul este folosit efectiv. Contul care se poate autentifica în continuare doar cu parolă. Parola de aplicație de la un client de sincronizare pe care l-ai scos din uz acum câteva luni și care ar funcționa și azi. Fișierul din instalare care s-a schimbat fără ca cineva să-l fi schimbat. Fișierul de configurare pe care serverul tău web îl livrează oricui îl cere. Aceasta este lacuna pe care o acoperă Sentinel: o verificare de securitate continuă, care trăiește în interiorul Nextcloud-ului tău și îți spune când se schimbă ceva din toate acestea.
Acest tutorial parcurge o sesiune practică de securitate nextcloud cu el, de la prima amprentă până la o intrare săptămânală în cron.
Cerințe preliminare
- Nextcloud 34 și PHP 8.4 sau mai nou. Nimic mai vechi, intenționat.
- Sarcini în fundal (Cron) ale Nextcloud în funcțiune, pentru supraveghetori și rezumatul zilnic.
- Setările de mail ale Nextcloud configurate, dacă vrei alerte pe e-mail.
- Opțional: daemonul EDR (Linux 4.20+, Python 3.9+, root și systemd) și, opțional, ClamAV prin socketul său
clamd.
Instalarea în sine este scurtă. Descarcă arhiva din contul tău MediaLab Works, la Licenses, extrage-o în apps/ (sau custom_apps/) cu proprietarul utilizatorului serverului web, activeaz-o, apoi lipește cheia de licență la Administration settings → Sentinel → License. Pașii completi sunt în ghid.
Pasul 1: Ia amprenta înainte de a schimba ceva
Fă asta după ce te-ai convins că instalarea este în starea în care ar trebui să fie:
sudo -u www-data php occ sentinel:baseline take
Amprenta înregistrează codul instalării — lib, core, apps, 3rdparty, config, themes — în acel moment. Nu acoperă niciodată fișierele utilizatorilor. De atunci încolo, se raportează doar modificările de la acel moment.
După fiecare actualizare de Nextcloud sau de aplicație, aprobă o dată fișierele modificate, cu o notă pe care o vei înțelege mai târziu:
sudo -u www-data php occ sentinel:baseline accept --all --note "Nextcloud 34.0.4"
Un patch deliberat primește același tratament. Ce rămâne după aceea este doar modificarea neexplicată — exact ceea ce vrei să privești. La The files poți ajusta ce părți ale instalării acoperă amprenta, tipurile de fișiere, excluderile, limita de dimensiune și hash-ul.
Pasul 2: Citește pagina de stare, începând cu ce e mai rău
Pagina de stare listează constatările, cu motivul și remedierea lângă fiecare. În practică vei vedea lucruri precum:
- conturi care se pot autentifica doar cu parolă;
- parole de aplicație vechi;
- sesiuni inactive;
- administratori adormiți;
- expirarea certificatului;
- dacă se înregistrează ceva în jurnale sau nu.
Parcurge lista de sus în jos. Fiecare constatare spune ce înseamnă și ce se întâmplă dacă o ignori, iar acțiunea (expiră, revocă, elimină) este chiar acolo. Pragurile pentru „prea vechi” le stabilești tu la What counts as too old: parole de aplicație vechi, sesiuni inactive, administratori adormiți și linkuri fără expirare.
Pasul 3: Testează ce servește efectiv serverul tău web
Auto-testarea întreabă propriul server web, ca vizitator anonim, pentru fișiere care nu trebuie servite niciodată: configurația, jurnalul, directoarele .git. Orice răspuns primit este raportat.
O poți rula și din terminal:
sudo -u www-data php occ sentinel:check --probe
La Asking the server what it serves pornești sau oprești testarea, adaugi căi suplimentare care te interesează și stabiliști câte zile de avertizare vrei înainte de expirarea certificatului.
Pasul 4: Supraveghează căile de intrare
Inventarul listează fiecare cale de intrare în instanța ta: linkuri publice, sesiuni, parole de aplicație, apartenență la grupuri — cu expiră, revocă sau elimină lângă fiecare. Combină-l cu supraveghetorii, care te alertează când se schimbă ceva: un cont devine administrator, autentificarea în doi factori este oprită, apare un cont nou, o adresă lucrează prin mai multe conturi, un administrator se autentifică dintr-o rețea nouă, aplicații sunt activate sau dezactivate, domeniile de încredere sau proxy-urile se schimbă ori un link este deschis de o mulțime căreia nu i-a fost trimis niciodată.
Autentificările sunt reținute după rețeaua pe care o folosește un cont, nu după adresa exactă, iar domeniile de încredere și proxy-urile sunt stocate doar ca amprente. La Where people sign in from decizi dacă rețelele sunt reținute deloc, dacă cele noi te avertizează, cât de precisă este o rețea și ce conturi să ignori. La Public links reglezi supravegherea utilizării linkurilor, cât de mare trebuie să fie o mulțime ca să merite menționată, cu cât peste evidența proprie a linkului și câte încercări de parolă refuzate contează drept ghicire.
Pasul 5: Prinde modificările de tip ransomware
Sentinel nu judecă doar după ritm. Detectează ransomware pe un laptop sincronizat prin fișiere care nu mai sunt ceea ce pretinde numele lor, prin note de răscumpărare și prin redenumiri în masă. Reglajele sunt la Files changing very fast: fereastra, numărul de rescrieri, ștergeri sau redenumiri către o singură extensie și dacă să doar alerteze ori să dezactiveze contul și să-i încheie sesiunile.
Ultima parte este oprită implicit, și aș ține-o așa până când ai încredere în praguri pe datele tale. Sentinel nu schimbă nimic de unul singur decât dacă îi ceri.
Pasul 6: Asigură-te că alertele ajung la un om
La Being told, alege de la ce severitate se folosesc clopoțelul și e-mailul, adaugă o adresă suplimentară — ideal una care ajunge pe un telefon —, stabilește ora rezumatului zilnic și apasă Send a test message. Apoi citește prezentarea generală: în ce stare este serverul, ce este supravegheat și ce nu și dacă alertele ar ajunge la cineva.
Pasul 7: Pune o verificare săptămânală în cron
occ sentinel:check afișează raportul și se încheie cu cod nenul când ceva necesită atenție, ceea ce face dintr-o intrare săptămânală în cron care trimite mail doar la eșec o singură linie:
sudo -u www-data php occ sentinel:check --quiet-when-clean
Acceptă și --inventory și --json când vrei să trimiți rezultatul altundeva.
Opțional: daemonul EDR și ClamAV
Dacă vrei să știi care program scrie în directorul de date, daemonul EDR livrat în apps/sentinel/edr/ rulează ca root în afara Nextcloud și poate suspenda procesul vinovat:
cd /var/www/nextcloud/apps/sentinel/edr
sudo sh install.sh
sudoedit /etc/sentinel-edr/config.ini # at minimum data_dir
sudo sh install.sh # again, to grant the paths it needs
sudo systemctl enable --now sentinel-edr
La Which program is writing îi spui lui Sentinel dacă daemonul este așteptat și unde își lasă rapoartele. Separat, A scanner to ask îți permite să îl îndrepți spre ClamAV: socketul și cât dintr-un fișier să trimită. ClamAV scanează fișierele care deja arată rău.
Sfaturi și depanare
- Secțiunea de integritate listează multe fișiere modificate imediat după instalare. Nu s-a luat încă nicio amprentă sau o actualizare nu a fost aprobată. Ia amprenta sau rulează
occ sentinel:baseline accept --all --note "..."după ce ai verificat. - Nu se supraveghează nimic, deși aplicația este activată. Sarcinile în fundal trebuie să ruleze (Cron). După o dezactivare și reactivare, deschide o dată pagina Sentinel: sarcinile sunt puse la loc, iar verificarea configurării raportează asta.
- Alertele pe e-mail nu sosesc. Verifică setările serverului de mail din Nextcloud și folosește Send a test message. Administratorii fără adresă de e-mail primesc doar clopoțelul.
- Ai eliminat-o cu
occ app:removeși tabelele au rămas. Elimină-o din interiorul aplicației sau cuocc sentinel:remove. Conturile dezactivate de Sentinel rămân dezactivate până când sunt eliberate (--release-accounts), iar daemonul EDR continuă să ruleze până când îl oprești cusystemctl disable --now sentinel-edr. - Pauză versus eliminare. Poți pune supravegherea pe pauză, opri aplicația păstrând totul (
occ app:disable sentinel) sau o poți elimina împreună cu fiecare înregistrare scrisă (occ sentinel:remove). - Confidențialitate. Nu există telemetrie și nici cont în cloud. Singura conexiune spre exterior este verificarea zilnică a licenței către medialab.works, care trimite cheia abonamentului, id-ul instanței, o amprentă hardware hash-uită, versiunea aplicației și o sumă de control a fișierelor proprii ale aplicației — nimic despre utilizatorii tăi, fișierele, autentificările sau evenimentele lor. Totul este păstrat în patru tabele: amprentă, evenimente, rețele cunoscute și utilizarea zilnică a linkurilor.
Încheiere
Ia amprenta, citește pagina de stare, testează ce servește serverul tău și lasă supraveghetorii și rezumatul zilnic să te anunțe când se mișcă ceva. Aceasta este jumătatea din interior a securității nextcloud, cea pe care o scanare la distanță nu o poate vedea niciodată. Dacă te blochezi, ghidul are referința completă, changelog-ul urmărește ce s-a schimbat, iar baza de cunoștințe și FAQ acoperă restul.