Virtualização para servidores com VirtualBox

Para virtualização em desktop o VirtualBox já vem reinando a algum tempo. E para servidores, muitos não apostam por que simplesmente não sabem que é possível, mas dá! Veja e confirme. Combinação perfeita, CentOS + VirtualBox + Windows 2003 Server.

[ Hits: 82.920 ]

Por: Eduardo Fonseca Velasques em 06/02/2009 | Blog: http://eduveks.blogspot.com


Acesso remoto



Podemos iniciar a máquina virtual pela linha de comando, só que ficamos sem acesso ao ambiente gráfico do VirtualBox. Para então ter acesso a máquina virtual convém configurar o VRDP no VirtualBox para acessar a máquina virtual remotamente:

Settings da Máquina Virtual > Remote Display > Enable VRDP Server

Settings da Máquina Virtual > Remote Display > Port = 3089

É importante mudar o número da porta, por que a porta do VRDP é a mesma do Terminal Services, dá para trocar o número da porta do Terminal Services no regedit, mas é mais simples aí no VRDP, e assim já se evita um conflito.

Só que assim o VirtualBox vai deixar entrar qualquer um pelo VRDP sem autenticação, então convém bloquear a porta do VRDP para que ninguém fora do CentOS consiga controlar a máquina virtual:

# /sbin/iptables -A INPUT -p tcp -i eth0 --dport 3089 -j REJECT --reject-with tcp-reset
# /sbin/iptables -A INPUT -p tcp -i eth1 --dport 3089 -j REJECT --reject-with tcp-reset
# /sbin/iptables -A INPUT -p udp -i eth0 --dport 3089 -j REJECT
# /sbin/iptables -A INPUT -p udp -i eth1 --dport 3089 -j REJECT


Assim a porta do VRDP fica protegida para que ninguém que venha das interfaces de rede externas consiga conectar.

Para conectar via VRDP é só usar o tsclient:

# tsclient

No tsclient, em computer colocar:

localhost:3089

E em protocol:

RDPv5

Clicar em "Connect" e pronto! Já conseguimos controlar a máquina virtual remotamente quando estivermos executando ela em background, isto será muito útil.

No Windows 2003 Server podemos ter o Terminal Services, e para acessar o terminal services através da internet ou rede temos que fazer uns ajustes, pois a porta do Terminal Services é a mesma do VRDP, então temos que mudar uma ou outra porta, como já mudamos a porta padrão do VRDP para 3089, então o Terminal Services vai funcionar bem na porta 3389.

Então para por o Terminal Services a funcionar é preciso ativar, no Windows Server:

Control Panel > System > Remote > Enable Remote Desktop on this computer

E agora é fazer NAT para a porta do Terminal Services:

# /sbin/iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 3389 -j DNAT --to 192.168.20.201:3389
# /sbin/iptables -t nat -A PREROUTING -p tcp -i eth1 --dport 3389 -j DNAT --to 192.168.20.201:3389


E assim fica o Terminal Services disponível, e o mesmo pode ser feito para outros serviços do Windows que precisam estar disponíveis externamente, como MSSQLServer.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Rede
   3. Acesso remoto
   4. Últimos ajustes
Outros artigos deste autor

Unreal Tournament 2004 - Servidor Linux

Nginx: Poderoso servidor WEB para Linux

Leitura recomendada

CUPS - Gerenciador de impressões

Servidor DNS (bind9) em Debian Linux

Instalando MultiLIB no Slackware 14.2 com Atualizações pelo GSlapt

Net TV a cabo no Mandrake 10.1 Community

OpenVPN Matriz > Filial com PPTP

  
Comentários
[1] Comentário enviado por EDU4RDO_ em 06/02/2009 - 10:55h

No meu caso já estou com a maquina virtual funcionando perfitamente, ate startto ela pela linha de comando também mas eu estou com um problema quando coloca o comando no rc.local pois dessa forma a maquina virtual não esta levntando junto com o sistema. Ate tirei a maquina virtual do meu usuário e levei ela pro root.

Gostaria de saber se alguem sabe quais são as linha que eu devo adicionar no rc.local pra que levante automaticamente e se a maquina pode estar no usuário comum ou só funciona no root?

Vi também que você mostrou quais parametros foi adicionado no seu rc.local mas creio que no meu seja um pouco diferente pois so necessito da maquina virtual não preciso das linhas do iptable nem das de configuração da rede.

Esotu usando Fedora 10.

[2] Comentário enviado por eduveks em 06/02/2009 - 14:15h

Para executar o comando:

/usr/bin/VBoxTunctl -u xxxx

Tem que ser como root, por que vai criar uma interface de rede virtual.

E os comandos do rc.local é executado como root. No meu caso esta tudo pelo como root.

No teu caso, só este comando que deve ser preciso então:

/usr/bin/nohup /usr/bin/VBoxVRDP -startvm winserver > /dev/null &

Que isto apenas inicia a máquina virtual, para rodar em background. Onde "winserver" é o nome da máquina virtual em questão.

[3] Comentário enviado por demoncyber em 06/02/2009 - 21:37h

Olá,

Não gosataria de ser um cara chato mais, a maior inovaçao da ultima versao do virtualbox que por sinal eh esta que vc provavelmente instalou é poder fazer isso dando 3 clics's =O, sim o virtuabox 2 agora está fazendo o bridge como vmware \o/

Mas fica ai também o passo a passo X), sempŕe é bom ter as vezes estas interfaces graficas nao fazem tudo


