osh-backup-acl-keys.conf

Note

This script is called by cron and is responsible for backing up the bastion configuration, users & groups lists, credentials, and everything needed to be able to restore a functioning bastion from scratch.

Warning

If left unconfigured, this script won't do anything, and you won't have backups, unless this task is handled by some other external system.

Option List

Logging & activation options

Script logging configuration and script activation

Backup policy options

These options configure the backup policy to apply

Encryption and signing options

These options configure how the script uses GPG to encrypt and sign the ttyrec files

Remote backup options

These options configure how the script should push the encrypted backups to a remote system

Option Reference

Logging & activation

LOGFILE

Type

string, path to a file

Default

""

File where the logs will be written to (don't forget to configure logrotate!). Note that using this configuration option, the script will directly write to the file, without using syslog. If empty, won't log directly to any file.

LOG_FACILITY

Type

string

Default

"local6"

The syslog facility to use for logging the script output. If set to the empty string, we'll not log through syslog at all. If this configuration option is missing from your config file altogether, the default value will be used (local6), which means that we'll log to syslog.

ENABLED

Type

0 or 1

Default

1

If set to 1, the script is enabled and will run when started by crond.

Backup policy

DESTDIR

Type

path to a folder

Default

""

Example

"/root/backups"

Folder where to put the backup artefacts (.tar.gz files). This folder will be created if needed. If empty or omitted, the script won't run: this option is mandatory.

DAYSTOKEEP

Type

int > 0

Default

90

Number of days to keep the old backups on the filesystem before deleting them.

Encryption and signing

GPGKEYS

Type

string, space-separated list of GPG keys IDs

Default

""

Example

"41FDB9C7 DA97EFD1 339483FF"

List of public GPG keys to encrypt to (see gpg --list-keys), these must be separated by spaces. Note that if this option is empty or omitted, backup artefacts will NOT be encrypted!

SIGNING_KEY

Type

string, GPG key ID in short or long format

Default

(none)

ID of the GPG key used to sign the ttyrec files. The key must be in the local root keyring, check it with gpg --list-secret-keys. If empty, the archives will not be signed, but encrypted only (using the GPGKEYS configuration above).

SIGNING_KEY_PASSPHRASE

Type

string

Default

(none)

This passphrase should be able to unlock the SIGNING_KEY defined above. Please ensure this configuration file only readable by root (0640), to protect this passphrase. As a security measure, the script will refuse to read the configuration otherwise.

Remote backup

PUSH_REMOTE

Type

string

Default

""

Example

"push@192.0.2.4:~/backup/"

The scp remote host push backups to. If empty or missing, won't push backups. This will also be the case if the GPGKEYS option above is empty or missing, because we will never push unencrypted backups. Don't forget to put a trailing / (except if you want to push to the remote $HOME, in which case ending with a simple : works, as per standard scp).

PUSH_OPTIONS

Type

string

Default

""

Example

"-i $HOME/.ssh/id_backup"

Additional options to pass to scp, if needed.