Escondendo Dispositivos de Rede Virtuais do VMWare e VirtualBox do Firewall do Windows e da Central de Rede e Compartilhamento

vboxhostonlynetnetnsharing1

O VMWare Workstation cria dois adaptadores de rede virtual por padrão. Um é a rede host-only e outro é para roteamento NAT. Você pode criar adaptadores adicionais para adequá-lo a necessidades de cenários mais complexos.

O VirtualBox cria um dispositivo “VirtualBox Host-Only Network” que é essencialmente um adaptador loopback para criar conexões de rede entre máquinas virtuals e entre o host e máquinas virtuais. Infelizmente, ele é exibido como uma rede pública desconhecida.

O problema é que estas redes causam o Windows 7 pensar que está conectado a uma rede pública “não identificada” que possuí como efeito colateral a desabilitação da descoberta de rede e compartilhamento de arquivos e impressoras. Você experimentará o mesmo problema com o Windows 7 Virtual PC se você criar um adaptador de loopback virtual. Este é um grande efeito colateral ao instalar alguns softwares de virtualização. Felizmente, o Windows possuí um meio de marcar um dispositivo de rede como virtual criando um valor no registro.

*NdisDeviceType

O tipo do dispositivo. O valor padrão é zero, que indica um dispositivo de rede padrão que conecta-se a uma rede. Defina *NdisDeviceType para NDIS_DEVICE_TYPE_ENDPOINT (1) caso este dispositivo seja um dispositivo endpoint e não é uma interface de rede verdadeira que conecta-se a uma rede. […] Consequentemente, o Windows ignora dispositivos endpoint quando ele identifica redes. A API Networl Awareness indica que o dispositivo não conecta o computador a uma rede. Para usuários finais nesta situação, a Central de Rede e Compartilhamento e o ícone de rede da área de notificação não exibirá o dispositivo endpoint NDIS como conectado. Porém, a conexão será exibida na pasta Conexões de Rede.

Tanto quanto sei é que este é somente um bug tanto no VirtualBox e VMware Workstation. Eles podem ter seus dispositivos de rede virtual marcados como *NdisDeviceType=1 para compatibilidade com sistemas NT 6.x.

Até eles fazerem isso, Brian Reiter criou dois pequenos scripts em PowerShell para encontrar todos os adaptadores de rede criados pelo VMware [1] quanto para VirtualBox [2] e marcá-los como virtuais e decidi uni-los em um único script.

