Ferramentas do usuário

Ferramentas do site


instalacao_do_apache_guacamole

Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

Ambos lados da revisão anteriorRevisão anterior
Próxima revisão
Revisão anterior
instalacao_do_apache_guacamole [2023/04/01 02:37] dhiemeson.nascimentoinstalacao_do_apache_guacamole [2023/04/08 15:47] (atual) dhiemeson.nascimento
Linha 1: Linha 1:
-===== Procedimento para instalar guacamole no FreeBSD autenticando em uma Base Postgres =====+===== Procedimento para instalar guacamole no FreeBSD autenticando em uma Base Postgres + TOTP two-factor authentication ===== 
 + 
 +Links de auxílio:\\ 
 +https://guacamole.apache.org/doc/0.9.12-incubating/gug/jdbc-auth.html\\ 
 +https://wiki.freebsd.org/Ports/www/guacamole-client\\ 
 +https://dlcdn.apache.org/guacamole/1.5.0/binary/\\ 
 +https://guacamole.apache.org/doc/gug/jdbc-auth.html\\ 
 +http://guacamole.incubator.apache.org/releases/1.5.0/\\ 
  
 === 1 - Atualizar o pkg e ports, vamos vão ser usados nesta instalação: === === 1 - Atualizar o pkg e ports, vamos vão ser usados nesta instalação: ===
Linha 10: Linha 18:
 === 2 - Após atualizá-los vamos instalar todo o pacote do guacamole client e guacamole server pelo ports: === === 2 - Após atualizá-los vamos instalar todo o pacote do guacamole client e guacamole server pelo ports: ===
  
 +-- GuacamoleClient
 <code> <code>
 # cd /usr/ports/www/guacamole-client/ # cd /usr/ports/www/guacamole-client/
 # make install clean BATCH=yes # make install clean BATCH=yes
 </code> </code>
 +
 +-- GuacamoleServer
 +<code>
 +# cd /usr/ports/net/guacamole-server/
 +# make install clean BATCH=yes
 +</code>
 +
 +**OBS: Caso receba uma mensagem de erro no final da instalação tanto do guacamole cliente, quando do guacamole server informando que já existe uma versão deles 1.4 instalados, efetue a atualização da instalação com o comando make reinstall, pois essa instalação pelo ports está instalando a versão 1.5, que é superior a 1.4.**
  
 === 3 - Após a instalação do passo 2, vamos ativar os serviços no /etc/rc.conf: === === 3 - Após a instalação do passo 2, vamos ativar os serviços no /etc/rc.conf: ===
Linha 46: Linha 63:
 === 6 - Agora vamos entrar no diretório extensions e fazer o download do guacamole-auth-jdbc do nosso banco, que no caso é o Postgres: === === 6 - Agora vamos entrar no diretório extensions e fazer o download do guacamole-auth-jdbc do nosso banco, que no caso é o Postgres: ===
  
-Link para download: https://guacamole.apache.org/releases/ +Link para download:\\ 
- +https://guacamole.apache.org/releases/\\ 
-Link para download: https://dlcdn.apache.org/guacamole/+https://dlcdn.apache.org/guacamole/\\
  
 <code> <code>
Linha 178: Linha 195:
 </code> </code>
  
-=== 12 - Após isto, vamos reiniciar os três serviços instalados e efeutar os testes: ===+=== 12 - Após isto, vamos reiniciar os três serviços instalados e efetuar os testes: ===
  
 --Postgres --Postgres
