Pesquisa de site

Instale Guacamole para acesso remoto Linux/Windows no Ubuntu


Como administrador de sistema, você poderá trabalhar (hoje ou no futuro) em um ambiente onde Windows e Linux coexistam.

Não é segredo que algumas grandes empresas preferem (ou precisam) executar alguns de seus serviços de produção em computadores Windows e outros em servidores Linux.

Se for esse o seu caso, você receberá este guia de braços abertos (caso contrário, vá em frente e pelo menos certifique-se de adicioná-lo aos seus favoritos).

Neste artigo, apresentaremos o guacamole, um gateway de desktop remoto desenvolvido com Tomcat que só precisa ser instalado em um servidor central.

Guacamole fornecerá um painel de controle baseado na web que permitirá que você alterne rapidamente de uma máquina para outra – tudo na mesma janela do navegador da web.

Ambiente de teste

Neste artigo, usamos as seguintes máquinas. Instalaremos o Guacamole em uma caixa do Ubuntu e o usaremos para acessar uma caixa do Windows 10 através do Remote Desktop Protocol ( RDP) e uma caixa RHEL usando protocolo de rede SSH:

Guacamole server: Ubuntu 20.04 - IP 192.168.0.100
Remote SSH box: RHEL 8 – IP 192.168.0.18
Remote desktop box: Windows 10 – IP 192.168.0.19

Dito isto, vamos começar.

Instalando o servidor Guacamole no Ubuntu

1. Antes de instalar o guacamole, você precisará primeiro cuidar de suas dependências.

sudo apt update
sudo apt install -y gcc vim curl wget g++ libcairo2-dev libjpeg-turbo8-dev libpng-dev \
libtool-bin libossp-uuid-dev libavcodec-dev libavutil-dev libswscale-dev build-essential \
libpango1.0-dev libssh2-1-dev libvncserver-dev libtelnet-dev freerdp2-dev libwebsockets-dev \
libssl-dev libvorbis-dev libwebp-dev tomcat9 tomcat9-admin tomcat9-user

2. Baixe e extraia o tarball. No início de fevereiro de 2021, a versão mais recente do Guacamole era 1.3.0. Você pode consultar a página de downloads do Guacamole para descobrir a versão mais recente em um determinado momento.

wget https://dlcdn.apache.org/guacamole/1.3.0/source/guacamole-server-1.3.0.tar.gz 
tar zxf guacamole-server-1.3.0.tar.gz  

3. Compile o software.

cd guacamole-server-1.3.0/
./configure

Como era de se esperar, configure verificará seu sistema quanto à presença das dependências necessárias e dos protocolos de comunicação suportados (como pode ser visto no quadrado destacado, Remote Desktop Protocol (RDP) e SSH são suportados pelas dependências instaladas anteriormente).

Se tudo correr conforme o esperado, você verá isto quando terminar (caso contrário, certifique-se de instalar todas as dependências necessárias):

Como sugere a última linha da imagem acima, execute make e make install para compilar o programa:

make 
sudo make install

4. Atualize o cache das bibliotecas instaladas.

sudo ldconfig 

e pressione Enter.

Instalando o cliente Guacamole no Ubuntu

Após concluir as etapas acima, o servidor guacamole estará instalado. As instruções a seguir irão ajudá-lo a configurar o guacd (o daemon proxy que integra Javascript com protocolos de comunicação como RDP ou SSH) e guacamole.war (o cliente), o componente que compõe a aplicação HTML5 final que será apresentada a você.

Observe que ambos os componentes (servidor guacamole e cliente) precisam ser instalados na mesma máquina – não há necessidade de instalar um chamado cliente nas máquinas que você deseja conectar a).

Para baixar o cliente, siga estas etapas:

5. Baixe o arquivo do aplicativo web e altere seu nome para guacamole.war.

Nota: Dependendo da sua distribuição, o diretório de bibliotecas do Tomcat pode estar localizado em /var/lib/tomcat.

cd /var/lib/tomcat9/
sudo wget https://dlcdn.apache.org/guacamole/1.3.0/binary/guacamole-1.3.0.war
sudo mv guacamole-1.3.0.war webapps/guacamole.war

6. Crie o arquivo de configuração (/etc/guacamole/guacamole.properties). Este arquivo contém as instruções para o Guacamole se conectar ao guacd:

