Para implementar o Guacamole com suporte a VNC e áudio em tempo real usando coturn em projetos governamentais, é necessário seguir um processo de implantação manual. Este guia detalha os passos para configurar o Guacamole Server em um ambiente restrito, sem dependência de cotnainers.
Pré-requisitos e Download
Certifique-se de ter acesso a um servidor com Linux instalado e permissões de root. Baixe o Guacamole Server e os drivers JDBC necessários do site oficial do Apache Guacamole. Extraia os arquivos usando comandos como:
tar -xzf guacamole-server-1.6.0.tar.gz
tar -xzf mysql-connector-java-8.0.33.tar.gz
tar -xzf guacamole-auth-jdbc-1.6.0.tar.gz
Compilação do Guacamole Server
Navegue até o diretório extraído e execute a configuração. É crucial instalar todas as dependências antes, incluindo suporte a VNC. Por exemplo, em sistemas baseados em RHEL, instale pacotes como:
yum install -y libjpeg-devel
yum install -y vncserver
Em seguida, compile o servidor com opções específicas:
cd guacamole-server-1.6.0
./configure --with-init-dir=/etc/init.d
make
sudo make install
sudo ldconfig
Verifique a saída da compilação para garantir que o suporte a VNC esteja habilitado (procure por "vncview----------yes").
Instalação de Serviços Auxiliares
Instale o JDK e o Tomcat se ainda não estiverem presentes. Use gerenciadores de pacotes do sistema:
sudo yum install -y java-11-openjdk-devel
sudo yum install -y tomcat tomcat-admin-webapps tomcat-webapps
Inicie e habilite os serviços para iniciar automaticamente:
sudo systemctl enable guacd
sudo systemctl start guacd
sudo systemctl enable tomcat
sudo systemctl start tomcat
Configuração do Banco de Dados e Autenticação
Crie diretórios para configuração e extensões do Guacamole:
sudo mkdir -p /etc/guacamole/{extensions,lib}
Copie o arquivo WAR para o Tomcat e os drivers JDBC para os diretórios apropriados:
sudo cp guacamole-1.6.0.war /var/lib/tomcat/webapps/guacamole.war
sudo cp mysql-connector-j-8.2.0.jar /etc/guacamole/lib/
sudo cp guacamole-auth-jdbc-1.5.0/mysql/guacamole-auth-jdbc-mysql-1.6.0.jar /etc/guacamole/extensions/
Crie ou edite o arquivo de propriedades do Guacamole para integração com MySQL e WebRTC:
sudo vi /etc/guacamole/guacamole.properties
Adicione as seguintes linhas, ajustando os parâmetros conforme necessário:
guacd-hostname: 127.0.0.1
guacd-port: 4822
mysql-hostname: db_host
mysql-port: 3306
mysql-database: guacamole_db
mysql-username: admin_user
mysql-password: secure_password
enable-websocket: true
enable-clipboard-integration: true
guacamole.websocket.timeout=120000
webrtc-enable-mic: true
webrtc-turn-server: turn:turn_host:3478
webrtc-turn-username: turn_user
webrtc-turn-password: turn_password
webrtc-turn-tls: false
Para versões superiores a 1.6.0, a autenticação MySQL pode ser detectada automaticamente, então a linha "auth-provider" pode ser omitida.
Permissões e Reinicialização
Ajuste as permissões dos diretórios e arquivos para que o Tomcat possa acessá-los:
sudo chown -R tomcat:tomcat /etc/guacamole
sudo chmod -R 755 /etc/guacamole
Reinicie os serviços para aplicar as alterações:
sudo systemctl restart guacd
sudo systemctl restart tomcat
Verifique o status dos serviços e analise os logs para erros, por exemplo:
sudo systemctl status guacd tomcat
tail -f /var/log/tomcat/catalina.out
tail -f /var/log/messages | grep guacd
Conceitos Técnicos do Guacamole
O Guacamole é um gateway de desktop remoto que permite acesso via navegador. Ele atua como um proxy, traduzindo protocolos como RDP, VNC e SSH em uma interface web baseada em HTML5. A arquitetura inclui o cliente JavaScript no navegador e o servidor guacd, que gerencia as conexões com máquinas remotas. Isso elimina a necessidade de software cliente local, oferecendo segurança através de isolamento e suporte a autenticação externa.