Table of Contents
BackupPC
Test e alcune considerazioni
Si è provato il programma per fare il backup di diverse postazione Windows remote, tramite OpenVPN. Ci sono state diverse difficoltà da superare, il risultato complessivo è stato NON soddisfacente.
Nome Windows, risoluzione broadcast, ecc.
BackupPC, per impostazione predefinita, effettua il backup di un PC Windows direttamente tramite protocollo SMB, senza necessità di client dedicati. Questo funziona bene in rete locale, con risoluzione dei nomi broadcast tipo nmbLookup (dal pacchetto samba-common-bin).
Far funzionare la cosa in rete geografica (tramite un firewall OpenVPN) è più complicato, perché:
- L'host non è raggiungibile direttamente, ma tramite DNAT.
- Host diversi sono raggiungibili dietro un singolo indirizzo IP.
- Host diversi vengono distinti tramite porte TCP/IP diverse.
Ecco come si è provato a risolvere il problema:
- Nell'interfaccia (Edit Hosts) web si inserisce il nome dell'host da backuppare.
- Tale nome viene risolto tramite nmblookup al momento del backup, il che ovviamente non funziona. Nelle impostazioni Edit Config ⇒ Backup Settings ⇒ NmbLookupFindHostCmd si è indicato un eseguibile diverso da nmblookup. In pratica si è creato uno script personalizzato che riceve il nome di un host e restituisce l'indirizzo IP, emulando l'output di
nmblookup
. - Per ogni host da backuppare si è creato un file di configurazione personalizzato /etc/backuppc/<hostname>.pl. In questo modo è possibile indicare un eseguibile smbclient personalizzato, si è utilizzato un trucco per poter specificare una porta TCP/IP diversa da quella predefinita (445/TCP). Si imposta la variabile $Conf{SmbClientPath} ad uno script personalizzato che a sua volta chiama /usr/bin/smbclient -p 10445 $@.
File da includere/escludere
Volendo personalizzare l'elenco dei file da salvare per ogni host, si è creato un file del tipo /etc/backuppc/<hostname>.pl:
$Conf{XferMethod} = 'smb'; $Conf{SmbShareName} = 'c'; $Conf{SmbShareUserName} = 'backuppc'; $Conf{SmbSharePasswd} = 'password'; $Conf{SmbClientPath} = '/usr/local/bin/smbclient_10445'; #$Conf{BackupFilesExclude} = ['/home/*']; $Conf{BackupFilesOnly} = ["Documents"];
ATTENZIONE! Stando alla documentazione non è possibile utilizzare contemporaneamente le opzioni BackupFilesOnly e BackupFilesExclude: la prima ha la precedenza sulla seconda.
ATTENZIONE! L'impostazione personalizzata di $Conf{SmbClientPath} serve a poter specificare una porta TCP/IP custom al comando smbclient, pare che non ci sia modo alternativo di specificarla.
Nomi con gli spazi
Utilizzando la direttiva $Conf{BackupFilesOnly} ci siamo scontrati con il problema degli spazio nei nomi delle directory. La documentazione non dice come fare: inserire gli spazi direttamente nel nome del file, oppure utilizzare caratteri di escape o doppie virgolette non pare funzionare.
$Conf{BackupFilesOnly} = ["Documents?and?Settings", "Program?Files"];
Permessi
Si è creato un utente apposito per effettuare il backup, assegnandogli i permessi di Administrator. Purtroppo questo pare non sufficiente, entrando in maniera interattiva con smbclient non si riesce a discendere in tutte le directory a cui si vorrebbe avere accesso.