Linha 210: Linha 227:
  
 -- Irá abrir a tela de login do serviço: -- Irá abrir a tela de login do serviço:
 +
 +{{ :1.jpg?400 |}}
 +
 +-- **Login e senha padrão:**
 +
 +**Login: guacadmin**\\
 +**Senha: guacadmin**\\
 +
 +=== 14 - Agora vamos ativar o serviço SSL/TLS para adicionar mais uma camada de segurança: ===
 +
 +-- O primeiro passo é gerar um keystore, exemplo abaixo:
 +
 +<code>
 +# keytool -genkey -keystore /usr/local/etc/guacamole_keystore -alias tomcat -keyalg RSA -keysize 4096 -validity 720
 +</code>
 +
 +**Esse comando é usado para gerar um novo par de chaves de criptografia e criar um arquivo de armazenamento de chaves, também conhecido como keystore, que será usado para configurar o HTTPS no servidor Guacamole.**
 +
 +--Aqui está o que cada parte do comando faz:
 +
 +**keytool**: é o utilitário de linha de comando Java que permite gerenciar certificados, chaves e keystores.\\
 +**-genkey**: indica que você deseja gerar um novo par de chaves de criptografia.\\
 +**-keystore**: especifica o nome e local do arquivo de armazenamento de chaves que será criado.\\
 +**/usr/local/etc/guacamole_keystore**: é o caminho e o nome do arquivo de armazenamento de chaves a ser criado.\\
 +**-alias**: especifica o nome que será usado para identificar a chave no keystore.\\
 +**tomcat**: é o nome do alias escolhido para identificar a chave no keystore.\\
 +**-keyalg**: especifica o algoritmo de criptografia a ser usado para gerar a chave.\\
 +**RSA**: é o algoritmo de criptografia escolhido para gerar a chave.\\
 +**-keysize**: especifica o tamanho da chave em bits.\\
 +**4096**: é o tamanho da chave escolhido para a chave.\\
 +**-validity**: especifica o período de validade da chave em dias.\\
 +**720**: é o período de validade escolhido para a chave, em dias.\\
 +
 +=== 15 - Você precisará fornecer uma senha no início e no final do procedimento Nr 14, fora que será necessário fornecer algumas informações. Segue o exemplo que eu fiz: ===
 +
 +<code>
 +Enter keystore password:  
 +Re-enter new password: 
 +What is your first and last name?
 +  [Unknown]:  SALADECOMANDO
 +What is the name of your organizational unit?
 +  [Unknown]:  SALADECOMANDO
 +What is the name of your organization?
 +  [Unknown]:  SALADECOMANDO
 +What is the name of your City or Locality?
 +  [Unknown]:  Macapa
 +What is the name of your State or Province?
 +  [Unknown]:  Amapa
 +What is the two-letter country code for this unit?
 +  [Unknown]:  AP
 +Is CN=SALADECOMANDO, OU=SALADECOMANDO, O=SALADECOMANDO, L=Macapa, ST=Amapa, C=AP correct?
 +  [no]:  yes
 +
 +Enter key password for <tomcat>
 +        (RETURN if same as keystore password):  
 +Re-enter new password: 
 +
 +Warning:
 +The JKS keystore uses a proprietary format. It is recommended to migrate to PKCS12 which is an industry standard format using "keytool -importkeystore -srckeystore /usr/local/etc/guacamole_keystore -destkeystore /usr/local/etc/guacamole_keystore -deststoretype pkcs12".
 +</code>
 +
 +=== 16 - Vamos configurar o arquivo server.xml que fica localizado em "/usr/local/apache-tomcat-9.0/conf/", incluir
 +as informações do keystore e alterar as configurações do servidor. Segue abaixo:
 +
 +<code>
 +# cd /usr/local/apache-tomcat-9.0/conf/
 +
 +# ee server.xml
 +</code>
 +
 +-- Vamos acrescentar as configurações do servidor:
 +
 +<code>
 +<Connector port="8443" protocol="HTTP/1.1"
 +        connectionTimeout="20000"
 +        redirectPort="8443"
 +        SSLEnabled="true"
 +        scheme="https"
 +        secure="true"
 +        sslProtocol="TLS"
 +        keystoreFile="/usr/local/etc/guacamole_keystore"  
 +        keystorePass="senha_da_keystore" />
 +</code>
 +
 +-- Após adicionar as linhas de configurações, **comente ou apague** as linhas da configuração anterior:
 +
 +<code>
 +
 +<!--
 +    <Connector port="8080" protocol="HTTP/1.1"
 +               connectionTimeout="20000"
 +               redirectPort="8443" />
 +-->
 +
 +</code>
 +
 + -- No meu caso, eu só comentei. Feche e salve as alterações:
 +
 +=== 17 - Após isto, vamos reiniciar os dois serviços instalados e efetuar os testes: ===
 +
 +--Guacd
 +<code>
 +# /usr/local/etc/rc.d/guacd  restart
 +Stopping guacd.
 +Waiting for PIDS: 97576.
 +Removing stale pidfile.
 +Starting guacd.
 +guacd[99473]: INFO:     Guacamole proxy daemon (guacd) version 1.4.0 started
 +</code>
 +
 +--Tomcat9
 +<code>
 +# /usr/local/etc/rc.d/tomcat9  restart
 +Stopping tomcat9.
 +Waiting for PIDS: 97590.
 +Starting tomcat9.
 +</code>
 +
 +-- Verifique em qual porta o tomcat9 está ouvindo, agora tem que estar na 8443:
 +<code>
 +# sockstat -4l
 +USER     COMMAND    PID   FD PROTO  LOCAL ADDRESS         FOREIGN ADDRESS      
 +www      jsvc       4161  56 tcp4   10.0.0.100:8443       *:*
 +guacamole guacd     4141  4  tcp4   10.0.0.100:4822       *:*
 +postgres postgres   3783  6  tcp4   10.0.0.100:5432       *:*
 +</code>
 +
 +=== 18 - Vamos abrir pelo navegador e ver se está tudo correto: ===
 +
 +http://SEU_IP_AQUI:8443/guacamole/#/
 +
 +-- Irá abrir a tela de login do serviço, igual ao passo 13:
 +
 +=== 19 - Agora vamos ativar a extensão TOTP two-factor authentication. Com ela ativaremos um segundo método de autenticação. Baixe a extensão e vamos descompactá-la dentro do diretório /usr/local/etc/guacamole-client/extensions/: ===
 +
 +<code>
 +# cd /usr/local/etc/guacamole-client/extensions/
 +# fetch https://dlcdn.apache.org/guacamole/1.5.0/binary/guacamole-auth-totp-1.5.0.tar.gz
 +# tar -jxvf guacamole-auth-totp-1.5.0.tar.gz
 +# cd guacamole-auth-totp-1.5.0
 +# cp guacamole-auth-totp-1.5.0.jar /usr/local/etc/guacamole-client/extensions/
 +</code>
 +
 +=== 20 - Depois que você colocou o arquivo guacamole-auth-duo-1.5.0.jar dentro do diretório /usr/local/etc/guacamole-client/extensions/, vamos configurar o arquivo guacamole.properties com as configurações da extensão (não é obrigatória essa configuração, mas eu fiz no meu ambiente): ===
 +
 +<code>
 +# cd /usr/local/etc/guacamole-client
 +# ee guacamole.properties
 +</code>
 +
 +-- Adicione as seguintes linhas no seu arquivo, lembrando que isso não é obrigatório, caso não faça isso irá funcionar normalmente:
 +
 +<code>
 +# Configurações TOTP
 +totp-issuer: SALA DE COMANDO
 +totp-digits: 6
 +totp-period: 60
 +totp-mode: sha1
 +</code>
 +
 +-- Função das linhas de configuração:
 +
 +**Essas linhas de configuração se referem à extensão TOTP (Time-based One-Time Password) do Guacamole, que fornece autenticação de dois fatores baseada em tempo. As configurações especificam:**
 +
 +**totp-issuer**: o nome legível pelo usuário da entidade que emite as contas de usuário.\\
 +**totp-digits**: o número de dígitos que devem ser incluídos em cada código TOTP gerado. Os valores legais são 6, 7 ou 8. Por padrão, são gerados códigos de 6 dígitos.\\
 +**totp-period**: a duração que cada código gerado deve permanecer válido, em segundos. Por padrão, cada código permanece válido por 30 segundos.\\
 +**totp-mode**: o algoritmo hash que deve ser usado para gerar códigos TOTP. Os valores legais são "sha1", "sha256" e "sha512". Por padrão, "sha1" é usado.\\
 +
 +=== 21 - Após isto, reinicie o guacd e o tomcat, e tente efetuar o login: ===
 +
 +<code>
 +# /usr/local/etc/rc.d/guacd restart && /usr/local/etc/rc.d/tomcat9 restart
 +</code>
 +
 +=== 22 - Após a primeira tela de LOGIN, irá você irá logar com seu nome de usuário e senha, e depois irá aparecer uma tela para escanear um qrcode para poder usar o token: ===
 +
 +**-- Primeira tela de login padrão:**
 +
 +{{ :1.jpg?400 |}}
 +
 +**-- Segunda tela de login, da extensão Duo two-factor authentication:**
 +
 +{{ :2.jpg?400 |}}
 +
 +-- Se você fez todos os passos (que são muitos), de forma correta, tudo irá funcionar corretamente:
 +
 +==== OBS MUITO IMPORTANTE: Para usar essa extensão para autenticação, você terá que manter seu servidor no mesmo fuso horário  do seu celular, com a hora correta em ambos, se não ocorrerá problemas na hora de efetuar o login: ====
 +
 +-----------------
 +
 +~~DISCUSSION|Deixe sua contribuição~~
instalacao_do_apache_guacamole.1680316675.txt.gz · Última modificação: 2023/04/01 02:37 por dhiemeson.nascimento