# tell windows that VM Network Adapters
# is not a true network interface that connects to a network
# see http://msdn.microsoft.com/en-us/library/ff557037(VS.85).aspx
pushd
function NdisDeviceType([string]$arg1)
{
echo "Marking $arg1 as virtual."
cd 'HKLM:\system\CurrentControlSet\control\class\{4D36E972-E325-11CE-BFC1-08002BE10318}'
ls ???? | where { ($_ | get-itemproperty -name driverdesc).driverdesc `
-eq $arg1 } |`
new-itemproperty -name '*NdisDeviceType' -PropertyType dword -value 1
}
NdisDeviceType "VirtualBox Host-Only Ethernet Adapter"
NdisDeviceType "VMware Virtual Ethernet Adapter"
echo "`r`nReboot to apply changes."
popd

Copie o conteúdo do script no Bloco de notas e salve-o como NdisDeviceType.ps1

Para executar o script, abra o Prompt de Comando como administrador e execute o PowerShell com o comando:

powershell.exe -noprofile -executionpolicy bypass

No PowerShell, execute o script digitando o caminho completo do arquivo:

C:\Users\Marcos\Desktop\NdisDeviceType.ps1

NdisDeviceType-PS

A configuração começará a ter efeito após a reinicialização do computador.

Referências

[1] Hide VMWare Virtual Network Interfaces from Windows Firewall and Network and Sharing Center – Brian Reiter – https://brianreiter.org/2011/08/29/hide-vmware-virtual-network-interfaces-from-windows-firewall-and-network-and-sharing-center/

[2] FIX: VirtualBox Host-Only Network Adapter Creates a Virtual “Public Network” Connection That Causes Windows to Disable Services – Brian Reiter – https://brianreiter.org/2010/09/18/fix-virtualbox-host-only-network-adapter-creates-a-virtual-public-network-connection-that-causes-windows-to-disable-services/

Create Your Own PowerShell Functions – Windows IT Pro – http://windowsitpro.com/windows/create-your-own-powershell-functions

How do I pass multiple parameters into a function in PowerShell? – StackOverflow – http://stackoverflow.com/questions/4988226/how-do-i-pass-multiple-parameters-into-a-function-in-powershell

How to enable execution of PowerShell scripts? – Super User – http://superuser.com/questions/106360/how-to-enable-execution-of-powershell-scripts

[CORREÇÃO] “Failed to create the VirtualBox COM object”

Ao tentar usar o VBoxManage para alterar configurações em uma VM para poder instalar o Windows 2000 (seguindo as instruções deste post), recebia a mensagem Failed to create VirtualBox COM object.

ScreenShot010Este problema ocorre quando o arquivo de configuração do VirtualBox se corrompe. Por sorte, o VirtualBox realiza backups regulares das configurações para que possamos restaurá-las mais tarde.

Para isso, abra o diretório C:Users[NOME].VirtualBox

No diretório, remova o arquivo VirtualBox.xml. Após isso, renomeie o arquivo VirtualBox.xml-prev para VirtualBox.xml

ScreenShot020


Referências

VirtualBox Fix: “Failed to create the VirtualBox COM object” Result Code: NS_ERROR_FAILURE (0x80004005) – http://gnuski.blogspot.com.br/2012/02/virtualbox-fix-failed-to-create.html

[CORREÇÃO] Windows 2000 reinicia na instalação usando o VirtualBox

De acordo com o manual do VirtualBox, o driver do controlador de disco IDE do Windows 2000 possui problemas, onde não espera um dado ser gravado para começar a ler outro. Para poder contornar isso (aumentando o tempo que o Windows esperará para continuar a leitura no disco virtual em um 1ms), feche o VirtualBox e abra o diretório C:Arquivo de ProgramasOracleVirtualBox e arraste o executável VBoxManage.exe para o prompt e use o comando:

VBoxManage.exe setextradata “nome_VM” “VBoxInternal/Devices/piix3ide/0/config/IRQDelay” 1

Nota: Caso você receba a mensagem de erro Failed to create VirtualBox COM object, a correção pode ser encontrada no post: https://eduardomozartdeoliveira.wordpress.com/2013/01/11/correcao-failed-to-create-the-virtualbox-com-object

Se você ainda encontrar problemas, aumente este valor (use de 1 a 5). A performance do disco é comprometida com valores muito altos. Após a instalação do Windows 2000, você pode voltar a usar o padrão:

VBoxManage.exe setextradata “nome_VM” “VBoxInternal/Devices/piix3ide/0/config/IRQDelay” 0

Referências

Chapter 12. Trobleshooting – VirtualBox Manual – http://www.virtualbox.org/manual/ch12.html#idp16209024

Convertendo discos virtuais do VMware para VirtualBox

Estava com saudades do Windows 98 e queria revê-lo para puxar algumas ideias de visuais para um programa que estou desenvolvendo. Como você deve ter notado (tanto pela aparência do blog e pelas imagens nos posts), amo a aparência simples e com os mal-vistos pixels de antigamente. Após realizar uma “limpeza geral” nos meus arquivos, encontrei minha antiga máquina virtual com Windows 98, mas do tempo que eu ainda usava o VMware Workstation.

Você pode usar a imagem .VMDK do VMware sem converter no VirtualBox sem problemas, mas prefiro possuir uma padronização em relação a essas coisas para evitar dor de cabeça no futuro.

Para podermos converter a imagem do disco .VMDK do VMware para VDI do VirtualBox, precisamos do QEMU. [download].

Após o download, extraia o arquivo baixado na área de trabalho (pode usar o 7-zip). Arraste o arquivo qemu-img.exe para o prompt de comando e use o comando:

qemu-img.exe convert -O raw imagem_antiga.vmdk imagem_nova.raw

Agora, abra o diretório de instalação do VirtualBox (C:Arquivo de ProgramasOracleVirtualBox) e arraste o arquivo VBoxManage.exe para o prompt e use os comandos:

VBoxManage.exe convertdd imagem_antiga.raw imagem_nova.vdi

VBoxManage.exe modifyvdi imagem_nova.vdi compact

Referências

QEMU/Images – Converting image formats – http://en.wikibooks.org/wiki/QEMU/Images#Converting_image_formats

Instalando o Add-ons do VirtualBox no CentOS


CentOS:
6.3

VirtualBox: 4.2.0

Com o CentOS instalado, abra o VirtualBox e, no menu Dispositivos, selecione Instalar Adicionais para convidado

Você pode verificar a versão instalada dos Add-ons listando o conteúdo do diretório /opt.

ls /opt

Precisamos nos certificar que o kernel da máquina virtual está atualizado e, após a atualização, reiniciarmos o servidor.

yum update
reboot

Após reiniciarmos o computador, precisamos instalar os pacotes do grupo “Development tools, kernel-devel e kernel-headers para podermos instalar os Add-ons. Use os comandos:

yum groupinstall "Development Tools"
yum install kernel-devel kernel-headers

Precisamos apontar a variável KERN_DIR para o diretório onde o kernel do CentOS se encontra para não retornar KERN_DIR does not point to a directory durante a instalação.

export KERN_DIR=/usr/src/kernels/$(uname -r)

Agora podemos montar o disco de instalação dos Add-ons com o comando:

mount /dev/cdrom /media

Agora, tudo o que precisamos fazer é executar o instalador do VirtualBox.

cd /media
./VBoxLinuxAdditions.run

A instalação deverá ocorrer sem nenhum FAILED, com exceção dos drivers do Window (modo gráfico) caso você instalou o servidor em modo texto.

Referências

DigitalDev – Instalando o Guest Additions do VirtualBox no CentOS 6.2. http://www.digitaldev.com.br/2012/03/13/instalando-o-guest-additions-do-virtualbox-no-centos-6-2/
If not true then false – VirtualBox Guest Additions on Fedora 17/16, CentOS/RHEL 6.3/5.8. http://www.if-not-true-then-false.com/2010/install-virtualbox-guest-additions-on-fedora-centos-red-hat-rhel/
CentOS Wiki (oficial) – CentOS as a Guest OS in VirtualBox. http://wiki.centos.org/HowTos/Virtualization/VirtualBox/CentOSguest

[ESTUDOS] Instalando o Microsoft Forefront TMG no VirtualBox


OBS:
Este post está sendo escrito para estudos. Não acredito que funcionará em um ambiente real. Necessitaria adaptações, como usar o adaptador de rede em modo bridge (como um computador participante da rede do host, que seria o servidor) no lugar da Rede Interna. Se poder usá-lo em um ambiente de produção, comente nos comentários!

Os dois servidores e os clientes são virtualizados em um host com Windows 7, com nenhuma relação com os computadores virtualizados. Se você usar em um ambiente de produção, virtualizaria o servidor com Forefront no servidor com AD, DNS e DHCP com Hyper-v. Usaria o VirtualBox apenas se o servidor não suporta virtualização.

Mas como você me compra um servidor sem suporte a virtualização? Você merece morrer pela voadeira do gato assassino!

Lembre-se que necessitará de dois servidores. Isso por que, se você possui o AD instalado, não poderá instalar no mesmo computador o Forefront TMG. O computador com Forefront TMG precisa ser Windows Server 2008 (ou superior) 64-bits. Em 86-bits é possível instalar apenas o Console de gerenciamento, para que possamos administrar um servidor com Forefront remotamente.

Abaixo, a Estrutura da rede:

Está é a mais comum, onde todos os computadores estão “protegidos” pelo Forefront do acesso externo. Com isso, podemos adicionar filtros de URL para bloquear acesso a determinados websites, por exemplo, por que todos os computadores precisam passar pelo Forefront para acessar a internet.

No servidor que será instalado o Forefront, você precisará possuir 2 placas de rede: Uma para Rede interna (192.168.0.254) e outra para a Internet (NAT) (200.254.253.xxx). Você pode adicionar mais adaptadores acessando o menu Rede nas configurações da VM:

Os computadores (e o Servidor com AD, DHCP e DNS) possuirão apenas uma placa de rede, usada para a Rede interna. Para acessar a internet, se comunicarão com nosso servidor Forefront.

Após isso, precisamos definir os Endereços IP usados na placa de rede interna e externa.

Abra as propriedades da placa de rede > TCP/IPv4 e adicione os dados de acordo com a rede interna (192.168.0.254). Em Servidores DNS, aponte para o Servidor DNS instalado na rede (192.168.0.1):

OBS: Não use IP distribuído pelo DHCP da rede interna, mesmo com reserva. Ele puxa, mas após a instalação do Forefront ele o mudará para fixo, ou seja, parará de puxá-lo do DHCP e mostrará a reserva como inativa no DHCP, mesmo que o IP esteja sendo usado – simplesmente por que ele não o puxa mais do DHCP. Se o Endereço IP que você usar na placa de rede INTERNA do Forefront está na faixa de distribuição de IPs do DHCP, adicione o IP usado na lista de exclusão para não distribui-lo na rede e use-o no servidor com Forefront, ok?

Entre em “Avançado“. Na aba DNS, em Sufixo DNS para esta conexão digite o nome da zona direta (Nome -> IP) usado no DNS (documentos.com.br) e marque a caixa “Usar o sufixo DNS desta conexão no registro DNS“.

Para a placa da rede EXTERNA, use endereço IP dinâmico (recebido via NAT no VirtualBox), mas em Servidores DNS, use o endereço IP do servidor DNS da rede e outro para resolução de nomes na internet, como o OpenDNS (208.67.220.220).

Após isso, adicione o servidor ao domínio (Menu iniciar > Botão direito em “Computador” > Propriedades > Configurações avançadas do sistema > Nome do computador > Mudar…). Se puder, renomeie o nome do servidor para um nome mais amigável, como servidor2 ou servidor_TMG.

O nome do domínio usado no post é documentos. Lembre-se de adicionar o sufixo DNS clicando em Mais… na tela de adicionarmos o servidor ao domínio e, em Sufixo primário para esta conexão, digite o nome da zona direta (Nome -> IP) usada no DNS.

Após reiniciar o servidor que será instalado o Forefront, volte ao servidor com DNS instalado e, no prompt de comando, use:

nslookup servidor2.documentos.com.br

Onde servidor2 é o nome do computador que será instalado o Forefront e documentos.com.br é o nome da zona direta do DNS.

É importante retornar o resultado como na tela abaixo, onde cita o endereço IP da rede interna e externa:

Com isso, nosso servidor com Forefront (servidor2) pode ser encontrado na rede. Você pode usar como logon no servidor2 o nome do domínio e a conta Administrador, como “DOCUMENTOSAdministrador”.

Se não retornou, use “Permitir atualizações seguras e não-seguras” nas zonas (botão direito na zona > Propriedades). Nós não podemos citar os apontadores manualmente por que a cada 24 horas o IP externo muda e nosso servidor DNS precisa mudá-lo sempre.

Se continuar encontrando erro, verifique se digitou o nome correto do computador e da zona direta (documentos.com.br). Você pode conferir o nome do computador e zona no DNS, expandindo o escopo da zona direta.

Agora, podemos começar a instalação do Forefront TMG no nosso servidor. No instalador, clique em Executar a ferramenta de preparaçãoe selecione “Serviços e Gerenciamento do Forefront TMG”. Após instalar os recursos necessários, clique em “Executar o assistente de instalação”.

Em “Definir rede interna“, não podemos selecionar o adaptador da rede interna para ele adicionar o intervalo automaticamente para a gente. Por algum motivo (provavelmente por usarmos IP dinâmico na placa de rede externa), ele mostra todos os endereços IPs possíveis e não somente a faixa de IP’s da rede interna, como mostrado na imagem abaixo em Route information:

Precisamos informar manualmente a faixa de endereços IP da nossa rede interna. A rede usada no desenho é 192.168.0.x, logo, ela pode se estender de 192.168.0.0 a 192.168.0.255. Você pode informar manualmente selecionando “Adicionar intervalo” (Add range) no lugar de “Adicionar adaptador” (Add adapter).

Após a instalação do Forefront TMG, abra o Microsoft Forefront TMG Management no Menu iniciar > Todos os programas.

Como é a primeira vez que usamos o Forefront TMG, abrirá o assistente de configuração. Abra a primeira opção (Definir configurações de rede).

(Reprodução / http://blog.douglasfilipe.com.br/2010/05/02/instalando-e-configurando-o-forefront-tmg-2010/)

Em Seleção do modelo de rede, selecione Firewall de borda. Com esta topologia todos os computadores da rede interna precisarão passar pelo Forefront para poder acessar a internet.

(Reprodução / http://blog.douglasfilipe.com.br/2010/05/02/instalando-e-configurando-o-forefront-tmg-2010/)

Em Configurações de LAN (Rede local), selecione o adaptador usado para a rede interna (192.168.0.254) e deixe Default gateway em branco para ele usar o IP do próprio servidor. (192.168.0.254) O Gateway é o computador da rede que possui acesso direto a internet (o servidor com Forefront é o único computador da rede que possui acesso direto a internet).

Em Configurações de internet, selecione o adaptador de rede usado para Internet e selecione a caixa “Obter um endereço IP automaticamente“.

Agora, você pode criar uma regra de Acesso a internet para sua rede. Para isso, abra Firewall Policy. Em Toolbox, clique em Create Access Rule.

Nome: Acesso a internet

Protocolos: HTTP, HTTPS (Em “Web“)

From: Internal

To: External

Use “Todos os usuários“.

Abra as configurações do adaptador de rede que possui o servidor AD instalado > TCP/IPv4 > Propriedades. Em Gateway, use o IP do servidor com Forefront instalado (192.168.0.254).

Após isso, você precisará tornar seu proxy transparente usando o WPAD. http://postsporummundomelhor.wordpress.com/2012/07/28/usando-o-wpad-com-o-microsoft-forefront-tmg-2010/

Você pode distribuir o Gateway na rede usando o DHCP (usamos fixo no servidor com AD pelo fato dele possuir endereço IP fixo). Nas opções do escopo, use 003 Router e digite o IP do servidor que possui o Forefront instalado (192.168.0.254)

Erro 0xc0000225 antes da instalação do Windows no VirtualBox

Com o lançamento do Windows 8 e o suporte a Hyper-V adicionado a esta versão do Windows, não utilizo mais o VirtualBox. As informações abaixo podem estar desatualizadas, e foram mantidas apenas para ajuda-lo no que for possível. Não posso ajuda-lo além disso. Procure migrar para uma nova versão do Windows.


(Reprodução/Guilherme Leite)

Continuar lendo “Erro 0xc0000225 antes da instalação do Windows no VirtualBox”