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.
    • 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.