Freenas is pretty good for this. It can do snapshots on its own and then you can use rsync to copy the snapshot to the remote server (freenas box in your case). Rsync cab be set to run when it detects a change in the snapshot folder or several times thruout the day.
I am running a windows server now but according to the Freenas documentation this should still work fine.
http://www.freenas.org/about/features/