Déployer le système de sécurité

Voilà, le travail d’installation se termine ; vous avez dû y passer des soirées, mais le résultat en vaut la chandelle.

Il serait dommage de tout perdre à la suite d’un quelconque incident, aussi je vais terminer par la mise en place d’un système de sécurité

Principes de la sécurité :

Nous allons tout d’abord créer deux répertoires :
  • un répertoire /home/_proc/ dans lequel nous allons placer deux procédures (« sauvetage » et « restoration »),
  • un répertoire /home/_save/ dans lequel nous déposerons toutes les nuits une archive contenant les données vivantes de votre serveur.

Procédure de sauvegarde

Voici le contenu de la procédure :

#!/bin/sh
#==================================================
#
# BATCH EXECUTE TOUTES LES NUITS à 3 heures
#
#==================================================
www= »192.18.0.5″

//=== suppression des archives précédentes

cd /home/_save
rm *.tar.gz

#—————————————
# sauvegarde de Mailcow —-> _save
#—————————————

#=== Archivage (on créé une directory appelée « mailcow-[date heure] » qui contient les données
set +e
export MAILCOW_BACKUP_LOCATION= »/home/_save »
set -e
/opt/mailcow-dockerized/helper-scripts/backup_and_restore.sh backup all >/dev/null 2>/dev/null

#=== On rename la directory « mailcow-[date heure] » en « mailcow »
mv mailcow*/ mailcow/

#=== on créé une seule archive -> mailcow-data-0.tar.gz
tar zcvf mailcow-data-0.tar.gz mailcow >/dev/null 2>/dev/null

#=== on supprime la directory « mailcow »
rm -rf mailcow

#————————————–
# sauvegarde des certificats et des procédures
#————————————–
tar zcvf /home/_save/mailcow-cert-0.tar.gz /opt/mailcow-dockerized/data/assets/ssl >/dev/null 2>/dev/null

tar zcvf /home/_save/mail-cow-proc-0.tar.gz /home/proc >/dev/null 2>/dev/null

#————————————–
# synchro de _save –> [serveur web]
#————————————–
rsync -e ssh -vdtg –del /home/_save/ root@$www:/home/_save_mail/ >/dev/null

 

Procédure de restauration

Voici le contenu de la procédure :

#!/bin/sh
#==================================================
#
# RESTAURATION de Mailcow
#
#==================================================

echo  » « 
echo « ********************************** »
echo « ATTENTION: restauration de MAILCOW »
echo « ********************************** »
echo « (apputez sur envoi) »
read fake

#—–
# décompression de l’archive –> directory /home/_save/mailcow
#—–
tar xvfz /home/_save/mailcow-data-0.tar.gz -C /home/_save/
mv /home/_save/mailcow /home/_save/mailcow-20200101000000

#—–
# restauration des datas
#—–

echo  » « 
echo « ——————————————————–« 
echo « Les données de restauration sont en /home/_save »
echo « – entrer 1 comme restore point »
echo « ——————————————————–« 
/opt/mailcow-dockerized/helper-scripts/backup_and_restore.sh restore

Le déclenchement de la sauvegarde toutes les nuits

Nous allons dans un premier temps générer des clefs permettant d’accéder au serveur web depuis le serveur de mails, sans avoir besoin de rentrer un mot de passe à chaque fois.

ssh-keygen -t rsa

# faire envoi à chaque demande du logiciel

ssh-copy-id root@192.168.0.5

Puis, nous allons utiliser la fonction « Cron » d’Ubuntu qui lancera la procédure de sauvegarde à trois heures toutes les nuits, et la déplacera sur une machine lointaine

crontab -u root -e

  00 03 * * * /home/_proc/sauvegarde