2018-01-30 10:40:13 +00:00
|
|
|
|
==========================
|
|
|
|
|
Configuration Cloud Backup
|
|
|
|
|
==========================
|
|
|
|
|
|
2018-03-31 07:02:06 +00:00
|
|
|
|
--------------------------
|
|
|
|
|
Google Drive and Nextcloud
|
|
|
|
|
--------------------------
|
2018-01-30 10:40:13 +00:00
|
|
|
|
|
|
|
|
|
**Google Drive** is a digital file storage and management service by the
|
|
|
|
|
information technology company Google. Amongst other features, like
|
|
|
|
|
collaborative editing of documents, spreadsheets, and presentations, it
|
|
|
|
|
allows signed up users with an account to store and share files in the
|
|
|
|
|
digital cloud.
|
|
|
|
|
|
2018-03-31 07:02:06 +00:00
|
|
|
|
**Nextcloud** is also an online storage but in contrast to Google Drive
|
|
|
|
|
it is intended for self hosting. You can download it freely from their
|
|
|
|
|
`website <https://nextcloud.com/>`__ and install it on your webserver.
|
|
|
|
|
|
2018-01-30 10:40:13 +00:00
|
|
|
|
The OPNsense configuration can be stored as a backup file in XML format,
|
|
|
|
|
to your PC on an USB stick or remotely in the digital Google Drive
|
|
|
|
|
cloud.
|
|
|
|
|
|
|
|
|
|
-------------------
|
|
|
|
|
Free online storage
|
|
|
|
|
-------------------
|
|
|
|
|
|
|
|
|
|
Because Google officially offers a free storage of 15 GB and nearly
|
|
|
|
|
unlimited traffic, a remote backup of an OPNsense configuration file is
|
2018-03-31 07:02:06 +00:00
|
|
|
|
free of charge, the only thing you need is an account at Google
|
2018-01-30 10:40:13 +00:00
|
|
|
|
(`Google Drive Signup <https://accounts.google.com/signup?hl=en>`__) .
|
|
|
|
|
|
|
|
|
|
--------
|
|
|
|
|
Easy API
|
|
|
|
|
--------
|
|
|
|
|
|
|
|
|
|
An application programming interfaces (API) for Google Drive was
|
|
|
|
|
released in 2013. This API empowers third-party developers to easily
|
|
|
|
|
write apps for Google Drive.
|
|
|
|
|
|
2018-03-31 07:02:06 +00:00
|
|
|
|
Nextcloud is using WebDAV which works without a special library
|
|
|
|
|
so data can be sent directly to the server without a special client
|
|
|
|
|
library (for example, a file upload is just a HTTP PUT call).
|
|
|
|
|
|
2018-01-30 10:40:13 +00:00
|
|
|
|
-------------
|
|
|
|
|
Remote backup
|
|
|
|
|
-------------
|
|
|
|
|
In OPNsense\ :sup:`1` you can **backup** your configuration directly and
|
2018-03-31 07:02:06 +00:00
|
|
|
|
automatically to **Google Drive** and **Nextcloud**, using the new backup
|
|
|
|
|
feature. Every backup to **Google Drive** will be encrypted with the same
|
|
|
|
|
algorithm used in the manual backup so it's quite easy to restore to a new
|
|
|
|
|
installed machine.
|
2018-01-30 10:40:13 +00:00
|
|
|
|
|
|
|
|
|
After set-up, the backup feature will do first store of the OPNsense
|
|
|
|
|
config file and subsequently a daily new backup of changed config
|
|
|
|
|
content.
|
|
|
|
|
|
|
|
|
|
----------------------
|
|
|
|
|
Setup Google API usage
|
|
|
|
|
----------------------
|
|
|
|
|
|
|
|
|
|
First we need to have a project in the google developer console:
|
|
|
|
|
|
|
|
|
|
- Go to https://console.developers.google.com/project
|
|
|
|
|
- Create a project and give it a name, you may leave it default it
|
|
|
|
|
doesn't really matter for this.
|
|
|
|
|
- Enable the Drive API
|
|
|
|
|
|
|
|
|
|
- In the left menu APIs -> "Drive API" -> Enable
|
|
|
|
|
|
2018-11-07 16:45:54 +00:00
|
|
|
|
- Open the project and start to create an API key
|
2018-01-30 10:40:13 +00:00
|
|
|
|
|
|
|
|
|
- In the left menu : APIs & auth -> Credentials
|
|
|
|
|
- Click on the button "Create new Client ID"
|
|
|
|
|
- Choose "Service account", followed by "Create Client ID"
|
|
|
|
|
|
|
|
|
|
- Download the key and save it (for your own use)
|
|
|
|
|
- Click "Generate new P12 key" and download the key (for your own
|
|
|
|
|
use, you need this one later)
|
|
|
|
|
- Copy Email Address, you need it later.
|
|
|
|
|
|
|
|
|
|
.. rubric:: Create a Google Drive folder
|
|
|
|
|
:name: create-a-google-drive-folder
|
|
|
|
|
|
|
|
|
|
Next thing is to create a folder in Google Drive and share it to the
|
|
|
|
|
"service user" you've just created.
|
|
|
|
|
|
|
|
|
|
- Go to https://drive.google.com
|
|
|
|
|
- Choose "NEW" and the folder to create a new folder, the name doesn't
|
|
|
|
|
really matter (for example type OPNsense).
|
|
|
|
|
- right click the newly created folder and choose share
|
|
|
|
|
|
|
|
|
|
- paste the email address from the service account and "send"
|
|
|
|
|
|
|
|
|
|
- Now open the folder and copy the folder ID ( in the url, the last
|
|
|
|
|
piece after #/folders/, it's quite long)
|
|
|
|
|
|
|
|
|
|
.. rubric:: Setup the account in OPNsense
|
|
|
|
|
:name: setup-the-account-in-opnsense
|
|
|
|
|
|
|
|
|
|
Now we can put it all together, login to your OPNsense firewall and go
|
2019-01-29 19:30:25 +00:00
|
|
|
|
to the backup feature. It is located at **System->Configuration->Backups**.
|
2018-01-30 10:40:13 +00:00
|
|
|
|
|
|
|
|
|
.. image:: ./images/600px-Google_Drive_Backup_screenshot.png
|
2018-07-31 14:51:11 +00:00
|
|
|
|
:width: 100%
|
2018-01-30 10:40:13 +00:00
|
|
|
|
|
|
|
|
|
On the bottom of the page are the options for the Google Drive backup,
|
|
|
|
|
enable the feature and fill in the parameters. Email address is acquired
|
|
|
|
|
in step 2, the key in step 1. Choose a strong password to protect your
|
|
|
|
|
data and fill in a number of backups you want to keep.
|
|
|
|
|
|
|
|
|
|
When you click Setup/Test Google Drive, the firewall will automatically
|
|
|
|
|
save and test your settings and you will receive either an error
|
|
|
|
|
(connectivity issues) or a list of config files currently in the backup.
|
|
|
|
|
|
|
|
|
|
The moment the feature is enabled, it will do a daily compare of the
|
|
|
|
|
last file in backup and the current configuration and creates a new
|
|
|
|
|
backup when something has changed.
|
|
|
|
|
|
2018-03-31 07:02:06 +00:00
|
|
|
|
|
|
|
|
|
-------------------------
|
|
|
|
|
Setup Nextcloud API usage
|
|
|
|
|
-------------------------
|
|
|
|
|
|
|
|
|
|
1. Step Create a new user
|
|
|
|
|
=========================
|
|
|
|
|
|
|
|
|
|
Click on the user icon top right and click "Users".
|
|
|
|
|
In the new page, enter an username and a password into the boxes and click
|
|
|
|
|
create to create a new user.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2. Step Create an Access Token
|
|
|
|
|
==============================
|
|
|
|
|
|
|
|
|
|
Close the modal dialog and remove the default files.
|
|
|
|
|
Then open the Settings menu (also in the menu top right).
|
|
|
|
|
Switch to security and generate a App password.
|
|
|
|
|
|
|
|
|
|
.. image:: images/nextcloud_create_token.png
|
|
|
|
|
|
|
|
|
|
Copy and store the generated password.
|
|
|
|
|
|
|
|
|
|
3. Step Connect OPNsense with Nextcloud
|
|
|
|
|
=======================================
|
|
|
|
|
|
|
|
|
|
.. image:: images/nextcloud_config.png
|
|
|
|
|
|
|
|
|
|
Scroll to the Nextcloud Section in System -> Config -> Backup and enter the
|
|
|
|
|
following values:
|
|
|
|
|
|
|
|
|
|
================ ======================================================================
|
|
|
|
|
Enable checked
|
|
|
|
|
URL Base URL of your Nextcloud installation like https://cloud.example.com
|
|
|
|
|
User your choosen username
|
|
|
|
|
Password paste your app password from step 2
|
|
|
|
|
Backup Directory a name consisting of alphanumeric characters (keep default)
|
|
|
|
|
================ ======================================================================
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4. Step Verify the Configuration Upload
|
|
|
|
|
=======================================
|
|
|
|
|
|
|
|
|
|
When everything worked, you will see the newly created directory after saving
|
|
|
|
|
the settings:
|
|
|
|
|
|
|
|
|
|
.. image:: images/nextcloud_directory.png
|
|
|
|
|
|
|
|
|
|
If you open it, you will see at lease a single backed up configuration file:
|
|
|
|
|
|
|
|
|
|
.. image:: images/nextcloud_backups.png
|
|
|
|
|
|
2018-01-30 10:40:13 +00:00
|
|
|
|
.. rubric:: References
|
|
|
|
|
:name: references
|
|
|
|
|
|
|
|
|
|
- `Official website of Google Drive <https://www.google.com/drive/>`__
|
|
|
|
|
|
|
|
|
|
.. rubric:: Notes
|
|
|
|
|
:name: notes
|
|
|
|
|
|
|
|
|
|
:sup:`1` As of OPNsense version 1.15.8 .2 (25 March 2015)
|