Backup automatico Fortigate

Desculpem a demora nos lançamentos de novos posts. 🙂

Nesse post irei deixar um script que uso para realizar backup de Fortigates remotos.

Em projetos com vários box Fortigates, sempre surge a pergunta do cliente, como vai manter um backup atualizado dessas caixas? Sei que existem outras formas de fazer o Backup automático (Fortimanager), mas, gosto do meu script ele me manda email quando falha :)-

Vamos começar a brincadeira.

Neste post nada de WEB GUI só a boa e velha telinha CLI.

Vamos começar com a habilitação do SCP no firewall

config system global
set admin-scp enable
end


Não podemos de esquecer de habilitar o ssh em acessos administrativos na interface que iremos conectar.

config system interface
edit "port1"
set allowaccess ping https ssh
end

Com isso configurado podemos criar um perfil de acesso apenas a leitura para realizar o bakcup.

config system accprofile
edit "profile-backup"
set mntgrp read
next
end

Na V5 o profile tem que ser

config system accprofile
    edit “profile-backup
        set admingrp read
        set authgrp read
        set endpoint-control-grp read
        set fwgrp read
        set loggrp read
        set mntgrp read
        set netgrp read
        set routegrp read
        set sysgrp read
        set updategrp read
        set utmgrp read
        set vpngrp read
        set wifi read
    next
end

Antes de prosseguirmos temos que gerar nossa chave de RSA para o SSH, irei deixar como lição de casa vocês procurarem  como fazer isso. 🙂
Dica usem o google.

Se precisar de help gritem ai nos comentários 🙂

Para finalizar vamos criar nosso usuário para autenticar com a chave criada anteriormente.

config system admin
edit "usuario.backup"
set accprofile "profile-backup"
set ssh-public-key1 "ssh-rsa "
next
end

Com isso pronto vamos para parte do script.
Esse é um shellscript que roda em um ambiente Debian.

#script de backup via rede dos Fortigates
# por William Costa
#william ponto costa arroba trtec ponto com ponto br
MAIL="aa@aa.com.br" #e-mail que será enviado  informações do bkp
LOG="Caminho do log" #Arquivo de log.
destino="Caminho para salvar o backup" #diretório de destino
data=`date +%d%m%Y`  #data atual do sistema


scp -P2222 -B -i  "arquivo com a chave SSH " usuario.backup@IP do fortigate:sys_config $destino/Nome_do_backup_$data.cfg # comando do backup
if [ $? = 0  ]; then #checa se teve erro no comando acima
echo "Realizando Backup Efetuado"  # se o backup ocorreu com sucesso
else        # se ocorrer o erro envia um email
echo  "Em `date`\n  Falha Backup" | mutt -s  "Falha no backup" "$MAIL"
fi

Se necessário é só incrementar mais equipamentos, esse script roda hoje com mais de 20 equipamentos sem problemas. 🙂

 

Pessoal segue a atualização do post com a Contribuição do meu amigo Celso Faria da Unimed.

Criei um estrutura dentro do home de um usuário “user.backup” criado no servidor linux e utilizado para o backup, ficou assim:
/home/user.backup

-rwxrwxr-x 1 user.backup user.backup 1037 Jun 12 12:58 backup.sh
drwxrwxr-x 2 user.backup user.backup 4096 Jun 12 11:25 chaves
drwxrwxr-x 2 user.backup user.backup 4096 Jun 12 14:02 configs
-rw-rw-r– 1 user.backup user.backup  120 Jun 12 11:24 fortigates.fgt
drwxrwxr-x 2 user.backup user.backup 4096 Jun 12 14:00 logs
chaves: diretório onde estão as chaves publico/privada
configsdiretório onde serão gravadas as configurações copiadas dos fortigates 
logsdiretório onde serão gravados os logs
fortigates.fgt: arquivo contendo os IP’s (um por linha) dos fortigates que terão as configurações backupeadas
backup.sh: o script em si (abaixo)
backup.sh
#!/bin/bash

###################################################################
# Script de backup via rede dos Fortigates                        #
# por William Costa – TRTec (william.costa arroba trtec.com.br)          #
# adaptado por Celso Faria – Unimed (celso.faria arroba unimedsa.com.br) #
###################################################################

MAIL=”aaaa@aaaa.com.br”
CHAVES=”/home/user.backup/chaves”
DESTINO=”/home/user.backup/configs”
LOG=”/home/user.backup/logs”
DATA=`date +%d%m%Y`
HORA=`date +%H%M`
HOSTS=”/home/user.backup/fortigates.fgt”

for H in `cat $HOSTS`; do

  scp -B -i “$CHAVES/id_rsa.pub ” user.backup@$H:sys_config $DESTINO/$DATA\_$HORA\_config\_$H.cfg > /dev/null

  if [ $? = 0  ]; then
    echo “`date`   Sucesso: Backup de $H realizado!” >> $LOG/$DATA\_$HORA\_backup_fgt.log
  else
    echo “`date`   Falha: Backup de $H nao realizado!” >> $LOG/$DATA\_$HORA\_backup_fgt.log
    echo “`date`   Falha: Backup de $H nao realizado!” | mutt -s  “Falha no backup – Fortigate $H” “$MAIL”
  fi

done

 

Pessoal eu testei e ficou ótimo.

Muito Obrigado Celso.

 

Fico por aqui galera.

ABS.

William Costa

9 respostas para “Backup automatico Fortigate”

  1. Olá,

    Desculpe, minha dúvida é referente à outro assunto do Fortigate, mas como não achei post com assunto parecido, comentei neste aqui mesmo.

    Fiz uma instalação teste de FG 100D, habilitei o webfilter do FG, quando fui verificar os logs de segurança de webfilter, ele só mostra de logs cujo os sites foram bloqueados, como faço para visualizar os logs de acesso permitidos no webfilter?

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *