Ir para o conteúdoIr para navegação de página: página anterior [tecla de acesso p]/próxima página [tecla de acesso n]
documentation.suse.com / Documentação do SUSE Linux Enterprise Desktop / Guia de Administração / Tarefas comuns / Sessões gráficas remotas com VNC
Aplica-se a SUSE Linux Enterprise Desktop 15 SP5

14 Sessões gráficas remotas com VNC

O VNC (Virtual Network Computing) permite acessar um computador remoto por meio de uma área de trabalho gráfica e executar aplicativos gráficos remotos. O VNC é independente de plataforma e acessa a máquina remota de qualquer sistema operacional. Este capítulo descreve como se conectar a um servidor VNC com os clientes de área de trabalho vncviewer e Remmina e como operar um servidor VNC.

O SUSE Linux Enterprise Desktop suporta dois tipos diferentes de sessões VNC: sessões únicas, que permanecem ativas enquanto a conexão VNC do cliente está ativada, e sessões persistentes, que permanecem ativas até serem explicitamente terminadas.

Um servidor VNC é capaz de oferecer ambos os tipos de sessões simultaneamente em portas diferentes, mas uma sessão aberta não pode ser convertida de um tipo em outro.

14.1 Cliente vncviewer

Para se conectar a um serviço VNC fornecido por um servidor, é necessário um cliente. O padrão no SUSE Linux Enterprise Desktop é o vncviewer, incluído no pacote tigervnc.

14.1.1 Conexão por meio da CLI do vncviewer

Para iniciar o viewer do VNC e começar uma sessão com o servidor, use o comando:

> vncviewer jupiter.example.com:1

Em vez do número de exibição do VNC, você também pode especificar o número da porta com dois-pontos duplos:

> vncviewer jupiter.example.com::5901
Nota
Nota: Número de exibição e de porta

O número real de exibição ou de porta especificado no cliente VNC deve ser igual ao número selecionado pelo comando vncserver na máquina de destino. Consulte a Seção 14.4, “Configurando sessões persistentes do servidor VNC” para obter mais informações.

14.1.2 Conexão por meio da GUI do vncviewer

Ao executar o vncviewer sem especificar --listen nem um host ao qual se conectar, será exibida uma janela solicitando detalhes da conexão. Informe o host no campo Servidor VNC, conforme mostrado na Seção 14.1.1, “Conexão por meio da CLI do vncviewer”, e clique em Conectar.

vncviewer solicitando detalhes da conexão
Figura 14.1: vncviewer

14.1.3 Notificação de conexões não criptografadas

O protocolo VNC suporta diferentes tipos de conexões criptografadas, o que não deve ser confundido com autenticação de senha. Se uma conexão não usar TLS, o texto (Conexão não criptografada)! poderá aparecer no título da janela do viewer do VNC.

14.2 Remmina: o cliente de área de trabalho remota

Remmina é um cliente de área de trabalho remota moderno e cheio de recursos. Ele suporta vários métodos de acesso, por exemplo, VNC, SSH, RDP e Spice.

14.2.1 Instalação

Para usar o Remmina, verifique se o pacote remmina está instalado no sistema e, se não estiver, instale-o. Lembre-se também de instalar o plug-in VNC para Remmina:

# zypper in remmina remmina-plugin-vnc

14.2.2 Janela principal

Execute o Remmina digitando o comando remmina.

Janela principal do Remmina
Figura 14.2: Janela principal do Remmina

A janela principal do aplicativo mostra a lista de sessões remotas armazenadas. Nela, você pode adicionar e gravar uma nova sessão remota, iniciar rapidamente uma nova sessão sem gravá-la, iniciar uma sessão que já foi gravada ou definir as preferências globais do Remmina.

14.2.3 Adicionando sessões remotas

Para adicionar e gravar uma nova sessão remota, clique em Add new session na parte superior esquerda da janela principal. A janela Preferência da Área de Trabalho Remota é aberta.

Preferência da área de trabalho remota
Figura 14.3: Preferência da área de trabalho remota

Preencha os campos que especificam o perfil da sessão remota recém-adicionada. Os mais importantes são:

Nome

Nome do perfil. Ele será listado na janela principal.

Protocolo

O protocolo a ser usado na conexão com a sessão remota. Por exemplo, VNC.

Servidor

O endereço IP ou DNS e o número de exibição do servidor remoto.

Nome de usuário, senha

As credenciais que serão usadas para autenticação remota. Deixe vazio para nenhuma autenticação.

Profundidade de cores, qualidade

Selecione as melhores opções de acordo com a velocidade e a qualidade da conexão.

Selecione a guia Avançado para inserir configurações mais específicas.

Dica
Dica: Desabilitar criptografia

Se a comunicação entre o cliente e o servidor remoto não for criptografada, ative Desabilitar Criptografia; do contrário, haverá falha na conexão.

Selecione a guia SSH para opções avançadas de autenticação e túnel SSH.

Confirme com Salvar. Seu novo perfil será listado na janela principal.

14.2.4 Iniciando sessões remotas

Você pode iniciar uma sessão que já foi gravada ou iniciar rapidamente uma sessão remota sem gravar os detalhes da conexão.

14.2.4.1 Iniciando sessões remotas rapidamente

Para iniciar uma sessão remota rapidamente, sem adicionar e gravar os detalhes da conexão, use a caixa suspensa e a caixa de texto na parte superior da janela principal.

Iniciando rapidamente
Figura 14.4: Iniciando rapidamente

Selecione o protocolo de comunicação na caixa suspensa, por exemplo, VNC, e digite o endereço DNS ou IP do servidor VNC seguido de uma vírgula e de um número de exibição. Em seguida, pressione Enter para confirmar.

14.2.4.2 Abrindo sessões remotas gravadas

Para abrir uma sessão remota específica, clique duas vezes nela na lista de sessões.

14.2.4.3 Janela de sessões remotas

As sessões remotas são abertas nas guias de uma janela separada. Cada guia hospeda uma sessão. A barra de ferramentas à esquerda da janela ajuda você a gerenciar as janelas/sessões. Por exemplo, alternar para o modo de tela cheia, redimensionar a janela para corresponder ao tamanho de tela da sessão, enviar pressionamentos de tecla específicos para a sessão, fazer capturas de tela da sessão ou definir a qualidade da imagem.

Vendo sessão remota no Remmina
Figura 14.5: Vendo sessão remota no Remmina

14.2.5 Editando, copiando e apagando sessões gravadas

Para editar uma sessão remota gravada, clique o botão direito do mouse no nome dela na janela principal do Remmina e selecione Editar. Consulte a Seção 14.2.3, “Adicionando sessões remotas” para ver a descrição dos campos relevantes.

Para copiar uma sessão remota gravada, clique o botão direito do mouse no nome dela na janela principal do Remmina e selecione Copiar. Na janela Preferência da Área de Trabalho Remota, mude o nome do perfil, ajuste as opções relevantes (opcional) e clique em Gravar para confirmar.

Para apagar uma sessão remota gravada, clique o botão direito do mouse no nome dela na janela principal do Remmina e selecione Apagar. Na caixa de diálogo, clique em Sim para confirmar.

14.2.6 Executando sessões remotas da linha de comando

Se você precisar abrir uma sessão remota da linha de comando ou de um arquivo de lote sem primeiro abrir a janela principal do aplicativo, use a seguinte sintaxe:

 > remmina -c profile_name.remmina

Os arquivos de perfil do Remmina são armazenados no diretório .local/share/remmina/ em seu diretório pessoal. Para determinar qual arquivo de perfil pertence à sessão que você deseja abrir, execute o Remmina, clique no nome da sessão na janela principal e leia o caminho para o arquivo de perfil na linha de status da janela na parte inferior.

Lendo o caminho para o arquivo de perfil
Figura 14.6: Lendo o caminho para o arquivo de perfil

Enquanto o Remmina não estiver em execução, você poderá renomear o arquivo de perfil para um nome de arquivo mais apropriado, como sle15.remmina. Você pode até copiar o arquivo de perfil para o seu diretório personalizado e executá-lo usando o comando remmina -c nesse diretório.

14.3 Configurando sessões únicas no servidor VNC

