BackupZit

Kopia zapasowa Microsoft 365 na własnym serwerze

Poradnik krok po kroku: twórz kopie skrzynek Exchange Online, OneDrive, SharePoint, kalendarzy i kontaktów dzierżawy Microsoft 365 w magazynie, nad którym masz kontrolę — z uprawnieniami tylko do odczytu, deduplikacją, szyfrowaniem i kopią poza siedzibą.

Co skonfigurujesz

BackupZit czyta dzierżawę Microsoft 365 przez Microsoft Graph za pomocą rejestracji aplikacji, która ma tylko uprawnienia do odczytu: w dzierżawie nic nie jest zmieniane ani usuwane. Dowolny agent BackupZit z dostępem do internetu pobiera dane — na przykład agent na maszynie z konsolą — i zapisuje je jak każdą inną kopię: deduplikowane, szyfrowane, z przechowywaniem, zadaniami kopiowania i testami przywracania. BackupZit jest darmowy i open source (AGPLv3), bez licencji na użytkownika.

Dlaczego osobna kopia Microsoft 365?

Microsoft dba o działanie usługi, ale za dane w niej odpowiadasz ty: skrzynka usunięta przez pomyłkę, pliki zaszyfrowane przez zsynchronizowany OneDrive albo konto usunięte, gdy ktoś odchodzi z firmy. Kosze i ustawienia przechowywania są w tej samej dzierżawie i wygasają. Kopia na twoim magazynie to niezależna kopia pod twoją kontrolą, poza dzierżawą i jej kontami administratorów.

Microsoft i inni dostawcy sprzedają kopie Microsoft 365 także jako usługę w chmurze, zwykle rozliczaną za użytkownika lub za gigabajt. BackupZit to opcja na własnym serwerze: dane trafiają na twój NAS, serwer lub zasobnik S3, a jedynym kosztem jest magazyn.

Czego potrzebujesz

  • Konsoli BackupZit — mała VM z Linuksem (2 vCPU, 2–4 GB RAM, dysk 16–20 GB) z gotowego obrazu ze strony pobierania albo skrypt instalacyjny na istniejącym serwerze Debian, Ubuntu, AlmaLinux lub Rocky Linux.
  • Agenta, który pobiera dane: Windows lub Linux, z dostępem HTTPS do login.microsoftonline.com, graph.microsoft.com i — dla plików OneDrive i SharePoint — *.sharepoint.com. Wystarczy agent na maszynie z konsolą.
  • Magazynu na kopie: SFTP, udział SMB, zasobnik zgodny z S3, Azure Blob Storage albo wzmocnione repozytorium BackupZit.
  • Administratora globalnego dzierżawy, jednorazowo, do zarejestrowania aplikacji i udzielenia zgody.

Krok 1 — Zarejestruj aplikację w Microsoft Entra ID

Raz na dzierżawę, w centrum administracyjnym Microsoft Entra:

  1. App registrations → New registration: nadaj nazwę, np. BackupZit, wybierz Accounts in this organizational directory only, bez URI przekierowania. Zapisz Application (client) ID i Directory (tenant) ID ze strony przeglądu.
  2. Certificates & secrets → New client secret: wybierz okres ważności (np. 24 miesiące) i od razu skopiuj Value sekretu — jest pokazywana tylko raz. Secret ID to nie sekret.
  3. API permissions → Add a permission → Microsoft Graph → Application permissions (nie delegowane):
    KopiaUprawnienia
    Poczta i OneDriveUser.Read.All, Mail.Read, Files.Read.All
    Kalendarze i kontaktydodatkowo Calendars.Read, Contacts.Read
    Witryny SharePointdodatkowo Sites.Read.All
  4. Kliknij Grant admin consent for …. Do tego czasu status pokazuje Not granted i kopie są odrzucane.

To wyłącznie uprawnienia do odczytu. Aby ograniczyć aplikację do wybranych skrzynek, administrator Exchange może dodać zasady dostępu aplikacji albo zakres RBAC for Applications; konta spoza niego są wtedy zgłaszane jako nieczytelne.

Krok 2 — Dodaj miejsce docelowe

W konsoli otwórz Magazyn i dodaj miejsce docelowe — na przykład udział SMB na NAS dla pierwszej kopii i zasobnik S3 z Object Lock dla kopii poza siedzibą. Pozostaw włączone Szyfruj kopie (AES-256) (domyślnie): poczta i pliki są szyfrowane AES-256 na agencie, zanim go opuszczą. Klucz odzyskiwania pokazany przez konsolę przechowuj z dala od kopii, np. wydrukowany lub w menedżerze haseł.

Krok 3 — Utwórz zadanie Microsoft 365

  1. W Zadania kopii utwórz zadanie typu Microsoft 365 i wybierz agenta, który pobiera dane.
  2. Wpisz Directory (tenant) ID, Application (client) ID i Client secret z kroku 1. Sekret jest przechowywany zaszyfrowany.
  3. Wybierz, co kopiować: Poczta, OneDrive, Kalendarze i kontakty, Witryny SharePoint — w dowolnym połączeniu.
  4. Wybierz konta: Wszystkie konta ze skrzynką pocztową lub OneDrive (konta dodane później są dołączane automatycznie; wyjątki w polu Z wyjątkiem, po jednym w wierszu) albo Tylko te konta. Konta bez licencji są pomijane. Dla SharePoint ten sam wybór dotyczy witryn: wszystkie witryny z wyjątkami albo tylko podane adresy, np. https://contoso.sharepoint.com/sites/sales.
  5. Zamiast wpisywać adresy, kliknij Wybierz z listy: konsola odczyta konta i witryny dzierżawy przez wpisaną właśnie aplikację i pozwoli je zaznaczyć.
  6. Wybierz miejsce docelowe, harmonogram (np. co noc) i przechowywanie.

