Backup do pfSense
Introdução
Este documento destina-se a demonstração dos procedimentos de implementaçao do backup das configurações de um servidor pfSense. A efetivação destes procedimentos permite rápida restauração de um servidor pfSense com problemas ou implantação de um servidor baseado nas configurações de um anterior.
O backup é realizado conforme a figura acima. Este método de backup é utilizado quando não é possível instalar um cliente diretamente no host que sofrerá o backup dos dados. Neste caso, um host intermediário (Backup-gateway), este com capacidade de sofrer backup dos dados, realiza a cópia do pfSense para o seu disco local. Em seguida, de acordo com o agendamento, o servidor de backup realiza o backup dos dados copiados no host intermediário.
Este método é baseado em uma ferramenta open source que realiza a cópia dos dados do pfSense de forma otimizada via comunicação HTTPS. A ferramenta conecta-se ao pfSense com as credenciais e em seguida realiza o download das configurações do pfSense.
Backup do pfSense
A máquina Backup-gateway tem um S.O do tipo centOs versão 7.3.1611. A partir desta máquina e com um usuário com permissões de administrador:
$ sudo yum check-updates
$ sudo yum install epel-release
$ sudo yum install python-pip
$ sudo pip install BeautifulSoup4
Agora realize o download do código python a ser utilizado. Coloque este código em /root, por exemplo.:
$ sudo wget -c https://raw.githubusercontent.com/edgauthier/pfsense-backup/master/pfsense-backup.py
$ sudo cp pfsense-backup.py /root/pfsense-backup.py
A utilização do código é da seguinte forma:
Usage: pfsense-backup.py OPTIONS
OPTIONS:
-h | --help
-s <server url> | --server <server url>
The base URL for the pfSense installation.
Example: https://pfsense.example.com
-t <seconds> | --timeout <seconds>
Timeout for network requests.
-u <username> | --username <username>
-p <password> | --password <password>
-d | --directory <directory>
Defaults to current directory.
-r | --rrd
Includes RRD data with the backup.
-f | --file <file>
Defaults to 'pfsense-backup.xml'
Um exemplo de uso é o seguinte::
$ ./pfsense-backup.py -s https://172.20.254.100:443 -t 5 -u admin -p senha123 -r -f arquivo_backup_pfSense.xml
Para uso em rotinas, fica a sugestão do seguinte script:
#!/bin/bash
data=$(/bin/date +%Y-%m-%d)
hora=$(/bin/date +%X)
DIR=/backup/pfsense/
host1="PFsense"
user1=admin
passwd1=senha123
server1=172.20.254.100
FILE1=backup_"$host1"-$data.xml
method=https
port=443
timeout=5
logFile=/var/log/backup-pfSense.log
# Funcao
writeLog(){
echo -e "$data $hora - $1\n" >> $logFile
}
backup(){
/root/pfsense-backup.py -s $method://$1:$port -t $timeout -u $2 -p "$3" -r -f "$4"
}
check(){
if [ -e $1 ]; then
writeLog "Cópia de $2 realizada com sucesso!"
else
writeLog "Cópia de $2 não realizada, verificar log."
fi
}
writeLog "Iniciando rotina de cópia dos dados"
mkdir -p $DIR
cd $DIR
backup $server1 $user1 $passwd1 $FILE1
writeLog "Realizando a cópia remota dos dados do host: $host1"
check $FILE1 $host1
writeLog "Encerrando rotina..."
Nenhum comentário