Nem kritikus self-hosted backup rendszer tanulás céljából

Fórumok

Mostanában sokat lehet olvasni itt a mindenféle vírusok támadásairól és ez felvetett bennem némi kétséget az online (játszós)szervereim biztonságáról. A backup készítése eddig nem volt rendszerezett, esetlegesen kézzel csináltam egy-egy rsync-et 2 hetente/havonta amit aztán itthon is tárolok. Ez úgy néz ki, hogy van összesen 4 vps-em és vannak rsync-el komplett mentések mindig egy másikon egy-egy szerverről. Domain névvel csak egy elérhető, a többi adatbázis és tartalék szerver. A tervem az volt, hogy az e-mail és nextcloud szerverről készítek egy fall-back-ot, de még ezt sem valósítottam meg. A szervereken egy kivétellel debian fut, az az egy gentoo és csak bináris csomagokat tárol, de jelenleg nem naprakész a build szerver elhalálozása miatt (ezt éppen van módom pótolni, szert tettem 3 db régebbi dell Xeonos gépre 32GB RAM-mal).

Sosem terveztem backup rendszert (eddig), sok fogalmam nincsen róla. A gépeim védelme elég jó eddig, a logokat nézve szépen megküzd az illetéktelen kísérletekkel. A psad, endlessh, fail2ban teszi a dolgát.

Mi az a koncepció ami egy ilyen amatőr rendszernél üdvös lehet? Az elmúlt hetek történései miatt szeretném a fall-back-ot megvalósítani, tehát a négy szerver valószínűleg csak kettő (bár ezt sem tudom pontosan, hogy hogyan valósítsam meg, de ezekről vannak nagyon jó tutorialok). Van fix IPV4-es címem itthon és van egy pár kisebb gépem ami amúgy semmilyen Desktop futtatására nem alkalmas effektíven és van belső és külső tárolóhely is.

Az elképzelésem az lenne, hogy az itthoni gépre push-al töltik a gépek a mentést amit időközönként cron-al ütemezve kiírnék az usb-s külső hdd-re is. A VPS-eken nem hagynék meg semmiféle mentést, ott kevesebb a hely. A https://hup.hu/node/180814 topikot olvasgatva a restic-et néztem ki, nekem tetszik :) Valami szól ellene? Esetleg van ami ekkora erőforrás és tanulási igénnyel jobb/célszerűbb? Hogyan épül fel egy ilyen backup rendszer ami nem kritikus rendszerekre alkalmazott, de azért elegendő? Eléggé vizuális típus vagyok, lehet, hogy valami infógrafikán vagy felépítési vázlaton jobban eligazodom. Merre keressek ilyet? Amit találtam azok eléggé általánosak, nem igazán a gyakorlati megvalósítást mutatják, inkább az elméletét.

Hozzászólások

Veeam agent, megfelelően elpakolt hálózatban lévő SMB vagy NFS NAS-ra.

A másik az LVM snapshot és az rdiff/rsync, ha van erre lehetőség, vagy engedi a konfig.

Amikről a napokban olvashattál ott több dolog volt egyszerre a probléma valszin. Egyrészt jó eséllyel a fal mögé kerültek valahogy. Például egy jólirányzott emaillel (akkor is jólirányzott, ha nem volt cégspecifikus, hanem csak egy "szokásos"), majd sikerült elindulnia egy malware/ransomware történetnek, ami egyrészt titkosíthatott, másrészt megtalálhatott mindenféle védendő rendszereket, illetve az azokon nem patchelt hibákon keresztül tovament.

Egy "sima" Linux vagy BSD esetén a bruteforce ssh-n túl, egy nemjavított remote execution a legnagyobb probléma, de ezek egész egyszerűen kezelhető dolgok az esetek többségében.

Ahol komoly backup igény van, ott sem kell túl sok húkuszpókuszra gondolni, de "házi" körülmények között ilyen-olyan okokból nem lesz alkalmazható. Rendszerint az ott működő virtualizációs rendszerhez illeszkedő megoldás megy, ami ment valahova. Ez például VMWare vagy Hyper-V, és a Veeam megfelelő változata, valamint igény szerinti NAS-ok. Jellemzően a Veeam, vagy a helyén lévő szoftver a dolog lelke, hogy hova, mennyire, és hogyan ment. Ezen túl még lehet VM replikálni, időszakosan snapshotolni, akár úgy támogatja eleve a storage megoldás, viszont tudni kell, hogy melyik megoldás mire való, és mennyire, mikor fogod használni, és egyáltalán hogy illeszkedik a konkrét felhasználáshoz, vagy mik az elvárások az üzemeltetés felé.