Przy zapisie konsola loguje się jako aplikacja i sprawdza uprawnienia, konta i witryny, więc błędny sekret lub brak zgody administratora widać od razu.

Pierwsza kopia pobiera wszystko. Każda kolejna ponownie listuje foldery, ale pobiera tylko nowe lub zmienione wiadomości i pliki (przeczytane, oflagowane, przeniesione lub edytowane wiadomości liczą się jako zmienione); niezmienione dane są brane z poprzedniej kopii. Microsoft ogranicza tempo odczytu przez aplikację — BackupZit czeka, gdy Microsoft o to prosi, i kontynuuje, więc pierwsza kopia dużych skrzynek może trwać godzinami.

Co jest kopiowane

DaneZapisywane jako
PocztaWszystkie foldery i podfoldery; każda wiadomość w całości z załącznikami jako plik .eml nazwany datą i tematem. Otwiera go Outlook, Thunderbird i większość programów pocztowych.
OneDriveWszystkie pliki i foldery z datą modyfikacji.
KalendarzeKażdy kalendarz; każde wydarzenie jako plik iCalendar (.ics) z czasem, miejscem, uczestnikami, przypomnieniem i cyklem. Importuje go Outlook, Kalendarz Google i Thunderbird.
KontaktyKontakty i foldery kontaktów jako vCard (.vcf).
SharePointKażda biblioteka dokumentów każdej witryny, ze wszystkimi folderami i plikami. Pliki Teams są w SharePoint i trafiają do kopii.

Kopia zawiera jeden folder na konto — ana@contoso.com/Mail/Inbox/…, …/OneDrive/…, …/Calendar/…, …/Contacts/… — oraz SharePoint/<witryna>/<biblioteka>/…. Ponieważ to standardowe formaty, pliki pozostają czytelne także bez BackupZit.

Krok 4 — Kopia poza siedzibą (3-2-1)

Dodaj zadanie typu Kopia kopii zapasowej ze źródłem w zadaniu Microsoft 365 i drugim miejscem docelowym w innej lokalizacji — zasobnik S3 z Object Lock lub wzmocnione repozytorium czynią tę kopię niezmienną. Wysyłane są tylko dane, których jeszcze nie ma w miejscu docelowym, a kopia ma własne przechowywanie. Automatyczne testy przywracania (domyślnie co tydzień, w Ustawienia → Testy przywracania) przywracają losową próbkę z najnowszej kopii i sprawdzają każdy bajt z zapisanymi sumami kontrolnymi.

Przywracanie

  • Przeglądanie i pobieranie: w uruchomieniu kopii otwórz foldery poczty, OneDrive, kalendarze lub kontakty konta albo witrynę SharePoint; zaznacz wiadomości, wydarzenia, pliki lub foldery i pobierz je — jeden plik bez zmian, kilka jako ZIP. Otwórz pliki .eml w Outlooku albo przeciągnij je do skrzynki.
  • Przywróć do folderu na dowolnym agencie: wiadomości jako .eml, wydarzenia jako .ics, kontakty jako .vcf, pliki OneDrive i SharePoint w oryginalnej postaci, w <folder>/<konto>/… i <folder>/SharePoint/….

Ograniczenia

  • Przywracania bezpośrednio do skrzynki lub OneDrive jeszcze nie ma (jest planowane; będzie zapisywać tylko do nowego folderu i nigdy nie nadpisze). Na razie pobierasz lub przywracasz do folderu.
  • Nie są kopiowane: czaty i wiadomości kanałów Teams, listy i strony SharePoint (tylko biblioteki dokumentów), załączniki wydarzeń, zdjęcia kontaktów, pojedynczo zmienione wystąpienia serii i skrzynki udostępnione bez konta użytkownika.
  • Godziny wydarzeń są zapisywane w UTC.

Rozwiązywanie problemów

  • AADSTS7000215 / invalid client secret: skopiowano ID sekretu zamiast jego Value albo sekret wygasł — utwórz nowy i wpisz go w zadaniu.
  • Missing application permissions / Authorization_RequestDenied: dodaj uprawnienia jako uprawnienia aplikacji i kliknij Grant admin consent.
  • The account has no Exchange Online mailbox: konto nie ma licencji Exchange (lub jest kontaktem); usuń je z zadania.
  • Uruchomienie z ostrzeżeniami wymienia wiadomości lub pliki, których nie udało się odczytać (np. notes OneNote); reszta kopii jest kompletna.

Co dalej

Pobierz BackupZit, zobacz wszystkie funkcje dla Microsoft 365 albo przeczytaj rozdział o Microsoft 365 w podręczniku w konsoli. Ta sama konsola tworzy też kopie serwerów i maszyn wirtualnych — zobacz poradniki dla Proxmox VE i Hyper-V. Pytania mile widziane w GitHub Discussions. Firmy mogą skorzystać z płatnego wsparcia MaxZit (tylko po angielsku).