Obsah
Backup server
Server by měl primárně sloužit pro zálohy uživatelských počítačů a notebooků
Případně by mohl být využit pro další zálohu serveru a to buď čistě souborovou, nebo jako replikaci zfs snapshotů.
Uživatelská data budou zálohována pomocí rsync úlohy několikrát denně. Tento postup by měl zabránit případnému přepsání již zálohovaných dat ransomwarem. Za předpokladu, že zašifrovaný soubor má jiný název než ten původní.
Pokud bude mít stejný název, tak dojde k přepsání dat v rsync složce na serveru. Pokud se tak stane, bude nutné použít nějaký starší snapshot zálohované složky.
Základní instalace serveru a nastavení uložiště
Základní instalaci Ubuntu včetně zfs je popsána zde
Pro potřeby zálohování vytvoříme zpool
zpool create -f pcbck raidz1 /dev/disk/by-id/ata-TOSHIBA_HDWD130_Z66LY2KAS /dev/disk/by-id/ata-TOSHIBA_HDWD130_Z66MPMDAS
Pro celý zpool nastavíme kompresi
zfs set compression=lz4 pcbck
Vytvoříme dataset
zfs create pcbck/BACKUP
V rámci datasetu BACKUP vytvoříme vnořené složky pro jednotlivé uživatele
zfs create pcbck/BACKUP/username
Instalace SAMBA serveru
https://www.hiroom2.com/2016/05/18/ubuntu-16-04-share-zfs-storage-via-nfs-smb/
https://bbs.archlinux.org/viewtopic.php?id=185884
Samba server není nutný pro vlastní proces zálohování, ale bude se hodit pro kontrolu záloh a pro případné obnovení souborů ze zálohy.
Generování ssh klíče
mkdir /home/username/.ssh chmod 700 /home/username/.ssh ssh-keygen -t rsa
Na zálohovacím serveru vytvořte soubor soubor authorized_keys
Jedná se o kopii veřejného klíče - id_rsa.pub
cp -a id_rsa.pub authorized_keys
Nastavení rsync záloh na klientském PC
Windows 7
Na klientském PC/NB je potřeba nainstalovat rsync klienta. Pro OS Windows 7 se instaluje rsync klient z balíku programů CYGWIN.
Postup instalace je popsán na stránkách cesnet.cz - https://du.cesnet.cz/cs/navody/rsync/cygwininstalace
Pro naše účely budeme potřebovat balíčky rsync a openssh
Rsync ssh config file
V souboru config jsou použité parametry StrictHostKeyChecking no a UserKnownHostsFile=/dev/null
První neověřuje klíč a druhý „ukládá“ klíč do /dev/null
- config
Host backup HostName 192.168.111.8 User winbackup IdentityFile ~/.ssh/id_rsa StrictHostKeyChecking no UserKnownHostsFile=/dev/null
- rsbackup
!/bin/bash -l date +"%Y-%m-%d %T" > /mnt/c/Users/username/Documents/_backup_.log rsync -av --delete-before /mnt/c/Users/username/Desktop backup:/mnt/backup/username rsync -av --delete-before /mnt/c/Users/username/Documents backup:/mnt/backup/username rsync -av --delete-before /mnt/c/MrpWin backup:/mnt/backup/username
Windows 10
https://docs.microsoft.com/en-us/windows/wsl/install-win10
Ve Windows 10 je potřeba povolit Windows Subsystem for Linux - WSL
Následně je možné doinstalovat linux distribuci(Debian) z MS Store.
V rámci Debianu doinstalovat ssh a rsync klienta.
Ve Windows přidat naplánovanou úlohu bash /usr/local/sbin/rsbackup
- rsbackup
#!/bin/bash -l date +"%Y-%m-%d %T" > /mnt/c/Users/kamberska/Documents/_backup_.log rsync -av --delete-before -e "ssh -i /home/snemec/.ssh/id_rsa" /mnt/c/Users/kamberska/Desktop winbackup@192.168.111.8:/mnt/backup/kamberska rsync -av --delete-before -e "ssh -i /home/snemec/.ssh/id_rsa" /mnt/c/Users/kamberska/Documents winbackup@192.168.111.8:/mnt/backup/kamberska
Dávka pro zálohu lokálních složek
V zálohovací dávce upravíme cesty dle aktuální situce a nastavíme v Naplánovaných úlohách spouštění dávky každých 30minut.
- rsbackup.cmd
echo off IF EXIST c:\cygwin64\bin SET PATH=%PATH%;c:\cygwin64\bin set datetimef=%date:~-4%_%date:~3,2%_%date:~0,2%_%time:~0,2%_%time:~3,2%_%time:~6,2% echo: >> c:\data\tmp\rbackup_%username%.log 2>&1 echo %datetimef% >> c:\data\tmp\rbackup_%username%.log 2>&1 rsync -av --delete-before --numeric-ids --rsync-path="rsync --fake-super" /cygdrive/c/Users/%USERNAME%/Desktop winbackup@192.168.15.130:/pcbck/BACKUP/%USERNAME% >> c:\data\tmp\rbackup_%username%.log 2>&1 rsync -av --delete-before --numeric-ids --rsync-path="rsync --fake-super" /cygdrive/c/Users/%USERNAME%/Documents winbackup@192.168.15.130:/pcbck/BACKUP/%USERNAME% >> c:\data\tmp\rbackup_%username%.log 2>&1 rsync -av --delete-before --numeric-ids --rsync-path="rsync --fake-super" /cygdrive/c/Users/%USERNAME%/Pictures winbackup@192.168.15.130:/pcbck/BACKUP/%USERNAME% >> c:\data\tmp\rbackup_%username%.log 2>&1 rsync -av --delete-before --numeric-ids --rsync-path="rsync --fake-super" /cygdrive/c/Users/%USERNAME%/Favorites winbackup@192.168.15.130:/pcbck/BACKUP/%USERNAME% >> c:\data\tmp\rbackup_%username%.log 2>&1 copy c:\data\tmp\rbackup_%username%.log \\192.168.15.130\logs
rsync -av -e "ssh -i /home/snemec/.ssh/id_rsa" /mnt/c/Tmp/Drongnel winbackup@192.168.111.8:/mnt/backup/snemec
Klice
Privatni klic ulozte do slozky C:\cygwin\home\username
Ve složce by pak měla být vnořená složka .ssh a soubor ssh_conf. Ve složce .ssh by měly být soubory id_rsa a known_hosts
Nastavení oprávnění na priv. klic
Na soubor id_rsa nastavte právo číst a spouštět jen pro konkrétního uživatele.
Všechny ostatní uživatele odeberte.