[4] Comentário enviado por vagnersobrinho em 08/02/2009 - 02:11h

Mandou bem!

[5] Comentário enviado por sidnei.weber em 09/02/2009 - 00:08h

E como faço pra inicializar a máquina virtual pelo terminal?

Aqui no meu ponho certinho o nome como criei no Virtual Box, e sempre diz que o nome é invalido!?!?

Isso já aconteceu com algué?

Ótimo tutorial, parábens!

[6] Comentário enviado por eduveks em 09/02/2009 - 00:15h

Nunca tive estes problema de nome inválido...

Mas pode ser o usuário, você criou a máquina com o root e esta iniciando com o root?

Vc pode verificar com:

ls ~/.VirtualBox/Machines/

Tem que ter ai uma pasta com o nome da máquina virtual que vc quer usar. Dentro do "home" do usuário que inicia a máquina virtual.

[7] Comentário enviado por batista em 09/02/2009 - 12:46h

Muito bom artigo. Parabéns!!!
Gostaria de acrescentar que testei a nova versão do VirtiualBox do site da Sun, na distro Mandriva 2008.0 conforme este tutorial no link http://www.howtoforge.com/installing-virtualbox-2.0-on-mandriva-2009.0
Segui os passos do tutorial e o VirtualBox esta rodando numa boa.
Caso alguem queira testar darei as dicas:
Instale os pacotes do kernel-source e kernel-devel para versão especifica do seu kernel, no caso para saber e so digitar o comando no terminal: uname -a
Apos baixar estes pacotes e também instalado via urpmi o pacote do VirtualBox, va no terminal como root e digite:

/etc/init.d/vboxdrv setup

Este comando acima compilara o modulo do VirtualBox no sistema, apos isto e so instalar suas vms normalmente inclusive com acesso a bridge nativamente, ou seja, sem comandos avançados.

Valeu...

[8] Comentário enviado por eduveks em 09/02/2009 - 13:12h

Isto de ter o bridge automático tem a certeza?

Que eu tanto nos meus desktops com Ubuntu 8.10 e Fedora 9, e no servidor com o CentOS 5, usando a última versão do VirtualBox a 2.1.2. Em todos o acesso a internet foi automático, agora a configuração de route e interface de rede virtual não é automático. Ou seja para do sistema base ter acesso a máquina virtual e vice-versa, isto não é automático até onde sei.

Acho que estão confundindo o acesso internet e em ter um serviço na máquina virtual e acessar a este serviço apartir do sistema nativo e da rede.

O tutorial é neste sentido, de configurar serviços de servidor dentro da máquina virtual.

[9] Comentário enviado por juliaojunior em 10/02/2009 - 19:35h

gostei do artigo, e vou testar.

[10] Comentário enviado por andrefreire em 17/02/2009 - 08:07h

O que foi dito é que não é mais necessário se configurar esse arranjo com túneis como vc fez pois o novo Virtualbox acessa o host diretamente basta que vc selecione interface do hospedeiro e pronto.

[11] Comentário enviado por eduveks em 17/02/2009 - 08:27h

Só que assim tem que estar com DHCP do VirtualBox, o que é mau para fazer depois os NATs! Como precisava de IP estático para os NATs não vi maneira melhor.

E como eu já disse eu estou usando a última versão do VirtualBox! E para fazer os NATs não encontrei outra maneira sem criar a interface de rede virtual. Se há uma forma mais simples de fazer isto por favor coloque passo-a-passo para que eu possa realizar o teste de que tudo funciona.

[12] Comentário enviado por chaplinux em 24/02/2009 - 13:25h

Bom na NOVA VERSAO DO VBOX! não eh mais necessario essas gambiarras! rs...

Entre na Opção de "Configurações" ou "Setting" / "Rede" ou "Network" / "Adapdator 1"

escolha a opcao "Conectado a" ou "Attached to" , mude para "Interface do Hospedeiro" ou "Host Interface"

escolha mais a baixo em "Placa de Rede do Hospedeiro" ou "Host Interface" , a ethX que vc usa na rede local.

Só da OK. e usar a mesma faixa de rede na maquina virtual como na local. e esta pronto! tudo transparente!

Flw!

[13] Comentário enviado por lgf em 03/08/2011 - 11:23h

Funcionou muito bem mas não estou conseguindo desligar a maquina virtual depois de conectar via rdp , conectando normalmente pelo gui é possivel desligar usando vboxmanage controlvm NOME_DA_MAQUINA acpipowerbutton mas iniciando pelo VBoxDRV esse comando não funciona , tem alguma forma de subir a maquina no boot e desligar no halt ?

[14] Comentário enviado por eduveks em 03/08/2011 - 19:31h

eu fiz este script para forçar reiniciar a virtual machine! primeiro mata mesmo a virutal machine ("kill -9") e a seguir inicia.

já uso a uns anos e até agora n tive nenhum problema (a última linha é para reiniciar a virtual machine, no teu caso remover/comenatar a última linha):

#!/bin/sh

psID=
for linePS in `ps x | grep virtualbox/VBox`; do
psData=`echo $linePS | grep "^[0-9]*$"`
case $linePS in
"/usr/lib/virtualbox/VBox"*) kill -9 $psID ;;
esac
if [ "$psData" != "" ]; then
psID=$psData
fi
done

/usr/bin/nohup /usr/bin/VBoxVRDP -startvm rwinsrv > /dev/null &


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts