<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Arquivos telnet - Remontti</title>
	<atom:link href="https://blog.remontti.com.br/tag/telnet/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.remontti.com.br/tag/telnet</link>
	<description>rudimar@remontti</description>
	<lastBuildDate>Tue, 18 Jan 2022 12:21:36 +0000</lastBuildDate>
	<language>pt-BR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://blog.remontti.com.br/wp-content/uploads/2024/09/icone-rr-80x80.png</url>
	<title>Arquivos telnet - Remontti</title>
	<link>https://blog.remontti.com.br/tag/telnet</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Aprenda a instalar um Jump Server com Apache Guacamole um gateway de desktop remoto Web</title>
		<link>https://blog.remontti.com.br/6204</link>
					<comments>https://blog.remontti.com.br/6204#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Mon, 17 Jan 2022 20:51:38 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[Bullseye]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[debian 11]]></category>
		<category><![CDATA[desktop]]></category>
		<category><![CDATA[guacamole]]></category>
		<category><![CDATA[rdp]]></category>
		<category><![CDATA[remote]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[telnet]]></category>
		<category><![CDATA[vlc]]></category>
		<category><![CDATA[vnc]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=6204</guid>

					<description><![CDATA[<p>Introdução: vivemos em uma época onde “segurança” deixou de ser uma palavra qualquer, citada e questionada por alguns profissionais a diversos gestores, para se tornar algo realmente em evidência nas mídias. Segurança é um&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/6204">Aprenda a instalar um Jump Server com Apache Guacamole um gateway de desktop remoto Web</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img fetchpriority="high" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/01/guacamole.png" alt="" width="720" height="340" class="alignnone size-full wp-image-6233" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/01/guacamole.png 720w, https://blog.remontti.com.br/wp-content/uploads/2022/01/guacamole-300x142.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/01/guacamole-520x245.png 520w" sizes="(max-width: 720px) 100vw, 720px" /><br />
<strong>Introdução:</strong> vivemos em uma época onde “segurança” deixou de ser uma palavra qualquer, citada e questionada por alguns profissionais a diversos gestores, para se tornar algo realmente em evidência nas mídias. Segurança é um quesito importantíssimo para a continuidade de um negócio e muito ampla em diversos aspectos.<br />
Aqui abordaremos um conceito e uma ferramenta que serão muito úteis para uma Organização. Vamos começar com algumas perguntas simples?</p>
<ul>
<li>Você necessita de acessar remotamente ativos dentro da empresa em que trabalha?</li>
<li>Costuma deixar seus ativos acessíveis publicamente só para conectar de qualquer lugar?</li>
<li>Você restringe esse acesso por pessoas e/ou grupos?</li>
<li>Quando alguém com privilégios é demitido. Você tem que ir em diversos sistemas e equipamentos rapidamente, para remover os acessos?</li>
<li>Você sente falta de um local centralizado e único, que contenha a definição de seus sistemas para trabalhar remotamente?</li>
</ul>
<p>Se a resposta para essas perguntas foi um “<strong>SIM</strong>”, então esse artigo pode lhe ajudar a melhorar a forma como você acessa determinados ativos em sua rede.</p>
<p><iframe src="https://player.vimeo.com/video/116207678?h=34d3bc7d02" width="640" height="428" frameborder="0" allow="autoplay; fullscreen; picture-in-picture" allowfullscreen></iframe></p>
<p>Primeiramente vamos a um conceito que muitos acham que VPN (Virtual Private Network) é a forma mais segura de acessar uma Intranet e assim prestar suporte remotamente de qualquer lugar. Bem, não queria destruir seu conceito mas; a VPN sem determinados cuidados com o seu sistema pessoal, de nada vai te proteger de um incidente que possa parar sua empresa. Imagine uma situação em que você esteja conectado remotamente via VPN corporativa, acessando um compartilhamento de arquivos da empresa e em algum momento durante o trabalho você adquiriu um bem sucedido ransomware. Esse malware causará grande prejuízo para a empresa e para a sua reputação, mesmo estando usando a tal VPN.  </p>
<p>Outros preferem usar recursos como os Jump Servers. Equipamentos com sistemas, por exemplo Windows, rodando serviços como RDP (Remote Desktop Protocol), ou Anydesk, ou Teamviewer, ou qualquer outro equivalente para permitir o acesso local e a partir dele conectar em outros sistemas dentro da empresa. Nada contra o sistema da Microsoft ou qualquer produto citado mas não me sinto confortável em deixá-los públicos na Internet. Lembrando que não existem sistemas 100% seguros. Em algum momento falhas podem surgir e alguém pode explorá-las. Pense em uma vulnerabilidade <strong>Zero Day</strong>.</p>
<p>Então o que venho sugerir nesse artigo é que juntem as duas soluções <strong>VPN</strong> e <strong>Jump Server</strong> mas de uma maneira, que na minha opinião, seria mais segura que ambas as soluções acima, construídas isoladamente.</p>
<p>Continuem usando a VPN mas também pensando na segurança dos sistemas pessoais de quem utiliza a VPN, para trabalhar remotamente. Não usem VPN PPTP em suas soluções corporativas, é insegura, obsoleta e não funciona bem com CGNAT, em sistemas que não possuem suporte ao ALG (Application Layer Gateway) PPTP.</p>
<p>Ao invés de deixarem públicos seus Jump Servers, mantenha-os com IPs privados RFC1918 e acessíveis somente através da VPN. Assim chegaremos a dois níveis de autenticação pelo menos. Crie um ou mais servidores Jump e crie ACLs nos equipamentos e sistemas que só permitam acesso dos IPs privados dos Jump Servers.</p>
<p>Dessa forma vai conseguir resolver boa parte daquelas perguntas que fiz, mas ainda não é o objetivo principal deste artigo. Esse artigo vai focar na ferramenta Apache Guacamole que é uma aplicação para construirmos um Jump Server mais inteligente e seguro.  </p>
<p>Mas o que seria o Apache Guacamole? Ele é um clientless remote desktop gateway, ou seja, você não precisa de um programa cliente instalado no seu desktop de trabalho ou pessoal, para acessar sistemas que usem os protocolos: RDP, VNC e SSH. Isso é feito através de um browser apenas e usando HTML5.</p>
<p>O Guacamole é uma aplicação Java que roda embaixo do Apache Tomcat. É dividido em duas partes, o server e os clients que fazem a conexão propriamente dita usando RDP, VNC ou SSH, de acordo com o tipo de acesso. Possui suporte a diversas bases de dados como MySQL, MariaDB, PostgreSQL e também LDAP.</p>
<p>Sua arquitetura funciona assim:<br />
<img decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/01/guacamole_arquitetura.png" alt="" width="300" height="529" class="alignnone size-full wp-image-6248" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/01/guacamole_arquitetura.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/01/guacamole_arquitetura-170x300.png 170w" sizes="(max-width: 300px) 100vw, 300px" /></p>
<h3>Requisitos para o nosso artigo</h3>
<p> Debian 11 (Bullseye) 64 bits. <a href="https://blog.remontti.com.br/5792" rel="noopener" target="_blank">Instalação mínima</a>. Sistema deve restringir o acesso apenas via VPN e/ou Rede de Gerência da empresa (utilize regras de firewall iptables ou nftables para essa tarefa).<br />
&#8211; VM com 2 cores ou mais. Dependerá da quantidade de acessos simultâneos.<br />
&#8211; 2Gb de ram. Sugiro 4Gb.<br />
&#8211; 10G de disco. Dependerá do crescimento da base de dados, se for local.<br />
&#8211; Interface de rede com IP privado e liberado para acesso aos sistemas remotos.</p>
<h3>:: Instalação do MariaDB 10.5 ::</h3>
<pre class="remontti-code"># apt install mariadb-server mariadb-client </pre>
<p>Por padrão o pacote MariaDB no Debian usa unix_socket para autenticar o login do usuário, o que basicamente significa que você pode usar o nome de usuário e a senha do sistema operacional para efetuar login no console do MariaDB.<br />
Assim, você pode logar diretamente sem fornecer a senha root do MariaDB, para aumentar a seguraça vamos definir uma senha para o usuário root do MariaDB, não esqueça de alterar <strong>ALTERE_3ST4_SENHA</strong> pela sua senha.</p>
<pre class="remontti-code"># mariadb -u root</pre>
<pre class="remontti-code">USE mysql;
ALTER USER &#039;root&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;ALTERE_3ST4_SENHA&#039;;</pre>
<p>Ainda logado no MariaDB vamos criar nossa base de dados para o Guacamole, não esqueça de alterar <strong>S3NHA_GUACAMOL3_US3R</strong> por sua senha.</p>
<pre class="remontti-code">CREATE DATABASE guacamole;
CREATE USER &#039;guacamole&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;S3NHA_GUACAMOL3_US3R&#039;;
GRANT ALL PRIVILEGES ON guacamole.* TO &#039;guacamole&#039;@&#039;localhost&#039;;
FLUSH PRIVILEGES;
EXIT;</pre>
<p>Apague seus rastros, em /root/.mysql_history temos um histórico com todos os comandos dado no terminal do MariaDB, então não é legal deixar lá em texto puro a senha que setamos!</p>
<pre class="remontti-code"># &gt; /root/.mysql_history</pre>
<h3>:: Instalação Java JDK ::</h3>
<pre class="remontti-code"># apt install openjdk-11-jdk libmariadb-java</pre>
<p>Precisaremos configurar a variável de ambiente JAVA_HOME. No final do arquivo <strong>/etc/environment</strong> adicione o seguinte parâmetro <em>JAVA_HOME=&#8221;/usr/lib/jvm/java-11-openjdk-amd64&#8243;</em> </p>
<pre class="remontti-code">echo &#039;JAVA_HOME=&quot;/usr/lib/jvm/java-11-openjdk-amd64&quot;&#039; &gt;&gt;  /etc/environment</pre>
<p>Em seguida carregamos o /etc/environment:</p>
<pre class="remontti-code"># source /etc/environment</pre>
<h3>:: Instalação Tomcat::</h3>
<pre class="remontti-code"># apt install tomcat9 tomcat9-admin tomcat9-docs tomcat9-examples tomcat9-user</pre>
<p>Feito isso vamos criar um usuário de acesso ao Tomcat Web Application Manager. Vamos editar o arquivo <strong>/etc/tomcat9/tomcat-users.xml</strong> e no final antes de <strong></tomcat-users></strong> adicionar adicionar as 2 linhas, não esqueça de alterar <strong>S3NHA_FORT3</strong>:</p>
<pre class="remontti-code"># vim /etc/tomcat9/tomcat-users.xml</pre>
<pre class="remontti-code-plain">  &lt;role rolename=&quot;manager-gui&quot;/&gt;
  &lt;user username=&quot;admin&quot; password=&quot;S3NHA_FORT3&quot; roles=&quot;manager-gui&quot;/&gt;
</pre>
<p>Arquivo /etc/tomcat9/tomcat-users.xml sem os comentários ficará:</p>
<pre class="remontti-code">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;tomcat-users xmlns=&quot;http://tomcat.apache.org/xml&quot;
              xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
              xsi:schemaLocation=&quot;http://tomcat.apache.org/xml tomcat-users.xsd&quot;
              version=&quot;1.0&quot;&gt;

  &lt;role rolename=&quot;manager-gui&quot;/&gt;
  &lt;user username=&quot;admin&quot; password=&quot;S3NHA_FORT3&quot; roles=&quot;manager-gui&quot;/&gt;
&lt;/tomcat-users&gt;</pre>
<h3>:: Instalação Guacamole::</h3>
<pre class="remontti-code"># apt install guacd</pre>
<p>Os pacotes não criam os diretórios de configuração do Guacamole, então faremos conforme abaixo. Neles ficarão as extensions e o connector e que juntos integrarão o Java às bases de dados para funcionar a nossa autenticação e administração do Jump Server.</p>
<pre class="remontti-code-plain">/etc/guacamole/
├── extensions
└── lib</pre>
<pre class="remontti-code"># mkdir -p /etc/guacamole/lib /etc/guacamole/extensions</pre>
<p>Crie um link simbólico do connector java do MariaDB no Guacamole:</p>
<pre class="remontti-code"># ln -s /usr/share/java/mariadb-java-client.jar /etc/guacamole/lib/</pre>
<p>Vamos baixar e descompactar o pacote de extensão, para criação das tabelas e autenticação na base de dados. Detalhe que a versão tem que ser a mesma do pacote guacd que instalamos acima. Nesse caso é a versão 1.3.0 que vem no repositório do Debian 11.</p>
<pre class="remontti-code"># apt install wget
# cd /tmp
# wget -c https://archive.apache.org/dist/guacamole/1.3.0/binary/guacamole-auth-jdbc-1.3.0.tar.gz
# tar -xzvf guacamole-auth-jdbc-1.3.0.tar.gz</pre>
<p>Mova a extensão de autenticação via MySQL, para o lugar correto:</p>
<pre class="remontti-code"># mv /tmp/guacamole-auth-jdbc-1.3.0/mysql/guacamole-auth-jdbc-mysql-1.3.0.jar /etc/guacamole/extensions/</pre>
<p>Populando a base de dados <strong>guacamole</strong> com as tabelas e algumas informações iniciais:</p>
<pre class="remontti-code"># cat /tmp/guacamole-auth-jdbc-1.3.0/mysql/schema/*.sql | mysql -u root -p guacamole</pre>
<p>Informe a senha do usuário MariaDB root no nosso ex.: &#8220;ALTERE_3ST4_SENHA&#8221;</p>
<p>Se desejar certificar que as tabelas foram criadas acesse o terminal do MariaDB com o usuário e senha do guacamole</p>
<pre class="remontti-code"># mariadb -u guacamole -p</pre>
<p>Enter password: <em>S3NHA_GUACAMOL3_US3R</em><br />
Use o comando <strong>show tables;</strong> para ver as tabelas.</p>
<pre class="remontti-code-plain">Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 9
Server version: 10.5.12-MariaDB-0+deb11u1 Debian 11

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type &#039;help;&#039; or &#039;\h&#039; for help. Type &#039;\c&#039; to clear the current input statement.

MariaDB [guacamole]&gt; show tables; 
+---------------------------------------+
| Tables_in_guacamole                   |
+---------------------------------------+
| guacamole_connection                  |
| guacamole_connection_attribute        |
| guacamole_connection_group            |
| guacamole_connection_group_attribute  |
| guacamole_connection_group_permission |
| guacamole_connection_history          |
| guacamole_connection_parameter        |
| guacamole_connection_permission       |
| guacamole_entity                      |
| guacamole_sharing_profile             |
| guacamole_sharing_profile_attribute   |
| guacamole_sharing_profile_parameter   |
| guacamole_sharing_profile_permission  |
| guacamole_system_permission           |
| guacamole_user                        |
| guacamole_user_attribute              |
| guacamole_user_group                  |
| guacamole_user_group_attribute        |
| guacamole_user_group_member           |
| guacamole_user_group_permission       |
| guacamole_user_history                |
| guacamole_user_password_history       |
| guacamole_user_permission             |
+---------------------------------------+
23 rows in set (0.000 sec)

MariaDB [guacamole]&gt; exit;
Bye</pre>
<p>Criando o arquivo /etc/guacamole/guacamole.properties com as configurações de porta de acesso e os dados de conexão ao MariaDB.</p>
<pre class="remontti-code"># vim /etc/guacamole/guacamole.properties</pre>
<p>Não esqueça de alterar <em>S3NHA_GUACAMOL3_US3R</em></p>
<pre class="remontti-code"># Hostname and port of guacamole proxy
guacd-hostname: localhost
guacd-port:    4822

# MySQL properties
mysql-driver: mariadb
mysql-hostname: localhost
mysql-port: 3306
mysql-database: guacamole
mysql-username: guacamole
mysql-password: S3NHA_GUACAMOL3_US3R</pre>
<p><em>OBS: Embora MariaDB e MySQL tenham algumas coisas em comum (MariaDB é um fork do Mysql), mas nesse caso eles são diferentes aqui. Em muitos artigos espalhados pela Internet se fala no pacote libmysql-java mas este não existe mais no Debian 11. No lugar dele usamos o libmariadb-java.</em></p>
<h5>Baixando e habilitando o Guacamole Web Application</h5>
<pre class="remontti-code"># ln -s /etc/guacamole/ /var/lib/tomcat9/.quacamole
# wget https://downloads.apache.org/guacamole/1.3.0/binary/guacamole-1.3.0.war -O /var/lib/tomcat9/webapps/guacamole.war
# systemctl restart tomcat9 guacd</pre>
<p>Se parássemos por aqui, já teríamos o Guacamole rodando e funcional em HTTP, mas vamos adicionar uma camada de criptografia nisso. Vamos habilitar o SSL no Apache Tomcat:</p>
<p>Vamos criar uma chave e uma senha com o próximo comando. Só seguir as instruções e preencher as perguntas:</p>
<pre class="remontti-code"># keytool -genkey -alias tomcat -keyalg RSA</pre>
<pre class="remontti-code-plain">Informe a senha da área de armazenamento de chaves:  S3NHA_USADA_K3YTOOL
Informe novamente a nova senha: S3NHA_USADA_K3YTOOL
Qual é o seu nome e o seu sobrenome?
  [Unknown]:  Marcelo Gondim
Qual é o nome da sua unidade organizacional?
  [Unknown]:  AMA
Qual é o nome da sua empresa?
  [Unknown]:  LinuxInfo
Qual é o nome da sua Cidade ou Localidade?
  [Unknown]:  Araruama
Qual é o nome do seu Estado ou Município?
  [Unknown]:  RJ
Quais são as duas letras do código do país desta unidade?
  [Unknown]:  BR
CN=Marcelo Gondim, OU=AMA, O=LinuxInfo, L=Araruama, ST=RJ, C=BR Está correto?
  [não]:  sim</pre>
<p>Concluído precisaremos movê-la para o local certo e com as devidas permissões:</p>
<pre class="remontti-code"># mv /root/.keystore /var/lib/tomcat9/
# chown tomcat. /var/lib/tomcat9/.keystore
# chmod 640 /var/lib/tomcat9/.keystore</pre>
<p>Em /etc/tomcat9/server.xml:</p>
<pre class="remontti-code"># vim /etc/tomcat9/server.xml</pre>
<p>Troque isso:</p>
<pre class="remontti-code">    &lt;Connector port=&quot;8080&quot; protocol=&quot;HTTP/1.1&quot;
               connectionTimeout=&quot;20000&quot;
               redirectPort=&quot;8443&quot; /&gt;
</pre>
<p>Por: <em>(Não esqueça de alterar S3NHA_USADA_K3YTOOL)</em></p>
<pre class="remontti-code">
    &lt;Connector port=&quot;8080&quot; protocol=&quot;HTTP/1.1&quot;
               connectionTimeout=&quot;20000&quot;
               redirectPort=&quot;8443&quot;
               maxThreads=&quot;200&quot;
               scheme=&quot;https&quot;
               secure=&quot;true&quot;
               SSLEnabled=&quot;true&quot;
               keystoreFile=&quot;/var/lib/tomcat9/.keystore&quot;
               keystorePass=&quot;S3NHA_USADA_K3YTOOL&quot;
               clientAuth=&quot;false&quot;
               sslProtocol=&quot;TLS&quot; /&gt;
</pre>
<pre class="remontti-code"># systemctl restart tomcat9 guacd</pre>
<p>Para acessarmos nosso Jump Server:<br />
<strong>https://[servidor]:8080/guacamole/</strong></p>
<p>O usuário e senha são <strong>guacadmin</strong>. Crie um novo usuário com permissões de administrador e em seguida remova este usuário padrão.<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/01/debian_11_guacamole.png" alt="" width="924" height="441" class="alignnone size-full wp-image-6214" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/01/debian_11_guacamole.png 924w, https://blog.remontti.com.br/wp-content/uploads/2022/01/debian_11_guacamole-300x143.png 300w, https://blog.remontti.com.br/wp-content/uploads/2022/01/debian_11_guacamole-768x367.png 768w" sizes="auto, (max-width: 924px) 100vw, 924px" /></p>
<p><strong>Autor:</strong> Marcelo Gondim <gondim at linuxinfo.com.br><br />
Brasil Peering Fórum: <a href="https://wiki.brasilpeeringforum.org/w/Usuário:Gondim" rel="noopener" target="_blank">https://wiki.brasilpeeringforum.org/w/Usuário:Gondim</a><br />
Linkedin: <a href="https://www.linkedin.com/in/marcelo-gondim-sysadmin/" rel="noopener" target="_blank">https://www.linkedin.com/in/marcelo-gondim-sysadmin/</a><br />
Telegram: <a href="https://telegram.me/Marcelo_Gondim" rel="noopener" target="_blank">@Marcelo_Gondim</a></p>
<h3> Dicas extra do Remontti</h3>
<p>Para complementar, tem algumas coisas que eu acho que podem serem aplicadas ao nosso Guacamole apresentado pelo nosso parceiro <a href="https://telegram.me/Marcelo_Gondim" rel="noopener" target="_blank">Marcelo Gondim</a></p>
<p>&#8211; Nginx fazendo Proxy reverso para acessar a aplicação com um subdomínio.<br />
&#8211; Utilização do Let&#8217;s Encrypt para um certificado válido.<br />
&#8211; Port knocking com Nftables, para não deixar totalmente exposto.</p>
<h4>Proxy Nginx</h4>
<p>Como a aplicação será acessada apenas pelo Nginx podemos deixar o tomcat9 ouvindo apenas em localhost, se você segui o procedimento anterio qual criou o certificado privado agora ele não é mais necessarios vamos desfazer para o que era antes porem vamos colocar  o connector ouvindo apenas 127.0.0.1.</p>
<pre class="remontti-code"># vim /etc/tomcat9/server.xml</pre>
<p>Altere para:</p>
<pre class="remontti-code">    &lt;Connector address=&quot;127.0.0.1&quot; port=&quot;8080&quot; protocol=&quot;HTTP/1.1&quot;
               connectionTimeout=&quot;20000&quot;
               redirectPort=&quot;8443&quot; /&gt;
</pre>
<p>Reinicie o tomcat para que o mesmo rode apenas em localhost, assim não será mais possivel acesso pelo seu IP:8080</p>
<pre class="remontti-code"># systemctl restart tomcat9</pre>
<p>Instalaremos o nginx e vamos remover a assinatura do nginx onde ele exibe a versão do mesmo.</p>
<pre class="remontti-code"># apt install nginx
# sed -i &#039;s/# server_tokens/server_tokens/&#039; /etc/nginx/nginx.conf
# systemctl restart nginx</pre>
<p>Irei alterar direto no arquivo default do nginx as configurações, se achar melhor você pode criar um novo arquivo.</p>
<pre class="remontti-code"># mv /etc/nginx/sites-available/default /etc/nginx/sites-available/default.original
# vim /etc/nginx/sites-available/default</pre>
<p>Adcione: <em>(Altere server_name para seu subdomínio)</em></p>
<pre class="remontti-code">server {
    listen 80;
    listen [::]:80;
 
    server_name guacamole.remontti.com.br;

    location / {
        proxy_pass http://127.0.0.1:8080/guacamole/;
        proxy_buffering off;
        proxy_http_version 1.1;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $http_connection;
        proxy_cookie_path /guacamole/ /;
    }
}</pre>
<pre class="remontti-code"># nginx -t
# systemctl restart nginx</pre>
<h3>Let&#8217;s Encrypt</h3>
<pre class="remontti-code"># apt install certbot python3-certbot-nginx</pre>
<p>Para gerar o certificado use o comando:</p>
<pre class="remontti-code"># certbot</pre>
<pre class="remontti-code">Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices)
 (Enter &#039;c&#039; to cancel): noc@remontti.com.br

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: y

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing, once your first certificate is successfully issued, to
share your email address with the Electronic Frontier Foundation, a founding
partner of the Let&#039;s Encrypt project and the non-profit organization that
develops Certbot? We&#039;d like to send you email about our work encrypting the web,
EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: n
Account registered.

Which names would you like to activate HTTPS for?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: guacamole.remontti.com.br
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter &#039;c&#039; to cancel): 1
Requesting a certificate for guacamole.remontti.com.br
Performing the following challenges:
http-01 challenge for guacamole.remontti.com.br
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/sites-enabled/default
Redirecting all traffic on port 80 to ssl in /etc/nginx/sites-enabled/default

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled
https://guacamole.remontti.com.br
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/guacamole.remontti.com.br/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/guacamole.remontti.com.br/privkey.pem
   Your certificate will expire on 2022-04-17. To obtain a new or
   tweaked version of this certificate in the future, simply run
   certbot again with the &quot;certonly&quot; option. To non-interactively
   renew *all* of your certificates, run &quot;certbot renew&quot;
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let&#039;s Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le</pre>
<p>Não esqueça de colocar no seu cron para ele renovar o certificado, pois a cada 90 ele expira. Neste exemplo todo dia primeiro tento renovar.</p>
<pre class="remontti-code"># certbot -q renew</pre>
<p>Exemplo:</p>
<pre class="remontti-code"># echo &#039;00 00   1 * *   root    certbot -q renew&#039; &gt;&gt; /etc/crontab
# systemctl restart cron</pre>
<h4>Port knocking</h4>
<p>Nftables já vem por padrão no Debian 11 então basta habilitá-lo. Temos um tutorial do se <a href="https://blog.remontti.com.br/5390" rel="noopener" target="_blank">Port knocking</a> </p>
<pre class="remontti-code"># systemctl enable nftables</pre>
<p>O arquivo de configuração padrão do nftables fica em /etc/nftables.conf, então vamos edita-lo:</p>
<pre class="remontti-code"># vim /etc/nftables.conf</pre>
<p>Neste exemplo vou estar liberando as portas 80 e 443 após “batermos” nas portas 52341, 28001, 60541, 30951, e por 2h (7200s) após bater nas portas teremos acesso as mesmas, caso fique mais que tempo definido será necessário bater novamente.</p>
<pre class="remontti-code">#!/usr/sbin/nft -f

flush ruleset

table inet filter {
    chain input {
        type filter hook input priority 0;
    }
    chain forward {
        type filter hook forward priority 0;
    }
    chain output {
        type filter hook output priority 0;
    }
}

define protege_portas = {80,443}

table inet portknock {
   set clientes_ipv4 {
      type ipv4_addr
      flags timeout
   }

   set clientes_ipv6 {
      type ipv6_addr
      flags timeout
   }

   set toctoc_aberta_ipv4 {
      type ipv4_addr . inet_service
      flags timeout
   }

   set toctoc_aberta_ipv6 {
      type ipv6_addr . inet_service
      flags timeout
   }

   chain input {
      type filter hook input priority -10; policy accept;

      iifname &quot;lo&quot; return

      tcp dport 52341 add @toctoc_aberta_ipv4 {ip  saddr . 28001 timeout 60s}
      tcp dport 52341 add @toctoc_aberta_ipv6 {ip6 saddr . 28001 timeout 60s}
      tcp dport 28001 ip  saddr . tcp dport @toctoc_aberta_ipv4 add @toctoc_aberta_ipv4 {ip  saddr . 60541 timeout 60s}
      tcp dport 28001 ip6 saddr . tcp dport @toctoc_aberta_ipv6 add @toctoc_aberta_ipv6 {ip6 saddr . 60541 timeout 60s}
      tcp dport 60541 ip  saddr . tcp dport @toctoc_aberta_ipv4 add @toctoc_aberta_ipv4 {ip  saddr . 30951 timeout 60s}
      tcp dport 60541 ip6 saddr . tcp dport @toctoc_aberta_ipv6 add @toctoc_aberta_ipv6 {ip6 saddr . 30951 timeout 60s}
      tcp dport 30951 ip  saddr . tcp dport @toctoc_aberta_ipv4 add @clientes_ipv4 {ip  saddr timeout 7200s} log prefix &quot;Portknock bem-sucedido: &quot;
      tcp dport 30951 ip6 saddr . tcp dport @toctoc_aberta_ipv6 add @clientes_ipv6 {ip6 saddr timeout 7200s} log prefix &quot;Portknock bem-sucedido: &quot;

      tcp dport { $protege_portas } ip  saddr @clientes_ipv4 counter accept
      tcp dport { $protege_portas } ip6 saddr @clientes_ipv6 counter accept
      tcp dport { $protege_portas } ct state established,related counter accept
      tcp dport { $protege_portas } counter reject with tcp reset
   }
}</pre>
<p>Reinicie o nftables</p>
<pre class="remontti-code"># systemctl restart nftables</pre>
<p>Neste tutorial de <a href="https://blog.remontti.com.br/5390" rel="noopener" target="_blank">Port knocking</a> tenho um modelinho web qual você pode usar, existe alguns clientes para celular <strong><a href="https://play.google.com/store/apps/details?id=com.xargsgrep.portknocker&#038;hl=pt_BR&#038;gl=US" rel="noopener" target="_blank">Android</a></strong>, <strong><a href="https://apps.apple.com/us/app/knockond/id333206277" rel="noopener" target="_blank">iPhone</a></strong> e <strong><a href="http://gregsowell.com/?p=2020" rel="noopener" target="_blank">Windows</a></strong>.</p>
<p>Agora deixamos mais seguro nosso servidor.</p>
<h5>Exemplo de como adicionar um Windows Server ao seu guacamole</h5>
<p>No canto superior direito, clique no nome de <strong>usuário</strong> e em seguida <strong>Settings</strong>.<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/01/debian_11_guacamole_add_windows.png" alt="" width="376" height="234" class="alignnone size-full wp-image-6223" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/01/debian_11_guacamole_add_windows.png 376w, https://blog.remontti.com.br/wp-content/uploads/2022/01/debian_11_guacamole_add_windows-300x187.png 300w" sizes="auto, (max-width: 376px) 100vw, 376px" /><br />
Click em Connections em seguida New Connection<br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2022/01/debian_11_guacamole_add_windows_1.png" alt="" width="675" height="210" class="alignnone size-full wp-image-6224" srcset="https://blog.remontti.com.br/wp-content/uploads/2022/01/debian_11_guacamole_add_windows_1.png 675w, https://blog.remontti.com.br/wp-content/uploads/2022/01/debian_11_guacamole_add_windows_1-300x93.png 300w" sizes="auto, (max-width: 675px) 100vw, 675px" /></p>
<p><strong>EDIT CONNECTION</strong><br />
<strong>Name:</strong> Insira um nome de identificação para a conexão<br />
<strong>Location:</strong> Use o ROOT padrão se não houver requisitos específicos<br />
<strong>Protocol:</strong> RDP</p>
<p><strong>PARAMETERS</strong><br />
<em>Network</em><br />
<strong>Hostname:</strong> IP o Domínio do seu Servidor<br />
<strong>Port:</strong> Podemos deixá-lo vazio se usar a porta padrão 3389, ou informe a porta alterada do RDP<br />
<em>Authentication</em><br />
<strong>Username:</strong> Usuário<br />
<strong>Password:</strong> Senha<br />
<strong>Domain:</strong> Deixe em branco ou use o nome de domínio local do dispositivo Windows<br />
<strong>Ignore server certificate:</strong> Marque esta opção se o certificado for autoassinado</p>
<p>Role para baixo até o final da página e clique no botão <strong>Save</strong>.</p>
<p>A interface é bem intuitiva, acredito que não terá dificuldades, você pode criar grupos e usuarios e restrigir o acesso apenas a alguns servidores. </p>
<p>Espero que tenha gostado! E mais uma vez deixo meu agradecimento ao parceio <strong>Marcelo Gondim</strong>. Para trocar uma ideia chega lá no telegram <a href="https://telegram.me/remontticombr" rel="noopener" target="_blank">@remontticombr</a></p>
<p><strong>Se quiser fazer uma doação para o café ficarei muito feliz pelo seu reconhecimento!</strong><br />
<a href="https://blog.remontti.com.br/doar"><img decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/07/quero-doar-remontti.png" /></a><br />
Se não puder doar pode deixar seu agradecimento nos comentário também ficarei feliz em saber que ajudei. Se tiver qualquer pergunta deixe-a também. Se preferir entrar em Contato <a href="https://blog.remontti.com.br/meucontato" rel="noopener noreferrer" target="_blank">clique aqui.</a></p>
<p><strong>Referências: </strong><br />
&#8211; <a href="https://wiki.debian.org/Guacamole" rel="noopener" target="_blank">https://wiki.debian.org/Guacamole</a><br />
&#8211; <a href="https://computingforgeeks.com/install-and-use-guacamole-remote-desktop-on-debian/" rel="noopener" target="_blank">https://computingforgeeks.com/install-and-use-guacamole-remote-desktop-on-debian/</a><br />
&#8211; <a href="https://wiki.brasilpeeringforum.org/w/Configurando_um_gateway_de_acesso_remoto_com_Guacamole" rel="noopener" target="_blank">https://wiki.brasilpeeringforum.org/w/Configurando_um_gateway_de_acesso_remoto_com_Guacamole</a><br />
&#8211; <a href="https://receitasdecodigo.com.br/web/configurando-ssl-no-tomcat-8" rel="noopener" target="_blank">https://receitasdecodigo.com.br/web/configurando-ssl-no-tomcat-8</a></p>
<p>O post <a href="https://blog.remontti.com.br/6204">Aprenda a instalar um Jump Server com Apache Guacamole um gateway de desktop remoto Web</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/6204/feed</wfw:commentRss>
			<slash:comments>12</slash:comments>
		
		
			</item>
	</channel>
</rss>
