Rsync backups

*Updated Jan 21, 2021*

After purchasing a Synology DS-413J to replace my DNS-323 device, I wanted to repurpose the old NAS into a backup server.  In my mind, I pictured using a Richcopy or Robocopy scheduled task from a Windows machine to talk to the 2 devices.  As it turns out, both the NAS’s can speak the same language  (linux) and there’s a handy little tool that takes a couple steps to do, but is well worth the effort if you want re-purpose a DNS-323.

DNS-323 instructions: You need Funplug!

1. Funplug instructions have been around for a while, NAS-TWEAKS has an excellent blog style article you can follow.  Here’s the cole’s notes version:

-After reformatting your DNS-323 device, download the fun_plug file and fun_plug.tgz and place them on the ‘volume_1’ share of your DNS-323.

reboot the DNS-323 connect via telnet to port 23 (no password required at this point)

-install the extra packages onto your DNS-323 (particularly, RSYNC) which is included:

rsync -av inreto.de::dns323/fun-plug/0.5/packages .
funpkg -i *.tgz
-enable root, and set a password
pwconv
passwd
login
store-passwd.sh
-enable and auto restart ssh services
cd/mnt/HD_a2/ffp/start
sh sshd.sh start
chmod a+x sshd.sh

Issue this command so you’re not just stuck with the busybox-only prompt:

usermod -s /ffp/bin/sh root
Change the default directory in ssh to something more familiar:
usermod -d /mnt/HD_a2/ root

That’s the most condensed version of Funplug I can give you guys, there’s lots of more minute details, but for now that will do to get what’s necessary: RSYNC and SSH services on the DNS-323.

2. Configuration of RSYNC requires some small knowledge of text editor vim or ‘vi’ as the busy box package has. First, SSH in with the root account, and create a new file named rsyncd.conf in the /mnt/HD_a2/ffp/etc directory:

login as: root
root@DNS323's password:
root@DNS323:/mnt/HD_a2# cd/ffp/start
root@DNS323:/mnt/HD_a2/ffp/start# sh rsyncd.sh status
rsync not running
root@DNS323:/mnt/HD_a2/ffp/start# cd ..
root@DNS323:/mnt/HD_a2/ffp# cd etc
root@DNS323:/mnt/HD_a2/ffp/etc# vi rsyncd.conf

The contents of rsyncd.conf should look like the below:

# /ffp/etc/rsyncd.conf configuration file
max connections = 2
secrets file = /ffp/etc/rsyncd.secret

use chroot = false
read only = no
list = false
strict modes = false
hosts deny = *
timeout = 600
dont compress = *.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz 
*.mkv *.avi *.mpg *.jpg *.rar
pid file = /var/run/rsyncd.pid

[File Backups]
hosts allow = 192.168.0.1/24 #your local network IP range
read only = false
gid = backup
uid = backup
auth users = backup_user 
path = /mnt/HD_a2/Backup_directory #Path of Backup on DNS unit

I’ve highlighted the lines you’ll need to change:

hosts allow
= This is the IP Address range of your local network, the above example is for a standard Class C network, make the appropriate changes to yours. The /24 denotes the type of subnet mask you’re using. /24 pertains to a standard 255.255.255.0, this typically will fit your home network. Otherwise, here’s a cheat sheet on subnets.

auth users
= This user has to be created through the DNS-323 web server. You can stick with the standard ‘Admin’ account if you want, but for security purposes it’s a good idea to have a separate one for backup jobs.

path
= is the path on your DNS-323 of where you’re going to backup your data.

3. After saving rsyncd.conf, you’ll have to create a new file, rsyncd.secret:

root@DNS323:/mnt/HD_a2/ffp/etc# vi rsyncd.secret

Contents of rsyncd.secrets is very short as it contains the username and password of your backup user authenticated from rsynd.conf:

 #One line per user; a User ID:(colon)then password 
backup_user:password

The command is just one line, username:password. This is where you fill in the username and password created in the web interfaced of your DNS-323, and specified rsyncd.conf.

root@DNS323:/mnt/HD_a2/ffp/etc# sh /mnt/HD_a2/ffp/start/
rsyncd.sh status
rsync not running
root@DNS323:/mnt/HD_a2/ffp/etc# sh /mnt/HD_a2/ffp/start/
rsyncd.sh start
Starting /ffp/bin/rsync --daemon --config=/ffp/etc/
rsyncd.conf

you can also run

sh rsyncd.sh status

To see if the Rsync service has been started properly. I would also recommend making sure that Rsync starts up with the DNS323 on each reboot or power off

root@DNS323:/mnt/HD_a2/ffp/start# chmod a+x rsyncd.sh

Now we configure the Synology to backup to RSYNC services on the DNS323

*New Screenshots compatible with DSM 6.2.3 added Jan 21, 2021*

4. After logging into DSM, goto Hyperbackup, open the backup wizard to open a new job. Choose ‘Data backup task’

For the Backup Destination type, choose RSYNC

For the backup settings, configure the Server type as ‘rsync-compatible server’, enter in the pertinent details of your DNS323. It should look similar to the screenshot below. For port, just keep the default 873. The Backup module, make sure to use the exact same “Path” from the rsyncd.conf file.

ie. path = /mnt/HD_a2/Backup_directory

Backup module = /mnt/HD_a2

Directory = Backup_directory

After you hit, next DSM will test the connection for you. As long as you’ve configured the RSYNC on the DNS-323 and started the service, DSM should pick it up. After you choose your backup selections, make a schedule; set it and forget it.

Items to keep in mind
*Rsync is not hailed for speed!. On average RSYNC only travels at around 1.5-4MBps.

*Synology Hyperbackup cannot run simultaneous jobs. This means if you’re backing up a lot of data, it will take a while! Plan Accordingly, take offline backups to USB, whatever your use case scenario might be.

-Dexter