Uma sessão única é iniciada por um cliente remoto. Ela inicia uma tela gráfica de login no servidor. Desse modo, você pode escolher o usuário que inicia a sessão e, se suportado pelo gerenciador de login, o ambiente de área de trabalho. Quando você cancela a conexão do cliente com essa sessão VNC, todos os aplicativos iniciados nessa sessão também são terminados. Sessões VNC únicas não podem ser compartilhadas, mas é possível ter várias sessões em um único host ao mesmo tempo.

Procedimento 14.1: Habilitando sessões VNC únicas
  1. Inicie o YaST › Serviços de Rede › Administração Remota (VNC).

  2. Marque Permitir Administração Remota sem Gerenciamento de Sessões.

  3. Ative Permitir acesso usando um browser da Web se você pretende acessar a sessão VNC em uma janela do browser da Web.

  4. Se necessário, marque também Abrir Porta no Firewall (por exemplo, quando a interface de rede estiver configurada para ficar na Zona Externa). Se você tem mais de uma interface de rede, restrinja a abertura de portas no firewall a uma interface específica em Detalhes do Firewall.

  5. Confirme as configurações com Próximo.

  6. Caso nem todos os pacotes necessários já estejam disponíveis, aprove a instalação dos pacotes ausentes.

    Dica
    Dica: Reiniciar o gerenciador de exibição

    O YaST faz mudanças nas configurações do gerenciador de exibição. Você precisará efetuar logout da sessão gráfica atual e reiniciar o gerenciador de exibição para que as mudanças entrem em vigor.

Administração remota
Figura 14.7: Administração remota

14.3.1 Configurações disponíveis

A configuração padrão no SUSE Linux Enterprise Desktop confere às sessões uma resolução de 1024 x 768 pixels com profundidade de cores de 16 bits. As sessões estão disponíveis nas portas 5901 para viewers VNC regulares (equivalente à exibição VNC 1) e na porta 5801 para browsers da Web.

É possível disponibilizar outras configurações em portas diferentes. Peça os detalhes ao administrador do sistema, se você precisar modificar a configuração.

Os números de exibição VNC e os números de exibição X são independentes nas sessões únicas. Um número de exibição VNC é atribuído manualmente a todas as configurações suportadas pelo servidor (:1 no exemplo acima). Sempre que uma sessão VNC é iniciada com uma das configurações, ela recebe automaticamente um número de exibição X livre.

Por padrão, tanto o cliente quanto o servidor VNC tentam se comunicar de forma segura por meio de um certificado SSL autoassinado, que será gerado após a instalação. É possível usar o padrão ou substituí-lo pelo seu próprio certificado. Ao usar o certificado autoassinado, você precisa confirmar sua assinatura antes da primeira conexão, tanto no viewer do VNC quanto no browser da web.

Dica
Dica

Alguns clientes VNC se recusam a estabelecer uma conexão segura por meio do certificado autoassinado padrão. Por exemplo, o cliente do Vinagre verifica a certificação no armazenamento de confiança global do GnuTLS e emitirá uma falha se o certificado for autoassinado. Nesse caso, use um método de criptografia diferente de x509 ou gere um certificado devidamente assinado para o servidor VNC e importe-o para o armazenamento de confiança do sistema do cliente.

14.3.2 Iniciando uma sessão VNC única

Para conectar-se a uma sessão VNC única, é necessário instalar o viewer do VNC. Consulte também a Seção 14.1, “Cliente vncviewer. Se preferir, use um browser da Web compatível com JavaScript para ver a sessão VNC digitando o seguinte URL: http://jupiter.example.com:5801

14.3.3 Configurando sessões VNC únicas

Você poderá ignorar esta seção se não precisar nem desejar modificar a configuração padrão.

As sessões VNC únicas são iniciadas pelo systemd soquete xvnc.socket. Por padrão, ele oferece seis blocos de configuração: três para viewers do VNC (vnc1 a vnc3) e três que atendem a um cliente JavaScript (vnchttpd1 a vnchttpd3). Por padrão, apenas vnc1 e vnchttpd1 estão ativos.

