Descubra o Apache Guacamole: a solução para acessos remotos na sua empresa
Neste post falo sobre uma ferramenta bastante interessante do projeto Apache chamado Guacamole que irá resolver problemas de acessos remotos a servidores em sua empresa. É uma mão na roda. Descubra-a.
Você já pensou que para acessar uma maquina remotamente em sua empresa ela não dependesse exclusivamente de acesso a internet? Já pensou em centralizar os acessos as maquinas remotas de sua empresa em uma única ferramenta e ainda gravar as sessões remotas em vídeos para a qualquer moimento auditar os acessos e alterações? Pois é o pessoal do Apache Guacamole pensaram e fizeram!
Principais vantagens
- Acesso centralizado: permite acessar qualquer máquina remotamente através de um único servidor exposto para internet e criar uma independência de recursos dos analistas já que o acesso pode partir que qualquer maquina com um navegador instalado.
- Auditoria doa acessos: todos os acessos são gravados em vídeos para que possam qualquer modificação feita em um servidor possa ser auditada facilmente. (feature da versão 9.13)
Faça a instalação
Em nossa instalação usaremos as seguintes ferramentas em suas seguintes versões:
- Sistema Operacional: Centos 7.2.1511
- Versão da aplicação: Guacamole 0.9.13
- Versão do Tomcart: 7.0.76.0
- Versão do MySQL: 5.1
- Versão do Nginx: 1.12
Vamos começar com a instalação de tudo o que precisaremos, como dependências e outras aplicações como nginx e mariadb.
yum install epel-release -y yum -y install cairo-devel freerdp-devel gcc java-1.8.0-openjdk.x86_64 libguac libguac-client-rdp libguac-client-ssh libguac-client-vnc libjpeg-turbo-devel libpng-devel libssh2-devel libtelnet-devel libvncserver-devel libvorbis-devel libwebp-devel openssl-devel pango-devel pulseaudio-libs-devel terminus-fonts tomcat tomcat-admin-webapps tomcat-webapps uuid-devel vim wget epel-release libtelnet libtelnet-devel install mariadb mariadb-server -y
Após a instalação de todas as dependências vamos preparar o ambiente para a compilação do Guacamole incubating e a instalação do ffmpeg.
mkdir /root/guacamole && cd /root/guacamole rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm yum install ffmpeg ffmpeg-devel -y wget http://sourceforge.net/projects/guacamole/files/current/source/guacamole-server-0.9.13-incubating.tar.gz tar -xf guacamole-server-0.9.13-incubating.tar.gz cd guacamole-server-0.9.13-incubating ./configure –with-init-dir=/etc/init.d make ; make install ldconfig
Configure a aplicação
Efetue o download do arquivo .war e disponibilize em seu servidor de aplicações Java (em nosso cenário utilizamos o TomCat 7)
mkdir -p /var/lib/guacamole && cd /var/lib/guacamole wget http://sourceforge.net/projects/guacamole/files/current/binary/guacamole-0.9.13-incubating.war -O guacamole.war ln -s /var/lib/guacamole/guacamole.war /var/lib/tomcat/webapps/ rm -rf /usr/lib64/freerdp/guacdr.so ln -s /usr/local/lib/freerdp/guacdr.so /usr/lib64/freerdp/
Configurando o mysql-connector e auth-ldap.
Vamos efetuar o download e configuração do mysql-connector-java e guacamole-auth-jdbc.
mkdir -p ~/guacamole/sqlauth && cd ~/guacamole/sqlauth wget http://sourceforge.net/projects/guacamole/files/current/extensions/guacamole-auth-jdbc-0.9.13-incubating.tar.gz wget https://sourceforge.net/projects/guacamole/files/current/extensions/guacamole-auth-ldap-0.9.13-incubating.tar.gz/download tar -xf guacamole-auth-jdbc-0.9.13-incubating.tar.gz tar -xf guacamole-auth-ldap-0.9.13-incubating.tar.gz wget http://dev.mysql.com/get/Downloads/Connector/j/mysql-connector-java-5.1.38.tar.gz tar -xf mysql-connector-java-5.1.38.tar.gz mkdir -p /usr/share/tomcat/.guacamole/{extensions,lib} mv guacamole-auth-jdbc-0.9.13-incubating/mysql/guacamole-auth-jdbc-mysql-0.9.13-incubating.jar /usr/share/tomcat/.guacamole/extensions/ mv mysql-connector-java-5.1.38/mysql-connector-java-5.1.38-bin.jar /usr/share/tomcat/.guacamole/lib/ mv guacamole-auth-ldap-0.9.13-incubating/guacamole-auth-ldap-0.9.13-incubating.jar /usr/share/tomcat/.guacamole/extensions/ systemctl restart mariadb.service
A base de dados
Vamos iniciar criação da base de dados e sua carga inicial, aproveitaremos para configurar a senha do root do mysql.
mysqladmin -u root password 4linux mysql -u root -p reate database guacdb; create user 'guacuser'@'localhost' identified by '4linux'; grant select,insert,update,delete on guacdb.* to 'guacuser'@'localhost'; flush privileges; quit cd ~/guacamole/sqlauth/guacamole-auth-jdbc-0.9.13-incubating/mysql/schema/ cat ./*.sql | mysql -u root -p guacdb mkdir -p /etc/guacamole/ && vi /etc/guacamole/guacamole.properties #### Arquivo guacamole.properties ##### ### MySQL properties mysql-hostname: localhost mysql-port: 3306 mysql-database: guacdb mysql-username: guacuser mysql-password: 4linux ### Additional settings mysql-default-max-connections-per-user: 0 mysql-default-max-group-connections-per-user: 0 ### LDAP ### ldap-hostname:ldap.suaempresa.com.br ldap-port:389 ldap-search-bind-dn:cn=construtor,dc=suaempresa,dc=com,dc=br ldap-search-bind-password:SENHALDAP ldap-user-base-dn:cn=USERS,dc=suaempresa,dc=com,dc=br
Tendo o arquivo guacamole.properties corretamente configurando agora basta disponibilizar o mesmo dentro da pasta da aplicação.
ln -s /etc/guacamole/guacamole.properties /usr/share/tomcat/.guacamole/ systemctl enable tomcat.service && systemctl enable mariadb.service && chkconfig guacd on #### Trocando a senha do usuario admin do TomCat #### vim /etc/tomcat/tomcat-users.xml * Na última linha do arquivo descomente e altere a senha do usuário admin no campo campo password="4linux"
Pronto agora basta verificar suas configurações de SeLinux e Firewalld para que não tenhamos nenhum tipo de impacto nesse laboratório recomendo que os mesmos sejam desabilitados.
Primeiro acesso
Para efetuar o primeiro acesso basta use as seguintes informações:
Endereço: http://IP_DO_SERVIDOR:8080/guacamole.
Usuário: guacadmin
Senha: guacadmin
Após configurar nosso servidor podemos criar os usuário de acesso, grupos e conexões. Para isso devemos acessar o menu superior localizado no lado direito da tela e clicar em Settings.
Criaremos um grupo de conexões e logo em seguida criaremos uma conexão propriamente ditas. Clique em Connections → New Group. Preencha o campo “Name” e em “Location” podemos adicionar um grupo dentro de outro formando assim subgrupos.
Criaremos dois protocolos de conexão para a mesma maquina portando usaremos o SSH e o VNC no cliente, para esta configuração clique em new connection e preencha os campos necessários, faça o mesmo para o protocolo VNC
O cliente VNC
Como estação cliente estamos usando o ubuntu 16.04 então basta executar o comando abaixo como o usuário que deseja iniciar a sessão do VNC (caso seja uma maquina compartilha efetuar o a configuração para cada usuário).
vino-preferences
Coloque uma senha no cliente VNC e use a mesma senha para configurar a conexão no servidor Guacamole.
Teste os acessos
No servidor guacamole clique em “home”e clique sobre a conexão que deseja iniciar aguarde a conexão e pronto, você esta conectado a maquina remota.
Para habilitar o menu lateral basta segurar as teclas CTRL + ALT + SHIFT
caso queira desconectar da maquina clique em disconnect e depois em home.
Grave as sessões em vídeo
Para gravar um sessão em video configure um caminho para gravação dentro do servidor Guacamole (em meu laboratório criei uma pasta na raiz chamada /rec), e configure o caminho e um nome para o arquivo em configurações da conexão.
Recording pach: Local onde os videos serão armazenados no servidor
Recording name: prefixo dos arquivos gerados a cada novo video ocorre um incremento no nome, exemplo: recepcao_ssh.1, recepcao_ssh.2, recepcao_ssh.3.
Os arquivos gerados precisam ser codificados (encoding) através do binário guacenc para que possam ser vistos em um player de vídeo.]
guacenc /rec/nome_do_arquivo
Um novo arquivo sera gerado e sua extensão sera .m4v (uma variação do formato MP4 sequence)
Configure um proxy-reverso
Validamos o funcionamento da ferramenta agora basta dar um nome amigável e tirar a porta do acesso a ferramenta para facilitar o acesso a ferramenta.
Vamos partir do pressuposto que você já criou em seu DNS uma entrada chamada remote.suaempresa.com.br.
yum install nginx -y systemctl enable nginx ; systemctl start nginx vim /etc/nginx/conf.d/guacamole.conf ### arquivo de configuração ### server { server_name remote.suaempresa.com.br; location / { proxy_pass http://localhost:8080/guacamole/; } } systemctl restart nginx
About author
Você pode gostar também
Gerenciamento de Processos no Linux: Guia Básico para Iniciantes
Se você está iniciando no mundo Linux esse artigo é para você! Aqui vamos aprender conceitos básicos para realizarmos um gerenciamento de processos. Para esse artigo utilizaremos o: htop Bora
Guia prático: Como configurar o OpenLDAP para aumentar a disponibilidade do seu ambiente
O que é OpenLDAP? LDAP é uma sigla para Lightweight Directory Access Protocol. Este serviço é usado essencialmente para armazenar informações de usuários, grupos, sistemas etc. O que não é
Descubra como a Cloud Computing está revolucionando o mundo da tecnologia
A famosa “Cloud Computing”, a ideia de que todos os tipos de tecnologias podem ser entregues totalmente pela Internet está crescendo cada vez mais e mudando tudo! Isso afeta nossas