BackupZit

Backup do Microsoft 365 no seu próprio servidor

Um guia passo a passo: faça backup das caixas de correio do Exchange Online, OneDrive, SharePoint, calendários e contatos de um tenant do Microsoft 365 num armazenamento que você controla — com permissões somente leitura, deduplicação, criptografia e uma cópia externa.

O que você vai configurar

O BackupZit lê um tenant do Microsoft 365 pelo Microsoft Graph com um registro de aplicativo que tem apenas permissões de leitura: nada no tenant é alterado ou apagado. Qualquer agente do BackupZit com acesso à internet baixa os dados — por exemplo o agente da máquina do console — e os grava como qualquer outro backup: deduplicados, criptografados, com retenção, tarefas de cópia e testes de restauração. O BackupZit é gratuito e de código aberto (AGPLv3), sem licenças por usuário.

Por que uma cópia separada do Microsoft 365?

A Microsoft mantém o serviço funcionando, mas os dados nele são responsabilidade sua: uma caixa de correio apagada por engano, arquivos criptografados através de um OneDrive sincronizado ou uma conta removida quando alguém sai da empresa. Lixeiras e configurações de retenção ficam no mesmo tenant e expiram. Um backup no seu armazenamento é uma cópia independente que você controla, fora do tenant e das contas de administrador.

A Microsoft e outros fornecedores também vendem backup do Microsoft 365 como serviço em nuvem, normalmente cobrado por usuário ou por gigabyte. O BackupZit é a opção auto-hospedada: os dados vão para o seu NAS, servidor ou bucket S3, e o único custo é o armazenamento.

O que é preciso

  • Um console do BackupZit — uma pequena VM Linux (2 vCPU, 2–4 GB de RAM, disco de 16–20 GB) a partir da imagem pronta da página de download, ou o script de instalação num servidor Debian, Ubuntu, AlmaLinux ou Rocky Linux existente.
  • Um agente que baixe os dados: Windows ou Linux, com acesso HTTPS a login.microsoftonline.com, graph.microsoft.com e, para arquivos do OneDrive e SharePoint, *.sharepoint.com. O agente da máquina do console é suficiente.
  • Armazenamento de backup: SFTP, um compartilhamento SMB, um bucket compatível com S3, Azure Blob Storage ou um repositório reforçado do BackupZit.
  • Um administrador global do tenant, uma única vez, para registrar o aplicativo e conceder o consentimento.

Passo 1 — Registrar um aplicativo no Microsoft Entra ID

Uma vez por tenant, no centro de administração do Microsoft Entra:

  1. App registrations → New registration: dê um nome, por exemplo BackupZit, escolha Accounts in this organizational directory only, sem URI de redirecionamento. Anote o Application (client) ID e o Directory (tenant) ID na página de visão geral.
  2. Certificates & secrets → New client secret: escolha a validade (p. ex. 24 meses) e copie na hora o Value do segredo — ele só aparece uma vez. O Secret ID não é o segredo.
  3. API permissions → Add a permission → Microsoft Graph → Application permissions (não delegadas):
    Para fazer backup dePermissões
    E-mail e OneDriveUser.Read.All, Mail.Read, Files.Read.All
    Calendários e contatostambém Calendars.Read, Contacts.Read
    Sites do SharePointtambém Sites.Read.All
  4. Clique em Grant admin consent for …. Até lá o status mostra Not granted e os backups são recusados.

São apenas permissões de leitura. Para limitar o aplicativo a algumas caixas de correio, um administrador do Exchange pode adicionar uma política de acesso a aplicativos ou um escopo de RBAC for Applications; as contas fora dele passam a aparecer como não legíveis.

Passo 2 — Adicionar um destino de armazenamento

No console, abra Armazenamento e adicione um destino — por exemplo um compartilhamento SMB num NAS para a primeira cópia e um bucket S3 com Object Lock para a cópia externa. Deixe Criptografar backups (AES-256) ativado (padrão): e-mails e arquivos são criptografados com AES-256 no agente antes de saírem dele. Guarde a chave de recuperação exibida pelo console longe dos backups, por exemplo impressa ou num gerenciador de senhas.

Passo 3 — Criar a tarefa do Microsoft 365

  1. Em Tarefas de backup, crie uma tarefa do tipo Microsoft 365 e escolha o agente que faz o download.
  2. Informe o Directory (tenant) ID, o Application (client) ID e o Client secret do passo 1. O segredo é guardado criptografado.
  3. Escolha o que incluir: E-mail, OneDrive, Calendários e contatos, Sites do SharePoint — em qualquer combinação.
  4. Escolha as contas: Todas as contas com caixa de correio ou OneDrive (contas adicionadas depois entram automaticamente; exceções em Exceto, uma por linha) ou Somente estas contas. Contas sem licença são ignoradas. Para o SharePoint, a mesma escolha vale para os sites: todos os sites com exceções, ou apenas endereços listados como https://contoso.sharepoint.com/sites/sales.
  5. Em vez de digitar endereços, clique em Escolher da lista: o console lê as contas e os sites do tenant com o aplicativo que você acabou de informar e permite marcá-los.
  6. Escolha o destino de armazenamento, um agendamento (p. ex. toda noite) e a retenção.