Szerkesztve: 2023. 02. 11., szo – 15:18

Először is nézzük hány féle backup-ot lehetséges egyátalán készíteni:

- Full image backup.

Ez azt jelenti, hogy a teljes adattároló blokk szinten van lementve.

Előnye, hogy egyben van minden, és ráadásul a rajta futó OS/alkalmazás nem is kell hogy tudjon róla*

Hátránya, hogy csak a diszk tartalom kerül mentésre, tehát futó alkalmazás memóriában tárolt része nem lesz ott, így pl adatbázis mentésre ez önmagában nem alkalmas. Ezen kívül feleslegesen nagy is.

Visszaállítása cserébe egyszerű: simán kiiírod az egészet egy másik tárolóra, és kész.

Virtuális környezetek előszeretettel alkalmazzák ezt, a hátrányait kiküszöbölő okosságokkal megtámogatva.

 

- Filerendszer szintű backup.

zfs, brtfs, LVM szintű snapsot-alapú mentések.

Nyilvá nezek 100%-ban az adoot filerendszer tulajdonságaitől függenek. Storeage (jellegű) megoldások előszeretettel használják ezeket

 

- File szintű:

Ezesetben valamilyen módszerrel egy archive állományt kézítesz egy (vagy több) aktív fájlrendszen lakó állományaidról.. Tartlama az lesz amit csak akarsz, módszerből (tar, cpio, rsync, zip) is van sokféle...

Visszaállítása nyilván előkészületeket igényel, partició, filerendszer, esetleg OS előtelepítést is.

 

- Alkalmazás szintű backup

Ilyenkor az alkalmazásból (pl adatbázis) kidumpolod a hasznos tartalmat, amit asztán egy másik már működő alkalmazásba bele tudsz tuszkolni.

Ez eléggé alkalamzás függő, tehát 100%-ban az adot talkalmazás tulajdonságaihoz kell igazítani.

 

Ezek után azt is el kell dönteni, hogy teljes, vagy inkrementális mentést szeretnél.

A teljes - ahogy a nevében is benne van - mindent egyben tartalmaz, elég az utolsó archivum egy teljes visszaállításhoz.

Cserébe lassan készül el, és sok helyet foglal.

Az inkrementális sok kis darabból áll, visszaállítása eléggé körülményes is lehet a gyakorlatban.

Cserébe gyorsan elkészül és minimális helyet foglal.

 

Aztán azt is el kell dönteni, hogy hol tárolod az archive-okat.

Image, esetén eleve egy másik eszközre kerül ugye,

A többi esetben neked kell arról külön gondoskodni, hogy a generált archive átkerüljön egy másik rendszerre/eszközre. Mert ugye nem jó, ha a backup archiveokat is titkosítja a ransomware ;)

 

Aztán azt is el kell döntened, hogy hány példányban tárolod az archive-okat. Komoly helyeken 'georedundáns'  elvárások is lehetnek ezzel kapcsolatban...

 

És akkor jöhetnek a biztonsági kérdések:

- titkosítás, és integritás.

Integritás ellenőrzés szinte minden esetben kötelező, a titkosítás opcionális extra - de ha publikus (felhő) helyen tárolod, akkor ez is alapvető elvárás.

 

- 'tolod' vagy 'húzod'

Az irányelv általában hogy magasabb biztonságú szintű helyről 'tolod' az archivokat a backup szerverre, publikus szolgáltatásokat nyújtó szerverekről meg 'húzod'.

 

A gyakorlatban aztán ezeket egymással kombinálva lehet egy teljes mentési/visszaállítási stratégiát kialakítani az adott igényeknek megfelelően - mert nincs egyetlen mindenre jó megoldás.

"magasabb biztonságú szintű helyről 'tolod' az archivokat a backup szerverre" - a zónabesorolás az adatokat védi, úgyhogy az, ahova minden _is_ odakerül, a backup-ban lévő legmagasabb védelmet igénylő adatok szintjén kell hogy legyen. Kivétel lehet az, ha a forrás-oldalon olyan titkosítással készül a mentés, aminek a visszafejtéséhez a backup oldalon nincs meg a szükséges információ. Szerintem...

Én úgy közelíteném meg, hogy ha (amikor) baj lesz, hogy akarod/tudod helyreállítani a cuccot.

Ha ez megvan, akkor öt perc google és megvan a megfelelő tool :)