Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    Ferramenta for Windows para automatizar backup no pfSense

    Scheduled Pinned Locked Moved Portuguese
    19 Posts 5 Posters 13.2k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • JackLJ
      JackL
      last edited by

      Buenas Senhores,

      Compartilho por aqui a dica enviada pelo colega Welkson Renny de Medeiros. Trata-se de um software desenvolvido em Visual Studio pra MS Windows que promete automatizar o backup do seu pfSense - Uma alternativa ao conhecido (mas vinculado a um plano de suporte junto ao BSD Perimeter) AutoConfigBackup.

      Nota: Não testei o software… Seria bacana alguém (com disponibilidade e o mínimo de conhecimento na linguagem em questão) fazer um teste no binário e uma inspeção no source pra termos certeza de que não é um kinder ovo!

      Link para o software: http://www.zomers.eu/knowledge/pfSense/Pages/How-to-automate-pfSense-backup.aspx

      Abraços!
      Jack

      Treinamentos de Elite: http://sys-squad.com
      Soluções: https://conexti.com.br

      1 Reply Last reply Reply Quote 0
      • marcellocM
        marcelloc
        last edited by

        Jack, tem uma solução bem mais simples e confiável para automatizar este backup baseada em php.
        Não requer prática tão pouco habilidade  :D

        Vou procura o post e colo aqui.

        Treinamentos de Elite: http://sys-squad.com

        Help a community developer! ;D

        1 Reply Last reply Reply Quote 0
        • JackLJ
          JackL
          last edited by

          Opa marcelloc…

          Toda contribuição é sempre bem-vinda por aqui, claro! ;)

          Há também esta outra forma engenhosa publicada no nosso blog: http://www.pfsense-br.org/blog/2011/12/backup-remoto/ :)

          Abraços!
          Jack

          Treinamentos de Elite: http://sys-squad.com
          Soluções: https://conexti.com.br

          1 Reply Last reply Reply Quote 0
          • marcellocM
            marcelloc
            last edited by

            tópico relacionado:
            http://forum.pfsense.org/index.php/topic,44768.0.html

            Este arquivo php fica publicado na pasta /usr/local/www do seu pfsense.
            Você deve alterar o parâmetro $password e $zabix_ip para o ip do servidor que vai buscar a configuração e uma senha para garantir a segurança da transferência.
            /usr/local/www/zabix.php

            #zabix server ip
            $zabix_ip='192.168.1.122';
            $password="some_password_to_secure_script";
            if ($_SERVER["REMOTE_ADDR"]==$zabix_ip && $_REQUEST['pass']== $password)
              print base64_encode(file_get_contents('/conf/config.xml'));
            
            ?>
            

            No servidor/estação onde os backups ficarão armazenados, você tem duas formas de execução:

            Opção1(Recomendado)
            crie este script com o nome que voce quiser e altere os valores de $url_pfsense, $password e $dir.

            #!/usr/bin/php
            $url_pfsense="https://192.168.1.1:8443/zabix.php";
            $password="some_password_to_secure_script";
            $dir="/home/marcelloc/backup";
            
            $config=file_get_contents("$url_pfsense?pass=$password");
            $now= date('YmHis');
            file_put_contents($dir."/config.".$now.".xml",base64_decode($config),LOCK_EX);
            
            ?>
            
            

            Opção2
            usando o fetch do freebsd ou wget do linux ou qualquer outro programa de linha de comando que busca url.

            fetch https://ip_do_seu_pfsense/zabix.php?password="sua_senha" > arquivo_de_backup.base64.txt

            Treinamentos de Elite: http://sys-squad.com

            Help a community developer! ;D

            1 Reply Last reply Reply Quote 0
            • marcellocM
              marcelloc
              last edited by

              script shell um pouco mais elaborado que versiona as modificações de configuração

              #!/bin/sh
              
              DATESTAMP=`date +%Y-%m-%d.%H:%M`
              FNAME=pfsense.${DATESTAMP}.xml
              FOLDER=/var/www/vhosts/mr-wolf.nl/pfsense
              
              USER=admin
              PASS=pfsense
              
              PROTO=https             # http or https
              IP=pfsense.yourdomain.com    # DNS or IP of webif (remote side)
              PORT=443              # port of webif (remote side)
              
              if cd ${FOLDER} ; then
              
                FGROUP=`stat -c%G .`
                FUSER=`stat -c%U .`
                LASTXML=`ls -1t pfsense*xml 2>/dev/null | head -n1`
              
                if curl -u${USER}:${PASS} ${PROTO}://${IP}:${PORT}/zabbix.php 2>/dev/null | base64 -d 2>/dev/null >${FNAME} ; then
                  chown ${FUSER}:${FGROUP} ${FNAME}
              
                  if [ ! -z "${LASTXML}" ] ; then
                    if [ ! "${LASTXML}" = "${FNAME}" ] ; then
                      if diff ${LASTXML} ${FNAME} >${FNAME}.diff ; then
                        rm -f ${FNAME}*
                      else
                        chown ${FUSER}:${FGROUP} ${FNAME}.diff
                      fi
                    fi
                  fi
                else
                  rm -f ${FNAME}
                  exit 1
                fi
              else
                exit 1
              fi
              

              Treinamentos de Elite: http://sys-squad.com

              Help a community developer! ;D

              1 Reply Last reply Reply Quote 0
              • JackLJ
                JackL
                last edited by

                @JackL:

                Link para o software: http://www.zomers.eu/knowledge/pfSense/Pages/How-to-automate-pfSense-backup.aspx

                O tal aplicativo só funcionaria se você tivesse seu pfSense respondendo apenas por HTTP (o que é extremamente desaconselhável - sob praticamente qualquer cenário).

                O colega marcelloc, postou outras alternativas de softwares do gênero - Porém, faz-se importante frisar que todos os scripts ou métodos citados implementam "pontos falhos" ao deixar armazenadas em arquivos textos informações extremamente importantes como: IP do servidor, porta de conexão e até mesmo login e senha.

                É sempre bom prestar atenção nestes pontos antes de sair usando um aplicativo nestes moldes em produção.

                "O seguro morreu de velho!"

                Abraços!
                Jack

                Treinamentos de Elite: http://sys-squad.com
                Soluções: https://conexti.com.br

                1 Reply Last reply Reply Quote 0
                • marcellocM
                  marcelloc
                  last edited by

                  @JackL:

                  O colega marcelloc, postou outras alternativas de softwares do gênero - Porém, faz-se importante frisar que todos os scripts ou métodos citados implementam "pontos falhos" ao deixar armazenadas em arquivos textos informações extremamente importantes como: IP do servidor, porta de conexão e até mesmo login e senha.

                  Criei o script em php para usar senha própria para o backup.

                  Nunca gostei da idéia de deixar a senha do admin gravada no script ou criar um certificado de ssl que libera ssh no servidor sem autenticação.

                  Treinamentos de Elite: http://sys-squad.com

                  Help a community developer! ;D

                  1 Reply Last reply Reply Quote 0
                  • JackLJ
                    JackL
                    last edited by

                    @marcelloc:

                    Criei o script em php para usar senha própria para o backup.
                    Nunca gostei da idéia de deixar a senha do admin gravada no script ou criar um certificado de ssl que libera ssh no servidor sem autenticação.

                    Desculpe se algo me passou desapercebido, mas é este script que você se refere marcelloc: http://forum.pfsense.org/index.php/topic,45449.msg237138.html#msg237138?

                    Pelo que notei, você usa variáveis de ambiente para armazenar as credenciais de acesso… ou não ???

                    USER=admin
                    PASS=pfsense

                    Abraços!
                    Jack

                    Treinamentos de Elite: http://sys-squad.com
                    Soluções: https://conexti.com.br

                    1 Reply Last reply Reply Quote 0
                    • marcellocM
                      marcelloc
                      last edited by

                      Este post:
                      solução PHP para automatizar backup no pfSense

                      pontos importantes

                      #verifica o ip do cliente que quer buscar a configuração
                      $zabix_ip='192.168.1.122';

                      #Senha especifica para este arquivo php
                      $password="some_password_to_secure_script";

                      #Mesmo acesso criptografado da gui
                      $url_pfsense="https://192.168.1.1:8443/zabix.php";

                      Treinamentos de Elite: http://sys-squad.com

                      Help a community developer! ;D

                      1 Reply Last reply Reply Quote 0
                      • JackLJ
                        JackL
                        last edited by

                        Boa marcelloc…

                        Realmente não tinha separado visualmente o teu "Opção1(Recomendado)" dos demais.

                        Show of ball! ;)

                        Abraços!
                        Jack

                        Treinamentos de Elite: http://sys-squad.com
                        Soluções: https://conexti.com.br

                        1 Reply Last reply Reply Quote 0
                        • J
                          jaugusto_ap
                          last edited by

                          @marcelloc:

                          tópico relacionado:
                          http://forum.pfsense.org/index.php/topic,44768.0.html

                          Este arquivo php fica publicado na pasta /usr/local/www do seu pfsense.
                          Você deve alterar o parâmetro $password e $zabix_ip para o ip do servidor que vai buscar a configuração e uma senha para garantir a segurança da transferência.
                          /usr/local/www/zabix.php

                          #zabix server ip
                          $zabix_ip='192.168.1.122';
                          $password="some_password_to_secure_script";
                          if ($_SERVER["REMOTE_ADDR"]==$zabix_ip && $_REQUEST['pass']== $password)
                            print base64_encode(file_get_contents('/conf/config.xml'));
                          
                          ?>
                          

                          No servidor/estação onde os backups ficarão armazenados, você tem duas formas de execução:

                          Opção1(Recomendado)
                          crie este script com o nome que voce quiser e altere os valores de $url_pfsense, $password e $dir.

                          #!/usr/bin/php
                          $url_pfsense="https://192.168.1.1:8443/zabix.php";
                          $password="some_password_to_secure_script";
                          $dir="/home/marcelloc/backup";
                          
                          $config=file_get_contents("$url_pfsense?pass=$password");
                          $now= date('YmHis');
                          file_put_contents($dir."/config.".$now.".xml",base64_decode($config),LOCK_EX);
                          
                          ?>
                          
                          

                          Opção2
                          usando o fetch do freebsd ou wget do linux ou qualquer outro programa de linha de comando que busca url.

                          fetch https://ip_do_seu_pfsense/zabix.php?password="sua_senha" > arquivo_de_backup.base64.txt

                          Ei parceiro, não consegui fazer esse procedimento aqui, a principio o script chega a salvar um arquivo com o nome definido, porém, o arquivo é salvo com 0 bytes, como pode ver na imagem abaixo. Já tentei até essa dica, mas sem sucesso também: http://www.vivaolinux.com.br/dica/Automoatizar-backup-no-pfSense/

                          Segue meus scripts:
                          zabix.php

                          #server ip
                          $ip='172.16.10.1';
                          $password="senha";
                          if ($_SERVER["REMOTE_ADDR"]==$ip && $_REQUEST['pass']== $password)
                            print base64_encode(file_get_contents('/conf/config.xml'));
                          
                          ?>
                          
                          

                          bkp_pfsense.sh

                          #!/usr/bin/php
                          $url_pfsense="https://172.16.10.1/zabix.php";
                          $password="senha";
                          $dir="/mnt/arquivos/ti/Backup-Firewall";
                          
                          $config=file_get_contents("$url_pfsense?pass=$password");
                          $now= date('YmdHis');
                          file_put_contents($dir."/config-firewall.coren-".$now.".xml",base64_decode($config),LOCK_EX);
                          
                          ?>
                          
                          

                          print_01.png_thumb
                          print_01.png

                          1 Reply Last reply Reply Quote 0
                          • marcellocM
                            marcelloc
                            last edited by

                            jaugusto_ap,

                            Bem vindo ao fórum! :)

                            Acredito que o único passo errado é este:

                            #server ip
                            $ip='172.16.10.1';
                            

                            Você configurou o ip  do pfsense no lugar de configurar o ip do servidor que vai puxar o backup.

                            a segurança do script é baseada no ip do servidor que guarda os backups e uma senha.

                            if ($_SERVER["REMOTE_ADDR"]==$zabix_ip && $_REQUEST['pass']== $password)
                            

                            att,
                            Marcello Coutinho

                            Treinamentos de Elite: http://sys-squad.com

                            Help a community developer! ;D

                            1 Reply Last reply Reply Quote 0
                            • J
                              jaugusto_ap
                              last edited by

                              @marcelloc:

                              jaugusto_ap,

                              Bem vindo ao fórum! :)

                              Acredito que o único passo errado é este:

                              #server ip
                              $ip='172.16.10.1';
                              

                              Você configurou o ip  do pfsense no lugar de configurar o ip do servidor que vai puxar o backup.

                              a segurança do script é baseada no ip do servidor que guarda os backups e uma senha.

                              if ($_SERVER["REMOTE_ADDR"]==$zabix_ip && $_REQUEST['pass']== $password)
                              

                              att,
                              Marcello Coutinho

                              Muito obrigado pelas boas vindas!

                              Quanto ao script, não tinha prestado atenção nesse detalhe do remote_addr.

                              Agora sim tá funcionando, e ainda agendado no crontab do Debian.

                              1 Reply Last reply Reply Quote 0
                              • K
                                kelsen
                                last edited by

                                O tal aplicativo só funcionaria se você tivesse seu pfSense respondendo apenas por HTTP (o que é extremamente desaconselhável - sob praticamente qualquer cenário).

                                O aplicativo funciona tb para https, basta adicionar a opcao -usessl, testado e aprovado.
                                Agora gostaria de saber se não tem algum código malicioso no programa, alguém pode descobrir isso pra gente?

                                1 Reply Last reply Reply Quote 0
                                • marcellocM
                                  marcelloc
                                  last edited by

                                  @kelsen:

                                  Agora gostaria de saber se não tem algum código malicioso no programa.

                                  Veja o comportamento da maquina que roda ele na internet, bloqueie todas as portas de saida e logue o que a maquina tentar.

                                  Veja a possibilidade de usar um dos scripts php deste topico, o códico é aberto e pelo menos o que eu fiz, está livre de código malicioso :)

                                  att,
                                  Marcello Coutinho

                                  Treinamentos de Elite: http://sys-squad.com

                                  Help a community developer! ;D

                                  1 Reply Last reply Reply Quote 0
                                  • K
                                    kelsen
                                    last edited by

                                    @marcelloc:

                                    Veja o comportamento da maquina que roda ele na internet, bloqueie todas as portas de saida e logue o que a maquina tentar.

                                    Acho que nessa maquina onde instalei não da pra fechar as portas de saida.

                                    Veja a possibilidade de usar um dos scripts php deste topico, o códico é aberto e pelo menos o que eu fiz, está livre de código malicioso :)

                                    Pelo que entendi, preciso do zabbix instalado? além do mais a maquina é windows, como posso executar esse php nele?
                                    Não tem como alguém ver o fonte do programa pra ver se há algo suspeito?

                                    Grato!

                                    1 Reply Last reply Reply Quote 0
                                    • marcellocM
                                      marcelloc
                                      last edited by

                                      @kelsen:

                                      Pelo que entendi, preciso do zabbix instalado?

                                      Não

                                      @kelsen:

                                      além do mais a maquina é windows, como posso executar esse php nele?

                                      Só instalar o php ou php cli no seu windows

                                      @kelsen:

                                      Não tem como alguém ver o fonte do programa pra ver se há algo suspeito?

                                      Isso foge do contexto do fórum…

                                      Treinamentos de Elite: http://sys-squad.com

                                      Help a community developer! ;D

                                      1 Reply Last reply Reply Quote 0
                                      • K
                                        kelsen
                                        last edited by

                                        devo ter confundido por conta do nome Zabix no script.

                                        1 Reply Last reply Reply Quote 0
                                        • C
                                          cristianonix
                                          last edited by

                                          Usa o Cobian Backup, faça backup do arquivo xml.

                                          /cf/conf/config.xml

                                          1 Reply Last reply Reply Quote 0
                                          • First post
                                            Last post
                                          Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.