Configurazioni per il serverone

Table of Contents

Elenco di configurazioni che uso sul serverone, sia da utente che di sistema.

Per commenti e suggerimenti scrivere a leandro@firenze.linux.it

Dimenticavo la stupidaggine della licenza: tutto questo è totalmente nel pubblico dominio.

1. Connessione al serverone con mosh   SSH Mosh

Mosh è un’applicazione per le connessioni remote che permette il mantenimento della connessione (che comunque avviene sempre usando il trasporto di ssh) anche in caso di disconnessione o di cambio indirizzo di origine.

Usa il protocollo udp e quindi è stato necessario modificare le regole di iptables che abbiamo sul vps frontiera aggiungendo la seguente regola

iptables -t nat -A PREROUTING -i enX0 -p udp --dport 60001 -j DNAT --to-destination 10.8.8.2:9807`

e quindi la connessione di mosh avverrà sulla porta 9807 con il comando

mosh -p 9807 --ssh="ssh -p 222" firenze.linux.it

2. Backup personale della posta elettronica   PostaElettronica Personali Backup

Come ho scritto altrove ho già il backup di tutta la home però la posta elettronica secondo me ha necessità di mantenere un backup più completo e soprattutto di non cancellare mai niente, per lo meno dei messaggi che mi interessano.

Quindi, come per il backup della cartella, ho usato il mio nas casalingo, sul quale ho già un sistema di backup della posta di un altro indirizzo e ho fatto le seguenti configurazioni:

  • ho installato offlineimap e l’ho configurato per scaricare la posta elettronica dal serverone con il seguente file di configurazione:

      [general]
      accounts = coraggio
    
      [Account coraggio]
      localrepository = CoraggioLocale
      remoterepository = CoraggioRemoto
    
      [Repository CoraggioLocale]
      Type = Maildir
      localfolders = ~/Posta/coraggio
    
      [Repository CoraggioRemoto]
      type = IMAP
      ssl = yes
      remotehost = mx.firenze.linux.it
      remoteuser = leandro
      remotepass = password
      cert_fingerprint = 56:C6:A2:BE:5F:FD:4D:2A:13:96:72:28:71:8A:73:25:3D:36:EF:5E
    

    In questo modo ho una copia della cartella di posta del serverone sul mio nas.

  • su questa cartella ci faccio girare chewmail (sempre installato dal pacchetto debian) che è un compressore di cartelle di posta elettronica po’ l’erede del mitico `archivemail` non più sviluppato e quindi non più presente in debian.

    La mia strategia è quella di copiare i messaggi che mi interessa mantenere in cartelle nel formato mbox (per prendere meno spazio su disco) suddivise per mese e anno e cancellare tutto ciò che non mi interessa dopo un periodo di tempo.

    Questo la riga di comando che uso per fare ciò

      chewmail -d 60 -R --preserve-timestamp --output-box=~/ArchivioServerone/INBOX-%Y-%m ~/Posta/coraggio/INBOX/
    

    Con questo comando copio i messaggi della cartella principale in cartelle suddivise per anno e mese e tolgo dalla cartella originale quelli più vecchi di 60 giorni.

      chewmail -d 7 --preserve-timestamp --output-box=~/ArchivioServerone/Junk ~/Posta/coraggio/Junk/
    

    Con questo comando copio i messaggi più vecchi di una settimana dalla cartella Junk originale in una temporanea e poi li cancello da quella originale.

Metto poi questi due comandi in uno script e lo faccio girare con un job di cron sul nas una volta la settimana.

3. Controllo del traffico di rete con vnstat   Sistema

Considerato che il serverone è ospitato presso un’abitazione privata, con una connessione di tipo “domestico” credo sia necessario tenere d’occhio il traffico generato.

Per adesso sto utilizzando semplicemente vnstat (dal pacchetto debian) con un semplice job di crontab che mi invia quotidianamente il conteggio del traffico.

Il risultato è qualcosa di questo genere (considerato che l’ho appena installato e quindi i dati sono aggiornati a poco fa):

                      rx      /      tx      /     total    /   estimated
 Flug:
       2026-03    556.99 KiB  /    1.37 MiB  /    1.92 MiB  /    3.08 GiB
         today    556.99 KiB  /    1.37 MiB  /    1.92 MiB  /    4.76 MiB

 GolemIPv6:
       2026-03         552 B  /    1.84 KiB  /    2.38 KiB  /    1.53 MiB
         today         552 B  /    1.84 KiB  /    2.38 KiB  /       4 KiB

 enp1s0:
       2026-03    868.87 KiB  /    2.59 MiB  /    3.44 MiB  /    5.53 GiB
         today    868.87 KiB  /    2.59 MiB  /    3.44 MiB  /    8.55 MiB

 enp2s0:
       2026-03           0 B  /         0 B  /         0 B  /     --     
         today           0 B  /         0 B  /         0 B  /     --     

 enp3s0:
       2026-03           0 B  /         0 B  /         0 B  /     --     
         today           0 B  /         0 B  /         0 B  /     --     

Spiegazione delle voci:

  • Flug è la vpn che collega il serverone al vps (frontiera) che ci fornisce l’ip statico;
  • GolemIPV6 è la vpn del Golem che ci dà un’ulteriore indirizzo IPv6;
  • enp1s0 è la scheda ethernet collegata alla rete casalinga, quindi la connessione da tenere realmente sotto controllo;
  • enp2s0 e enp3s0 sono altre due schede di rete presenti sull’hardware ma non utilizzate.

4. Backup remoto della $HOME   Personali Backup

Ho necessità di tenere un backup remoto della mia home sul serverone visto che il supporto di questa non è delle più affidabili: link al resoconto della riunione.

Però era per me necessario evitare di usare la chiave ssh privata che sta sul serverone per collegarmi al server remoto, perché, essendo il serverone senza un mio controllo diretto, volevo evitare che fosse questo a fare connessioni all’esterno ma che le ricevesse.

Inoltre ho a disposizione un NAS casalingo sempre acceso e che quindi posso usare come origine delle connessioni.

Ho quindi installato sul NAS rsnapshot dal pacchetto debian e l’ho configurato con il seguente file di configurazione, copiando quello di default con leggere modifiche (che elenco):

config_version	1.2

snapshot_root           /srv/dev-disk-by-uuid-f640bbbf-7534-4a52-a17e-4a1d1845dd0f/HomeCoraggio/

cmd_cp		/usr/bin/cp

cmd_rm		/usr/bin/rm

cmd_rsync	        /usr/bin/rsync

cmd_ssh	        /usr/bin/ssh

cmd_logger	        /usr/bin/logger

cmd_du		/usr/bin/du

retain	        alpha	6
retain	        beta	7
retain	        gamma	4
retain	        delta	3

verbose		2

loglevel	        3

lockfile                /srv/dev-disk-by-uuid-9418021a-1564-4c99-9947-193bfcde0fc3/Home/leandro/.config/rsnapshot/rsnapshot.pid

ssh_args	        -p 222

# Coraggio
backup	        leandro@firenze.linux.it:/home/leandro/*	home_coraggio/

Ho quindi creato una chiave ssh per l’utente del NAS della quale ho copiato la chiave pubblica sul serverone (al quale è possibile collegarsi solo via chiave).

Infine ho creato il seguente compito di crontab:

0 */4 * * *     rsnapshot -c .config/rsnapshot/rsnapshot.conf alpha
50 23 * * *     rsnapshot -c .config/rsnapshot/rsnapshot.conf beta
50 22 * * 6     rsnapshot -c .config/rsnapshot/rsnapshot.conf gamma
50 21 1 * *     rsnapshot -c .config/rsnapshot/rsnapshot.conf delta

Con questa configurazione:

  • ho un backup fatto ogni 4 ore del quale ne vengono mantenute 6 copie;
  • un backup giornaliero del quale ne vengono tenute 7 copie;
  • un backup settimanale del quale ne vengono tenute 4 copie;
  • un backup mensile del quale ne vengono tenute 3 copie.

Author: Leandro Noferini

Created: 2026-04-11 sab 10:20