Backup de dispositivos Fortigate
Aquí va una pequeña guía de cómo hacer backup de la configuración de dispositivos Fortigate. A parte de guardar la última versión de la configuración, aprovechamos para guardarla en un repositorio Subversion que nos permite tanto almacenar configuraciones anteriores como ver diferencias entre ellas.
PARTE 1: Crear el repositorio subversion
Este paso solo se debe realizar una vez. Básicamente es:
backup@rhel6 ~ $ mkdir svnrepo backup@rhel6 ~ $ svnadmin create file:///home/backup/svnrepo/fortigate backup@rhel6 ~ $ svn checkout file:///home/backup/svnrepo/fortigate .
Esto generará un repositorio en /home/backup/svnrepo/fortigate y tendremos una copia de trabajo (checkout) en /home/backup/fortigate . Es este segundo directorio donde debemos almacenar los ficheros de configuración.
Parte 2: Crear una llave ssh para autenticación sin password.
(Opcional) Solo es necesario una vez. Esto nos permitirá conectarnos al firewall de forma desatendida. Para ello es necesario:
backup@rhel6 ~ $ ssh-keygen -t dsa
Esto nos generará dos ficheros dentro del directorio \~/.ssh , a saber :
$ ll .ssh/ total 72 -rw-------. 1 backup backup 668 Aug 30 2009 id_dsa -rw-r--r--. 1 backup backup 601 Aug 30 2009 id_dsa.pub
El fichero id_dsa contiene la clave privada, mientras que el id_dsa.pub contiene la clave pública que debemos llevar a cada uno de los firewalls a los que queramos conectarnos. Para ver la clave pública, simplemente podemos hacer un cat del fichero:
$ cat ~/.ssh/id_dsa.pub ssh-dss CHURRO backup@rhel6
PARTE 3: Configurar el firewall para permitir conexión con clave pública.
Asumiendo que ya tenemos un usuario llamado "backup" con permisos de administrador sobre el firewall, estos son los pasos a seguir:
$ ssh backup@FORTI-FW01 backup@FORTI-FW01's password: FORTI-FW01 $ config system global FORTI-FW01 (global) $ set admin-scp enable FORTI-FW01 (global) $ end FORTI-FW01 $ config system admin FORTI-FW01 (admin) $ edit backup FORTI-FW01 (backup) $ set ssh-public-key1 "ssh-dss CHURRO backup@rhel6" FORTI-FW01 (backup) $ next FORTI-FW01 (admin) $ end FORTI-FW01 $ exit Connection to FORTI-FW01 closed.
PARTE 4 : Automatizar el backup
Una vez tenido todo esto, lo único que nos hace falta para automatizar la copia es crear un par de scripts que se conecten a los firewalls y recojan la configuración. Por ejemplo:
backup@rhel6 ~/fortigate $ cat devices.conf # Add firewalls here forti-fw01 backup@rhel6 ~/fortigate $ cat getconfigs.sh #!/bin/bash export PATH=$PATH:usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin for i in `grep -v ^\# /home/backup//fortigate/devices.conf `; do scp $i:sys_config ~/fortigate/sys_cofig.$i done cd ~/fortigate/configs svn add *.conf *.sh sys_config* svn commit -m "Autocommit"