<?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 ssh - Remontti</title>
	<atom:link href="https://blog.remontti.com.br/tag/ssh/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.remontti.com.br/tag/ssh</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 ssh - Remontti</title>
	<link>https://blog.remontti.com.br/tag/ssh</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>
		<item>
		<title>Criando backups de forma simples e enviando para o Telegram ou servidor via SSH</title>
		<link>https://blog.remontti.com.br/4791</link>
					<comments>https://blog.remontti.com.br/4791#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Thu, 13 Aug 2020 22:29:03 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[bind]]></category>
		<category><![CDATA[Script]]></category>
		<category><![CDATA[shell script]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[sshpass]]></category>
		<category><![CDATA[telegram]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=4791</guid>

					<description><![CDATA[<p>Vamos aprender a criar scripts simples para fazer backups que podem ser úteis no nosso dia dia, vamos enviar eles para um servidor ou no telegram que aceita arquivos de até 2Gb #chupawhatsapp Criando&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/4791">Criando backups de forma simples e enviando para o Telegram ou servidor via SSH</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/08/capa-backup-shell-script.png" alt="" width="720" height="340" class="alignnone size-full wp-image-4833" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/08/capa-backup-shell-script.png 720w, https://blog.remontti.com.br/wp-content/uploads/2020/08/capa-backup-shell-script-300x142.png 300w, https://blog.remontti.com.br/wp-content/uploads/2020/08/capa-backup-shell-script-520x245.png 520w" sizes="auto, (max-width: 720px) 100vw, 720px" /><br />
Vamos aprender a criar scripts simples para fazer backups que podem ser úteis no nosso dia dia, vamos enviar eles para um servidor ou no telegram que aceita arquivos de até 2Gb #chupawhatsapp</p>
<p><strong>Criando Bot no telegram</strong></p>
<p>Abra o Telegram e procure por <a href="https://t.me/BotFather" rel="noopener noreferrer" target="_blank"><strong>@BotFather</strong></a>.<br />
Inicie a conversa com ele.<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram1.jpg" data-rel="lightbox-gallery-tYfDcXiF" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram1-169x300.jpg" alt="" width="169" height="300" class="alignnone size-medium wp-image-2823" srcset="https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram1-169x300.jpg 169w, https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram1-576x1024.jpg 576w, https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram1.jpg 720w" sizes="auto, (max-width: 169px) 100vw, 169px" /></a> <a href="https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram2.jpg" data-rel="lightbox-gallery-tYfDcXiF" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram2-169x300.jpg" alt="" width="169" height="300" class="alignnone size-medium wp-image-2826" srcset="https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram2-169x300.jpg 169w, https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram2-576x1024.jpg 576w, https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram2.jpg 720w" sizes="auto, (max-width: 169px) 100vw, 169px" /></a> <a href="https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram3.jpg" data-rel="lightbox-gallery-tYfDcXiF" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram3-169x300.jpg" alt="" width="169" height="300" class="alignnone size-medium wp-image-2827" srcset="https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram3-169x300.jpg 169w, https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram3-576x1024.jpg 576w, https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram3.jpg 720w" sizes="auto, (max-width: 169px) 100vw, 169px" /></a></p>
<p>&#8211; Digite o comando <strong>/newbot</strong> para iniciar a criação de um novo bot.<br />
&#8211; Após o comando você vai dar um nome para seu bot. Ex.: <em>&#8220;Bot Legal RR&#8221;</em>.<br />
&#8211; Em seguida é necessário digitar o nome de usuário para o bot, sendo obrigatório terminar com <strong>bot</strong>. Ex.: <em>&#8220;legallrr_bot&#8221;</em>.<br />
&#8211; Ao finalizar você receber informações com seu TOKEN, que vamos utilizar em seguida.</p>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram4.jpg" data-rel="lightbox-gallery-tYfDcXiF" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram4-169x300.jpg" alt="" width="169" height="300" class="alignnone size-medium wp-image-2830" srcset="https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram4-169x300.jpg 169w, https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram4-576x1024.jpg 576w, https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram4.jpg 720w" sizes="auto, (max-width: 169px) 100vw, 169px" /></a> <a href="https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram5.jpg" data-rel="lightbox-gallery-tYfDcXiF" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram5-169x300.jpg" alt="" width="169" height="300" class="alignnone size-medium wp-image-2833" srcset="https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram5-169x300.jpg 169w, https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram5-576x1024.jpg 576w, https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram5.jpg 720w" sizes="auto, (max-width: 169px) 100vw, 169px" /></a> <a href="https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram6.jpg" data-rel="lightbox-gallery-tYfDcXiF" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram6-169x300.jpg" alt="" width="169" height="300" class="alignnone size-medium wp-image-2835" srcset="https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram6-169x300.jpg 169w, https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram6-576x1024.jpg 576w, https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram6.jpg 720w" sizes="auto, (max-width: 169px) 100vw, 169px" /></a></p>
<p>Neste exemplo nosso token para acessar a API HTTP ficou:<br />
<strong>757396508:AAHpaoyVN-95maOCax1vDPDQBnSaZd9P5r0</strong></p>
<p>Procure pelo seu bot e comece uma conversa com ele e envie uma mensagem de teste para o mesmo, pois vamos precisar descobrir o ID do seu usuário, para que ele possa lhe enviar as mensagens.<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram7.jpg" data-rel="lightbox-gallery-tYfDcXiF" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram7-169x300.jpg" alt="" width="169" height="300" class="alignnone size-medium wp-image-2837" srcset="https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram7-169x300.jpg 169w, https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram7-576x1024.jpg 576w, https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram7.jpg 720w" sizes="auto, (max-width: 169px) 100vw, 169px" /></a> <a href="https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram8.jpg" data-rel="lightbox-gallery-tYfDcXiF" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram8-169x300.jpg" alt="" width="169" height="300" class="alignnone size-medium wp-image-2838" srcset="https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram8-169x300.jpg 169w, https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram8-576x1024.jpg 576w, https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram8.jpg 720w" sizes="auto, (max-width: 169px) 100vw, 169px" /></a></p>
<p>Abra em seu seu navegador a seguinte URL <em>https://api.telegram.org/bot<strong>TOKEN</strong>/getUpdates</em> para descobrir o ID do usuário que enviou a mensagem ou de um grupo.<br />
Ex.: <font size="2"><em>https://api.telegram.org/bot<strong><font color="red">757396508:AAHpaoyVN-95maOCax1vDPDQBnSaZd9P5r0</font></strong>/getUpdates</em></font></p>
<p><strong>:: Chat privado ::</strong></p>
<pre class="remontti-code">{&quot;ok&quot;:true,&quot;result&quot;:[{
	&quot;update_id&quot;:649208620,&quot;message&quot;:{
		&quot;message_id&quot;:2,&quot;from&quot;:{&quot;id&quot;:221122111,&quot;is_bot&quot;:false,&quot;first_name&quot;:&quot;Rudimar&quot;,&quot;last_name&quot;:&quot;Remontti&quot;,&quot;username&quot;:&quot;remontti&quot;,&quot;language_code&quot;:&quot;pt-br&quot;},
		&quot;chat&quot;:{&quot;id&quot;:999999999,&quot;first_name&quot;:&quot;Rudimar&quot;,&quot;last_name&quot;:&quot;Remontti&quot;,&quot;username&quot;:&quot;remontti&quot;,&quot;type&quot;:&quot;private&quot;},
		&quot;date&quot;:1541210279,&quot;text&quot;:&quot;Testando&quot;
	}
}]}</pre>
<p>ID do chat privado: <strong>999999999</strong></p>
<p>Se desejar criar um grupo também, basta adicionar seu bot a ele, após adiciona-lo envia uma mensagem como <strong>/teste</strong> para que possamos coletar o ID do grupo.<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram9.jpg" data-rel="lightbox-gallery-tYfDcXiF" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram9-169x300.jpg" alt="" width="169" height="300" class="alignnone size-medium wp-image-2843" srcset="https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram9-169x300.jpg 169w, https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram9-576x1024.jpg 576w, https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram9.jpg 720w" sizes="auto, (max-width: 169px) 100vw, 169px" /></a> <a href="https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram10.jpg" data-rel="lightbox-gallery-tYfDcXiF" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram10-169x300.jpg" alt="" width="169" height="300" class="alignnone size-medium wp-image-2844" srcset="https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram10-169x300.jpg 169w, https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram10-576x1024.jpg 576w, https://blog.remontti.com.br/wp-content/uploads/2018/11/zabbix_bot_telegram10.jpg 720w" sizes="auto, (max-width: 169px) 100vw, 169px" /></a></p>
<p><strong>:: Chat em Grupo ::</strong></p>
<pre class="remontti-code">{&quot;ok&quot;:true,&quot;result&quot;:[{
	&quot;update_id&quot;:649208622,&quot;message&quot;:{&quot;message_id&quot;:4,&quot;from&quot;:{
		&quot;id&quot;:221122111,&quot;is_bot&quot;:false,&quot;first_name&quot;:&quot;Rudimar&quot;,&quot;last_name&quot;:&quot;Remontti&quot;,&quot;username&quot;:&quot;remontti&quot;,&quot;language_code&quot;:&quot;pt-br&quot;},
		&quot;chat&quot;:{&quot;id&quot;:-1000000000000,&quot;title&quot;:&quot;Grupo Legal&quot;,&quot;type&quot;:&quot;group&quot;,&quot;all_members_are_administrators&quot;:true
	},&quot;date&quot;:1541210975,&quot;text&quot;:&quot;/teste&quot;,&quot;entities&quot;:[{&quot;offset&quot;:0,&quot;length&quot;:6,&quot;type&quot;:&quot;bot_command&quot;}
}]}</pre>
<p>ID do chat grupo: <strong>-1000000000000</strong></p>
<p>Agora que já temos o Token e o ID do chat/grupo vamos ao script de backup. Se ainda estiver com dificuldade no <a href="https://www.youtube.com/watch?v=-ylbrUyNRZE" rel="noopener noreferrer" target="_blank">vídeo onde ensino integrar com o zabbix</a> aos 52 min explico como criar o bot.</p>
<p>Não esqueça q para o bot enviar algo para você é necessários iniciar uma conversa com o mesmo.<br />
Antes faça um teste abrindo no seu navegador <em>https://api.telegram.org/botTOKEN/sendMessage?chat_id=ID&#038;text=Mensagem</em> ou diretamente pelo terminal com curl.</p>
<pre class="remontti-code"># apt install curl </pre>
<p>Ex.: Enviando mensagem para um usuário</p>
<pre class="remontti-code"># curl --silent -X POST \
 --data-urlencode &quot;chat_id=8888888&quot; \
 --data-urlencode &quot;text=Enviando para usuário&quot; \
 &quot;https://api.telegram.org/bot757396508:AAHpaoyVN-95maOCax1vDPDQBnSaZd9P5r0/sendMessage&quot;</pre>
<p>Ex.: Enviando mensagem para um grupo (Não torne o grupo público para sua segurança)</p>
<pre class="remontti-code"># curl --silent -X POST \
 --data-urlencode &quot;chat_id=-1000000000000&quot; \
 --data-urlencode &quot;text=Enviando para o Grupo&quot; \
 &quot;https://api.telegram.org/bot757396508:AAHpaoyVN-95maOCax1vDPDQBnSaZd9P5r0/sendMessage&quot;</pre>
<p>Se as mensagens chegaram estamos preparados para fazer nossos backups com o telegram.</p>
<hr>
<h3>Scripts</h3>
<p>Pacotes requeridos:</p>
<pre class="remontti-code"># apt install curl wget zip unzip</pre>
<p>Para ficar algo organizado vou criar uma pasta onde colocarei todos os scripts</p>
<pre class="remontti-code"># mkdir /etc/backups/</pre>
<p>Como normalmente eu uso o telegram mesmo que seja apenas para notificar que um backup foi feto, vou criar uma pasta chamada para fazer toda a configuração do bot nela, criei um novo script com base no <a href="https://github.com/remontti/TelegramCMD" target="_blank" rel="noopener noreferrer">código</a> que utilizei no tutorial do <a href="https://blog.remontti.com.br/3981" rel="noopener noreferrer" target="_blank">Fastnetmon</a>, assim toda vez que for chamar telegram para enviar mensagem ou arquivo basta executa-lo sem sofrimero e varias linhas. Bora prepara-ló! </p>
<h3>Preparando o script do telegram (bot)</h3>
<pre class="remontti-code"># wget https://raw.githubusercontent.com/remontti/telegramBotShell/master/telegram -O /bin/telegram
# chmod +x /bin/telegram</pre>
<p>Alterando o TOKEN:</p>
<pre class="remontti-code"># vim /bin/telegram</pre>
<p>Altere o TOKEN e o formato da compactação (zip ou tar)<br />
Altere o token:</p>
<pre class="remontti-code">TOKEN=&quot;000000000:0000000000000-0000000000000000000000000000000&quot;</pre>
<p>Escolha o metodo de compactação tar/zip</p>
<pre class="remontti-code">COMPAC=&#039;tar&#039;</pre>
<p><strong>Como usar?</strong></p>
<p><strong>-m:</strong> Para enviar uma mensagem</p>
<pre class="remontti-code"># telegram -m &quot;-ID Chat&quot; &quot;Mensagem linha 1&quot; &quot;Mensagem linha 2&quot; &quot;Mensagem linha 3&quot;
# telegram -m &quot;ID Usuário&quot; &quot;Mensagem linha 1&quot; &quot;Mensagem linha 2&quot; &quot;Mensagem linha 3&quot;</pre>
<p><strong>-f:</strong> Para enviar um arquivo</p>
<pre class="remontti-code"># telegram -f &quot;-100000000&quot; &quot;/diretorio/arquivo&quot; &quot;nome do arquivo compactado&quot; &quot;Comentário&quot;
# telegram -f &quot;12345689&quot; &quot;/var/log/syslog&quot; &quot;syslog&quot; &quot;Logs do sistema&quot;</pre>
<p>Faça seu testes! Vale lembrar que toda vez que o script do telegram envia um arquivo ele irá compactar e remover este arquivo do servidor após envio.</p>
<h3>Preparando o script para envido do backup via SSH</h3>
<pre class="remontti-code">
# apt install sshpass
# wget https://raw.githubusercontent.com/remontti/backupSSH/master/backup -O /bin/backup
# chmod +x /bin/backup</pre>
<p><strong>Como usar?</strong><br />
Ex.:</p>
<pre class="remontti-code"># backup &quot;nome para o arquivo&quot; &quot;diretório ou diretórios a salvar&quot;  &quot;usuário ssh&quot; &quot;senha ssh&quot; &quot;IP Serv&quot; &quot;Porta ssh&quot; &quot;diretorio de destino&quot;
# backup &quot;etc&quot; &quot;/etc/*&quot;  &quot;jose&quot; &quot;123456&quot; &quot;192.168.0.200&quot; &quot;22&quot; &quot;/home/jose/backup&quot;</pre>
<hr>
<h3>Backups Telegram</h3>
<hr>
<h4><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2665.png" alt="♥" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Backup de um diretório</h4>
<p>Vamos imaginar que gostaríamos de salvar o diretório /etc/frr/*</p>
<pre class="remontti-code"># vim /etc/backups/backup_frr_telegram.sh</pre>
<p>Adicionaremos apenas o ID usuário ou grupo (lembre-se que grupo sempre tem um &#8220;-&#8221; antes do ID) ex:</p>
<pre class="remontti-code">#!/bin/bash
/bin/telegram -f &quot;200000000&quot; &quot;/etc/frr/*&quot; &quot;frr&quot; &quot;Backup FRR&quot;</pre>
<p>De permissão para execução: </p>
<pre class="remontti-code"># chmod +x /etc/backups/backup_frr_telegram.sh</pre>
<p>Basta rodar agora o script </p>
<pre class="remontti-code"># /etc/backups/backup_frr_telegram.sh</pre>
<p><img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2020/08/backup_frr_telegram.png" alt="" width="329" height="106" class="alignnone size-full wp-image-4812" srcset="https://blog.remontti.com.br/wp-content/uploads/2020/08/backup_frr_telegram.png 329w, https://blog.remontti.com.br/wp-content/uploads/2020/08/backup_frr_telegram-300x97.png 300w" sizes="auto, (max-width: 329px) 100vw, 329px" /></p>
<p>Já já vamos ver como adiciona-lo no CRON (Agenda) para tornar isso automático. </p>
<hr>
<h4><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2665.png" alt="♥" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Backup de múltiplos diretórios</h4>
<p>Vamos imaginar que gostaríamos de salvar todos os diretórios do bind9, para isso basta adicionar todos os diretórios/arquivos entre aspas <em>&#8220;/etc/bind/* /usr/share/dns/* /var/cache/bind/*&#8221; </em></p>
<pre class="remontti-code"># vim /etc/backups/backup_bind_telegram.sh</pre>
<p>Altere o ID usuário/grupo (lembre-se que grupo sempre tem um &#8220;-&#8221; antes do ID) ex:</p>
<pre class="remontti-code">#!/bin/bash
/bin/telegram -f &quot;200000000&quot; &quot;/etc/bind/* /usr/share/dns/* /var/cache/bind/*&quot; &quot;ns1&quot; &quot;Backup Bind&quot;</pre>
<p>De permissão para execução: </p>
<pre class="remontti-code"># chmod +x /etc/backups/backup_bind_telegram.sh</pre>
<p>Basta rodar agora o script </p>
<pre class="remontti-code"># /etc/backups/backup_bind_telegram.sh</pre>
<hr>
<h4><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2665.png" alt="♥" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Backup de um banco de dados Mysql/MariaDB</h4>
<p>Neste exemplo vamos fazer backup do banco de dados <strong>&#8220;radius&#8221;</strong>. Altere as variáveis informando usuário/senha do seu banco de dados bem como nome do banco e ID do telegram.</p>
<pre class="remontti-code">#!/bin/bash
# Autor: remontti.com.br
# --------------------------------------
# USUARIO  DO BANCO DE DADOS
USER_DB=&#039;root&#039;
# SENHA DO BANCO DE DADOS
SENHA_DB=&#039;senha&#039;
# NOME DO BANCO DE DADOS
NOME_BANCO=&#039;radius&#039;
# NOME PARA O BACKUP
NOME_DO_BKP=&#039;Freeradius&#039;
# ID TELEGRAM
ID_TELEGRAM=&#039;-123456789000&#039;
# --------------------------------------
DATABKP=`date +%Y-%m-%d`
NOME_BD=&quot;/tmp/${NOME_BANCO}.${DATABKP}.tar.gz&quot;
mysqldump -h 127.0.0.1 -u ${USER_DB} -p${SENHA_DB} -B ${NOME_BANCO} &gt; /tmp/${NOME_BANCO}.${DATABKP}.sql 
/bin/telegram -f &quot;${ID_TELEGRAM}&quot; &quot;/tmp/${NOME_BANCO}.${DATABKP}.sql&quot; &quot;${NOME_DO_BKP}&quot; &quot;${NOME_BANCO}&quot; &amp;&gt;/dev/null
rm -f /tmp/*.sql &amp;&gt;/dev/null</pre>
<hr>
<h4><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2665.png" alt="♥" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Backup de &#8220;todos&#8221; os banco de dados Mysql/MariaDB</h4>
<p>Neste exemplo vamos fazer backup de &#8220;todos&#8221; os bancos de dados do servidor.<br />
Perceba que o comando: </p>
<pre class="remontti-code"># ls -d /var/lib/mysql/*/ |cut -d / -f 5</pre>
<p>Listará todas as bases, porém o com &#8220;grep -v&#8221; ignoro alguns bancos que não acho necessário.</p>
<pre class="remontti-code"># ls -d /var/lib/mysql/*/ |cut -d / -f 5 |grep -v mysql |grep -v performance_schema</pre>
<p>Altere as variáveis informando usuário/senha do seu banco de dados bem como ID do telegram.</p>
<pre class="remontti-code">#!/bin/bash
# Autor: remontti.com.br
# --------------------------------------
# USUARIO  DO BANCO DE DADOS
USER_DB=&#039;root&#039;
# SENHA DO BANCO DE DADOS
SENHA_DB=&#039;senha&#039;
# NOME PARA O BACKUP
NOME_DO_BKP=&#039;ServidorWeb&#039;
# ID TELEGRAM
ID_TELEGRAM=&#039;-123456789000&#039;
# --------------------------------------

for BANCO in `ls -d /var/lib/mysql/*/ |cut -d / -f 5 |grep -v mysql |grep -v performance_schema`
do
    DATABKP=`date +%Y-%m-%d`
    NOME_BD=&quot;/tmp/${BANCO}.${DATABKP}.tar.gz&quot;
    mysqldump -h 127.0.0.1 -u ${USER_DB} -p${SENHA_DB} -B ${BANCO} &gt; /tmp/${BANCO}.${DATABKP}.sql 
done;
/bin/telegram -f &quot;${ID_TELEGRAM}&quot; &quot;/tmp/*.sql&quot; &quot;${NOME_DO_BKP}&quot; &quot;Backup BDs&quot; 
rm -f /tmp/*.sql &amp;&gt;/dev/null</pre>
<hr>
<h4><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2665.png" alt="♥" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Backup do Zabbix-Server (Apenas do que interessa)</h4>
<p>Para o backup do zabbix utilizo um script do <a href="https://github.com/maxhq/zabbix-backup">maxhq</a> que faz um dump apenas da parte da base que nos interessa, isso significa que você não terá salvo o historio das &#8220;coisa&#8221;! Porém realizei um <a href="https://github.com/remontti/zabbix-backup" rel="noopener" target="_blank">fork</a> do projeto qual fiz alguns ajustes para dar suporte ao zabbix 5.<br />
Vamos baixa-lo em nosso diretório:</p>
<pre class="remontti-code"># cd /etc/backups/ 
# wget https://raw.githubusercontent.com/remontti/zabbix-backup/master/zabbix-dump
# chmod +x /etc/backups/zabbix-dump</pre>
<p>Crie seu script</p>
<pre class="remontti-code"># vim /etc/backups/backup_zbx.sh</pre>
<pre class="remontti-code">#!/bin/bash
# ----Config ----
ID_TELEGRAM=&#039;-123456789000&#039;
# ---------------
/etc/backups/zabbix-dump -o /tmp &amp;&gt;/dev/null
/bin/telegram -f &quot;${ID_TELEGRAM}&quot; &quot;/tmp/zabbix_cfg*.gz&quot; &quot;zabbix&quot; &quot;Backup Bind&quot;
rm -f /tmp/*.gz</pre>
<p>Permissões:</p>
<pre class="remontti-code"># chmod +x /etc/backups/backup_zbx.sh</pre>
<p>Execute:</p>
<pre class="remontti-code"># /etc/backups/backup_zbx.sh</pre>
<hr>
<h3>Backups SSH</h3>
<hr>
<p>Neste caso tenho o um servidor que irá receber nossos backups, sendo:</p>
<pre class="remontti-code-plain">IP: 172.16.0.100 
Porta SSH: 60321
Usuários: jose
Senha: 123456
Diretório onde ficará os backups: /home/jose/backup/</pre>
<hr>
<h4><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2665.png" alt="♥" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Backup de um diretório</h4>
<p>Vamos fazer o mesmo backup que fizemos anterior do &#8220;/etc/frr/*&#8221;.</p>
<pre class="remontti-code"># vim /etc/backups/backup_frr_ssh.sh</pre>
<pre class="remontti-code">#!/bin/bash
# /bin/backup &quot;todo_etc&quot; &quot;/etc/*&quot; &quot;jose&quot; &quot;123456&quot; &quot;172.16.0.100&quot; &quot;60321&quot; &quot;/home/jose/backup&quot;</pre>
<p>Permissão: </p>
<pre class="remontti-code"># chmod +x /etc/backups/backup_frr_ssh.sh</pre>
<p>Execute:</p>
<pre class="remontti-code"># /etc/backups/backup_frr_ssh.sh</pre>
<hr>
<h4><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2665.png" alt="♥" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Backup de múltiplos diretórios</h4>
<p>Ex backup DNS bind9</p>
<pre class="remontti-code"># vim /etc/backups/backup_bind_ssh.sh</pre>
<pre class="remontti-code">#!/bin/bash
# /bin/backup &quot;ns1_dns&quot; &quot;/etc/bind/* /usr/share/dns/* /var/cache/bind/*&quot; &quot;jose&quot; &quot;123456&quot; &quot;172.16.0.100&quot; &quot;60321&quot; &quot;/home/jose/backup&quot;</pre>
<p>Permissão: </p>
<pre class="remontti-code"># chmod +x /etc/backups/backup_bind_ssh.sh</pre>
<p>Execute:</p>
<pre class="remontti-code"># /etc/backups/backup_bind_ssh.sh</pre>
<hr>
<h4><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2665.png" alt="♥" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Backup de um banco de dados Mysql/MariaDB</h4>
<pre class="remontti-code"># vim /etc/backups/backup_bd_ssh.sh</pre>
<pre class="remontti-code">#!/bin/bash
# Autor: remontti.com.br
# --------------------------------------
# USUARIO  DO BANCO DE DADOS
USER_DB=&#039;root&#039;
# SENHA DO BANCO DE DADOS
SENHA_DB=&#039;senha&#039;
# NOME DO BANCO DE DADOS
NOME_BANCO=&#039;radius&#039;
# NOME PARA O BACKUP
NOME_DO_BKP=&#039;Freeradius&#039;
# ID TELEGRAM
ID_TELEGRAM=&#039;-123456789000&#039;
#----Servidor que recebe o Backup ------
# Usuários SSH
USER_SSH=&#039;jose&#039;
# Senha SSH
PASS_SSH=&#039;senha&#039;
# Porta SSH
PORT_SSH=&#039;22&#039;
# Diretório onde ira salvar
DIR_SSH=&#039;/home/jose/backup&#039;
# IP do servidor 
IP_SSH=&#039;172.16.0.100&#039;
# --------------------------------------
DATABKP=`date +%Y-%m-%d`
NOME_BD=&quot;/tmp/${NOME_BANCO}.${DATABKP}.tar.gz&quot;
mysqldump -h 127.0.0.1 -u ${USER_DB} -p${SENHA_DB} -B ${NOME_BANCO} &gt; /tmp/${NOME_BANCO}.${DATABKP}.sql 
backup &quot;${NOME_DO_BKP}&quot; &quot;/tmp/${NOME_BANCO}.${DATABKP}.sql&quot; &quot;${USER_SSH}&quot; &quot;${PASS_SSH}&quot; &quot;${IP_SSH}&quot; &quot;${PORT_SSH}&quot; &quot;${DIR_SSH}&quot;
rm -f /tmp/*.sql &amp;&gt;/dev/null</pre>
<p>Permissão: </p>
<pre class="remontti-code"># chmod +x /etc/backups/backup_bd_ssh.sh</pre>
<p>Execute:</p>
<pre class="remontti-code"># /etc/backups/backup_bd_ssh.sh</pre>
<hr>
<h4><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2665.png" alt="♥" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Backup de &#8220;todos&#8221; os banco de dados Mysql/MariaDB</h4>
<pre class="remontti-code"># vim /etc/backups/backup_bdall_ssh.sh</pre>
<pre class="remontti-code">#!/bin/bash
# Autor: remontti.com.br
# --------------------------------------
# USUARIO  DO BANCO DE DADOS
USER_DB=&#039;root&#039;
# SENHA DO BANCO DE DADOS
SENHA_DB=&#039;senha&#039;
# NOME PARA O BACKUP
NOME_DO_BKP=&#039;ServidorWeb&#039;
# ID TELEGRAM
ID_TELEGRAM=&#039;-123456789000&#039;
#----Servidor que recebe o Backup ------
# Usuários SSH
USER_SSH=&#039;jose&#039;
# Senha SSH
PASS_SSH=&#039;senha&#039;
# Porta SSH
PORT_SSH=&#039;22&#039;
# Diretório onde ira salvar
DIR_SSH=&#039;/home/jose/backup&#039;
# IP do servidor 
IP_SSH=&#039;172.16.0.100&#039;
# --------------------------------------
 
for BANCO in `ls -d /var/lib/mysql/*/ |cut -d / -f 5 |grep -v mysql |grep -v performance_schema`
do
    DATABKP=`date +%Y-%m-%d`
    NOME_BD=&quot;/tmp/${BANCO}.${DATABKP}.tar.gz&quot;
    mysqldump -h 127.0.0.1 -u ${USER_DB} -p${SENHA_DB} -B ${BANCO} &gt; /tmp/${BANCO}.${DATABKP}.sql 
done;
backup &quot;${NOME_DO_BKP}&quot; &quot;/tmp/*.sql&quot; &quot;${USER_SSH}&quot; &quot;${PASS_SSH}&quot; &quot;${IP_SSH}&quot; &quot;${PORT_SSH}&quot; &quot;${DIR_SSH}&quot;
rm -f /tmp/*.sql &amp;&gt;/dev/null</pre>
<p>Permissão: </p>
<pre class="remontti-code"># chmod +x /etc/backups/backup_bdall_ssh.sh</pre>
<p>Execute:</p>
<pre class="remontti-code"># /etc/backups/backup_bdall_ssh.sh</pre>
<hr>
<h4><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2665.png" alt="♥" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Backup do Zabbix-Server (Apenas do que interessa)</h4>
<p>Para o backup do zabbix utilizo um script do <a href="https://github.com/maxhq/zabbix-backup">maxhq</a> que faz um dump apenas da parte da base que nos interessa, isso significa que você não terá salvo o historio das &#8220;coisa&#8221;! Porém realizei um <a href="https://github.com/remontti/zabbix-backup" rel="noopener" target="_blank">fork</a> do projeto qual fiz alguns ajustes para dar suporte ao zabbix 5.<br />
Vamos baixa-lo em nosso diretório:</p>
<pre class="remontti-code"># cd /etc/backups/ 
# wget https://raw.githubusercontent.com/remontti/zabbix-backup/master/zabbix-dump
chmod +x /etc/backups/zabbix-dump</pre>
<p>Crie seu script</p>
<pre class="remontti-code"># vim /etc/backups/backup_zbx_ssh.sh</pre>
<pre class="remontti-code">#!/bin/bash
# Autor: remontti.com.br
#----Servidor que recebe o Backup ------
# Usuários SSH
USER_SSH=&#039;jose&#039;
# Senha SSH
PASS_SSH=&#039;senha&#039;
# Porta SSH
PORT_SSH=&#039;22&#039;
# Diretório onde ira salvar
DIR_SSH=&#039;/home/jose/backup&#039;
# IP do servidor 
IP_SSH=&#039;172.16.0.100&#039;
# --------------------------------------
/etc/backups/zabbix-dump  -o /tmp &amp;&gt;/dev/null
backup &quot;zabbix&quot; &quot;/tmp/zabbix_cfg*.gz&quot; &quot;${USER_SSH}&quot; &quot;${PASS_SSH}&quot; &quot;${IP_SSH}&quot; &quot;${PORT_SSH}&quot; &quot;${DIR_SSH}&quot;
rm -f /tmp/*.gz</pre>
<p>Permissões:</p>
<pre class="remontti-code"># chmod +x /etc/backups/backup_zbx_ssh.sh</pre>
<p>Execute:</p>
<pre class="remontti-code"># /etc/backups/backup_zbx_ssh.sh</pre>
<hr>
<p>Bom com base nesses scripts e um pouco de imaginação acredito que você vai conseguir fazer muita coisa, mas como automatizar? Veremos isso agora!</p>
<h3>Agendando o backup (Cron)</h3>
<p>Vamos agendar nosso(s) scripts para serem feitos em algumas situações:</p>
<p>Execute o comando crontab -e.</p>
<pre class="remontti-code"># crontab -e</pre>
<p>A primeira vez que você rodar o comando será solicitado qual editor você deseja, vou selecionar o nano &#8220;1&#8221; (ou apenas de Enter) por ser o mais fácil. Vale a leitura também: <a href="https://blog.remontti.com.br/90" rel="noopener noreferrer" target="_blank">Agendamento CRON / CRONTAB</a> e <a href="https://help.ubuntu.com/community/CronHowto" rel="noopener noreferrer" target="_blank">CronHowto</a></p>
<pre class="remontti-code">Select an editor.  To change later, run &#039;select-editor&#039;.
  1. /bin/nano        &lt;---- easiest
  2. /usr/bin/vim.basic
  3. /usr/bin/vim.tiny

Choose 1-3 [1]: 1 [ENTER]</pre>
<p>Você precisa entender a ordem dos valores interpretado pelo cron:</p>
<pre class="remontti-code"># m h  dom mon dow   command
# * *  *   *   *     comando
# | |  |   |   |     |_ _ _ _ Comando a ser executado
# | |  |   |   |_ _ _ _ _ _ _ Semana (0-7 - domingo à domingo)
# | |  |   |_ _ _ _ _ _ _ _ _ Mês (01-12)
# | |  |_ _ _ _ _ _ _ _ _ _ _ Dia (01-31)
# | |_ _ _ _ _ _ _ _ _ _ _ _ _Hora (00-23)
# |_ _ _ _ _ _ _ _ _ _ _ _ _ _Minuto (00-59)
</pre>
<h5>Alguns exemplos</h5>
<p>Executar um backup todos os dias às 20h e 30min:</p>
<pre class="remontti-code">30 20  *   *   *     /etc/backups/backup_script.sh</pre>
<p>Todo dia primeiro do mês às 00h e 45min:</p>
<pre class="remontti-code">45 00  1   *   *     /etc/backups/backup_script.sh</pre>
<p>Toda segunda-feira às 04h:</p>
<pre class="remontti-code">00 04  *   1   *     /etc/backups/backup_script.sh</pre>
<p>Curtiu o conteúdo? Quer me ajudar? <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>Participe do canal no <a href="https://t.me/blogremontti" rel="noopener noreferrer" target="_blank">telegram</a> para ficar atualizado sempre que publicar um novo tutorial. </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></p>
<p>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>Abraço!</p>
<p>O post <a href="https://blog.remontti.com.br/4791">Criando backups de forma simples e enviando para o Telegram ou servidor via SSH</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/4791/feed</wfw:commentRss>
			<slash:comments>6</slash:comments>
		
		
			</item>
		<item>
		<title>Aumentando o nível de seguraça na conexão SSH</title>
		<link>https://blog.remontti.com.br/97</link>
					<comments>https://blog.remontti.com.br/97#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Wed, 01 Jun 2016 05:10:46 +0000</pubDate>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Script]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[debian buster]]></category>
		<category><![CDATA[Fail2ban]]></category>
		<category><![CDATA[firewall]]></category>
		<category><![CDATA[Segurança]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[sshd]]></category>
		<guid isPermaLink="false">http://www.remontti.com.br/blog/?p=97</guid>

					<description><![CDATA[<p>Distribuição testada: Debian 10 Buster Requisitos SSH intalado # apt install ssh Primeiramente vamos mudar a porta do SSH  de preferencia para uma porta bem alta (são mais difíceis serem escaneadas) e após definir&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/97">Aumentando o nível de seguraça na conexão SSH</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Distribuição testada: Debian 10 Buster</p>
<p>Requisitos SSH intalado</p>
<pre class="remontti-code"># apt install ssh</pre>
<p>Primeiramente vamos mudar a porta do SSH  de preferencia para uma porta bem alta (são mais difíceis serem escaneadas) e após definir apenas um único usuário para conexão<br />
<span id="more-97"></span></p>
<pre class="remontti-code"># vim /etc/ssh/sshd_config</pre>
<p>Aletere as seguintes linhas:</p>
<pre class="remontti-code"># Aqui vai da porta
Port 60321 
# Tempo que o usuario tem para fazer login
LoginGraceTime 10 
# Não permita que o usuário root se conecte
PermitRootLogin prohibit-password 
</pre>
<p>Adicione a linha:</p>
<pre class="remontti-code"># Apenas este usuário chamado &quot;seu_usuario&quot; irá conseguir 
# conectar-se via ssh por mais que exita outros usuários que 
# teriam permissões de acessa o bash.
AllowUsers seu_usuario </pre>
<p>Salve e reinicie o serviço:</p>
<pre class="remontti-code"># /etc/init.d/ssh restart</pre>
<p>Pronto!</p>
<pre class="remontti-code"># ssh usuariodossh@seuip -p 60321</pre>
<p>Agora sua porta de conexão SSH é a 60321, e só loga pleo &#8220;seu_usuario&#8221; terminou? Não!!!</p>
<p>Que tal enganar um pouco! <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /><br />
Vamos criar uma regra de firewall com iptables, caso você já tenha um script de firewall adicione a ele. A regra será um DROP na porta 22 assim vai dar uma falsa impressão que sua porta está protegia quando alguém usar algum scanner, vai passar aquele impressão: <em>&#8220;- iii tem firewall na 22, vamos procurar outro&#8230;.&#8221;</em></p>
<p>Drop falso na porta 22</p>
<pre class="remontti-code"># iptables -A INPUT -p tcp --dport 22 -j DROP</pre>
<p>Se desejar filtrar sua porta de SSH (60321) e deixar apenas IP X ou Y conectarem-se, no meu exemplo deixo apenas os IP 200.1.2.3 e toda a classe 10.0.0.0-10.0.0.255.</p>
<pre class="remontti-code"># iptables -A INPUT -s 200.1.2.3 -p tcp --dport 60321 -j ACCEPT # IP Especifico 
# iptables -A INPUT -s 10.0.0.0/24 -p tcp --dport 60321 -j ACCEPT # Uma Classe
# ip6tables -A INPUT -s 3001:1234::/32 -p tcp --dport 60321 -j ACCEPT # Uma Classe v6
# iptables -A INPUT -p tcp --dport 60321 -j DROP
# ip6tables -A INPUT -p tcp --dport 60321 -j DROP v6</pre>
<p>Como dito no momento que seu servidor for scanear seu servidor a porta 22 ira aparecer como filtrada.<br />
Para verificar os filtros </p>
<pre class="remontti-code">iptables -nL
ip6tables -nL</pre>
<p>Mas você ira precisar criar um script e colocar ele para iniciarlizar, e é por isso q eu recomendo você usar o nftables o nftables em vez do iptables, já que provavelmente vamos ver ele próximas distribuições no lugar do iptables. (Mas quis explicar o iptables também) </p>
<pre class="remontti-code"># apt install nftables
# systemctl enable nftables
# nft list ruleset
# vim /etc/nftables.conf </pre>
<pre class="remontti-code">#!/usr/sbin/nft -f
  
flush ruleset

table inet filter {
        chain input {
                type filter hook input priority 0;
                ip saddr 200.1.2.3 tcp dport 60123 counter accept
                ip saddr 10.0.0.0/24 tcp dport 60123 counter accept
                ip6 saddr 3001:1234::/32 tcp dport 60123 counter accept
                tcp dport 60123 counter drop
                tcp dport 22 counter drop
        }
        chain forward {
                type filter hook forward priority 0;
        }
        chain output {
                type filter hook output priority 0;
        }
}</pre>
<p>Reinicie o serviço, verifique as regras</p>
<pre class="remontti-code"># systemctl restart nftables
# nft list ruleset</pre>
<p>Instale o nmpa e faça um scanner</p>
<pre class="remontti-code"># apt install nmap
# nmap localhost</pre>
<p>Resultado:</p>
<pre class="remontti-code">Not shown: 1674 closed ports
PORT STATE SERVICE
22/tcp filtered ssh</pre>
<p>Assim já estou &#8220;protegido&#8221;! Legal!!!<br />
Suficiente? Eu sou mais paranoico, então se desejar prossiga <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f600.png" alt="😀" class="wp-smiley" style="height: 1em; max-height: 1em;" /><br />
O que vamos fazer, é meio que redundante como que fizemos no firewall, porém se por alguma &#8220;zica&#8221; seu firewall não tiver rodando/ou foi quebrado o próximo passo vai salvar! Vamos configurar nos hosts para bloquear o serviço SSH e liberar apenas para seu IP ou classe.</p>
<pre class="remontti-code"># vim /etc/hosts.allow</pre>
<p>Adicione:</p>
<pre class="remontti-code">sshd: 200.1.2.3 # Ip Especifico
sshd: 10.0.0.0/24 # Uma Classe de IP</pre>
<pre class="remontti-code"># vim /etc/hosts.deny</pre>
<p>Adicione:</p>
<pre class="remontti-code">sshd: ALL</pre>
<p>Agora sim né! Humm.. Sei não que tal instalar o <strong><a href="http://www.fail2ban.org/">fail2ban</a></strong>?</p>
<pre class="remontti-code"> # apt install fail2ban</pre>
<p>Por padrão o modulo de proteção do SSH vem ativo (true) no Debian, no parâmetro <strong>maxretry</strong> você define o número de tentativas que poderá errar a senha para conexão a partir de um determinado IP.</p>
<p>Para alterar as configurações do fail2ban edite o arquivo <strong>/etc/fail2ban/jail.conf</strong></p>
<pre class="remontti-code">vim /etc/fail2ban/jail.conf</pre>
<p>Por padrão os tempos de banimento é de 10m e numero de tentativas é 5</p>
<pre class="remontti-code">bantime = 10m # Duração para um IP ficar banido
findtime = 10m # Se nenhuma correspondência nos logs é encontrada dentro de X tempo
maxretry = 5 # Tentativas ate o banimento</pre>
<p>Adicione também a porta 60123 já que alteramos a mesma</p>
<pre class="remontti-code">[sshd]
# To use more aggressive sshd modes set filter parameter &quot;mode&quot; in jail.local:
# normal (default), ddos, extra or aggressive (combines all).
# See &quot;tests/files/logs/sshd&quot; or &quot;filter.d/sshd.conf&quot; for usage example and details.
#mode   = normal
port    = ssh,60123
logpath = %(sshd_log)s
backend = %(sshd_backend)s
</pre>
<p>O filtro fica ativo em /etc/fail2ban/jail.d/defaults-debian.conf, você pode incluir maxretry so para ele bem como bantime, personalizando somente o filtro SSH. Ex.:</p>
<pre class="remontti-code"># vim /etc/fail2ban/jail.d/defaults-debian.conf</pre>
<pre class="remontti-code">[sshd]
enabled = true
maxretry = 2
bantime  = 12h</pre>
<p>Estamos 100% seguro? Nada é 100% seguro, mas certamente você levou seu nível de segurança a um nível &#8220;hard core&#8221;!</p>
<p><strong>Se quiser fazer uma doação para o café ficarei muito feliz pelo seu reconhecimento! (Esse deu trabalho!)</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></p>
<p>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>Participe do canal no <a href="https://t.me/blogremontti" rel="noopener noreferrer" target="_blank">telegram</a> para ficar atualizado sempre que publicar um novo tutorial. </p>
<p>Abraço!</p>
<p>O post <a href="https://blog.remontti.com.br/97">Aumentando o nível de seguraça na conexão SSH</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/97/feed</wfw:commentRss>
			<slash:comments>7</slash:comments>
		
		
			</item>
		<item>
		<title>Dica de segurança (.bashrc)</title>
		<link>https://blog.remontti.com.br/270</link>
					<comments>https://blog.remontti.com.br/270#respond</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Fri, 02 Jan 2015 17:19:30 +0000</pubDate>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[Segurança]]></category>
		<category><![CDATA[ssh]]></category>
		<guid isPermaLink="false">http://www.remontti.com.br/blog/?p=270</guid>

					<description><![CDATA[<p>Aqui vai uma dica rápida. Se você desejar que não seja gravado os comandos ssh user@ip -p 22  que você digita em seu terminal, que são salvos no arquivo bash_history adicione a seguinte linha no&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/270">Dica de segurança (.bashrc)</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Aqui vai uma dica rápida.<br />
Se você desejar que não seja gravado os comandos <strong><span style="color: #000000;">ssh user@ip -p 22 </span></strong> que você digita em seu terminal, que são salvos no arquivo bash_history adicione a seguinte linha no arquivo ~<span style="color: #000080;">/<strong>.bashrc</strong></span><br />
<span style="color: #999999;"><em>/home/$user/.bashrc </em>ou<em> /root/.bashrc</em></span></p>
<pre class="remontti-code">export HISTIGNORE=&quot;&amp;:ssh *&quot;</pre>
<p><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>O post <a href="https://blog.remontti.com.br/270">Dica de segurança (.bashrc)</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/270/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Conexão SSH sem senha</title>
		<link>https://blog.remontti.com.br/267</link>
					<comments>https://blog.remontti.com.br/267#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Mon, 25 May 2009 14:37:46 +0000</pubDate>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[authorized_keys]]></category>
		<category><![CDATA[conexão]]></category>
		<category><![CDATA[dsa]]></category>
		<category><![CDATA[id_rsa]]></category>
		<category><![CDATA[rsa]]></category>
		<category><![CDATA[senha]]></category>
		<category><![CDATA[ssh]]></category>
		<guid isPermaLink="false">http://www.remontti.com.br/blog/?p=267</guid>

					<description><![CDATA[<p>Ai vai uma dica de como logar num servidor ssh sem uso de senha com segurança. Vamos gerar duas chaves: pública e uma privada. Para que vou querer uma conexão sem senha? Talvez você&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/267">Conexão SSH sem senha</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify;">Ai vai uma dica de como logar num servidor ssh sem uso de senha com segurança. Vamos gerar duas chaves: pública e uma privada.<br />
Para que vou querer uma conexão sem senha? Talvez você tenha vários servidores e um deles é sue backup, e irá enviar arquivos desses servidores para o de backup. </p>
<p>Você poderá criar essas chaves como root ou usuário &#8220;comum&#8221;.<br />
<strong>Cenário:</strong></p>
<pre class="remontti-code">- 200.200.0.14 Servidor Backup 
- 200.200.0.2 Servidor Web</pre>
<p>Por segurança para cada servidor que irá enviar o backup eu irei criar um usuário especifico. </p>
<p>Logue no meu servidor de backup e crie um usuário que irá receber a conexão. Ex.: <strong>bkpweb</strong> </p>
<pre class="remontti-code">$ ssh seu_usuario@200.200.0.14
$ su - 
# adduser bkpweb
# su - bkpweb
$ mkdir .ssh</pre>
<p>Acesse seu servido &#8220;web&#8221;. </p>
<pre class="remontti-code"># ssh-keygen -t rsa </pre>
<pre class="remontti-code">Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:FgexLxcaDa6IVxcx8/lmA/BuE1RID5Rae6V55Qr5oLg root@cobaia
The key&#039;s randomart image is:

+---[RSA 2048]----+
|        X==+.    |
|       . &amp;++  . .|
|      . *oX..= o |
|   . o o.B.=B . .|
|  . o . S.*o== . |
|   .   ..+.+ .o  |
|         .       |
|        E        |
|                 |
+----[SHA256]-----+</pre>
<p>Com isso temos nossas duas chaves. Dois arquivos foram criados em /home/remontti/.ssh/. Sendo eles o<em> id_rsa</em> e <em>id_rsa.pub</em>.</p>
<p>&#8211; <strong>id_rsa</strong> é o arquivo no qual estará guardada sua chave privada. Pois ele será o responsável por toda a segurança de nossa comunicação.<br />
&#8211; <strong>id_rsa.pub</strong> é o arquivo da chave pública, que iremos enviar a todos os servidores para que nosso acesso seja autorizado.</p>
<p>Envie sua chave publica para o servidor de backup para /home/&#8221;USUARIO&#8221;/.ssh/ com o nome de authorized_keys.</p>
<pre class="remontti-code"># scp -P 22  id_rsa.pub bkpweb@200.200.0.14:/home/bkpweb/.ssh/authorized_keys</pre>
<p>Pronto, o servidor 200.200.0.14 aceitara todas vindo do usuário q você criou a chave sem solicitar uma senha usuário &#8220;bkpweb&#8221;.<br />
Faça um teste do seu servidor &#8220;web&#8221; com destino ao de backup:</p>
<pre class="remontti-code"># ssh bkpweb@200.200.0.14 -p 22</pre>
<p>Se tudo ocorreu como deveria não lhe foi mais solicitado senha! Agora você pode usar o comando scp.<br />
Ex.: </p>
<pre class="remontti-code"># scp -P 22  meu_bkp.tar.gz bkpweb@200.200.0.14:/home/bkpweb/</pre>
<p>Faça seu script e agende no cron e poderá ter um backup diário, semanal&#8230;. Utilize como achar melhor.</p>
<p>Ou simplesmente você está criando essa chave para poder acessar seus servidores, roteadores, etc&#8230; </p>
<p>Espero que tenha gostado!</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></p>
<p>O post <a href="https://blog.remontti.com.br/267">Conexão SSH sem senha</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/267/feed</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
	</channel>
</rss>
