Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Este tópico explica como preparar um disco de modelo para VMs blindadas do Linux que podem ser usadas para instanciar uma ou mais VMs locatárias.
Prerequisites
Para preparar e testar uma VM blindada Linux, você precisará dos seguintes recursos disponíveis:
- Um servidor com recursos de virtualização executando o Windows Server, versão 1709 ou posterior
- Um segundo computador (Windows 10 ou Windows Server 2016) capaz de executar o Hyper-V Manager para se conectar ao console da VM em execução
- Uma imagem ISO para um dos sistemas operacionais VM blindados Linux suportados:
- Ubuntu 16.04 LTS com o kernel 4.4
- Red Hat Enterprise Linux 7.3
- SUSE Linux Enterprise Server 12 Service Pack 2
- Acesso à Internet para baixar o pacote lsvmtools e atualizações do sistema operacional
Important
As versões mais recentes dos sistemas operacionais Linux anteriores podem incluir um bug conhecido do driver TPM que os impedirá de provisionar com êxito como VMs blindadas. Não é recomendável atualizar seus modelos ou VMs blindadas para uma versão mais recente até que uma correção esteja disponível. A lista de sistemas operacionais suportados acima será atualizada quando as atualizações forem tornadas públicas.
Preparar uma VM Linux
As VMs blindadas são criadas a partir de discos de modelo seguros. Os discos de modelo contêm o sistema operacional para a VM e metadados, incluindo uma assinatura digital das partições /boot e /root, para garantir que os componentes principais do sistema operacional não sejam modificados antes da implantação.
Para criar um disco de modelo, você deve primeiro criar uma VM regular (sem blindagem) que você preparará como a imagem base para futuras VMs blindadas. O software instalado e as alterações de configuração feitas nessa VM serão aplicados a todas as VMs blindadas criadas a partir desse disco de modelo. Estas etapas irão guiá-lo através dos requisitos mínimos para preparar uma VM Linux para a modelação.
Note
A criptografia de disco Linux é configurada quando o disco é particionado. Isso significa que você deve criar uma nova VM pré-criptografada usando dm-crypt para criar um disco de modelo de VM blindado Linux.
No servidor de virtualização, certifique-se de que o Hyper-V e os recursos de suporte ao Hyper-V do Host Guardian estejam instalados executando os seguintes comandos em um console do PowerShell com privilégios elevados:
Install-WindowsFeature Hyper-V, HostGuardian -IncludeManagementTools -RestartBaixe a imagem ISO de uma fonte confiável e armazene-a em seu servidor de virtualização ou em um compartilhamento de arquivos acessível ao seu servidor de virtualização.
No computador de gerenciamento que executa o Windows Server versão 1709, instale as Ferramentas de Administração de Servidor Remoto de VM Blindada executando o seguinte comando:
Install-WindowsFeature RSAT-Shielded-VM-ToolsAbra oHyper-V Manager no computador de gerenciamento e conecte-se ao servidor de virtualização. Você pode fazer isso clicando em "Conectar ao servidor..." no painel Ações ou clicando com o botão direito do mouse em Hyper-V Manager e escolhendo "Conectar ao Servidor..." Forneça o nome DNS para o servidor Hyper-V e, se necessário, as credenciais necessárias para se conectar a ele.
Usando o Hyper-V Manager, configure um comutador externo no servidor de virtualização para que a VM Linux possa acessar a Internet para obter atualizações.
Em seguida, crie uma nova máquina virtual para instalar o sistema operacional Linux. No painel Ações, clique em Nova>Máquina Virtual para abrir o assistente. Forneça um nome amigável para sua VM, como "Linux pré-modelado" e clique em Avançar.
Na segunda página do Assistente, selecione Geração 2 para garantir que a VM seja provisionada com um perfil de firmware baseado em UEFI.
Conclua o resto do assistente de acordo com suas preferências. Não use um disco diferencial para esta VM; discos de modelo de VM blindados não podem usar discos diferenciais. Por fim, conecte a imagem ISO baixada anteriormente à unidade de DVD virtual dessa VM para que você possa instalar o sistema operacional.
No Hyper-V Manager, selecione sua VM recém-criada e clique em Conectar... no painel Ações para anexar a um console virtual da VM. Na janela exibida, clique em Iniciar para ativar a máquina virtual.
Prossiga com o processo de configuração para sua distribuição Linux selecionada. Embora cada distribuição Linux use um assistente de configuração diferente, os seguintes requisitos devem ser atendidos para VMs que se tornarão discos de modelo de VM blindados Linux:
- O disco deve ser particionado usando o layout GPT (GUID Partitioning Table)
- A partição raiz deve ser criptografada com dm-crypt. A frase secreta deve ser definida como frase secreta (todas minúsculas). Essa senha será aleatória e a partição criptografada novamente quando uma VM blindada for provisionada.
- A partição de inicialização deve usar o sistema de arquivos ext2
Uma vez que seu sistema operacional Linux tenha sido totalmente inicializado e você tenha entrado, é recomendável que você instale o kernel linux-virtual e os pacotes de serviços de integração Hyper-V associados. Além disso, você desejará instalar um servidor SSH ou outra ferramenta de gerenciamento remoto para acessar a VM depois que ela estiver protegida.
No Ubuntu, execute o seguinte comando para instalar esses componentes:
sudo apt-get install linux-virtual linux-tools-virtual linux-cloud-tools-virtual linux-image-extra-virtual openssh-serverNo RHEL, execute o seguinte comando:
sudo yum install hyperv-daemons openssh-server sudo service sshd startE no SLES, execute o seguinte comando:
sudo zypper install hyper-v sudo chkconfig hv_kvp_daemon on sudo systemctl enable sshdConfigure seu sistema operacional Linux como desejado. Qualquer software instalado, contas de usuário adicionadas e alterações de configuração em todo o sistema feitas serão aplicadas a todas as VMs futuras criadas a partir desse disco de modelo. Você deve evitar salvar segredos ou pacotes desnecessários no disco.
Se você estiver planejando usar o System Center Virtual Machine Manager para implantar suas VMs, instale o agente convidado do VMM para permitir que o VMM especialize seu sistema operacional durante o provisionamento de VM. A especialização permite que cada VM seja configurada com segurança com diferentes usuários e chaves SSH, configurações de rede e etapas de configuração personalizadas. Saiba como obter e instalar o agente convidado do VMM na documentação do VMM.
Em seguida, adicione o Microsoft Linux Software Repository ao seu gerenciador de pacotes.
Utilizando o seu gestor de pacotes, instale o pacote lsvmtools que contém o shim do carregador de arranque da Linux VM protegida, componentes de provisionamento e ferramenta de preparação de disco.
# Ubuntu 16.04 sudo apt-get install lsvmtools # SLES 12 SP2 sudo zypper install lsvmtools # RHEL 7.3 sudo yum install lsvmtoolsQuando terminar de personalizar o sistema operacional Linux, localize o programa de instalação lsvmprep em seu sistema e execute-o.
# The path below may change based on the version of lsvmprep installed # Run "find /opt -name lsvmprep" to locate the lsvmprep executable sudo /opt/lsvmtools-1.0.0-x86-64/lsvmprepDesligue a sua máquina virtual.
Se tiver criado qualquer ponto de verificação da sua VM (incluindo pontos de verificação automáticos criados por Hyper-V com a Atualização de Criadores de Outono do Windows 10), certifique-se de eliminá-los antes de continuar. Os pontos de verificação criam discos diferenciais (.avhdx) que não são suportados pelo Assistente de Disco de Modelo.
Para excluir pontos de verificação, abra Hyper-V Manager, selecione sua VM, clique com o botão direito do mouse no ponto de verificação mais alto no painel Pontos de verificação e clique em Excluir Subárvore de Ponto de Verificação.
Proteger o disco do modelo
A VM que você preparou na seção anterior está quase pronta para ser usada como um disco de modelo de VM blindado do Linux. A última etapa é executar o disco através do Assistente de Disco de Modelo, que fará hash e assinará digitalmente o estado atual das partições raiz e de inicialização. O hash e a assinatura digital são verificados quando uma VM blindada é provisionada para garantir que nenhuma alteração não autorizada foi feita nas duas partições entre a criação e a implantação do modelo.
Obter um certificado para assinar o disco
Para assinar digitalmente as medições do disco, você precisará obter um certificado no computador onde executará o Assistente de Disco de Modelo. O certificado deve satisfazer os seguintes requisitos:
| Propriedade do certificado | Valor necessário |
|---|---|
| Algoritmo chave | RSA |
| Tamanho mínimo da chave | 2048 bits |
| Algoritmo de assinatura | SHA256 (Recomendado) |
| Utilização da chave | Assinatura Digital |
Os detalhes sobre esse certificado serão mostrados aos locatários quando eles criarem seus arquivos de dados de blindagem e estiverem autorizando discos em que confiam. Portanto, é importante obter esse certificado de uma autoridade de certificação mutuamente confiável por você e seus locatários. Em cenários empresariais em que você é o hoster e o locatário, você pode considerar a emissão desse certificado da sua autoridade de certificação corporativa. Proteja este certificado com cuidado, pois qualquer pessoa que possua esse certificado pode criar novos discos de modelo confiáveis da mesma forma que o seu disco autêntico.
Em um ambiente de laboratório de teste, você pode criar um certificado autoassinado com o seguinte comando do PowerShell:
New-SelfSignedCertificate -Subject "CN=Linux Shielded VM Template Disk Signing Certificate"
Processar o disco com o cmdlet Assistente de Modelo de Disco
Copie o disco e o certificado do modelo para um computador com o Windows Server, versão 1709 e, em seguida, execute os seguintes comandos para iniciar o processo de assinatura.
O VHDX fornecido ao -Path parâmetro será substituído pelo disco de modelo atualizado, portanto, certifique-se de fazer uma cópia antes de executar o comando.
Important
As Ferramentas de Administração de Servidor Remoto disponíveis no Windows Server 2016 ou no Windows 10 não podem ser usadas para preparar um disco de modelo de VM blindado do Linux. Use apenas o cmdlet Protect-TemplateDisk disponível no Windows Server, versão 1709 ou as Ferramentas de Administração de Servidor Remoto disponíveis no Windows Server 2019 para preparar um disco de modelo de VM blindado Linux.
# Replace "THUMBPRINT" with the thumbprint of your template disk signing certificate in the line below
$certificate = Get-Item Cert:\LocalMachine\My\THUMBPRINT
Protect-TemplateDisk -Path 'C:\temp\MyLinuxTemplate.vhdx' -TemplateName 'Ubuntu 16.04' -Version 1.0.0.0 -Certificate $certificate -ProtectedTemplateTargetDiskType PreprocessedLinux
Seu disco de modelo agora está pronto para ser usado para provisionar VMs blindadas do Linux. Se você estiver usando o System Center Virtual Machine Manager para implantar sua VM, agora poderá copiar o VHDX para sua biblioteca do VMM.
Você pode também querer extrair o catálogo de assinaturas de volume do VHDX. Esse arquivo é usado para fornecer informações sobre o certificado de assinatura, o nome do disco e a versão para proprietários de VM que desejam usar seu modelo. Eles precisam importar esse arquivo para o Assistente de Arquivo de Dados de Blindagem para autorizar você, o autor do modelo em posse do certificado de assinatura, a criar este e futuros discos de modelo para eles.
Para extrair o catálogo de assinatura de volume, execute o seguinte comando no PowerShell:
Save-VolumeSignatureCatalog -TemplateDiskPath 'C:\temp\MyLinuxTemplate.vhdx' -VolumeSignatureCatalogPath 'C:\temp\MyLinuxTemplate.vsc'