====== 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 [[..linux/ubuntu/instalace|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 ====
https://unix.stackexchange.com/questions/94421/how-to-use-ssh-config-setting-for-each-server-by-rsync
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
Host backup
HostName 192.168.111.8
User winbackup
IdentityFile ~/.ssh/id_rsa
StrictHostKeyChecking no
UserKnownHostsFile=/dev/null
!/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''
#!/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.
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.