Mise en place d’une sauvegarde automatique sur Debian

Mise en place d’une sauvegarde automatique sur Debian

Le 31 Mars se tient le « World backup day » ou, en français Journée mondiale de la sauvegarde des données informatiques.

Nous allons donc voir dans ce tutoriel comment mettre en place une sauvegarde automatique (quotidienne dans notre cas – tous les jours à 5h) afin de préserver nos précieuses données en lieu ‘sûr’ (cloud).

Pré-requis:

  • Un serveur (dédié, VPS, votre propre PC) tournant sur Debian 8, 9 ou 10
  • Un cerveau, une ou deux mains

On verra d’abord comment installer Rclone qui nous permettra de mettre en place un accès permanent à votre cloud, directement sur votre VPS.


Mise en place de Rclone

  1. Connectez-vous en SSH sur votre serveur et authentifiez-vous
  2. Passez en superutilisateur (root)
sudo -i ou su root
  1. Installez unzip
wget http://ftp.de.debian.org/debian/pool/main/u/unzip/unzip_6.0-25_amd64.deb && dpkg -i unzip_6.0-25_amd64.deb
  1. Lancez l’installation de Rclone avec la commande suivante (sélectionnez tout le bloc d’un coup)
wget https://downloads.rclone.org/rclone-current-linux-amd64.zip && unzip rclone-current-linux-amd64.zip && cd rclone-v*.**-linux-amd64 && sudo cp rclone /usr/sbin/ && sudo chown root:root /usr/sbin/rclone && sudo chmod 755 /usr/sbin/rclone &&cd ~ && rm -r rclone-v*.**-linux-amd64 && rm rclone-current-linux-amd64.zip
  1. Configurez votre service de cloud préféré sur Rclone

Vous pouvez suivre ce tutoriel https://doc.ubuntu-fr.org/tutoriel/monter_un_cloud#parametrage_de_rclone à partir de « Paramétrage de Rclone »

Veuillez noter que dans ce tutoriel, hubic est le service utilisé, mais vous pouvez utiliser un service différent (Google Drive, OneDrive, FTP…)

  1. Montez le Cloud en tant que lecteur sur Debian

On attaque le gros morceau, on va maintenant utiliser Rclone pour monter le Cloud sur votre serveur Debian.

On va d’abord créer un dossier à la racine qui sera le point de montage

mkdir /cloud

Ensuite, on va tenter de monter notre Cloud (CloudRclone est à remplacer par ce que vous avez configuré plus haut dans Rclone (par exemple, Gdrive)

rclone mount CloudRclone:default /cloud/

Si vous avez un dossier précis sur votre cloud et que vous voulez le monter la commande devient :

rclone mount CloudRclone:default/votre_dossier /cloud/

On automatise tout ça, pour qu’à chaque redémarrage le Cloud soit monté

crontab -e

On ajoute la ligne suivante en bas du fichier, puis on ferme en sauvegardant avec CTRL + X suivi de Y (ou O)

@reboot rclone mount CloudRclone:default /cloud/

Mise en place de la sauvegarde

On a fait plus de 90%, maintenant il suffit de mettre en place un script qui va effectuer toutes les commandes, et l’automatiser

  1. Téléchargeons le script depuis mon serveur et donnons lui le droit d’être exécuté
wget https://alois-gaucher.fr/blog/downloads/backup_html.sh && mv backup_html.sh /root && chmod a+x /root/backup_html.sh
  1. Modifions maintenant le fichier
nano /root/backup_html.sh

Les lignes qui nous intéressent sont les suivantes

backup_dir=/chemin_montage_rclone/${backup_dir_date}
# Remplacez /chemin_montage_rclone/ par le dossier que nous avons créé tout à l'heure, et sur lequel nous avons monté le Cloud.

dir_to_save=/var/www/html/
# Laissez par défaut si vous souhaitez que le script sauvegarde le dossier contenant vos pages html, sinon modifiez le.

Sauvegardez avec CTRL + X suivi de Y (ou O)

  1. On teste rapidement la bonne exécution du script en faisant un premier démarrage
sh /root/backup_html.sh

Si tout se passe bien, votre terminal ne devrait pas vous afficher d’erreurs

  1. Tout ce qui nous reste à faire maintenant, c’est automatiser le lancement du script
crontab -e

On ajoute la ligne suivante en bas du fichier, puis on ferme en sauvegardant avec CTRL + X suivi de Y (ou O)

0 5 * * * sh /root/backup_html.sh

Problèmes rencontrés et support

Si vous rencontrez un souci, copiez-collez l’erreur que vous avez à l’exécution du script et envoyez-là moi.

Vous pouvez me joindre sur Discord couquino#6627 ou par mail à hello@alois-gaucher.fr

Sécuriser son site en https avec Certbot

Sécuriser son site en https avec Certbot

Vous le savez sûrement, mais avoir un site en https aujourd’hui a énormément d’avantages, parmi lesquels: la sécurité accrue, être mieux référencé sur les moteurs de recherche, un site web plus rapide (le https donne accès au HTTP/2 qui est une version améliorée du protocole HTTP basique.

Nous allons donc voir dans ce tutoriel comment passer votre site en HTTPS sous Debian (vous retrouverez d’avantages d’informations pour sécuriser votre site si vous avez un OS différent sur la doc de certbot: https://certbot.eff.org/ )

Pré-requis:

  • Un serveur (dédié, VPS, votre propre PC) tournant sur Debian 8, 9 ou 10
  • Un serveur web déjà installé (Apache, Nginx…)

Dans ce tutoriel nous verrons comment sécuriser votre site web tournant sur Nginx et Apache 2

Apache 2

  1. Connectez-vous en SSH sur votre serveur et authentifiez-vous
  2. Installez Certbot (tapez la commande suivante dans votre console)
sudo apt-get install certbot python-certbot-apache
  1. Lancez Certbot avec la commande suivante
sudo certbot --apache
  1. Testez le renouvellement automatique avant de le mettre en place
sudo certbot renew --dry-run
  1. Testez le bon fonctionnement de Certbot!

Rendez-vous sur votre site et vérifiez que dans la barre d’adresse le HTTPS apparaît bien

Nginx

  1. Connectez-vous en SSH sur votre serveur et authentifiez-vous
  2. Installez Certbot (tapez la commande suivante dans votre console)
sudo apt-get install certbot python-certbot-nginx
  1. Lancez Certbot avec la commande suivante
sudo certbot --nginx
  1. Testez le renouvellement automatique avant de le mettre en place
sudo certbot renew --dry-run
  1. Testez le bon fonctionnement de Certbot!

Rendez-vous sur votre site et vérifiez que dans la barre d’adresse le HTTPS apparaît bien

Automatiser le renouvellement de votre certificat

  1. Toujours en SSH sur votre machine, tapez la commande suivante
sudo crontab -e
  1. Tout en bas du fichier crontab, ajoutez la ligne suivante
@daily certbot renew --quiet