Inicio Linux & Systems Networks & Infrastructure Cybersecurity Cloud & DevOps SIEM & Monitoring DFIR & Threat Intel Development & Other Todas las categorias Herramientas

Backup automáticos en FortiGate

Backup automáticos en FortiGate

Tabla de contenidos

mini manual para realizar automaticamente backups en los Fortigate

Generamos la cable publica desde el servidor que se va a ejecutar el backup

text
ssh-keygen -trsa -b1024

Nos generara la siguiente clave publica que tenemos que copiar despues

bash
cat .ssh/id_rsa.pub
AAAAB3NzaC1yc2EAAAADAQABAAACAQC9FhYBX35Tu3lyJNovOu4n8IXrdfWpsmUanSgrS33NH7PhEU+FVAnjGp7OkZo5p1EV4UhOjwgSYoHy2NyHzpG3qXzw4P5siQlOkbrljscRR5qB8jrchEJkAEimsq9sX68tJHmAIXec7D4OVNeI8cf71h2immnGYImEUSmOM7TtvZP7mCGqI+RDE9Om07GD8sAx1Hk9Tpp2FtltHc9+hqxp4+CLUxdBmx7kvOAO9zpTBpILpKLTM4lcIOIuk+xlSfhyiRJqJPsfSvHW7ZCgxgPM3PvHj4HNzADUXaaOO13KvKU5DZuJWIHHP4eIPFCC90eAo/CWCNFwuWnDhcSII01Y1LliaggK0XZe6PcWCQ9S4xbYOpFI5O+FNajHM9uz1zB1nLoJ/Z+wGDCpn0FEf7Lk7Px9o9H2oo+LjlS1FhWL2fqWus2+LTcSImJ4EXqgbKOf4BFHZFnzHL2uhCjWzB5VO96G8CzxPoeApdARU9hpf4v2PjbTBITHdzzWwojq9u2Iwa5hzNEuL7A5FwEndrvFycXS1sAe+h04L2Q2obAOquPqTQ3akRvoW5ApqvxOXTFwqU48GgqsGCrrkNhIoFUHTHlyDyVMyr84MKa8z+ZMMRhP6Ss3h+5a4dQ8gBeZqW1tnkgzDeBDPLtl24D3ELoZm91XEq/NY2Wf5XKby3S8zQ==

Accedemos al fortigate mediante ssh

Configuramos el SCP

text
FORTIGATE # config global

FORTIGATE # config system global

FORTIGATE # set admin-scp enable

FORTIGATE # end

Configuramos el usuario

text
FORTIGATE # config global

FORTIGATE (global) # config system admin

FORTIGATE (admin) # edit backup

Añadimos el usuario al grupo uper_admin_readonly accprofile 

text
VFORTIGATE  (backup) # set accprofile super_admin_readonly

Añadimos hosts donde podamos acceder con este usuario:

text
FORTIGATE (backup) # set trusthost1 <ip/mask>

Añadimos la RSA generada anteriormente

text
set ssh-public-key1 «ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC9FhYBX35Tu3lyJNovOu4n8IXrdfWpsmUanSgrS33NH7PhEU+FVAnjGp7OkZo5p1EV4UhOjwgSYoHy2NyHzpG3qXzw4P5siQlOkbrljscRR5qB8jrchEJkAEimsq9sX68tJHmAIXec7D4OVNeI8cf71h2immnGYImEUSmOM7TtvZP7mCGqI+RDE9Om07GD8sAx1Hk9Tpp2FtltHc9+hqxp4+CLUxdBmx7kvOAO9zpTBpILpKLTM4lcIOIuk+xlSfhyiRJqJPsfSvHW7ZCgxgPM3PvHj4HNzADUXaaOO13KvKU5DZuJWIHHP4eIPFCC90eAo/CWCNFwuWnDhcSII01Y1LliaggK0XZe6PcWCQ9S4xbYOpFI5O+FNajHM9uz1zB1nLoJ/Z+wGDCpn0FEf7Lk7Px9o9H2oo+LjlS1FhWL2fqWus2+LTcSImJ4EXqgbKOf4BFHZFnzHL2uhCjWzB5VO96G8CzxPoeApdARU9hpf4v2PjbTBITHdzzWwojq9u2Iwa5hzNEuL7A5FwEndrvFycXS1sAe+h04L2Q2obAOquPqTQ3akRvoW5ApqvxOXTFwqU48GgqsGCrrkNhIoFUHTHlyDyVMyr84MKa8z+ZMMRhP6Ss3h+5a4dQ8gBeZqW1tnkgzDeBDPLtl24D3ELoZm91XEq/NY2Wf5XKby3S8zQ==»

