quinta-feira, 7 de julho de 2016

Limitando o número de conexões simultâneas na console de uma VM

                 

É comum em alguns ambientes que o acesso ao vCenter seja compartilhado entre vários administradores e até mesmo entre áreas distintas. Uma das recomendações de segurança que a VMware geralmente propõe (pelo menos é o que está no Security Guide) é que o acesso a Console da VM seja minimizado ao máximo, uma vez que o acesso a console se assemelha ao acesso ao monitor de uma máquina física, com teclado e mouse.

Com acesso à console um usuário pode executar ações que fogem ao controle do ambiente virtual, uma vez que as ações estarão sendo executadas de dentro da VM.

Uma outra razão para limitar o número de conexões permitidas à console de uma VM, é o fato de uma outra pessoa poder observar as ações que um administrador estiver executando na máquina virtual, podendo gerar algum incidente de segurança, já que informações sensíveis podem estar sendo exibidas na tela.

Por exemplo, na imagem abaixo é possível identificar que além desta sessão, existem outras 3 sessões abertas nesta console, porém não é possível identificar facilmente quem está visualizando a console junto com você.


Por isso o mais recomendado é que o acesso seja feito, sempre que possível, utilizando as ferramentas nativas do sistema operacional da VM, por exemplo SSH e RDP.

Por padrão não há limites no número de conexões simultâneas na console de uma VM, mas existem formas de alterar esse comportamento através das configurações avançadas de uma máquina virtual.

Pelo vSphere Web Client é possível configurar essa opção clicando em: Edit Settings à VM Options à VMware Remote Console Options à Maximum number of sessions

Para alterar pelo vSphere Web Client é necessário que a VM esteja desligada.

Outra forma de alterar é utilizando o PowerCLI ou o vCLI para alterar o parâmetro “RemoteDisplay.maxConnections”, dessa forma além de permitir que a mudança seja feita com a VM ligada, ainda oferece a possibilidade de automatizar a mudança em várias VMs de uma única vez através de scripts.

Abaixo disponibilizo um exemplo de script de PowerCLI para realizar a mudança em todas as VMs de um determinado cluster.

#Conexão com o Virtual Center
Connect-VIServer -Server [vcenter-address] –User [vcenter-user] -Password [user-password]
$VMCluster = Read-Host "Digite o nome do cluster:"
foreach($vm in Get-Cluster $VMCluster | Get-VM ){
#Checa se a opção já está configurada, caso negativo faz a configuração
if (!(get-advancedsetting -entity $vm -Name "RemoteDisplay.maxConnections")){
$vm|New-AdvancedSetting -Name "RemoteDisplay.maxConnections" -Value "1" -Confirm:$false}
else {
#Se a opção já estiver configurada, a linha abaixo faz a alteração
get-advancedsetting -entity $vm -Name "RemoteDisplay.maxConnections" | SetAdvancedSetting -Value "1" -Confirm:$false} }
Após a alteração, qualquer tentativa de conexão na console da VM, tanto pelo vSphere Web Client como pelo vSphere Client (Windows), falhará com a mensagem de erro abaixo: