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é :
- 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