Para ativar o soquete do servidor VNC no momento da inicialização, execute o seguinte comando:

> sudo  systemctl enable xvnc.socket

Para iniciar o soquete imediatamente, execute:

> sudo  systemctl start xvnc.socket

O servidor Xvnc pode ser configurado por meio da opção server_args. Para obter uma lista de opções, consulte Xvnc --help.

Ao adicionar configurações padrão, certifique-se de que elas não usem portas já em uso por outras configurações, outros serviços ou sessões VNC persistentes existentes no mesmo host.

Ative as mudanças na configuração digitando o seguinte comando:

> sudo systemctl reload xvnc.socket
Importante
Importante: Firewall e portas VNC

Ao ativar a Administração Remota conforme descrito no Procedimento 14.1, “Habilitando sessões VNC únicas”, as portas 5801 e 5901 são abertas no firewall. Se a interface de rede que atende às sessões VNC for protegida por firewall, será necessário abrir manualmente as respectivas portas ao ativar portas adicionais para as sessões VNC. Consulte o Chapter 23, Masquerading and firewalls para obter instruções.

14.4 Configurando sessões persistentes do servidor VNC

É possível acessar uma sessão persistente de vários clientes ao mesmo tempo. Isso é ideal para fins de demonstração em que um cliente tem acesso total, e todos os outros têm acesso apenas exibição. Outro caso de uso são sessões de treinamento em que o instrutor pode precisar acessar a área de trabalho do aluno.

Dica
Dica: Conectando-se a uma sessão VNC persistente

Para conectar-se a uma sessão VNC persistente, é preciso instalar o viewer do VNC. Consulte a Seção 14.1, “Cliente vncviewer para obter mais detalhes. Se preferir, use um browser da Web compatível com JavaScript para ver a sessão VNC digitando o seguinte URL: http://jupiter.example.com:5801

Há dois tipos de sessões VNC persistentes:

14.4.1 Sessão VNC iniciada usando vncserver

Esse tipo de sessão VNC persistente é iniciado no servidor. A sessão e todos os aplicativos iniciados nessa sessão são executados independentemente das conexões do cliente até a sessão ser terminada. O acesso às sessões persistentes é protegido por dois tipos de senhas possíveis:

  • uma senha regular que permite acesso total ou

  • uma senha opcional apenas exibição que permite acesso não interativo (apenas exibição).

Uma sessão pode ter várias conexões de cliente de ambos os tipos de uma só vez.

Procedimento 14.2: Iniciando uma sessão VNC persistente pelo vncserver
  1. Abra um shell e verifique se você está conectado como o usuário proprietário da sessão VNC.

  2. Se a interface de rede que atende às sessões VNC for protegida por firewall, será necessário abrir manualmente a porta usada pela sessão no firewall. Se você iniciar várias sessões, poderá também abrir uma faixa de portas. Consulte o Chapter 23, Masquerading and firewalls para obter os detalhes sobre como configurar o firewall.

    O vncserver usa as portas 5901 para a exibição :1, 5902 para a exibição :2 e assim por diante. Para sessões persistentes, a exibição VNC e a exibição X normalmente têm o mesmo número.

  3. Para iniciar uma sessão com resolução de 1024 x 768 pixels e profundidade de cores de 16 bits, digite o seguinte comando:

    vncserver -alwaysshared -geometry 1024x768 -depth 16

    O comando vncserver escolhe um número de exibição não usado quando nenhum número é especificado e imprime essa escolha. Consulte man 1 vncserver para ver mais opções.

Quando o vncserver é executado pela primeira vez, ele pede uma senha para acesso total à sessão. Se necessário, forneça também uma senha de acesso apenas exibição à sessão.

As senhas inseridas aqui também serão usadas em sessões futuras iniciadas pelo mesmo usuário. Elas podem ser modificadas com o comando vncpasswd.

Importante
Importante: Considerações de segurança

Verifique se está usando senhas avançadas de tamanho significativo (oito ou mais caracteres). Não compartilhe essas senhas.

Para cancelar a sessão, encerre o ambiente de área de trabalho executado na sessão VNC pelo viewer do VNC, da mesma forma que você encerra uma sessão X local regular.