Ao salvar, o console entra como o aplicativo e verifica permissões, contas e sites, então um segredo errado ou a falta de consentimento aparece na hora.

O primeiro backup baixa tudo. Cada backup seguinte lista as pastas de novo, mas baixa só mensagens e arquivos novos ou alterados (mensagens lidas, sinalizadas, movidas ou editadas contam como alteradas); os dados inalterados vêm do backup anterior. A Microsoft limita a velocidade de leitura de um aplicativo — o BackupZit espera quando a Microsoft pede e continua, por isso o primeiro backup de caixas grandes pode levar horas.

O que entra no backup

DadosGravados como
E-mailTodas as pastas e subpastas; cada mensagem completa com anexos como arquivo .eml, com nome pela data e pelo assunto. Outlook, Thunderbird e a maioria dos programas de e-mail abrem o arquivo.
OneDriveTodos os arquivos e pastas com a data de modificação.
CalendáriosCada calendário; cada evento como arquivo iCalendar (.ics) com horário, local, participantes, lembrete e recorrência. Outlook, Google Agenda e Thunderbird importam o arquivo.
ContatosContatos e pastas de contatos como vCards (.vcf).
SharePointCada biblioteca de documentos de cada site, com todas as pastas e arquivos. Os arquivos do Teams ficam no SharePoint e entram no backup.

Um backup tem uma pasta por conta — ana@contoso.com/Mail/Inbox/…, …/OneDrive/…, …/Calendar/…, …/Contacts/… — e SharePoint/<site>/<biblioteca>/…. Como são formatos padrão, os arquivos continuam legíveis sem o BackupZit.

Passo 4 — Manter uma cópia externa (3-2-1)

Adicione uma tarefa do tipo Cópia de backup com a tarefa do Microsoft 365 como origem e um segundo destino em outro lugar — um bucket S3 com Object Lock ou um repositório reforçado torna essa cópia imutável. Só os dados que ainda não estão no destino são enviados, e a cópia tem sua própria retenção. Os testes de restauração automáticos (semanais por padrão, em Configurações → Testes de restauração) restauram uma amostra aleatória do backup mais recente e conferem cada byte com os checksums gravados.

Restauração

  • Navegar e baixar: numa execução de backup, abra as pastas de e-mail, OneDrive, calendários ou contatos de uma conta, ou um site do SharePoint; marque mensagens, eventos, arquivos ou pastas e baixe-os — um arquivo como está, vários como ZIP. Abra os arquivos .eml no Outlook ou arraste-os para uma caixa de correio.
  • Restaurar em uma pasta em qualquer agente: mensagens como .eml, eventos como .ics, contatos como .vcf, arquivos do OneDrive e SharePoint como eram, em <pasta>/<conta>/… e <pasta>/SharePoint/….

Limites a conhecer

  • A restauração direta numa caixa de correio ou no OneDrive ainda não existe (planejada; vai gravar só numa pasta nova, sem nunca sobrescrever). Por enquanto você baixa ou restaura numa pasta.
  • Não incluídos: chats e mensagens de canais do Teams, listas e páginas do SharePoint (só bibliotecas de documentos), anexos de eventos, fotos de contatos, ocorrências alteradas isoladamente de uma série e caixas compartilhadas sem conta de usuário.
  • Os horários dos eventos são gravados em UTC.

Solução de problemas

  • AADSTS7000215 / invalid client secret: foi copiado o ID do segredo em vez do Value, ou o segredo expirou — crie um novo e informe-o na tarefa.
  • Missing application permissions / Authorization_RequestDenied: adicione as permissões como permissões de aplicativo e clique em Grant admin consent.
  • The account has no Exchange Online mailbox: a conta não tem licença do Exchange (ou é um contato); remova-a da tarefa.
  • Uma execução com avisos lista mensagens ou arquivos que não puderam ser lidos (p. ex. um bloco de anotações do OneNote); o restante do backup está completo.

Próximos passos

Baixe o BackupZit, veja todos os recursos para Microsoft 365 ou leia o capítulo do Microsoft 365 no guia integrado ao console. O mesmo console também faz backup de servidores e máquinas virtuais — veja os guias de Proxmox VE e Hyper-V. Perguntas são bem-vindas nas GitHub Discussions. Empresas podem contratar suporte comercial da MaxZit (somente em inglês).