Modul 8 · 8.1
Plan sigurnosnog kopiranja za Vaš poslužitelj
Modul 8: Sigurnosne kopije i nadzor · Vrijeme čitanja: 11 minuta
Cilj učenja: Nakon ove lekcije moći ćete izraditi plan sigurnosnog kopiranja za svoj poslužitelj: što čuvate, gdje, koliko često i koliko dugo te kako sa sigurnošću znate da vraćanje radi.
Ključni pojmovi: pravilo 3-2-1, snapshot, sigurnosna kopija pružatelja usluge, vlastita sigurnosna kopija izvan pružatelja usluge, RPO, RTO, dump baze podataka (mariadb-dump, pg_dump), konfiguracija u /etc, Docker volumeni, šifriranje, ransomware, append-only, test vraćanja
Zašto plan, a ne "pa ionako postoji sigurnosna kopija"?
Gotovo svatko tko je izgubio poslužitelj mislio je da postoji sigurnosna kopija. Onda se pokaže da sadrži samo operacijski sustav, a ne bazu podataka, ili da se nalazi na istom poslužitelju koji je sada nestao, ili da ju je šifrirao isti ransomware, ili da nitko ne zna lozinku. Sigurnosna kopija vrijedi tek ako je možete vratiti. Zato počinjete s planom, a završavate s testom.
Plan odgovara na pet pitanja:
- Što se mora moći vratiti?
- Koliko podataka smijete izgubiti? (RPO)
- Koliko brzo sve mora ponovno raditi? (RTO)
- Gdje se nalaze kopije i koliko ih ima?
- Kako znate da to radi?
Što se mora moći vratiti?
Poslužitelj se sastoji od slojeva. Ne mora svaki sloj ići u sigurnosnu kopiju:
| Sloj | Primjer | Sigurnosna kopija? |
|---|---|---|
| Operacijski sustav i paketi | Debian, nginx, PHP | Ne nužno: mogu se ponovno instalirati. Ipak čuvajte popis: dpkg --get-selections |
| Konfiguracija | /etc (nginx, SSH, vatrozid, systemd jedinice), Vaše compose datoteke | Da, mala je i neizostavna |
| Aplikacije i web-stranice | /var/www, /opt/<app>, /srv | Da, osim ako dolaze iz Gita |
| Podaci | baze podataka, učitane datoteke, Docker volumeni (/var/lib/docker/volumes) | Da, ovo je najvažnije |
| Tajne | lozinke, API ključevi, ključ same sigurnosne kopije | Da, ali odvojeno i šifrirano (vidi niže) |
| Zapisi, predmemorija, privremene datoteke | /var/log, /var/cache, /tmp | Uglavnom ne |
Posebno pazite na baze podataka. Baza podataka koja radi neprestano zapisuje. Ako kopirate datoteke MariaDB ili PostgreSQL baze dok radi, možete dobiti oštećenu kopiju. Zato najprije napravite dump: konzistentnu snimku trenutnog stanja u obliku datoteke, koju zatim uključite u sigurnosnu kopiju.
root@web1:~# mariadb-dump --single-transaction --all-databases | gzip > /var/backups/db/alles-$(date +%F).sql.gz
root@web1:~# sudo -u postgres pg_dumpall | gzip > /var/backups/db/pg-$(date +%F).sql.gz(mariadb-dump se ranije zvao mysqldump; ta naredba uglavnom i dalje radi.) Ako baza podataka radi u kontejneru, isto činite s docker compose exec (lekcija 9.4).
RPO i RTO: koliko smijete izgubiti?
Dva pojma iz struke pomažu Vam pri donošenju odluka:
- RPO (recovery point objective): koliko vremena podataka smijete najviše izgubiti? Dnevna sigurnosna kopija u 03:00 znači: ako se poslužitelj sruši u 22:00, izgubili ste gotovo cijeli dan. Za web-trgovinu s narudžbama to je previše; za blog koji se mijenja jednom tjedno to je sasvim u redu.
- RTO (recovery time objective): koliko smije trajati dok sve ponovno ne proradi? Vraćanje potpune sigurnosne kopije pružatelja usluge može trajati nekoliko minuta; izgradnja novog poslužitelja i ručno vraćanje svega mogu potrajati satima.
Zapišite ih za svoj poslužitelj. Oni određuju koliko često izrađujete sigurnosnu kopiju i kako je čuvate.
Snapshot, sigurnosna kopija pružatelja usluge, vlastita sigurnosna kopija
Na VPS-u obično imate tri vrste sigurnosne mreže. Slične su, ali štite od različitih stvari.
1. Snapshot. Snimka trenutnog stanja cijelog virtualnog diska, izrađena u upravljačkoj ploči Vašeg pružatelja usluge. Brzo se izrađuje i brzo vraća. Idealan je neposredno prije nadogradnje (lekcija 4.3). Ali: kod većine pružatelja usluga snapshot se nalazi na istoj pohrani kao i Vaš poslužitelj. Ako se ta pohrana pokvari ili izgubite svoj račun, nestaje i snapshot. Osim toga, snapshot ne čuvate dugo: raste sa svim kasnijim promjenama. Snapshot nije sigurnosna kopija.
2. Sigurnosna kopija pružatelja usluge. Mnogi pružatelji usluga (ponekad kao dodatnu opciju) svaki dan automatski izrađuju kopiju cijelog Vašeg poslužitelja na drugoj pohrani. Kod WebOké je to, primjerice, dnevna sigurnosna kopija cijelog VPS-a koja se čuva sedam dana; kod drugih pružatelja usluga to funkcionira slično, s vlastitim rokovima. To je dobar drugi sloj zaštite od pokvarenog hardvera i od Vaših vlastitih jučerašnjih pogrešaka. Ali i dalje je riječ o jednoj strani: Vaš račun, Vaše plaćanje, njihov kvar. Osim toga, vraćanje se obično provodi za cijeli poslužitelj odjednom.
3. Vaša vlastita sigurnosna kopija, izvan pružatelja usluge. Kopija Vaših podataka kod druge strane ili na drugom mjestu, koju sami izrađujete i kojom sami upravljate (lekcija 8.2). To je sloj koji ostaje kada sve ostalo zakaže.
Pravilo 3-2-1
Uobičajeno praktično pravilo:
- 3 kopije Vaših podataka (original i dvije sigurnosne kopije);
- na 2 različite vrste pohrane ili sustava;
- od kojih je 1 na drugoj lokaciji.
Za VPS to može izgledati ovako: podaci na poslužitelju, dnevna sigurnosna kopija pružatelja usluge i šifrirana vlastita sigurnosna kopija izrađena alatom restic na pohranu kod druge strane. Suvremena dopuna glasi da barem jednu kopiju ne smije moći izbrisati onaj tko preuzme poslužitelj (offline ili append-only, lekcija 8.2). Ransomware na poslužitelju aktivno traži sigurnosne kopije kako bi i njih šifrirao ili izbrisao. Sigurnosna kopija koju sam poslužitelj smije izbrisati ne pruža zaštitu od toga.
Šifriranje i lozinka Vaše sigurnosne kopije
Sigurnosna kopija kod druge strane mora biti šifrirana: u njoj se nalaze podaci o klijentima, lozinke i ključevi. restic (lekcija 8.2) standardno šifrira. No time nastaje novi rizik: lozinka Vaše sigurnosne kopije. Ako je izgubite, sigurnosna kopija postaje neupotrebljiva. Isto vrijedi ako se lozinka nalazi samo na poslužitelju koji ste izgubili.
Zato lozinku čuvajte i izvan poslužitelja: u svom upravitelju lozinki, a po potrebi i na papiru u sefu. Isto vrijedi za pristupne podatke pohrane na kojoj se nalazi Vaša sigurnosna kopija.
Testiranje vraćanja
Najvažniji dio plana. Test vraćanja znači: sigurnosnu kopiju stvarno vratite na mjesto gdje ništa ne može pokvariti i provjerite radi li rezultat.
- Malo i često: vratite jednu datoteku ili jednu mapu u
/tmp/vracanjei usporedite (diff). Primjerice jednom mjesečno. - Veliko i povremeno: iz sigurnosne kopije izgradite potpuno novi testni poslužitelj, uvezite bazu podataka i pokrenite web-stranicu. Primjerice jednom godišnje ili pri svakoj većoj promjeni. To je ujedno i vježba za slučaj kada stvarno nešto pođe po zlu (lekcija 10.3).
Zapišite koliko je to trajalo: to je Vaš stvarni RTO.
Rokovi čuvanja
Ne čuvajte samo posljednju sigurnosnu kopiju. Ako tek nakon dva tjedna otkrijete da je neka datoteka oštećena ili izbrisana, potrebna Vam je sigurnosna kopija od prije tri tjedna. Uobičajeni raspored: sedam dnevnih, četiri tjedne i šest mjesečnih verzija. restic to rješava naredbom forget (lekcija 8.2). Imajte na umu i GDPR (OUZP): osobne podatke ne čuvate dulje nego što je potrebno, pa ni u sigurnosnim kopijama. Zapišite svoje rokove čuvanja.
U praksi
Snapshot svog pružatelja usluge koristite neposredno prije rizičnih promjena, a zatim ga izbrišite; ostavite uključenu dnevnu sigurnosnu kopiju pružatelja usluge ako postoji; a uz to izradite vlastitu šifriranu sigurnosnu kopiju podataka i konfiguracije kod druge strane. Kod WebOké se to na zaslonu VPS-a zove Snapshots i Backups; kod drugih pružatelja usluga nazivi i rokovi su drugačiji, ali načelo je isto. Paket web-hostinga ili upravljana usluga često imaju drugačije uvjete: provjerite što je dogovoreno u Vašem slučaju.
Sažetak
- Sigurnosna kopija vrijedi tek ako vraćanje radi; počnite s planom i završite s testom.
- Sigurnosno kopirajte prije svega podatke i konfiguraciju: baze podataka kao dump,
/etc, web-stranice, Docker volumene, compose datoteke. - Odredite RPO (koliko smijete izgubiti) i RTO (koliko brzo sve mora raditi).
- Snapshot (ista pohrana, kratko), sigurnosna kopija pružatelja usluge (druga pohrana, ista strana) i vlastita sigurnosna kopija izvan pružatelja usluge tri su različita sloja; slijedite pravilo 3-2-1 s barem jednom kopijom koju sam poslužitelj ne može izbrisati.
- Šifrirajte, čuvajte lozinku sigurnosne kopije izvan poslužitelja i testirajte vraćanje: malo i često, veliko povremeno.
Kviz
Zadatak
Zadatak O8.1: Vaš plan sigurnosnog kopiranja. Izradite za svoj poslužitelj plan sigurnosnog kopiranja na jednoj stranici: što se mora moći vratiti (po slojevima), Vaš RPO i RTO, koje kopije imate (snapshot, pružatelj usluge, vlastita) i gdje, Vaše rokove čuvanja, gdje se nalazi lozinka sigurnosne kopije i kada provodite test vraćanja. Ispunite obrazac; nakon slanja vidjet ćete primjer plana s kojim možete usporediti svoj plan.
Zadatak O8.1: Vaš plan sigurnosnog kopiranja
Ovaj zadatak rješavate sami; nitko ga ne provjerava. Označite što ste napravili i označite zadatak kao završen.
Baze podataka putem dumpa, ne kao zasebne datoteke baze koja radi. Svakodnevno šifrirano (restic) kod drugog pružatelja; snapshot samo oko izmjena. 7 dnevnih, 4 tjedne i 6 mjesečnih verzija dobar je početak. Jednom mjesečno malo vraćanje, jednom godišnje potpuna ponovna izgradnja. Nikada ne upisujte pravu lozinku.
Vaše kvačice i bilješke ostaju samo u ovom pregledniku; ne šaljemo ih nikamo. Ako ste prijavljeni, u Moji tečajevi čuvamo samo podatak da ste zadatak završili.
Dodatno štivo
- Snimke stanja i sigurnosne kopije Vašeg VPS-a
- Strategija izrade sigurnosnih kopija: pravilo 3-2-1 za Vaše vlastito poduzeće
- Besplatan tečaj Sigurno poslovanje na internetu za poduzetnike 6.1: Pravilo 3-2-1 i što trebate sigurnosno kopirati
- Besplatan tečaj Sigurno poslovanje na internetu za poduzetnike 6.2: Sigurnosne kopije koje nadžive ransomware
- MariaDB, mariadb-dump: https://mariadb.com/docs/server/clients-and-utilities/backup-restore-and-import-clients/mariadb-dump
- PostgreSQL, Backup and Restore (SQL Dump): https://www.postgresql.org/docs/current/backup-dump.html
- VPS: od prve prijave do sigurnog poslužitelja 1.5: Snapshotovi: sigurnosna mreža za svaku veću promjenu
- VPS: od prve prijave do sigurnog poslužitelja 1.6: Vraćanje sigurnosnih kopija tvrtke WebOké