sudo mkdir /etc/guacamole
sudo mkdir /usr/share/tomcat9/.guacamole
sudo nano /etc/guacamole/guacamole.properties

Insira o seguinte conteúdo em /etc/guacamole/guacamole.properties. Observe que estamos nos referindo a um arquivo que criaremos na próxima etapa (/etc/guacamole/user-mapping.xml):

guacd-hostname: localhost
guacd-port:    4822
user-mapping:    /etc/guacamole/user-mapping.xml
auth-provider:    net.sourceforge.guacamole.net.basic.BasicFileAuthenticationProvider
basic-user-mapping:    /etc/guacamole/user-mapping.xml

E crie um link simbólico para o Tomcat poder ler o arquivo:

sudo ln -s /etc/guacamole/guacamole.properties /usr/share/tomcat9/.guacamole/

7. Guacamole usa o user-mapping.xml, crie este arquivo para definir quais usuários têm permissão para se autenticar na interface web do Guacamole (entre <authorize>) e quais conexões eles podem usar (entre tags <connection>):

sudo nano /etc/guacamole/user-mapping.xml

O mapeamento de usuário a seguir concede acesso à interface web do Guacamole a um usuário tecmint com senha tecmint01. Então, dentro da conexão SSH, precisamos colocar um nome de usuário válido para fazer login na caixa RHEL (será solicitado que você insira a senha correspondente quando o Guacamole iniciar a conexão).

No caso da caixa do Windows 10, não há necessidade de fazer isso, pois será apresentada a tela de login via RDP.

Para obter o hash md5 da senha tecmint01, digite o seguinte comando:

printf '%s' "tecmint01" | md5sum

Em seguida, insira a saída do comando no campo de senha dentro das tags <authorize>:

<user-mapping>
        <authorize 
                username="tecmint" 
                password="8383339b9c90775ac14693d8e620981f" 
                encoding="md5">
                <connection name="RHEL 8">
                        <protocol>ssh</protocol>
                        <param name="hostname">192.168.0.18</param>
                        <param name="port">22</param>
                        <param name="username">gacanepa</param>
                </connection>
                <connection name="Windows 10">
                        <protocol>rdp</protocol>
                        <param name="hostname">192.168.0.19</param>
                        <param name="port">3389</param>
                </connection>
        </authorize>
</user-mapping>

Como acontece com todos os arquivos que contêm informações confidenciais, é importante restringir as permissões e alterar a propriedade do arquivo user-mapping.xml:

sudo chmod 600 /etc/guacamole/user-mapping.xml
sudo chown tomcat:tomcat /etc/guacamole/user-mapping.xml

Inicie o Tomcat e o guacd.

sudo service tomcat9 start
sudo /usr/local/sbin/guacd &

Lançando a interface da web Guacamole

8. Para acessar a interface web do Guacamole, inicie um navegador e aponte-o para http://server:8080/guacamole onde o servidor é o nome do host ou endereço IP do seu servidor (no nosso caso é http://192.168.0.100:8080/guacamole) e faça login com as credenciais fornecidas anteriormente (nome de usuário: tecmint, senha: tecmint01):

9. Após clicar em Login, você será levado à interface administrativa onde verá a lista de conexões às quais o usuário tecmint tem acesso, conforme user- mapeamento.xml:

10. Vá em frente e clique na caixa RHEL 8 para fazer login como gacanepa (o nome de usuário especificado na definição de conexão).

Observe como a fonte de conexão está definida como 192.168.0.100 (o IP do servidor Guacamole), independente do endereço IP da máquina que você usa para abrir a interface web:

11. Se quiser encerrar a conexão, digite exit e pressione Enter. Você será solicitado a retornar à interface principal (Home), reconectar ou sair do Guacamole:

12. Agora é hora de tentar a conexão da área de trabalho remota com o Windows 10:

Parabéns! Agora você pode acessar uma máquina Windows 10 e um servidor RHEL 8 a partir de um navegador da web.

Resumo

Neste artigo, explicamos como instalar e configurar o Guacamole para permitir acesso a máquinas remotas via RDP e SSH. O site oficial fornece documentação extensa para ajudá-lo a configurar o acesso usando outros protocolos, como VNC e outros mecanismos de autenticação, como baseado em banco de dados…

Como sempre, não hesite em nos enviar uma mensagem se tiver alguma dúvida ou sugestão sobre este artigo. Também estamos ansiosos para ouvir suas histórias de sucesso.