Este projeto permite que você configure facilmente um jump-host Guacamole com proxy reverso TLS opcional (autoassinado ou Let's Encrypt), integração com Active Directory, autenticação multifator, aprimoramentos de interface de armazenamento de conexão rápida e gravação de histórico, uma interface de usuário personalizada com tema escuro modelo, backup automático de banco de dados, alertas por e-mail e opções de proteção interna, incluindo fail2ban para defesa contra ataques de força bruta. Também existem opções para implantações empresariais semelhantes ao Guacamole Bastion Cluster da Amazon.
Cole o link abaixo em um terminal e siga as instruções ( NÃO execute como root, o script solicitará sudo ):
wget https://raw.githubusercontent.com/itiligent/Guacamole-Install/main/1-setup.sh && chmod +x 1-setup.sh && ./1-setup.sh
Um sistema operacional compatível:
Debian: 12.x ou 11.x
Variantes do Ubuntu LTS: 24.04, 23.04, 22.04
Raspbian Buster ou Bullseye
1 núcleo de CPU + 2 GB de RAM para cada 25 usuários (mais RAM e espaço em disco mínimos para o sistema operacional selecionado).
Portas TCP abertas: 22, 80 e 443 (nenhum outro serviço usando 80, 8080 e 443)
Se selecionar qualquer uma das opções de proxy reverso TLS, você deverá criar um registro DNS PRIVADO para o site proxy interno e um registro DNS PÚBLICO adicional se selecionar a opção Let's Encrypt.
Pacotes Sudo e wget instalados
O usuário executando 1-setup.sh
deve ter permissões sudo
O script principal 1-setup.sh
orienta a instalação com as seguintes etapas:
Configure o nome do host do sistema e o nome DNS local (o DNS local deve ser consistente para o proxy TLS).
Selecione uma instalação local do MySQL ou use uma instância local ou remota do MySQL pré-existente.
Escolha uma extensão de autenticação: DUO, TOTP, LDAP/Active Directory ou nenhuma.
Selecione recursos opcionais do console: integrações de interface de usuário de conexão rápida e armazenamento registrado com histórico.
Selecione o front-end Guacamole: proxy reverso Nginx (HTTP ou HTTPS) ou use a interface nativa Guacamole na porta 8080.
Novos certificados de navegador de servidor e cliente são salvos em $HOME/guac-setup/tls-certs/[date-time]/
.
Opcionalmente, siga as instruções na tela para importação de certificado de cliente para evitar avisos do navegador https.
Se você optar por instalar o Nginx com TLS autoassinado:
Para personalizar as diversas opções de script disponíveis:
Saia 1-setup.sh
no primeiro prompt.
Todas as opções de script configuráveis são mostradas em Opções de configuração silenciosa no início de 1-setup.sh
.
Certas combinações das opções de configuração silenciosa permitirão uma instalação totalmente autônoma, com suporte para implantação em massa ou compilações de docker altamente personalizadas.
Execute novamente o script editado localmente após fazer alterações (não execute novamente o link da web de instalação automática - veja abaixo.
Outras notas de instalação personalizada:
Cuidado: A nova execução do instalador automático baixa novamente o conjunto de scripts e isso substituirá todas as edições de script. Você deve, portanto, executar 1-setup.sh LOCALMENTE após a edição. Se quaisquer outros scripts filhos forem editados, seus links de download correspondentes no script 1-setup.sh também deverão ser comentados.
Os scripts de atualização são personalizados automaticamente com suas configurações de instalação específicas para atualizações futuras consistentes. (Baixar novamente a partir do link de instalação automática após a instalação substituirá todas as configurações personalizadas conforme acima.)
O proxy reverso Nginx está configurado como padrão para pelo menos TLS 1.2. Para sistemas antigos, consulte as seções comentadas do arquivo /etc/nginx/nginx.conf
após a instalação.
Uma tarefa diária de backup do MySQL é configurada automaticamente no crontab do proprietário do script.
A opção Quick Connect traz algumas implicações extras de segurança, esteja ciente dos riscos potenciais em seu ambiente.
Opções de proteção manual pós-instalação:
add-fail2ban.sh
: Adiciona uma política de bloqueio para Guacamole para proteção contra ataques de força bruta de senha.
add-tls-guac-daemon.sh
: envolve o tráfego interno entre o servidor guac e o aplicativo guac em TLS.
add-auth-ldap.sh
: script de modelo para integração simplificada do Active Directory.
add-smtp-relay-o365.sh
: script de modelo para integração de alerta por e-mail com MSO65 (senha do aplicativo BYO).
Siga as instruções do tema e da marca aqui. Para voltar ao tema padrão, basta excluir o arquivo branding.jar de /etc/guacamole/extensions
, limpar o cache do navegador e reiniciar.
Para renovar certificados autoassinados ou alterar o nome DNS/endereço IP local do proxy reverso:
Execute novamente 4a-install-tls-self-signed-nginx.sh
para criar um novo certificado Nginx (os certificados de cliente do navegador que acompanham também serão atualizados). Sempre limpe o cache do navegador após alterar os certificados.
Veja aqui.
Veja aqui
Para atualizar o Guacamole, edite upgrade-guacamole.sh
para refletir as versões mais recentes do Guacamole e MySQL Connector/J antes de executar. Este script atualizará automaticamente as extensões TOTP, DUO, LDAP, Quick Connect e History Recorded Storage, se presentes.
Para uma camada DATABASE separada: Use install-mysql-backend-only.sh
aqui para instalar uma instância independente do banco de dados Guacamole MySQL.
Para uma camada APPLICATION separada: Execute 1-setup.sh
e aponte novas instalações para sua instância de banco de dados separada. Apenas diga não à opção "Instalar MySQL localmente" e a quaisquer outras opções de instalação de proxy reverso local.
Para uma camada FRONT END separada: Use os scripts do instalador Nginx incluídos para criar uma camada front-end Nginx separada e, em seguida, aplique sua técnica preferida de balanceamento de carga TLS. Como alternativa, os balanceadores de carga AWS/Azure/GCP ou o HA Proxy podem fornecer persistência e afinidade de sessão superiores em comparação com o Open Source Nginx.
O link de execução automática baixa esses arquivos em $HOME/guac-setup
:
1-setup.sh
: o script de configuração pai.
2-install-guacamole.sh
: script de instalação e compilação da fonte Guacamole.
3-install-nginx.sh
: script de instalação do Nginx.
4a-install-tls-self-signed-nginx.sh
: instala/atualiza o script de certificados TLS autoassinados.
4b-install-tls-letsencrypt-nginx.sh
: Vamos criptografar o script do instalador Nginx.
add-auth-duo.sh
: script de instalação da extensão Duo MFA.
add-auth-ldap.sh
: script de modelo do instalador de extensão do Active Directory.
add-auth-totp.sh
: script do instalador da extensão TOTP MFA.
add-xtra-quickconnect.sh
: script de instalação da extensão do console do Quick Connect.
add-xtra-histrecstore.sh
: script do instalador da extensão de armazenamento registrado do histórico.
add-smtp-relay-o365.sh
: Script para configuração de retransmissão de autenticação SMTP O365 (senha do aplicativo BYO).
add-tls-guac-daemon.sh
: envolve o tráfego interno entre o servidor guacd e o aplicativo da web Guacamole em TLS.
add-fail2ban.sh
: script do instalador Fail2ban (e política de proteção Guacamole).
backup-guacamole.sh
: script de configuração de backup do MySQL.
upgrade-guacamole.sh
: aplicativo Guacamole, extensão e script de atualização do conector MySQL.
branding.jar
: modelo base para personalizar o tema da UI do Guacamole.