Avamar: Sådan udfører du en Linux-VMware-gendannelse på filniveau uden brug af en rodbruger ved hjælp af sudo
Summary: Avamar FLR Sudo
Symptoms
Oplysninger om Avamar FLR:
Avamars gendannelse på filniveau er en agentfri gendannelsesløsning, som kan bruges til at gendanne en eller flere gæstefiler fra en virtuel maskines (VM) afbildningssikkerhedskopi. Den mekanisme, der bruges til at udføre gendannelsen på filniveau, er VMware-værktøjer og vSphere API-gæstehandlingsfunktioner. Afbildningssikkerhedskopien på den virtuelle maskine opretter forbindelse til den virtuelle disk (.vmdk) på Avamar-proxyen under gennemsynet. Når filerne er valgt til gendannelse, bliver de kopieret til filoverførselsfilen fra proxyen til destinations-VM'en.
Obligatoriske krav for FLR:
- Den virtuelle destinationsmaskine skal være tændt.
- Den virtuelle destinationsmaskine skal have VMware-værktøjer installeret, og tjenesten skal køre under gendannelseshandlinger.
- Avamar-administratoren eller Avamar-sikkerhedskopien/-gendannelseshandlingen/-brugeren skal have gyldige legitimationsoplysninger på destinationsgæsten (kræves af VMware-gæstehandlings-SDK), og disse legitimationsoplysninger skal indtastes i starten af handlingerne for gendannelse på filniveau.
- Destinationsgæstebrugeren skal have rettigheder til at skrive placering, ellers vil handlingen mislykkes. For den virtuelle Windows-maskine skal gendannelses-VM-brugeren også have rettigheder til at skrive uden UAC-elevation, og for virtuelle Linux-maskiner skal gendannelses-VM'en være i stand til at skrive uden sudo.
- Virtuelle destinationsmaskiner skal have TCP 443-adgang til proxyens virtuelle maskiner.
- På virtuelle Linux-maskiner skal der installeres et moderne wget-program internt i den virtuelle maskine inden gendannelseshandlingen.
Hvis destinations-VM'en ikke kan oprette en HTTPS-forbindelse til proxyen:
Inde i proxyen: /usr/local/avamarclient/bin/logs/VSphereWebService.log, see wget non zero exit code
[VWS - DEBUG] 2020/02/24 15:56:20 TID=2403 MID=398040: sGuestExeFullFilename = /usr/bin/wget --no-check-certificate --spider -t 1 -T 10 https://182proxy.burlington.lab:443/test
[VWS - DEBUG] 2020/02/24 15:56:20 TID=2403 MID=398041: sUnicodeExeDir = /usr/bin
[VWS - DEBUG] 2020/02/24 15:56:20 TID=2403 MID=398042: sExeFullPath = /usr/bin/wget
[VWS - DEBUG] 2020/02/24 15:56:20 TID=2403 MID=398043: sParameters = --no-check-certificate --spider -t 1 -T 10 https://182proxy.burlington.lab:443/test
[VWS - FUNC] 2020/02/24 15:56:2 TID=3662 MID=254389: VirtualMachineWs::CheckProcessStatus ENTER
[VWS - DEBUG] 2020/02/24 15:56:2 TID=3662 MID=254390: ullPid = 3053
[VWS - WARN] 2020/02/24 15:56:2 TID=140664473914958 MID=254428: CheckProcessStatus Succeeded
[VWS - DEBUG] 2020/02/24 15:56:2 TID=3662 MID=254441: StartProgramInGuest Succeeded. Ret: 4
Linux uden wget:
Inde i proxyen: /usr/local/avamarclient/bin/logs/VSphereWebService.log, see:
[VWS - DEBUG] 2020/02/24 15:56:20 TID=2403 MID=398040: sGuestExeFullFilename = /usr/bin/wget --no-check-certificate --spider -t 1 -T 10 https://182proxy.burlington.lab:443/test
[VWS - DEBUG] 2020/02/24 15:56:20 TID=2403 MID=398041: sUnicodeExeDir = /usr/bin
[VWS - DEBUG] 2020/02/24 15:56:20 TID=2403 MID=398042: sExeFullPath = /usr/bin/wget
[VWS - DEBUG] 2020/02/24 15:56:20 TID=2403 MID=398043: sParameters = --no-check-certificate --spider -t 1 -T 10 https://182proxy.burlington.lab:443/test
[VWS - ERROR] 2020/02/24 15:56:20 TID=140363826202979 MID=398068: StartProgramInGuest Error: SOAP 1.1 fault: "":ServerFaultCode [no subcode]
"File /usr/bin/wget was not found"
Detail: <FileNotFoundFault xmlns="urn:vim25" xsi:type="FileNotFound"><file>/usr/bin/wget</file></FileNotFoundFault>
[VWS - DEBUG] 2020/02/24 15:34:22 TID=2397 MID=395783: StartProgramInGuest Succeeded. Ret: 1
Valgfri FLR-funktion: Restore Access Control List ( ACL)
Denne funktion er som standard ikke aktiveret.
Resultat:
Uden ACL-funktion (standard):
Alle gendannede filer fra funktionen til gendannelse på filniveau vil blive ejet af de VM-gæstelegitimationsoplysninger, brugeren angav under FLR-handlinger, og tidligere filtilladelser angives ikke.
Med ACL-funktion aktiveret:
Hvis brugeren ønsker, at de gendannede filer skal have den oprindelige oprettelses filejerskab og -tilladelser, skal denne valgfri funktion aktiveres.
Resultat:
Under gendannelseshandlinger vil der blive oprettet nye filer som FLR-VM-brugerne, men ved afslutningen af en gendannelse vil ACL-arbejdsprocessen køre og tilbageføre ejerskabet og filtilladelserne til den oprindelige tilstand.
Inde i proxyen: /usr/local/avamarclient/bin/logs/VSphereWebService.log, see:
[VWS - FUNC] 2020/03/03 03:42:29 TID=140664473914958 MID=254066: VirtualMachineWs::ExecuteRestoreAcl ENTER
[VWS - FUNC] 2020/03/03 03:42:29 TID=140664473914958 MID=254067: VirtualMachineWs::ExecuteRestoreAcl RestoreAcl Input file created
[VWS - FUNC] 2020/03/03 03:42:29 TID=140664473914958 MID=254068: VirtualMachineWs::ExecuteRestoreAcl Input File transfer /usr/local/avamarclient/bin/7fc01f28-c871-4835-948d-2d8a14bd1d8b.xml to /tmp/7fc01f28-c871-4835-948d-2d8a14bd1d8b.xml
[VWS - FUNC] 2020/03/03 03:42:32 TID=140664473914958 MID=254140: VirtualMachineWs::ExecuteRestoreAcl Exe File transfer /usr/local/avamarclient/bin/RestoreAcl to /tmp/7fc01f28-c871-4835-948d-2d8a14bd1d8b.exe
[VWS - DEBUG] 2020/03/03 03:42:40 TID=3662 MID=254349: sGuestExeFullFilename = /tmp/7fc01f28-c871-4835-948d-2d8a14bd1d8b.exe /tmp/7fc01f28-c871-4835-948d-2d8a14bd1d8b.xml 0001
[VWS - FUNC] 2020/03/03 03:42:42 TID=3662 MID=254389: VirtualMachineWs::CheckProcessStatus ENTER
[VWS - DEBUG] 2020/03/03 03:42:42 TID=3662 MID=254390: ullPid = 3053
[VWS - WARN] 2020/03/03 03:42:47 TID=140664473914958 MID=254428: CheckProcessStatus Succeeded
[VWS - DEBUG] 2020/03/03 03:42:47 TID=3662 MID=254441: StartProgramInGuest Succeeded. Ret: 0
[VWS - FUNC] 2020/03/03 03:42:47 TID=140664473914958 MID=254519: VirtualMachineWs::ExecuteRestoreAcl LEAVE
Cause
Men på grund af VMware-værktøjer og VMware SDK er det ved de fleste handlinger (VM_LoginInGuest, CopyFileFromHostToGuest og ListFilesInGuest) ikke muligt for VMware-værktøjerne at udføre sudo-kommandoen.
Når gendannelseshandlingerne udføres med en normal bruger, kan handlingen mislykkes på grund af utilstrækkelige destinationsgæsteprivilegier.
Resolution
Valgmulighed 1. Gendan til alternativ placering som ikke-rodbruger.
Eksempel:
Kildefil: /root/test (begrænset mappe/fil)
Destinationsfil: /home/flruser/ (placering uden begrænsninger)
VM-gæsteoprettelser: "flruser"
Resultat:
Under FLR-gennemsyn oprettes forbindelse fra de virtuelle diske til Avamar-proxyen, og de vises i brugergrænsefladen. Dette omfatter alle mapper og filer. Gennemse mappen /root, vælg file1.txt, og vælg derefter "restore everything to a different location" og naviger til eller indtast /home/flruser/ som Absolution Destination.
Resultat:
Filen root/test vil blive gendannet til /home/flruser/test
Bemærk, at filen vil have FLR-gæstebrugertilladelse.
Valgmulighed 2. Gendan til alternativ placering med indstillingen Restore ACL ved hjælp af sudo-funktionen.
I Avamar 18.2 skal du installere proxy-hotfix 318791 (eller nyere)
I Avamar 19.2 skal du installere proxy-hotfix 318791 (eller nyere)
Disse hotfixes tilføjer en ny "enablesudouserrestore"-funktion, der som standard er deaktiveret.
Instruktion til aktivering af sudo-funktion:
På en Avamar-proxy:
- Installer ovenstående hotfix på proxyen
- Rediger /usr/local/avamarclient/bin/config.xml, tilføj/rediger linjen (<enablesudouserrestore>1</enablesudouserrestore) i filen
- Genstart FLR med kommandoen: service vmwareflr restart
- Opret dedikeret FLR-bruger: example flruser. For ekstra sikkerhed kan shell deaktiveres for denne konto
- Kopiér den binære fil /usr/local/avamarclient/bin/RestoreAcl fra Avamar-proxyen til destinations-VM vha. den faste placering /usr/bin/RestoreACL, og angiv tilladelsen til 755 ved hjælp af chmod
- Rediger /etc/sudoers for at give FLR-brugeren fra trin 1 tilladelse til at udføre den binære fil RestoreACL uden adgangskode.
Bemærk: Hvis indstillingen sudoers requiretty er aktiveret (linjen "Defaults requiretty" findes i filen), skal vi også bruge denne linje.
Valgmulighed 3: Gendan til oprindelig placering ved hjælp af sudo wget-metoden med ACL.
Bemærk:
- Denne indstilling er kun tilgængelig, når det valgfrie netværks-HTTPS er tilgængeligt, og når gendannelsen har >5 MB eller 10 filer valgt.
- Brug af Avamar GUI til at gennemse live-destinationsplaceringer for VM med begrænset mappeplacering kan mislykkes, men direkte indtastning af "Absolution Destination" vil stadig fungere.
- Udfør trinnene i valgmulighed 2 på proxyen for at aktivere ACL Restore.
- På Avamar-proxyen skal du redigere /usr/local/avamarclient/bin/wget_linux_script.template
Efter:
- Genstart FLR med kommandoen: service vmwareflr restart
- På alle virtuelle Linux-maskiner, hvor FLR-gendannelse til den oprindelige placering vil blive brugt, skal du redigere /etc/sudoers for at give FLR-brugeren fra trin 1 tilladelse til at udføre den binære fil wget uden adgangskode.