Se preferir cancelar a sessão manualmente, abra um shell no servidor VNC e certifique-se de que você efetuou login como o usuário que possui a sessão VNC que deseja terminar. Execute o seguinte comando para cancelar a sessão em execução na exibição :1: vncserver -kill :1

14.4.1.1 Configurando sessões VNC persistentes

É possível configurar as sessões VNC persistentes editando $HOME/.vnc/xstartup. Por padrão, o script shell inicia o mesmo gerenciador de janelas/GUI do qual ele foi iniciado. No SUSE Linux Enterprise Desktop, pode ser o GNOME ou o IceWM. Para iniciar a sessão com um gerenciador de janelas de sua escolha, defina a variável WINDOWMANAGER:

WINDOWMANAGER=gnome vncserver -geometry 1024x768
WINDOWMANAGER=icewm vncserver -geometry 1024x768
Nota
Nota: Uma configuração para cada usuário

Sessões VNC persistentes são configuradas em uma única configuração por usuário. Várias sessões iniciadas pelo mesmo usuário utilizarão todos os mesmos arquivos de inicialização e senha.

14.4.2 Sessão VNC iniciada usando vncmanager

Procedimento 14.3: Habilitando sessões VNC persistentes
  1. Inicie o YaST › Serviços de Rede › Administração Remota (VNC).

  2. Ative Permitir Administração Remota com Gerenciamento de Sessões.

  3. Ative Permitir acesso usando um browser da Web se você pretende acessar a sessão VNC em uma janela do browser da Web.

  4. Se necessário, marque também Abrir Porta no Firewall (por exemplo, quando a interface de rede estiver configurada para ficar na Zona Externa). Se você tem mais de uma interface de rede, restrinja a abertura de portas no firewall a uma interface específica em Detalhes do Firewall.

  5. Confirme as configurações com Próximo.

  6. Caso nem todos os pacotes necessários já estejam disponíveis, aprove a instalação dos pacotes ausentes.

    Dica
    Dica: Reiniciar o gerenciador de exibição

    O YaST faz mudanças nas configurações do gerenciador de exibição. Você precisará efetuar logout da sessão gráfica atual e reiniciar o gerenciador de exibição para que as mudanças entrem em vigor.

14.4.2.1 Configurando sessões VNC persistentes

Após habilitar o gerenciamento de sessões VNC conforme descrito no Procedimento 14.3, “Habilitando sessões VNC persistentes”, você poderá conectar-se normalmente ao seu viewer do VNC favorito, como vncviewer ou Remmina. Você verá a tela de login. Depois que você efetuar login, o ícone “VNC” será exibido na bandeja do sistema do ambiente de área de trabalho. Clique no ícone para abrir a janela Sessão VNC. Se ele não aparecer ou se o seu ambiente de área de trabalho não oferecer suporte a ícones na bandeja do sistema, execute vncmanager-controller manualmente.

Configurações de sessão VNC
Figura 14.8: Configurações de sessão VNC

Há várias configurações que afetam o comportamento da sessão VNC:

Não persistente, particular

Isso é equivalente a uma sessão única. Ela não fica visível a outros usuários e será terminada depois que você se desconectar. Consulte a Seção 14.3, “Configurando sessões únicas no servidor VNC” para obter mais informações.

Persistente, visível

A sessão fica visível a outros usuários e continuará em execução mesmo depois que você se desconectar.

Nome da sessão

Aqui você pode especificar o nome da sessão persistente para que ela seja facilmente identificada ao reconectar-se.

Senha não é obrigatória

A sessão será livremente acessível sem necessidade de efetuar login com credenciais de usuário.

Exigir login de usuário

Você precisa efetuar login com um nome de usuário e uma senha válidos para acessar a sessão. Lista os nomes válidos de usuário na caixa de texto Usuários permitidos.

Permitir um cliente por vez

Impede que vários usuários ingressem na sessão ao mesmo tempo.

Permitir vários clientes por vez

Permite que vários usuários ingressem na sessão persistente ao mesmo tempo. Um recurso útil para apresentações ou sessões de treinamento remotas.

