Warda-DNSDocs Warda: from ward — to protect, guardian
v0.9.3

A backup holds the configuration: accounts (with their password hashes and second factors), household, hours of Internet, times a day, school holidays, devices, rules, decisions on suggestions, categories, settings, the proxy auto-configuration, the acceptance of the terms of use, the choice of the anonymous statistics, the groups of accounts, the policy of the data loss prevention, the choice of the collective base (on or off; not its opinions nor what waits), from 0.8.0 the e-mail addresses watched for known data breaches with the breaches found (so that a restored box does not tell them again) and the restricted mode of the objects with their names, from 0.8.2 the settings of the protections of 0.8.0 (no secret: the switch of the mining pools, the automatic blocking of the learning with the names undone and its log of 30 days, the setting of the protection outside the home, on or off and the home Wi-Fi) and the settings of the sign-in of the people of the directory (their secrets included: the backup is encrypted), and the administration log, and the files of tls/: the certificate of the encrypted DNS and its key, the key of the ACME account and the key of the box at the online service, so that a box restored keeps its name <10 letters>.warda-dns.net and its certificate, and the devices set up need nothing (a restore puts them back before the certificate is loaded; when they cannot be written, the configuration is restored all the same, backup.restore.tls.failed in the administration log, and a certificate is asked again). The key at the online service is the identity of the box: restore a backup on a new box only once the old one is stopped, or both will share the same name and certificate (and only one of them keeps the plan, below). Keep the backup password safe: a backup holds these keys. It never holds the query journal nor the statistics, nor the statement of the customer area and, from 0.8.0, nor the installation identifier of the box (below), nor the devices enrolled in the protection outside the home (tied to the name of this box: a restore forgets them, and the devices need new addresses), nor the count of the queries answered without the box (roaming_fallback), nor the state of the check of the exposure (its report, the findings seen and acknowledged: a measure of the moment, made again by the next check; an exposure acknowledged and found again is told once more), nor the state of the checks of the known breaches (their times only: the addresses watched and the breaches found are in it), nor the pair (ha), nor the settings of the reputation of the domains and the older switches of the threats (rebinding, spyware, remote access, beacons…): a restore keeps those of the box it is restored on. From 0.8.3 it never holds the local certificate authority of the block page (blockca/): a box restored on new hardware makes its own, to install again on the devices. From 0.8.4 it holds, with the answer to a blocked name (blocked_response), the mark blocked_response_chosen that this answer was read again for 0.8.4 (see Upgrading to 0.8.4): a backup made before has no mark, and is read again once restored. From 0.8.4 it also holds the other Warda boxes confirmed by an administrator (ipv6_warda, see The IPv6 DNS of the box), which the primary of a pair gives its secondary too.

From 0.8.5 a backup also holds (and the primary of a pair gives its secondary): the mark reputation_young_read (the blocking of the new suspicious domains read again, see Reputation of the domains: a backup made before has none and is read again once restored); the settings of the automatic unblock of the block page (unblock_auto: on or off, its quotas, see Unblock requests); the logo of the company (business_logo, the image drawn again by the box, see Company logo); the mail server of the box (smtp, its password included: a backup is encrypted, see Mail server of the box) and the recipients of the summary of the week (weekly_mail). It never holds the decisions on the alerts (alert_decisions, emptied by a restore as the alerts are) nor the summaries of the past weeks (weekly_reports: history, with the people of before; emptied by a restore), nor the state of the last sending of the summary, nor the history of the findings of the exposure (above).

Defaults travel (from 0.8.2). A backup made by 0.8.2 or later (and the configuration a primary of 0.8.2 gives its secondary) carries the mark settings_complete (never stored in the meta table): a setting of the mining pools, of the automatic blocking or of the protection outside the home missing from it is the default, and is restored as such (a box that never changed them gives the defaults; a secondary takes the defaults of its primary instead of keeping values of its own). A backup made before 0.8.2 has no mark: those settings, which it does not hold, keep the values of the box it is restored on.

It is compressed and encrypted with a key derived from the backup password (Argon2id, XChaCha20-Poly1305), chosen on the System page; the service keeps that key, so that it can back up every night on its own, and the password is asked again only to restore.

The plan does not travel with a backup (from 0.8.0). Each installation of Warda makes a random identifier at its first start (16 bytes, meta installation, shown as Installation on the page Customer area), never put in a backup nor given to the secondary of a pair; a reinstall makes a new one. A backup records the installation that made it (installation in its content):

  • restored on the same installation: nothing changes, the box keeps its plan (a backup made before 0.8.0 names no installation: the box keeps what it holds, so on new hardware, which holds no statement, it asks to take over as below);
  • restored on another installation (new hardware, the same box installed again): the box keeps its name, its certificate and every setting, but the statement held there is dropped (audit backup.restored.elsewhere) and its next renewal asks the customer area to take over the plan of its key. The box shows Waiting for your confirmation and stays on the free plan until the customer confirms, with Put the subscription on this box on the page of the box in the customer area, or by typing a link code asked on the restored box under My boxes → Add a box (see Customer area). Then Renew now on the box, or its next renewal (every hour while it waits), gives it the plan; the other box, if it still runs, is refused from its next renewal and goes to the free plan.

The restore form says so: "The plan of the customer area does not come with a backup. Restored on the box that made it, nothing changes. Restored on another box (or on this one installed again), the box keeps its name and its settings, and asks to take over the plan…".

  • Every night at 01:30 a backup is written in /var/lib/warda/backups (the last 7 are kept); at 01:45 warda-backup-usb.timer (root) copies them to the first USB drive plugged into the box (FAT or exFAT, not mounted, not the system disk), folder warda-backups (the last 7 kept there too), and unmounts it. No drive plugged in is not a failure (from 0.8.7): the System page invites to plug one.
  • The System page downloads a backup at any time (password of your account asked again; backups.write) and restores one (backups.restore: an administrator, or the role Backups and restore of Warda Business, see Roles): Warda checks it, restarts and replaces the configuration before anything else starts; the journal and the statistics start again. A backup without an administrator account is refused.
  • A new box restores a backup at installation, after the sign-in with the default password, instead of creating new accounts.