Salta al contenuto principale

Email e Backup

Inviato da tuxsa il
mail

Benvenuti all'ultima puntata della nostra serie. Dopo aver costruito e configurato il nostro server domestico con Nextcloud, oggi completiamo il sistema aggiungendo una soluzione di backup robusta e accennando alla gestione email self-hosted.

Obiettivo della puntata: Implementare un sistema di backup affidabile per tutti i nostri dati e servizi, e comprendere le basi dell'hosting email autonomo con i suoi pro e contro.

1. Perché il backup è fondamentale

Il backup dei dati è spesso trascurato fino a quando non si verifica un disastro. Ecco perché è essenziale:

  • Protezione da guasti hardware: I dischi rigidi hanno una vita limitata

  • Protezione da errori umani: Cancellazioni accidentali o configurazioni errate

  • Protezione da malware e ransomware: Attacchi che possono cifrare o danneggiare i dati

  • Conformità: Molte professioni richiedono backup regolari dei dati clienti

Regola d'oro del backup 3-2-1: Mantenere 3 copie dei dati, su 2 supporti diversi, di cui 1 conservata off-site.

2. Strategia di backup completa

Implementiamo una strategia a più livelli per proteggere tutti i nostri dati:

Backup dei dati utente (Nextcloud):

# Script per backup Nextcloud (nextcloud-backup.sh)
#!/bin/bash

# Configurazione
BACKUP_DIR="/backup/nextcloud"
DATE=$(date +%Y%m%d_%H%M%S)
NC_DIR="/var/www/nextcloud"
DB_USER="nextclouduser"
DB_PASS="password_molto_sicura"
DB_NAME="nextcloud"

# Creazione directory backup
mkdir -p $BACKUP_DIR/$DATE

# Modalità manutenzione Nextcloud
sudo -u www-data php $NC_DIR/occ maintenance:mode --on

# Backup database
mysqldump --single-transaction -h localhost -u $DB_USER -p$DB_PASS $DB_NAME > $BACKUP_DIR/$DATE/nextcloud-sqlbkp_$DATE.bak

# Backup file Nextcloud
rsync -Aavx $NC_DIR/ $BACKUP_DIR/$DATE/nextcloud-dirbkp/

# Disattivazione modalità manutenzione
sudo -u www-data php $NC_DIR/occ maintenance:mode --off

# Eliminazione backup più vecchi di 30 giorni
find $BACKUP_DIR/* -type d -ctime +30 -exec rm -rf {} \;

echo "Backup completato: $BACKUP_DIR/$DATE"

Automazione del backup con Cron:

# Aggiungere al crontab (sudo crontab -e)
0 2 * * * /path/to/nextcloud-backup.sh

3. Backup configurazioni del server

Oltre ai dati, è cruciale backup delle configurazioni:

# Script per backup configurazioni (config-backup.sh)
#!/bin/bash

# Directory backup
BACKUP_DIR="/backup/config"
DATE=$(date +%Y%m%d)
CONFIG_BACKUP="$BACKUP_DIR/server-config_$DATE.tar.gz"

# Elenco directory importanti da backupare
tar -czf $CONFIG_BACKUP \
  /etc/nginx \
  /etc/ssh \
  /etc/letsencrypt \
  /etc/fail2ban \
  /home/*/.ssh \
  /root/.ssh \
  /var/log \
  2>/dev/null

