Backup maken van een folder op VPS webserver op Synology NAS

Als je een VPS webserver hebt kun je van een folder op deze webserver een backup maken op een Synology NAS diskstation. Door deze folder te synchroniseren met een folder op de NAS kun je via de web interface van DSM met Hyper Backup een incremantal-backup van deze folder maken.

Als je op je webserver een folder hebt waar gebruikers regelmatig bestanden kunnen plaatsen of verwijderen is het handig als je van deze folder een incremental backup kunt maken. Als er iets fout gaat en een gebruiker is bestanden kwijt of heeft een bestand overschreven kun je in het verleden geplaatste bestanden weer terug zetten. Hier volgt een uitleg om een folder op je webserver te synchroniseren met een folder op je Synology NAS diskstation, Via de web interface van DSM kun je dan met Hyper Backup een incremantal-backup van deze folder maken.Als je een site op een VPS webserver hebt kun je van een folder op deze webserver een backup maken op een Synology NAS diskstation.  Door een Cronjob aan te maken op je webserver kun je via SSH een folder synchroniseren met een folder op je NAS. In de DSM web interface kun je dan incremental backup maken van deze folder.

De eerste stap is een ssh verbinding opzetten tussen de webserver (VPS) en de NAS. Er zijn twee mogelijkheden:

  • Via ssh vanaf de webserver je NAS benaderen.
  • Via ssh vanaf de NAS schijf je webserver benaderen.

Ik heb gekozen voor de tweede mogelijkheid. Deze heeft het voordeel dat je geen instellingen in je router hoeft te maken. Deze mogelijkheid brengt dus ook minder beveiliging risico's met zich mee.

Stap 1: Een gebruiker aanmaken die de webserver kan benader met ssh

Maak een nieuwe gebruiker via de web interface DSM van je diskstaton. Maak deze gebruiker lid van de groep administrators en users en geef bij machtigingen lees en schrijf rechten voor de homes folder. Open vanaf een lokale computer de terminal en log in op de diskstation met je admin account:

ssh admin@diskstation.local

sudo vi /etc/passwd

en verander voor deze gebruiker "/sbin/nologin" in "/bin/sh". Hiermee zorg je ervoor dat de nieuwe gebruiker kan inloggen via ssh. Het vervelende is dat dit elke keer weer teruggezet wordt als de diskstation opnieuw opstart of als je aanpassingen maakt in de user configuratie. De waarde voor deze gebruiker moet dus elke keer na een herstart of user aanpassingen weer aangepast worden. Als alles goed ingesteld is is inloggen via ssh voor de nieuwe gebruiker niet meer nodig dus zo erg is dit niet, maar je moet er wel even rekening mee houden.

Stap 2: Een gebruiker aanmaken op de webserver.

Maak ook een nieuwe gebruiker aan op de webserver. Maak deze lid van de groep apache en wheel. In het voorbeeld noem ik deze user "backup". Zorg ervoor dat bij het aanmaken van deze gebruiker ook een home directory voor deze gebruiker wordt aangemaakt. Maak het mogelijk om met een ssh in te loggen op je diskstation door de configuratie van de sshd_config aan te passen:

sudo vi /etc/ssh/sshd_config

Voeg de volgende regels toe om ssh inlog mogelijk te maken:

AllowUsers backup
Match User backup
	PasswordAuthentication yes
	KbdInteractiveAuthentication yes

Stap 3 Gebruik Public/Private Keys om in te loggen

Kijk eerst of je kan inloggen vanaf de diskstation op de webserver. Log in met ssh op de diskstation met de nieuwe gebruiker:

ssh new_user@diskstation.local

Vervolgens probeer je vanaf daar in te loggen op de webserver:

ssh backup@webserver.nl

Lukt dit maak dan een ssh key aan op de diskstation met ssh-keygen. Accepteer de default locatie. Bij enter password phrase niks invullen. Er wordt nu een public en private key aangemaakt. Kopieer de public key naar je diskstation met:

cat ~/.ssh/id_rsa.pub | ssh backup@webserver.nl "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

Maak het mogelijk om met een ssh key in te loggen op je webserver door de configuratie van de sshd_config aan te passen

sudo vi /etc/ssh/sshd_config

Verander de regels:

#RSAAuthentication yes
#PubkeyAuthentication yes
#AuthorizedKeysFile .ssh/authorized_keys

naar:

#RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

Meer informatie op de website van chainsawonatireswing.

Log uit en probeer opnieuw in te loggen op de webserver met:

ssh backup@webserver.nl

Als het goed is wordt nu niet meer om een wachtwoord gevraagd. Dit is nodig om een automatische taak vanaf de diskstation uit te voeren. Je kunt nu op de webserver de sshd_config weer aanpassen. De regels:

Match User backup
	PasswordAuthentication yes
	KbdInteractiveAuthentication yes

zijn niet meer nodig.

Stap 4: Synchroniseer een folder op je webserver met een folder op je diskstation.

Om te testen is het handig om op de webserver in de home folder van de backup user een folder "data" aan te maken en hier enkele bestanden in te plaatsen.

Controleer eerst of bij bestand services de R-sync service is ingeschakeld.

Ga naar de home folder van de nieuwe gebruiker via de DSM interface. Maak een folder aan waarin de gesynchroniseerde data komt en maak een script backup.sh aan met de volgende code:

#!/bin/bash

USER="backup"
SERVER="ip-addres of server naam"
SOURCE="/data/"
TARGET="/volume1/homes/new_user/backup/data/"
LOG="/volume1/homes/new_user/backup/data/backup.log"

rsync --delete -avz --stats -zav $USER@$SERVER:$SOURCE $TARGET >> $LOG 2>&1

Test het script eerst door in te loggen met de nieuwe user via ssh. Je komt dan in de home folder en run het script:

./backup.sh

Als het goed is worden nu de bestanden die in de data folder van de webserver staan geplaatst in backup folder. Je kunt nu de webfolder aanpassen aan de folder die je werkelijk wilt back-uppen, bijv. /var/www/html. Als het niet lukt controleer dan de rechten van gebruikers en folders.

Ga in de DSM interface naar de Taak planner. Maak een nieuwe taak aan:

Vul de tabbladen in. Bij algemeen de "new_user". Bij planning de frequentie om het script uit te voeren en bij Taakinstellingen verwijs je naar het script.

Stap 5. Maak een incremental backup van de folder op je diskstation.

Ga naar de web interface van DSM en ga naar "Hyper backup". Klik op + in de linker beneden hoek.

Kies Locale map & USB.

Of als er al een backup taak is ingesteld ga je naar bewerken:

Je krijgt dan een mappenlijst waarin je de folders kunt selecteren waarvan je een backup wilt maken.

Een uitgebreide handleiding voor het maken van back-up taken vind je op de site van www.synology.com.