Outils pour utilisateurs

Outils du site


software:applications:restic:installer-restic-rest-server-sous-debian13

Ceci est une ancienne révision du document !


Installer le serveur REST HTTP du projet restic

Installation et premier démarrage

On peut installer le serveur via le gestionnaire de paquets apt :

apt install -y restic-rest-server

Le service n'est pas immédiatement démarré après l'installation. Il faut faire quelques paramétrages.

Dans le fichier /etc/default/restic-rest-server définir la variable BACKUP_DIR

...

# Directory to store backups.
# Note: the server will not start unless this variable is defined.
BACKUP_DIR = /srv/restic/backups/

...

Créer le répertoire et donner les droits d'écriture à l'utilisateur exécutant le service :

mkdir -p /srv/restic/backups
chown -R restic-rest-server:restic-rest-server /srv/restic/
chmod -R g-w,o-rwx /srv/restic/

Ajouter un utilisateur. L'authentification auprès du serveur REST est gérée via les entrées dans le fichier .htpasswd /etc/restic-rest-server/users.htpasswd.

Pour ajouter des entrées dans le fichier, utiliser la commande htpasswd du paquet apache2-utils :

apt install -y apache2-utils
 
# Créer un nouvel enregistrement dans le fichier
htpasswd -B /etc/restic-rest-server/users.htpasswd myUserName

On peut maintenant démarrer le service :

systemctl enable restic-rest-server.service --now

Si firewalld :

# Autoriser les connexions entrantes sur le port TCP 8000
firewall-cmd --add-port=8000/tcp

Test de connexion

export RESTIC_REPOSITORY="rest:http://user:pass@host:8000/my-test-repo/"
restic init

Chiffrement TLS

Les échanges entre le serveur REST HTTP et les clients restic peuvent être chiffrés. Pour cela il faudra générer un certificat TLS pour le serveur puis paramétrer le service pour utiliser la clé privée et le certificat.

# Déplacer la clé privée et le certificat
mv rstore01.kvm.internal.key rstore01.kvm.internal.pem /etc/restic-rest-server/
chown restic-rest-server: /etc/restic-rest-server/rstore01.kvm.internal.*

Modifier le fichier de configuration du service /etc/default/restic-rest-server

restic-rest-server
# TCP or UNIX listen address.
#LISTEN = unix:/run/restic-rest-server
LISTEN = :8000
 
# Directory to store backups.
# Note: the server will not start unless this variable is defined.
BACKUP_DIR = /srv/restic/backups/
 
# Extra arguments to pass to the server. Run `restic-rest-server --help` to see
# available options. By default, basic authentication is enabled.
ARGS = "\
  --htpasswd-file /etc/restic-rest-server/users.htpasswd \
  --tls --tls-key /etc/restic-rest-server/rstore01.kvm.internal.key \
  --tls-cert /etc/restic-rest-server/rstore01.kvm.internal.cert.pem \
"

Redémarrer le service :

systemctl restart restic-rest-server.service

Depuis un poste client, valider la connexion :

export RESTIC_REPOSITORY="rest:https://user:pass@host:8000/my-test-repo/"
export RESTIC_CACERT="/absolute/path/to/ca-chain.cert"
restic init

Écouter sur le port 443

Par défaut l'utilisateur restic-rest-server ne peux pas démarrer le service sur un port réservé (comme 80 ou 443).

Pour autoriser l'ouverture du service sur un port réservé :

setcap  'cap_net_bind_service=+ep' /usr/bin/restic-rest-server
 
# Vérifier les modifications apportées
getcap /usr/bin/restic-rest-server

Modifier le fichier /etc/default/restic-rest-server :

restic-rest-server
# TCP or UNIX listen address.
#LISTEN = unix:/run/restic-rest-server
LISTEN = :443
 
# Directory to store backups.
# Note: the server will not start unless this variable is defined.
BACKUP_DIR = /srv/restic/backups/
 
# Extra arguments to pass to the server. Run `restic-rest-server --help` to see
# available options. By default, basic authentication is enabled.
ARGS = "\
  --htpasswd-file /etc/restic-rest-server/users.htpasswd \
  --tls --tls-key /etc/restic-rest-server/rstore01.kvm.internal.key \
  --tls-cert /etc/restic-rest-server/rstore01.kvm.internal.cert.pem \
"

Confidentialité des identifiants

Pour éviter que les identifiants apparaissent sur la ligne de commande ou les variables d'environnement, on peut utiliser des fichiers avec accès restreint.

mkdir -p ~/.config/restic
chmod a-rwx,u+rwx ~/.config/restic
 
echo "rest:https://user:pass@server.fqdn:8000/my-repo/" > ~/.config/restic/repo
echo "my-repo-password" > ~/.config/restic/pass
 
# Lecture seule pour l' utilisateur propriétaire
chmod a-rwx,u+r ~/.config/restic/repo ~/.config/restic/pass
 
export RESTIC_REPOSITORY_FILE="/absolute/path/to/.config/restic/repo" 
export RESTIC_PASSWORD_FILE="/absolute/path/to/.config/restic/pass"

Références

software/applications/restic/installer-restic-rest-server-sous-debian13.1786185075.txt.gz · Dernière modification : 2026/08/08 10:31 de yoann