# Eliminazione backup più vecchi di 90 giorni
find $BACKUP_DIR/* -type f -ctime +90 -exec rm -rf {} \;

echo "Backup configurazioni completato: $CONFIG_BACKUP"

4. Soluzioni di backup off-site

Implementiamo backup esterni per la regola 3-2-1:

Utilizzo di Rclone per backup cloud:

# Installazione Rclone
curl https://rclone.org/install.sh | sudo bash

# Configurazione (seguire il wizard)
rclone config

# Sincronizzazione backup con cloud esterno
rclone sync /backup/nextcloud remote:backup-server -P --transfers 10

Backup su disco esterno:

# Script per backup su disco esterno (external-backup.sh)
#!/bin/bash

# Verifica se il disco esterno è montato
if mountpoint -q /mnt/backup-disk; then
    rsync -av --delete /backup/ /mnt/backup-disk/
    echo "Backup su disco esterno completato"
else
    echo "Disco esterno non montato"
fi

5. Introduzione all'email self-hosted

Hosting della propria email è complesso ma possibile. Ecco cosa considerare:

Avvertenza: L'email self-hosted è avanzato e richiede manutenzione costante. Molti provider bloccano email da server residenziali. Valutate soluzioni ibride.

Componenti di un server email:

  • MTA (Mail Transfer Agent): Postfix, Exim

  • MDA (Mail Delivery Agent): Dovecot

  • Filtri antispam: SpamAssassin, Rspamd

  • Filtri antivirus: ClamAV

  • Webmail: Roundcube, RainLoop

6. Configurazione email base con Postfix e Dovecot

Installazione minima per testing o uso interno:

# Installazione pacchetti base
sudo apt install postfix dovecot-imapd dovecot-pop3d

# Durante l'installazione di Postfix, selezionare "Internet Site"
# e inserire il vostro dominio

Configurazione base Postfix (main.cf):

# /etc/postfix/main.cf
myhostname = mail.tuodominio.com
mydomain = tuodominio.com
myorigin = $mydomain
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
home_mailbox = Maildir/

Configurazione base Dovecot:

# /etc/dovecot/conf.d/10-mail.conf
mail_location = maildir:~/Maildir

7. Soluzioni ibride per l'email

Per evitare problemi di deliverability, considerate soluzioni ibride:

  • Incoming: Usare il vostro server per ricevere email

  • Outgoing: Usare un servizio SMTP relay come SendGrid, Mailgun o Amazon SES

  • Vantaggi: Maggiore affidabilità nell'invio e meno rischi di blacklist

8. Monitoraggio e manutenzione del server

Strumenti per tenere sotto controllo il server:

Installazione di Cockpit per gestione web:

sudo apt install cockpit
sudo systemctl enable --now cockpit.socket
sudo ufw allow 9090

Monitoraggio con netdata:

bash <(curl -Ss https://my-netdata.io/kickstart.sh)
sudo ufw allow 19999

Script di manutenzione automatica:

# Script manutenzione (maintenance.sh)
#!/bin/bash

# Aggiornamento sistema
apt update && apt upgrade -y

# Pulizia pacchetti non necessari
apt autoremove -y
apt autoclean -y

# Rotazione log
logrotate -f /etc/logrotate.conf

# Riavvio servizi principali
systemctl restart nginx
systemctl restart php8.2-fpm
systemctl restart mysql

9. Checklist di manutenzione regolare

  • Giornaliera: Verifica backup, controlla log, verifica spazio disco

  • Settimanale: Aggiornamento pacchetti, pulizia system, verifica sicurezza

  • Mensile: Test restore backup, verifica certificati SSL, audit sicurezza

  • Trimestrale: Verifica hardware, aggiornamento major software, review configurazioni

10. Conclusioni della serie

In questa serie abbiamo costruito insieme un server domestico completo e sicuro:

  1. Valutazione hardware e pianificazione

  2. Installazione di Debian 13

  3. Configurazione della sicurezza di base

  4. Accesso remoto sicuro con SSH

  5. Reverse proxy con Nginx e SSL

  6. Installazione di Nextcloud come cloud privato

  7. Backup e soluzioni email (questa puntata)

Ora avete un sistema completo sotto il vostro controllo, che rispetta la vostra privacy e vi libera dai servizi cloud commerciali.

Ricordate: Un server richiede manutenzione costante. dedicate del tempo ogni mese per verificare che tutto funzioni correttamente e che i backup siano integri.

Risorse utili

Hai domande o bisogno di chiarimenti?

Lascia un commento qui sotto con le tue domande! Continuerò a risponderti anche dopo la serie.


Grazie per aver seguito la serie! Spero che il vostro server domestico vi dia soddisfazione e vi liberi dai vincoli dei servizi cloud commerciali.

Iscriviti alla newsletter per eventuali aggiornamenti futuri e nuovi tutorial!