I use rsync and btrfs. rsync will mirror my data, and can even store extended file attributes without needing superuser access on the NAS (see
--fake-super command line option) and btrfs allows me to do copy-on-write snapshots (using
sudo to grant snapshot permissions to selected users). I might have used zfs instead of btrfs if zfs-on-linux had been available to me when I started seting this up.
All of this is for command line / cron job only, though. There certainly are UIs for rsync-based backups, and hacking the btrfs snapshot into the loop should be possible as well (using
--rsync-path pointing at a script which does that after the
rsync server is done), but I have no experience with graphical UIs.
Edit: Since writing this, I switched from btrfs to ext4 since the btrfs became inconsistent. Might be due to bad memory. ZFS people strongly encourage the use of ECC memory, and the same reasons probably hold for btrfs as well.