Definimos el VDOM de management

text
FORTIGATE  (backup) # set vdom root

Guardamos

FORTIGATE  (backup) # end

Ahora solo hace falta añadir en el crontab del servidor un script que realice el backup.

bash
#!/bin/bash
#Definimos las variables
DATE=`date +%Y%m%d`

USER=»backup» #Usuario que se va a conectar mediante ssh

NUM=»2″ #Definimos el numero de backups que va a realizar, en este caso en dos fortis

FORTINAME[1]=»fortigate1″ #hostFORTINAME del forti1

FORTINAME[2]=»fortigate2″ #hostFORTINAME del forti12

LOCALPATH=»/backup/» #file system local donde se van a guardar los backups

LOG=»/var/log/backupfortigate.log» #Log

REMOTEPATH[1]=»DIRECCION_IP_FORTIGATE1:sys_config» #Direccion forti1:fichereo a realizar el backup, en este caso la configuración

REMOTEPATH[2]=»DIRECCION_IP_FORTIGATE2:sys_config» #Direccion forti2:fichero a realizar el backup, en este caso la configuración
TEMPORAL=»mail» #Archivo temporal donde se va a guardar toda la informacion para enviar el correo

#Datos de a quienes va a mandar el correo.

SUBJECT=»0″

SENDTO=»backup@red-orbita.com,comunicaciones@red-orbita.com»

SENDCC=»rokitoh@red-orbita.com»
#Comprueba si el file system /backup está montado, y si no lo esta lo monta.

if [ `df | grep backup | wc -l` -eq 0 ] ; then

mount -t ext4 /backup

fi
echo -e «Buenas noches.\n\n\tResumen de backup:\n» > $TEMPORAL
#Empieza a pasar los ficheros mediante scp
for((i=1;i<=$NUMFTG;i++)) ; do

scp $USER@${REMOTEPATH[$i]} $LOCALPATH${FORTINAME[$i]}/fgt_system.${FORTINAME[$i]}.$DATE.conf

done
#Le cambia los permisos.
for((i=1;i<=$NUMFTG;i++)) ; do

if [ -f $LOCALPATH${FORTINAME[$i]}/fgt_system.${FORTINAME[$i]}.$DATE.conf ] ; then

chmod 640 $LOCALPATH${FORTINAME[$i]}/fgt_system.${FORTINAME[$i]}.$DATE.conf

chown ‘root:root’ $LOCALPATH${FORTINAME[$i]}/fgt_system.${FORTINAME[$i]}.$DATE.conf

echo -e «\tOK – $LOCALPATH${FORTINAME[$i]}/fgt_system.${FORTINAME[$i]}.$DATE.conf» >> $TEMPORAL

else

echo -e «\tKO – $LOCALPATH${FORTINAME[$i]}/fgt_system.${FORTINAME[$i]}.$DATE.conf» >> $TEMPORAL

SUBJECT=»1″

fi

done
#Manda el correo
if [ $SUBJECT -eq 0 ] ; then

echo -e «\n\nSaludos.» >> $TEMPORAL

cat $TEMPORAL | mail -s «Informe Backup FortiGate $DATE – OK» -c $SENDCC $SENDTO

else

echo -e «\n\tRevisar el log: $LOG \n\nSaludos.» >> $TEMPORAL

cat $TEMPORAL | mail -s «Informe Backup FortiGate $DATE – KO (Revisar)» -c $SENDCC $SENDTO

fi

#Elimina los ficheros temporales generados.
rm -rf $TEMPORAL
find $LOCALPATH -iFORTINAME «*.conf» -mtime +30 -exec rm -rf {} \;

Un saludo,

Comentarios