<?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>criptografia zabbix Archives - Blog do Gesiel Bernardes</title>
	<atom:link href="https://gesielbernardes.eti.br/tag/criptografia-zabbix/feed" rel="self" type="application/rss+xml" />
	<link>https://gesielbernardes.eti.br/tag/criptografia-zabbix</link>
	<description>Blog sobre Tecnologia e Segurança da Informação</description>
	<lastBuildDate>Thu, 12 May 2016 10:29:33 +0000</lastBuildDate>
	<language>pt-BR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9</generator>
	<item>
		<title>Configurando Criptografia no Zabbix</title>
		<link>https://gesielbernardes.eti.br/criptografia-no-zabbix.html</link>
		
		<dc:creator><![CDATA[gbernardes]]></dc:creator>
		<pubDate>Thu, 28 Apr 2016 17:56:21 +0000</pubDate>
				<category><![CDATA[Gerência de Redes]]></category>
		<category><![CDATA[Zabbix]]></category>
		<category><![CDATA[configurar zabbix]]></category>
		<category><![CDATA[criptografia zabbix]]></category>
		<category><![CDATA[Zabbix 3.0]]></category>
		<guid isPermaLink="false">http://gesielbernardes.eti.br/?p=144</guid>

					<description><![CDATA[<p>Neste post irei abordar como configurar a Criptografia no Zabbix. Na versão 3 do Zabbix é possível criptografar a comunicação entre o Servidor e os Agentes. É possível criptografar também a comunicação entre Servidor e o Proxy. É bom observar que a criptografia nativa protege apenas a comunicação entre Servidor &#60;-&#62; Agente/Proxy. A comunicação do… <span class="read-more"><a href="https://gesielbernardes.eti.br/criptografia-no-zabbix.html">Read More &#187;</a></span></p>
<p>The post <a href="https://gesielbernardes.eti.br/criptografia-no-zabbix.html">Configurando Criptografia no Zabbix</a> appeared first on <a href="https://gesielbernardes.eti.br">Blog do Gesiel Bernardes</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Neste post irei abordar como configurar a Criptografia no Zabbix. Na versão 3 do Zabbix é possível criptografar a comunicação entre o Servidor e os Agentes. É possível criptografar também a comunicação entre Servidor e o Proxy. É bom observar que a criptografia nativa protege apenas a comunicação entre Servidor &lt;-&gt; Agente/Proxy. A comunicação do Server/proxy com banco de dados, bem como entre o frontend e o navegador cliente, não são protegidas.</p>
<p>Um item que deve ser levado em consideração é em relação ao desempenho da comunicação, que cai bastante com o uso da criptografia. Segundo o manual do Zabbix uma consulta que em texto plano demora 200ms para ter resposta pode chegar a 1000ms com o uso da criptografia. Isso pode causar timeout em alguns itens e scripts, que devem ser ajustados para evitar problemas.</p>
<p>O Zabbix permite o uso de chaves pré compartilhadas (PSK) ou Certificados digitais para realizar a criptografia. Ambas possuem vantagens e desvantagens. Iremos realizar a configuração dos dois métodos:</p>
<ul>
<li><a href="#criptografia-com-psk">Criptografia no Zabbix utilizando Chaves Pré-Compartilhadas</a><a></a></li>
<li><a href="#criptografia-com-certificados">Criptografia no Zabbix utilizando Certificados Digitais</a></li>
</ul>
<p>Para o uso da criptografia no Zabbix deve-se habilitar esse recurso ao compila-lo (ex: ./configure [&#8230;] &#8211;with-gnutls). Segundo a documentação, os pacotes pré-compilados (RPM e Deb) possuem criptografia habilitada.</p>
<h2><a name="criptografia-com-psk"></a>Criptografia no Zabbix utilizando Chaves Pré-Compartilhadas (PSK)</h2>
<p>Vantagens:</p>
<ul>
<li>Implementação mais simples</li>
<li>Desempenho melhor, comparado ao uso de Certificados Digitais</li>
</ul>
<p>Desvantagem:</p>
<ul>
<li>As chaves são mostradas na interface web e armazenadas em texto limpo no banco de dados</li>
</ul>
<p><a name=config-cript-com-psk>Configuração:</a><br />
<em>Servidor</em>: Não é necessária nenhuma configuração adicional</p>
<p><em>Agente:</em></p>
<p>Gerar a chave:<br />
# openssl rand -hex 32 &gt; /home/zabbix/zabbix-agent.psk<br />
(abra o arquivo e copie a chave, será necessário para configurar na interface web)</p>
<p>Alterar os seguintes itens no zabbix_agentd.conf:</p>
<p>TLSConnect=psk<br />
TLSAccept=psk<br />
TLSPSKIdentity=PSK01 #Esse item é a identificação da chave; cada chave deve ter sua identificação.<br />
TLSPSKFile=/home/zabbix/zabbix_agentd.psk</p>
<p><em>Configuração na Interface Web:</em></p>
<p>Na configuração do Host, vá em &#8220;Encryption&#8221;, selecione &#8220;PSK&#8221; e configure os itens de acordo com sua configuração:<br />
<a href="https://gesielbernardes.eti.br/wp-content/uploads/2016/04/cript1.png"><img fetchpriority="high" decoding="async" class="alignnone wp-image-145 size-full" src="https://gesielbernardes.eti.br/wp-content/uploads/2016/04/cript1.png" alt="criptografia no zabbix com psk" width="698" height="262" /></a></p>
<p>Inicie o agente, se estiver tudo correto irá funcionar:</p>
<p><a href="https://gesielbernardes.eti.br/wp-content/uploads/2016/04/cript2.png"><img decoding="async" class="alignnone wp-image-146 size-full" src="https://gesielbernardes.eti.br/wp-content/uploads/2016/04/cript2.png" alt="criptografia no zabbix com psk funcionando" width="1043" height="131" /></a></p>
<p>&nbsp;</p>
<h2><a name=criptografia-com-certificados>Criptografia no Zabbix utilizando Certificados Digitais</a></h2>
<p>Vantagens:</p>
<ul>
<li>Implementação &#8220;teoricamente&#8221; mais robusta</li>
<li>Autenticação do Agente/Proxy (controverso)</li>
<li>Possibilidade de uso de CA para gerenciamento de Certificados Digitais</li>
</ul>
<p>Desvantagens:</p>
<ul>
<li>Desempenho inferior</li>
<li>Implementação mais complexa</li>
</ul>
<p>Talvez eu esteja errado, mas me parece que a implementação da criptografia com Certificados Digitais do Zabbix foi aplicada exclusivamente para prover confidencialidade, e foi perdida a oportunidade de utilizar os Certificados para prover a Autenticidade do Host. Isso porque:</p>
<ol>
<li>Você tem que especificar quem assinou o Certificado de cada Host. Isso faz com que não seja necessário que os Certificados sejam assinados por uma mesma CA (Certificate Authority). Seria melhor se você obrigatoriamente tivesse que utilizar a mesma CA que assinou o certificado do Servidor, traria uma confiabilidade maior, além tornar desnecessário o preenchimento do campo &#8220;issuer&#8221; na interface Web.</li>
<li>A verificação  do Certificado/CA é baseada apenas no &#8220;Subject&#8221; do Certificado. Nada impede de um suposto atacante de criar um outro certificado com outra chave privada e utilizar o mesmo &#8220;Subject&#8221;. Me parece que o correto seria utilizar o hash do certificado, para confirmar a autenticidade do mesmo.</li>
</ol>
<h3><a name=config-cript-com-certificados>Configuração:</a></h3>
<p>Criando a CA e assinando certificado do Servidor:<br />
Para esse exemplo irei criar uma CA no Servidor do Zabbix (estou utliizando CentOS 7), e irei utiliza-la para assinar o Certificado do agente.</p>
<p># cd /etc/pki/CA<br />
# openssl req -new -x509 -extensions v3_ca -keyout private/cakey.pem -out cacert.pem -days 3650<br />
(Ele irá pedir uma senha para criação da chave, além de atributos do certificado. Preencha todos os campos, para evitar problemas posteriormente.)<br />
# touch /etc/pki/CA/index.txt<br />
# echo &#8220;01&#8221; &gt; /etc/pki/CA/serial<br />
# mkdir /etc/zabbix/certs<br />
# cd /etc/zabbix/certs<br />
# openssl genrsa -out chave.key 2048<br />
# openssl req -new -key chave.key -out requisicao.csr<br />
(preencha os dados da requisição. O campo &#8220;common name&#8221; deve ser o nome da máquina)<br />
# openssl ca -in requisicao.csr<br />
(a senha que ele solicita é a senha da chave da CA)</p>
<p>Copie o conteúdo do certificado (começa em &#8212;&#8211;BEGIN CERTIFICATE e vai até &#8212;&#8211;END CERTIFICATE &#8211; incluindo estas linhas) e cole em /etc/zabbix/certs/server.pem.</p>
<p>Configurando o Zabbix Server</p>
<p>Edite no arquivo zabbix_server.conf:</p>
<p>TLSCAFile=/etc/pki/CA/cacert.pem<br />
TLSCertFile=/etc/zabbix/certs/server.pem<br />
TLSKeyFile=/etc/zabbix/certs/chave.key</p>
<p>Configurando o Agente:</p>
<p>Gerar o certificado:<br />
# mkdir /etc/zabbix/certs<br />
# cd /etc/zabbix/certs<br />
# openssl genrsa -out chave.key 2048<br />
# openssl req -new -key chave.key -out requisicao.csr</p>
<p>Copie o arquivo requisicao.csr para o servidor (por exemplo, na pasta /tmp). Em seguida, execute <strong>no servidor:<br />
# </strong>openssl ca -in /tmp/requisicao.csr<br />
(digite a senha da chave da CA).</p>
<p>Copie o conteúdo do certificado (começa em &#8212;&#8211;BEGIN CERTIFICATE e vai até &#8212;&#8211;END CERTIFICATE &#8211; incluindo estas linhas) e cole no host(agente) em /etc/zabbix/certs/agente.pem.</p>
<p>Configurar o agente:</p>
<p>Edite no zabbix_agentd.conf:<br />
TLSConnect=cert<br />
TLSAccept=cert<br />
TLSCAFile=/etc/zabbix/certs/cacert.pem<br />
TLSCertFile=/etc/zabbix/certs/agente.pem<br />
TLSKeyFile=/etc/zabbix/certs/chave.key</p>
<p>Configurar a Interface Web</p>
<p>Na configuração do Host, vá em &#8220;Encryption&#8221;, selecione &#8220;Certificate&#8221; e configure os itens de acordo com sua configuração:<br />
<a href="https://gesielbernardes.eti.br/wp-content/uploads/2016/04/cript3.png"><img decoding="async" class="alignnone wp-image-148 size-full" src="https://gesielbernardes.eti.br/wp-content/uploads/2016/04/cript3.png" alt="criptografia no zabbix com certificados" width="717" height="251" /></a></p>
<p>Agora vem o que considero uma bizarrice: O campo &#8220;Issuer&#8221; deve ser preenchido com a informação de &#8220;quem assinou o certificado&#8221;, e o campo &#8220;Suject&#8221; com a informação do certificado. Até aí tudo OK. O detalhe é que para o Zabbix a informação deve ser colocada exatamente contrária  a saída do openssl. Neste teste, por exemplo, a saída do openssl é a seguinte:</p>
<p>Issuer: C=BR, ST=SP, L=Campinas, O=Default Company Ltd, CN=ca-zabbix<br />
Subject: C=BR, ST=SP, O=Default Company Ltd, CN=zabbix-agent.local</p>
<p>No entanto, a implementação do Zabbix pede a sequência contrária: CN,O,L,ST,C. A única forma de arrumar isso sem ter que copiar do erro da Interface web foi utilizando um &#8220;script&#8221; para inverter os campos:</p>
<p>Issuer:<br />
# openssl x509 -inform PEM -in /etc/zabbix/certs/agente.pem -text | grep &#8220;Issuer:&#8221; | cut -d &#8220;:&#8221; -f2 | awk -F, &#8216;{print $5&#8243;,&#8221;$4&#8243;,&#8221;$3&#8243;,&#8221;$2&#8243;,&#8221;$1}&#8217; | sed &#8216;s/ //g&#8217;</p>
<p>Subject:<br />
# openssl x509 -inform PEM -in agent.pem -text | grep &#8220;Subject:&#8221; | cut -d &#8220;:&#8221; -f2 | awk -F, &#8216;{print $4&#8243;,&#8221;$3&#8243;,&#8221;$2&#8243;,&#8221;$1}&#8217; | sed &#8216;s/ //g&#8217;</p>
<p>Uma observação é que, caso você tenha colocado algum espaço no preenchimento do certificado observe se o espaço foi suprimido e corrija caso necessário.</p>
<p>E enfim, se tudo estiver OK vai funcionar bem&#8230;<br />
<a href="https://gesielbernardes.eti.br/wp-content/uploads/2016/04/cert-cript2.png"><img loading="lazy" decoding="async" class="alignnone wp-image-150 size-full" src="https://gesielbernardes.eti.br/wp-content/uploads/2016/04/cert-cript2.png" alt="criptografia no zabbix com certificados funcionando" width="1036" height="106" /></a></p>
<h2>Referência</h2>
<p><a href="https://www.zabbix.com/documentation/3.0/manual/encryption" target="_blank">https://www.zabbix.com/documentation/3.0/manual/encryption</a></p>
<p>The post <a href="https://gesielbernardes.eti.br/criptografia-no-zabbix.html">Configurando Criptografia no Zabbix</a> appeared first on <a href="https://gesielbernardes.eti.br">Blog do Gesiel Bernardes</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