Confirme com OK.

14.4.2.2 Ingressando em sessões VNC persistentes

Após configurar uma sessão VNC persistente, conforme descrito na Seção 14.4.2.1, “Configurando sessões VNC persistentes”, você poderá ingressar nela com o viewer do VNC. Depois que o cliente VNC conectar-se ao servidor, será solicitado que você escolha se deseja criar uma nova sessão ou ingressar em uma existente:

Ingressando em uma sessão VNC persistente
Figura 14.9: Ingressando em uma sessão VNC persistente

Após clicar no nome da sessão existente, talvez você tenha que inserir as credenciais de login, dependendo das configurações de sessão persistente.

14.5 Configurando a criptografia no servidor VNC

Se o servidor VNC estiver configurado apropriadamente, todas as comunicações entre o cliente e o servidor VNC serão criptografadas. A autenticação ocorre no início da sessão. A transferência real dos dados começa somente depois.

Seja para uma sessão VNC única ou persistente, as opções de segurança são configuradas por meio do parâmetro -securitytypes do comando /usr/bin/Xvnc localizado na linha server_args. O parâmetro -securitytypes seleciona tanto o método de autenticação quanto a criptografia. Ele tem as seguintes opções:

Autenticações
None, TLSNone, x509None

Nenhuma autenticação.

VncAuth, TLSVnc, x509Vnc

Autenticação com senha personalizada.

Plain, TLSPlain, x509Plain

Autenticação que usa PAM para verificar a senha do usuário.

Criptografias
None, vncAuth, plain

Sem criptografia.

TLSNone, TLSVnc, TLSPlain

Criptografia TLS anônima. Tudo é criptografado, mas não há nenhuma verificação do host remoto. Portanto, você está protegido contra invasores passivos, mas não contra invasores man-in-the-middle.

X509None, x509Vnc, x509Plain

Criptografia TLS com certificado. Se você usar um certificado autoassinado, será solicitado a verificá-lo na primeira conexão. Nas conexões subsequentes, você será avisado apenas se o certificado for mudado. Portanto, você está protegido contra tudo, exceto man-in-the-middle na primeira conexão (similar ao uso comum de SSH). Se você usar um certificado assinado por uma autoridade de certificação que corresponde ao nome da máquina, terá segurança total (similar ao uso comum de HTTPS).

Dica
Dica

Alguns clientes VNC se recusam a estabelecer uma conexão segura por meio do certificado autoassinado padrão. Por exemplo, o cliente do Vinagre verifica a certificação no armazenamento de confiança global do GnuTLS e emitirá uma falha se o certificado for autoassinado. Nesse caso, use um método de criptografia diferente de x509 ou gere um certificado devidamente assinado para o servidor VNC e importe-o para o armazenamento de confiança do sistema do cliente.

Dica
Dica: Caminho para certificado e chave

Com a criptografia baseada em X509, você precisa especificar o caminho para o certificado X509 e a chave com as opções -X509Cert e -X509Key.

Se você selecionar vários tipos de segurança separados por vírgula, o primeiro que for suportado e permitido pelo cliente e pelo servidor será utilizado. Dessa forma, você pode configurar criptografia oportunista no servidor. Isso é útil se você precisa suportar clientes VNC que não aceitam criptografia.

No cliente, você também pode especificar os tipos de segurança permitidos para impedir ataque de instalação de uma versão menos eficiente, se estiver conectando-se a um servidor que você sabe que tem a criptografia habilitada (embora nosso vncviewer o avisará com a mensagem "Conexão não criptografada!” nesse caso).

14.6 Compatibilidade com o Wayland

O recurso Administração Remota (VNC) depende do X11 e pode resultar em uma tela vazia se o Wayland estiver habilitado. O gerenciador de exibição deve ser configurado para usar X11 em vez de Wayland. Para gdm, edite o /etc/gdm/custom.conf. Na seção [daemon], adicione WaylandEnable=false ao arquivo de configuração. Ao efetuar login, o usuário também deve escolher uma sessão compatível com X11. Para remover a opção Wayland do GNOME, você pode remover e bloquear o pacote gnome-session-wayland.