Even though this guide installs the latest 4.6.0 version of Crashplan, we are going to build upon the foundations provided by the older existing FreeNAS Crashplan 3.6.3_1 plugin. Updating the earlier v3.6.0 plugin provides the quickest, easiest and least troublesome method I’ve found of installing a reliable Crashplan into FreeNAS. Alternative methods such as installing from the ports tree or enabling Linux compatability and downloading the Linux verison direct from Code42 proved to be more convoluted.
At the end of this guide you will have configured a up to date Crashplan plug in, have enabled encryption and backed up a folder to Crashplans cloud storage space.
Log in to FreeNAS control panel and navigate to Plugins in the top menu bar.
Highlight Crashplan and click Install at the bottom of the page
Before you can start the Crashplan plugin, you need to accept the EULA. Navigate to Plugins (this time in the left hand column) > Crashplan.
You should see the EULA displayed, read through it and if you are satisfied with the conditions, proceed to click on ‘Yes, I accept’ at the bottom of the page.
Close the popup that redirects you to a link informing you how to connect to a headless crashplan desktop. You can close this, we will configure this later on.
Once we have accepted the EULA, we can start the Crashplan engine.
Navigate to Plugins > Installed and enable the Crashplan service by toggling the service status switch.
We’ll do most of the upgrade to version 4.6.0 through the shell and to make things easier we will enable the ability to log in with our preferred SSH client.
Navigate to Jails, highlight the Crashplan jail and click on the Command prompt icon.
Enter the following command to edit the systems configuration information
ee /etc/rc.conf
and make the following change
Start the Shell service by entering the following command
service sshd start
you should see the service enable and a number of secure keys generated.
root@crashplan_1:/ # service sshd start
Generating RSA1 host key.
2048 SHA256:4F5l0QqwkxvMbk0phpRS7MRvEa4WU6ExBwkzMOMei1M root@crashplan_1 (RSA1)
Generating RSA host key.
2048 SHA256:itcOMrDFUECVfvRee1bR5Nct+ug9FQVEXg0/H5WkwEc root@crashplan_1 (RSA)
Generating DSA host key.
1024 SHA256:TDEEg7w0lnarsj4OYyNEiNDVWHj7gl15SDNUT0PwoVw root@crashplan_1 (DSA)
Generating ECDSA host key.
256 SHA256:K6SMSjRVkfpChFmn7h87m4ObRMcBZiUrg+dxEwfg62Y root@crashplan_1 (ECDSA)
Generating ED25519 host key.
256 SHA256:r9XAOXbwvnhh06SBHM36KJieQZ3IQwQaMDTKZXhUpHI root@crashplan_1 (ED25519)
Performing sanity check on sshd configuration.
Starting sshd.
root@crashplan_1:/ #
We will now create a user who will be able to log in to our Crashplan jail. At the command prompt, enter adduser
. I’ve summarised the options below we will use, other than the name, password and most importantly, the invitation to the ‘wheel’ group, everything else will be as default.
When done, before accepting the request, verify the data is displayed correctly, i.e
Username : cp
Password : ************
Full Name :
Uid : 1001
Class :
Groups : cp wheel
Home : /home/cp
Home Mode :
Shell : /bin/sh
Locked : no
OK? (yes/no):
Once confirmed as correct, type yes
and press return.
At the command prompt enter passwd
Enter a strong password twice to ensure our root account is secured.
Before you close the FreeNAS window, verify everything is working correctly by opening a shell session with the user we have just created. Launch your terminal program and enter the following command:
ssh cp@192.168.20.199
The IP address is the address of the Crashplan jail, not Freenas itself, in my case 192.168.20.199. The cp
before the ‘@’ sign signifies to login with the user account we just created, i.e ‘cp’.
We’ll now proceed to update the default and old v3.6.3 of Crashplan which is installed as part of the plugin with the latest version from Code42, currently at v4.6.0.
Before we start to update the Crashplan server, let switch to the root account and make sure the Crashplan service is stopped.
$ su
Password:**********
# service crashplan stop
Stopping CrashPlan Engine ... OK
Change working folder into your home folder
$ cd ~
Download the latest version (currently 4.6.0 )from Code42’s website.
$ wget --no-check-certificate http://download.code42.com/installs/linux/install/CrashPlan/CrashPlan_4.6.0_Linux.tgz
Resolving download2.code42.com (download2.code42.com)... 216.17.8.57
Connecting to download2.code42.com (download2.code42.com)|216.17.8.57|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 41965448 (40M) [application/octet-stream]
Saving to: 'CrashPlan_4.6.0_Linux.tgz'
CrashPlan_4.6.0_Linux.tgz 100%[============================================================>] 40.02M 7.21MB/s in 6.2s
2016-04-02 13:44:58 (6.50 MB/s) - 'CrashPlan_4.6.0_Linux.tgz' saved [41965448/41965448]
Unzip the packed file
$ tar -xf CrashPlan_4.6.0_Linux.tgz
Extract the Crashplan files from the Crashplan
$ cd crashplan-install
$ cpio -id < CrashPlan_4.6.0.cpi
104748 blocks
Delete the default plugins v3.6.3 files…
$ rm -r /usr/pbi/crashplan-amd64/share/crashplan/lib*
…and replace with the freshly extracted and up to date 4.6.0 versions
$ cp -r lib* /usr/pbi/crashplan-amd64/share/crashplan/
We should now be able to start the Crashplan service
$ service crashplan start
Starting CrashPlan Engine ... Using standard startup
OK
Verify the service has started correctly and it is listening on ports 4242 and 4243. If this isnt working, troubleshoot throught he previous steps as without the service listening you won’t be able to proceed with the configuration.
$ netstat -na | grep 42
tcp4 0 0 *.4243 *.* LISTEN
tcp4 0 0 *.4242 *.* LISTEN
This is a good time to make a record of your servers authentication token as you will need this in the client configuration stage later. Its obtained from the ‘.ui_info’ file as follows.
$ cat /var/lib/crashplan/.ui_info
4243,aead82dd-1c9f-41e9-98e1-1fdg3567f40c,0.0.0.0
This is in the format port number, authentication token, IP address.
Now the server component is up and running, we can proceed to configure it from a remote PC. I’m using Windows for this example but a Mac or Linux box will work too although the actual method of connecting may vary slightly.
Log into your Windows PC and download and install the Crashplan program from Code42 here.
Note: Its worth making a backup of the C:\ProgramData\CrashPlan\.ui_info
file in case you ever need to run the Crashplan server locally on your Windows PC.
Open C:\ProgramData\CrashPlan\.ui_info
in your favourite text editor.
It appears the Crashplan client can sometimes overwrite this file so its also worth making it read-only to reduce maintenance due to this.
We communicate with the FreeNAS server by creating a port forward from our client PC. We will use the popular and free PuTTY SSH and Telnet client which can be downloaded from here
Navigate to Connection > SSH > Tunnels
Enter the following settings:
Navigate to the Session settings and enter the IP address of the FreeNAS crashplan jail (note, not the FreeNAS server itself)
Click Open to open the SSH tunnel and sign in to the remote computer using the Crashplan jail SSH settings we setup ealier.
Now we have created the tunnel, the taskbar icon should turn green and indicate we can go ahead and open the Crashplan application.
To enable our Crashplan server to backup files to Crashplan central, we need to expose the desired FreeNAS folders to the Crashplan jail. I’ll demonstrate how to add a single folder (in this case called ‘Data’) and it should be simple enough excercise to replicate for the other folders you want to backup.
Log in to FreeNAS and navigate to Jails (in the left column) > Crashplan_1 > Storage > Add Storage
Click ‘ok’ to save
Repeat for each folder which you want to mount in the jail.
Head back to the Crashplan client on your PC where we will now ocnfigure some baseline settings.
Unless you are ok with backing up your un-encrypted files to Crashplan, its critical to complete the following field
You should see the folders you linked to the jail in the previous step here now.
Assuming everything has been configured correctly, your backup should proceed to start shortly. Depending on the volume of data, it may take some time to backup to Crashplans servers especially if you are on a limited upload capacity line. Its also worth being mindful of any cap’s which are in place on your line to ensure you don’t incurr any additional costs.
A backup is only any good its contains data which can be retreived. Please check regularly that files are being backed up regularrly. Its critical to also regularly download a sample set of files to ensure you can decrypt and restore them. Its also vital you don’t misplace the encryption key if you use one! Its also worth noting that Crashplan has a habit of upgrading their software from time to time and its possible to end up with the your local servers code out of sync with the Crashplans cloud servers which will usully prevent backups from occuring. I keep an eye on backups from my phone with Crashplans mobile application which is available on both Android and iOS. This is a easy way to check time since last backup and completion.