====== 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.