<?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>Blog do Gesiel Bernardes</title>
	<atom:link href="https://gesielbernardes.eti.br/feed" rel="self" type="application/rss+xml" />
	<link>https://gesielbernardes.eti.br/</link>
	<description>Blog sobre Tecnologia e Segurança da Informação</description>
	<lastBuildDate>Thu, 04 Apr 2024 02:36:50 +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>Comando iptables no CentOS 8</title>
		<link>https://gesielbernardes.eti.br/comando-iptables-no-centos-8.html</link>
		
		<dc:creator><![CDATA[gbernardes]]></dc:creator>
		<pubDate>Wed, 03 Jun 2020 12:28:23 +0000</pubDate>
				<category><![CDATA[Gerência de Redes]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[centos 8]]></category>
		<category><![CDATA[Gerencia de Redes]]></category>
		<category><![CDATA[ifconfig]]></category>
		<guid isPermaLink="false">http://gesielbernardes.eti.br/?p=269</guid>

					<description><![CDATA[<p>O CentOS 8 trouxe várias melhorias em relação a versão anterior (CentOS 7). Em especial, a adição do gerenciador de pacotes &#8220;dnf&#8221;, atualização de pacotes diversos, atualização de kernel, enfim, era uma atualização realmente necessária. Todavia, algumas surpresas sempre ocorrem nessas mudanças de versão. Uma delas, para quem utilizar a versão &#8220;minimal&#8221; para instalação, e… <span class="read-more"><a href="https://gesielbernardes.eti.br/comando-iptables-no-centos-8.html">Read More &#187;</a></span></p>
<p>The post <a href="https://gesielbernardes.eti.br/comando-iptables-no-centos-8.html">Comando iptables no CentOS 8</a> appeared first on <a href="https://gesielbernardes.eti.br">Blog do Gesiel Bernardes</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>O CentOS 8 trouxe várias melhorias em relação a versão anterior (CentOS 7).  Em especial, a adição do gerenciador de pacotes &#8220;dnf&#8221;, atualização de pacotes diversos, atualização de kernel, enfim,  era uma atualização realmente necessária.</p>



<p>Todavia, algumas surpresas sempre ocorrem nessas mudanças de versão. Uma delas, para quem utilizar a versão &#8220;minimal&#8221; para instalação, e a ausência do comando &#8220;iptables&#8221;:<br /></p>



<p> iptables: command not found</p>



<p>Para resolver isso, basta instalar ele usando o dnf:<br /><br /><strong># dnf install iptables</strong><br /><br />Você pode conferir esse e outros comandos no CommandFound.com:<br /><a href="https://commandfound.com/post/ifconfig-command-not-found-almalinux/">https://commandfound.com/post/ifconfig-command-not-found-almalinux/</a></p>
<p>The post <a href="https://gesielbernardes.eti.br/comando-iptables-no-centos-8.html">Comando iptables no CentOS 8</a> appeared first on <a href="https://gesielbernardes.eti.br">Blog do Gesiel Bernardes</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Plugin GuardianKey para SSH</title>
		<link>https://gesielbernardes.eti.br/plugin-guardiankey-para-ssh.html</link>
		
		<dc:creator><![CDATA[gbernardes]]></dc:creator>
		<pubDate>Thu, 25 Jul 2019 17:15:02 +0000</pubDate>
				<category><![CDATA[Gerência de Redes]]></category>
		<category><![CDATA[guardiankey]]></category>
		<category><![CDATA[Segurança da Informação]]></category>
		<category><![CDATA[GuardianKey]]></category>
		<category><![CDATA[segurança da informação]]></category>
		<category><![CDATA[ssh]]></category>
		<guid isPermaLink="false">http://gesielbernardes.eti.br/?p=258</guid>

					<description><![CDATA[<p>Mais um reforço para segurança do SSH! GuardianKey é um sistema que utiliza IA (Inteligência Artificial) para prover mais segurança em operações de &#8220;login&#8221;. Ele utiliza dados contextuais, dados de threat intelligence, entre outros, para verificar se o usuário é quem diz ser. Ou seja: Mesmo que o usuário tenha a senha comprometida, o sistema… <span class="read-more"><a href="https://gesielbernardes.eti.br/plugin-guardiankey-para-ssh.html">Read More &#187;</a></span></p>
<p>The post <a href="https://gesielbernardes.eti.br/plugin-guardiankey-para-ssh.html">Plugin GuardianKey para SSH</a> appeared first on <a href="https://gesielbernardes.eti.br">Blog do Gesiel Bernardes</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Mais um reforço para segurança do SSH!</p>



<p>GuardianKey é um sistema que utiliza IA (Inteligência Artificial) para prover mais segurança em operações de &#8220;login&#8221;. Ele utiliza dados contextuais, dados de threat intelligence, entre outros, para verificar se o usuário é quem diz ser.  Ou seja: Mesmo que o usuário tenha a senha comprometida, o sistema analisará se o perfil de quem está acessando coincide com o padrão utilizado, caso não ele pode enviar alerta para o usuário/administrador ou até bloquear o acesso.</p>



<p>Aqui no blog já postei sobre o<a href="https://gesielbernardes.eti.br/integrando-o-zabbix-com-o-guardiankey.html"> plugin para Zabbix</a>. Recentemente, eles lançaram plugin para esse tipo de análise para o serviço de SSH. Basta instalar o pacote (via yum ou apt), fazer o registro, colocar as informações de registro no arquivo de configuração (/etc/guardiankey/gk.conf), iniciar o serviço e pronto, o serviço já estará funcional. </p>



<p>Saiba mais nos links abaixo:</p>



<ul class="wp-block-list"><li><a href="https://guardiankey.io">Página do GuardianKey</a></li><li><a href="https://guardiankey.io/pt-br/products/guardiankey-for-ssh/">Página do Plugin SSH</a></li><li><a href="https://github.com/pauloangelo/guardiankey-ssh">Plugin SSH do GuardianKey no Github</a></li></ul>



<p></p>
<p>The post <a href="https://gesielbernardes.eti.br/plugin-guardiankey-para-ssh.html">Plugin GuardianKey para SSH</a> appeared first on <a href="https://gesielbernardes.eti.br">Blog do Gesiel Bernardes</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Comando ‘ifconfig’ no Debian 9</title>
		<link>https://gesielbernardes.eti.br/comando-ifconfig-no-debian-9.html</link>
		
		<dc:creator><![CDATA[gbernardes]]></dc:creator>
		<pubDate>Thu, 25 Jul 2019 16:48:49 +0000</pubDate>
				<category><![CDATA[Gerência de Redes]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[Gerencia de Redes]]></category>
		<category><![CDATA[ifconfig]]></category>
		<guid isPermaLink="false">http://gesielbernardes.eti.br/?p=253</guid>

					<description><![CDATA[<p>Problema: ifconfig “command not found” Na instalação padrão do Debian, o pacote &#8220;net-tools&#8221; não vem instalado. Ao tentar executar o comando ifconfig, temos o retorno de “comando não encontrado&#8221;: # ifconfig-bash: ifconfig: command not found Como Resolver &#8211; ‘ifconfig’ no Debian 9 Para utilizar este comando, é necessário instalar o pacote “net-tools”: # apt-get update#… <span class="read-more"><a href="https://gesielbernardes.eti.br/comando-ifconfig-no-debian-9.html">Read More &#187;</a></span></p>
<p>The post <a href="https://gesielbernardes.eti.br/comando-ifconfig-no-debian-9.html">Comando ‘ifconfig’ no Debian 9</a> appeared first on <a href="https://gesielbernardes.eti.br">Blog do Gesiel Bernardes</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">Problema: ifconfig “command not found”</h2>



<p>Na instalação padrão do Debian, o pacote &#8220;net-tools&#8221; não vem instalado. Ao tentar executar o comando ifconfig, temos o retorno de “comando não encontrado&#8221;:</p>



<p># ifconfig<br />-bash: ifconfig: command not found</p>



<h2 class="wp-block-heading">Como Resolver &#8211; ‘ifconfig’ no Debian 9</h2>



<p>Para utilizar este comando, é necessário instalar o pacote “net-tools”:</p>



<p><strong># apt-get update</strong><br /><strong># apt-get  install net-tools</strong></p>



<p>Caso precise configurar a Interface antes de instalar o pacote, você pode utilizar o comando “ip addr”:</p>



<p>Ver status das Interfaces:<br /># ip addr show</p>



<p>Adicionar o IP &nbsp;10.0.0.10 á interface ens192;<br /># ip addr add 10.0.0.10/8 dev ens192</p>



<p> Você pode utilizar o comando “ip route” para adicionar o gateway: </p>



<p># ip route add default via 10.0.0.1 dev ens192</p>



<p>Por fim, não se esqueça de configurar o DNS:<br /># echo “nameserver 8.8.8.8” &gt;&gt; /etc/resolv.conf</p>



<h3 class="wp-block-heading">Referências</h3>



<ul class="wp-block-list">
<li><a aria-label="ifconfig centos 7  (abre numa nova aba)" href="https://gesielbernardes.eti.br/ifconfig-centos-7.html" target="_blank" rel="noreferrer noopener">ifconfig centos 7 </a></li>



<li> <a href="https://packages.debian.org/stretch/net-tools">https://packages.debian.org/stretch/net-tools</a> </li>



<li><a href="https://commandfound.com/post/ifconfig-command-not-found-debian">https://commandfound.com/post/ifconfig-command-not-found-debian</a></li>
</ul>



<figure class="wp-block-image"><img decoding="async" width="378" height="89" src="https://gesielbernardes.eti.br/wp-content/uploads/2014/07/ifconfig.png" alt="ifconfig-debian-9" class="wp-image-95" srcset="https://gesielbernardes.eti.br/wp-content/uploads/2014/07/ifconfig.png 378w, https://gesielbernardes.eti.br/wp-content/uploads/2014/07/ifconfig-300x70.png 300w" sizes="(max-width: 378px) 100vw, 378px" /><figcaption class="wp-element-caption">ifconfig-debian-9</figcaption></figure>
<p>The post <a href="https://gesielbernardes.eti.br/comando-ifconfig-no-debian-9.html">Comando ‘ifconfig’ no Debian 9</a> appeared first on <a href="https://gesielbernardes.eti.br">Blog do Gesiel Bernardes</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Integrando o Zabbix com o GuardianKey</title>
		<link>https://gesielbernardes.eti.br/integrando-o-zabbix-com-o-guardiankey.html</link>
		
		<dc:creator><![CDATA[gbernardes]]></dc:creator>
		<pubDate>Sun, 28 Apr 2019 16:58:15 +0000</pubDate>
				<category><![CDATA[Gerência de Redes]]></category>
		<category><![CDATA[guardiankey]]></category>
		<category><![CDATA[Segurança da Informação]]></category>
		<category><![CDATA[Zabbix]]></category>
		<category><![CDATA[autenticação segura]]></category>
		<category><![CDATA[GuardianKey]]></category>
		<category><![CDATA[segurança da informação]]></category>
		<guid isPermaLink="false">http://gesielbernardes.eti.br/?p=248</guid>

					<description><![CDATA[<p>Neste post irei mostrar como implantar os serviços do GuardianKey em uma instalação do Zabbix. O GuardianKey é um serviço que protege a autenticação do sistema (nesse caso o Zabbix) usando técnicas de Machine Learning, e incrementa recursos valiosos contra acessos não autorizados. Farei um post mais detalhado sobre ele futuramente. Nessa implementação irei abordar… <span class="read-more"><a href="https://gesielbernardes.eti.br/integrando-o-zabbix-com-o-guardiankey.html">Read More &#187;</a></span></p>
<p>The post <a href="https://gesielbernardes.eti.br/integrando-o-zabbix-com-o-guardiankey.html">Integrando o Zabbix com o GuardianKey</a> appeared first on <a href="https://gesielbernardes.eti.br">Blog do Gesiel Bernardes</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Neste post irei mostrar como implantar os serviços do GuardianKey em uma instalação do Zabbix.</p>



<p>O <a href="https://guardiankey.io">GuardianKey</a> é um serviço que protege a autenticação do sistema (nesse caso o Zabbix) usando técnicas de Machine Learning, e incrementa recursos valiosos contra acessos não autorizados. Farei um post mais detalhado sobre ele futuramente. Nessa implementação irei abordar a utilização do GuardianKey Security Auth Lite, que é gratuito até 10 usuários. Mais detalhes em:  <a href="https://guardiankey.io/pt-br/services/guardiankey-auth-security-lite/">https://guardiankey.io/pt-br/services/guardiankey-auth-security-lite/</a> .</p>



<h3 class="wp-block-heading">Instalação do Plugin</h3>



<p>Basta fazer o download do plugin, e executa-lo na pasta de arquivos frontend do Zabbix (normalmente /usr/share/zabbix):<br /><br /># cd /usr/share/zabbix<br /># wget https://raw.githubusercontent.com/pauloangelo/guardiankey-plugin-zabbix/master/install.sh<br /><br /># sh install.sh</p>



<p>Por fim, você deve logar no <a href="https://panel.guardiankey.io">painel </a>do GuardianKey para configurar: Envio de e-mails, notificar os usuários, etc. Você pode ter informações detalhadas do painel do GuardianKey no link:  <br /><a href="https://guardiankey.io/pt-br/documentation/panel-documentation/">https://guardiankey.io/pt-br/documentation/panel-documentation/</a> <br /><br /><br /><br /></p>



<p></p>



<p></p>
<p>The post <a href="https://gesielbernardes.eti.br/integrando-o-zabbix-com-o-guardiankey.html">Integrando o Zabbix com o GuardianKey</a> appeared first on <a href="https://gesielbernardes.eti.br">Blog do Gesiel Bernardes</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Instalando ModSecurity no CentOS 7 (com Apache)</title>
		<link>https://gesielbernardes.eti.br/instalando-modsecurity-no-centos-7.html</link>
		
		<dc:creator><![CDATA[gbernardes]]></dc:creator>
		<pubDate>Wed, 01 Nov 2017 01:40:11 +0000</pubDate>
				<category><![CDATA[Segurança da Informação]]></category>
		<category><![CDATA[Web]]></category>
		<guid isPermaLink="false">http://gesielbernardes.eti.br/?p=213</guid>

					<description><![CDATA[<p>    ModSecurity é um firewall de aplicação web (WAF) open source, mantido pela  Trustwave Labs. Ele aumenta consideravelmente a segurança do ambiente Web, protegendo o ambiente contra ataques mais comuns, como SQL Injection, XSS, entre outros. Nesse post iremos abordar a instalação do ModSecurity no CentOS 7 com Apache/ Pré-requisitos: # yum install httpd… <span class="read-more"><a href="https://gesielbernardes.eti.br/instalando-modsecurity-no-centos-7.html">Read More &#187;</a></span></p>
<p>The post <a href="https://gesielbernardes.eti.br/instalando-modsecurity-no-centos-7.html">Instalando ModSecurity no CentOS 7 (com Apache)</a> appeared first on <a href="https://gesielbernardes.eti.br">Blog do Gesiel Bernardes</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><span style="font-weight: 400;">    ModSecurity é um firewall de aplicação web (WAF) open source, mantido pela  Trustwave Labs. Ele aumenta consideravelmente a segurança do ambiente Web, protegendo o ambiente contra ataques mais comuns, como SQL Injection, XSS, entre outros. Nesse post iremos abordar a instalação do ModSecurity no CentOS 7 com Apache/</span></p>
<h4>Pré-requisitos:</h4>
<p># yum install httpd epel-release git wget</p>
<h4>Instalação do ModSecurity</h4>
<p># yum install mod_security mod_evasive</p>
<p>Instalação das regras:</p>
<p># cd /etc/httpd/modsecurity.d<br />
# rm -rf activated_rules/<br />
#  git clone https://github.com/SpiderLabs/owasp-modsecurity-crs .<br />
# mv crs-setup.conf.example crs-setup.conf<br />
# vi /etc/httpd/conf.d/mod_security.conf<br />
Altere a linha 4 para:<br />
IncludeOptional modsecurity.d/rules/*.conf</p>
<p># vi /etc/httpd/modsecurity.d/rules/REQUEST-941-APPLICATION-ATTACK-XSS.conf<br />
Comente (coloque # no inicio da linha) da linha 37 (SecRule REQUEST_COOKIES|!REQUEST_COOKIES:/&#8230;) até a linha 64( setvar:tx.%{rule.id}&#8230;), e depois comente da linha 751 até a 779.</p>
<p># vi /etc/httpd/modsecurity.d/rules/REQUEST-942-APPLICATION-ATTACK-SQLI.conf<br />
Comente da linha 43 até a 68</p>
<p>Reinicie o Apache:<br />
# systemctl restart httpd</p>
<p>Observação: A configuração padrão vem com o nível &#8220;paranoico&#8221; 1, ou seja, irá fornecer uma proteção básica porém irá gerar muito pouco ou quase nenhum falso positivo. Em minha opinião, o nível &#8220;paranoico&#8221; 2 tem uma relação custo-benefício melhor, uma vez que oferece um nível maior de proteção com uma quantidade aceitável de falso positivo. Para alterar para o nível paranoico 2, faça a seguinte alteração:</p>
<p># vi /etc/httpd/modsecurity.d/crs-setup.conf<br />
(linha 171)<br />
SecAction \<br />
&#8220;id:900000,\<br />
phase:1,\<br />
nolog,\<br />
pass,\<br />
t:none,\<br />
setvar:tx.paranoia_level=2&#8221;</p>
<p>Agora reinicie o serviço:<br />
# systemctl restart httpd</p>
<p>The post <a href="https://gesielbernardes.eti.br/instalando-modsecurity-no-centos-7.html">Instalando ModSecurity no CentOS 7 (com Apache)</a> appeared first on <a href="https://gesielbernardes.eti.br">Blog do Gesiel Bernardes</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Instalando Config Server Firewall (CSF) no Centos 7</title>
		<link>https://gesielbernardes.eti.br/instalando-csf-no-centos7.html</link>
		
		<dc:creator><![CDATA[gbernardes]]></dc:creator>
		<pubDate>Mon, 16 Oct 2017 13:13:53 +0000</pubDate>
				<category><![CDATA[Segurança da Informação]]></category>
		<guid isPermaLink="false">http://gesielbernardes.eti.br/?p=209</guid>

					<description><![CDATA[<p>O CSF é uma aplicação que gerencia regras de firewall. Além da funcionalidade básica de um firewall, o CSF inclui outros recursos de segurança, como detecção de login/intrusão/inundação. Ele é capaz de reconhecer muitos ataques, como varreduras de portas, inundações SYN e ataques de força bruta em muitos serviços. Iremos abordar a instalação do CSF no… <span class="read-more"><a href="https://gesielbernardes.eti.br/instalando-csf-no-centos7.html">Read More &#187;</a></span></p>
<p>The post <a href="https://gesielbernardes.eti.br/instalando-csf-no-centos7.html">Instalando Config Server Firewall (CSF) no Centos 7</a> appeared first on <a href="https://gesielbernardes.eti.br">Blog do Gesiel Bernardes</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><span style="font-weight: 400;">O CSF é uma aplicação que gerencia regras de firewall. Além da funcionalidade básica de um firewall, o CSF inclui outros recursos de segurança, como detecção de login/intrusão/inundação. Ele é capaz de reconhecer muitos ataques, como varreduras de portas, inundações SYN e ataques de força bruta em muitos serviços. Iremos abordar a instalação do CSF no CentOS 7.</span></p>
<h2><span style="font-weight: 400;">Instalação no CentOS 7:</span></h2>
<p><span style="font-weight: 400;"># yum install wget vim perl-libwww-perl.noarch perl-Time-HiRes</span><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;"># cd /usr/src/</span><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;"># wget </span><a href="https://download.configserver.com/csf.tgz"><span style="font-weight: 400;">https://download.configserver.com/csf.tgz</span><span style="font-weight: 400;"><br />
</span></a><span style="font-weight: 400;"># tar -xzf csf.tgz</span><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;"># cd csf</span><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;"># sh install.sh</span></p>
<p><span style="font-weight: 400;">Testando a instalação:</span><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;"># cd /usr/local/csf/bin/</span><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;"># perl csftest.pl</span><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;">Resultado esperado:<br />
{&#8230;}</span><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;">RESULT: csf should function on this server</span></p>
<h2>Configurando o CSF</h2>
<p><span style="font-weight: 400;"># vi /etc/csf/csf.conf</span><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;">TESTING = &#8220;0&#8221;</span></p>
<p><span style="font-weight: 400;"># systemctl start csf</span><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;"># systemctl start lfd</span><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;"># systemctl enable csf</span><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;"># systemctl enable lfd</span></p>
<p><span style="font-weight: 400;">Você pode listar as regras digitando:</span><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;"># csf -l</span></p>
<p>&nbsp;</p>
<p>The post <a href="https://gesielbernardes.eti.br/instalando-csf-no-centos7.html">Instalando Config Server Firewall (CSF) no Centos 7</a> appeared first on <a href="https://gesielbernardes.eti.br">Blog do Gesiel Bernardes</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Configurando Criptografia do Zabbix no Windows</title>
		<link>https://gesielbernardes.eti.br/configurando-criptografia-do-agente-zabbix-no-windows.html</link>
		
		<dc:creator><![CDATA[gbernardes]]></dc:creator>
		<pubDate>Fri, 06 May 2016 18:50:08 +0000</pubDate>
				<category><![CDATA[Gerência de Redes]]></category>
		<category><![CDATA[Segurança da Informação]]></category>
		<guid isPermaLink="false">http://gesielbernardes.eti.br/?p=154</guid>

					<description><![CDATA[<p>Neste post abordarei a configuração da Criptografia do Zabbix no Windows. O agente para Windows disponível na página de downloads do Zabbix não possui suporte a criptografia habilitado.  Uma alternativa seria compilar o agente para Windows com suporte a criptografia. Todavia, encontrei nesta página do site do Zabbix agentes compilados com criptografia habilitada. Então, vamos lá: Faça o… <span class="read-more"><a href="https://gesielbernardes.eti.br/configurando-criptografia-do-agente-zabbix-no-windows.html">Read More &#187;</a></span></p>
<p>The post <a href="https://gesielbernardes.eti.br/configurando-criptografia-do-agente-zabbix-no-windows.html">Configurando Criptografia do Zabbix no Windows</a> appeared first on <a href="https://gesielbernardes.eti.br">Blog do Gesiel Bernardes</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Neste post abordarei a configuração da Criptografia do Zabbix no Windows.<br />
O agente para Windows disponível na página de downloads do Zabbix não possui suporte a criptografia habilitado.  Uma alternativa seria compilar o agente para Windows com suporte a criptografia. Todavia, encontrei <a href="https://support.zabbix.com/browse/ZBXNEXT-3047" target="_blank">nesta página</a> do site do Zabbix agentes compilados com criptografia habilitada. Então, vamos lá:</p>
<ol>
<li>Faça o download do agente de acordo com sua arquitetura:<br />
x86:  https://support.zabbix.com/secure/attachment/40104/Zabbix-3.0.1-with-OpenSSL-1.0.2c-x86.zip<br />
x64: https://support.zabbix.com/secure/attachment/40105/Zabbix-3.0.1-with-OpenSSL-1.0.2f-x64.zip</li>
<li>Extraia o arquivo na pasta que deseja a instalação (ex: C:\zabbix)</li>
<li>Crie o arquivo de configuração (ex: c:\zabbix\zabbix_agentd.conf), e adicione na configuração as opções relacionadas a criptografia (PSK ou Certificados). Você pode conferir <a href="https://gesielbernardes.eti.br/criptografia-no-zabbix.html" target="_blank">neste post</a> as configurações de criptografia do Agente, e <a href="https://www.zabbix.com/documentation/3.0/pt/manual/appendix/config/zabbix_agentd_win">nesta página</a> você encontra todas as opções de configuração do Agente.</li>
<li>Instale o serviço do Zabbix. Neste exemplo, minha instalação está na pasta C:\zabbix:<br />
Abra o cmd (como Administrador) e digite:<br />
C:\zabbix\zabbix_agentd -i -c &#8220;C:\zabbix\zabbix_agentd.conf&#8221;</li>
</ol>
<p>E pronto! A instalação com suporte a TLS está feita&#8230;.</p>
<p>The post <a href="https://gesielbernardes.eti.br/configurando-criptografia-do-agente-zabbix-no-windows.html">Configurando Criptografia do Zabbix no Windows</a> appeared first on <a href="https://gesielbernardes.eti.br">Blog do Gesiel Bernardes</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<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 loading="lazy" 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>
		<item>
		<title>Migração para o Zabbix 3.0</title>
		<link>https://gesielbernardes.eti.br/migracao-para-o-zabbix-3-0.html</link>
		
		<dc:creator><![CDATA[gbernardes]]></dc:creator>
		<pubDate>Thu, 03 Mar 2016 13:56:59 +0000</pubDate>
				<category><![CDATA[Gerência de Redes]]></category>
		<category><![CDATA[Zabbix]]></category>
		<guid isPermaLink="false">http://gesielbernardes.eti.br/?p=133</guid>

					<description><![CDATA[<p>Neste post irei demonstrar uma maneira simples de migrar do Zabbix 2.x para o Zabbix 3.0 no CentOS 7. Uma leitura &#8220;pré-upgrade&#8221; que recomendo é &#8220;5 dicas antes de realizar a migração&#8221; do Hernandes Martins. Este tutorial foi baseado na instalação com pacotes pré-compilados. Neste cenário já temos o Zabbix 2.4 instalado via yum, a partir do… <span class="read-more"><a href="https://gesielbernardes.eti.br/migracao-para-o-zabbix-3-0.html">Read More &#187;</a></span></p>
<p>The post <a href="https://gesielbernardes.eti.br/migracao-para-o-zabbix-3-0.html">Migração para o Zabbix 3.0</a> appeared first on <a href="https://gesielbernardes.eti.br">Blog do Gesiel Bernardes</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Neste post irei demonstrar uma maneira simples de migrar do Zabbix 2.x para o Zabbix 3.0 no CentOS 7. Uma leitura &#8220;pré-upgrade&#8221; que recomendo é &#8220;<a href="http://www.unirede.net/2016/02/26/5-dicas-antes-de-migrar-para-o-zabbix-3-0/" target="_blank">5 dicas antes de realizar a migração</a>&#8221; do <a class="url fn n" title="View all posts by Hernandes Martins" href="http://hernandesmartins.blogspot.com.br/" target="_blank">Hernandes Martins</a>.</p>
<p>Este tutorial foi baseado na instalação com pacotes pré-compilados. Neste cenário já temos o Zabbix 2.4 instalado via yum, a partir do repositório do Zabbix.</p>
<p>Vale ressaltar que este tutorial só se aplica ao CentOS 7. Para o CentOS 6 não vai funcionar porque o pacote &#8220;zabbix-server&#8221; 3.0  não está disponível nos repositórios do Zabbix.</p>
<h2>Migrando para o Zabbix 3.0</h2>
<h3>Parar o serviço</h3>
<p>Primeiro passo é parar o serviço do Zabbix</p>
<p># systemctl stop zabbix-server<br />
# sustemctl stop zabbix-agent</p>
<h3>Realizar o Upgrade</h3>
<p>Basta reinstalar o pacote &#8220;zabbix-release&#8221;, instalando do Zabbix 3.0. Veja:</p>
<p># yum remove zabbix-release<br />
# yum install http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm<br />
# yum clean all<br />
# yum update</p>
<p>Neste momento ele irá atualizar todos os pacotes do Zabbix 2.x para o Zabbix 3.0.</p>
<h3>Subir o serviço</h3>
<p>Feito o upgrade, basta dar o &#8220;start&#8221; no serviço zabbix-server, que assim que subir ele irá realizar a atualização do banco de dados, processo esse que pode demorar (muito).</p>
<p># systemctl start zabbix-server</p>
<p>Você pode acompanhar a migração da base olhando o arquivo de log:</p>
<p># tail -f /var/log/zabbix/zabbix_server.log</p>
<p>12248:20160302:163735.560 current database version (mandatory/optional): 02040000/02040000<br />
12248:20160302:163735.560 required mandatory version: 03000000<br />
12248:20160302:163735.560 starting automatic database upgrade<br />
12248:20160302:163735.580 completed 0% of database upgrade<br />
12248:20160302:163735.585 completed 1% of database upgrade<br />
12248:20160302:163735.597 completed 2% of database upgrade<br />
12248:20160302:163735.607 completed 3% of database upgrade<br />
12248:20160302:163735.616 completed 4% of database upgrade<br />
12248:20160302:163735.622 completed 5% of database upgrade<br />
12248:20160302:163735.638 completed 6% of database upgrade<br />
12248:20160302:163735.655 completed 7% of database upgrade<br />
12248:20160302:163735.669 completed 8% of database upgrade<br />
12248:20160302:163735.685 completed 9% of database upgrade<br />
12248:20160302:163735.706 completed 10% of database upgrade<br />
12248:20160302:163735.708 completed 11% of database upgrade<br />
12248:20160302:163735.710 completed 12% of database upgrade<br />
&#8230;</p>
<h2>Referência:</h2>
<p><a href="https://www.zabbix.com/documentation/3.0/manual/installation/upgrade" target="_blank">https://www.zabbix.com/documentation/3.0/manual/installation/upgrade</a></p>
<p>The post <a href="https://gesielbernardes.eti.br/migracao-para-o-zabbix-3-0.html">Migração para o Zabbix 3.0</a> appeared first on <a href="https://gesielbernardes.eti.br">Blog do Gesiel Bernardes</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Configurar e trabalhar com SELinux (CentOS)</title>
		<link>https://gesielbernardes.eti.br/configurar-selinux.html</link>
		
		<dc:creator><![CDATA[gbernardes]]></dc:creator>
		<pubDate>Mon, 15 Feb 2016 12:11:51 +0000</pubDate>
				<category><![CDATA[Segurança da Informação]]></category>
		<category><![CDATA[configurar selinux]]></category>
		<category><![CDATA[desabilitar selinux]]></category>
		<category><![CDATA[disable selinux]]></category>
		<category><![CDATA[selinux]]></category>
		<category><![CDATA[selinux centos]]></category>
		<guid isPermaLink="false">http://gesielbernardes.eti.br/?p=116</guid>

					<description><![CDATA[<p>O SELinux é uma importante camada de proteção para os servidores Linux. Infelizmente, é muito comum &#8211; e até corriqueiro &#8211; os administradores de servidores desabilitarem ele, sem saber o quão importante ele é para a segurança do sistema. Este artigo é um resumo de uma série que escrevi para o CSIRT Unicamp (links no… <span class="read-more"><a href="https://gesielbernardes.eti.br/configurar-selinux.html">Read More &#187;</a></span></p>
<p>The post <a href="https://gesielbernardes.eti.br/configurar-selinux.html">Configurar e trabalhar com SELinux (CentOS)</a> appeared first on <a href="https://gesielbernardes.eti.br">Blog do Gesiel Bernardes</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>O SELinux é uma importante camada de proteção para os servidores Linux. Infelizmente, é muito comum &#8211; e até corriqueiro &#8211; os administradores de servidores desabilitarem ele, sem saber o quão importante ele é para a segurança do sistema. Este artigo é um resumo de uma série que escrevi para o <a href="https://www.security.unicamp.br" target="_blank">CSIRT Unicamp </a>(links no final da página).</p>
<h2>Introdução ao SELinux</h2>
<p>Mesmo sendo conhecido por grande parte dos administradores de redes/sistemas, o uso mais comum consiste basicamente em “desabilitá-lo”. Por requerer um trabalho adicional, ou por não saber configurar o SELinux, ou por outros motivos, os administradores abrem mão de um importante aliado na proteção do servidor. Segundo estatísticas do CSIRT Unicamp, ao menos 70% dos problemas de Segurança em servidores web no ano de 2013 poderiam ter sido evitados se estivessem com SELinux ativo.</p>
<p>SELinux é a implantação do mecanismo de Segurança MAC (Mandatory Access Control) no kernel do Linux. Foi criado pela NSA (National Security Agency), e impõe regras em arquivos e processos em um sistema Linux.<br />
A maioria dos sistemas utilizam DAC ( Discretionary Access Control) para prover segurança do sistema. De uma forma geral, DAC é um controle de acesso em que o usuário tem controle total dos arquivos que possui e executa. Uma vez definida estas permissões, não há nenhuma outra restrição para execução dos processos/arquivos. Isto pode ser um problema quando, por exemplo, o usuário (ou um processo iniciado pelo mesmo) não atribui a permissão adequada a um determinado arquivo, deixando-o exposto. Ou então quando um programa foge do seu comportamento “normal”. Vejamos um exemplo: O usuário apache está sendo utilizado para executar o software Apache. Durante sua execução, devido uma falha de programação no código da página, o processo recebe uma requisição para acessar o arquivo /etc/passwd. As permissões do arquivo são as seguintes:</p>
<p># ls -l /etc/passwd<br />
-rw-r&#8211;r&#8211; 1 root root 1760 Out 23 11:12 /etc/passwd</p>
<p>Segundo as permissões do arquivo /etc/passwd, todos podem ler o arquivo. Logo, o Apache poderá exibi-lo sem nenhum problema. Ainda neste exemplo, se a falha do código da página permitisse, seria possível o Apache salvar um arquivo em qualquer local que tiver permissão de escrita.<br />
Mandatory Access Control (MAC), provido pelo SELinux, restringe o nível de controle que os usuários tem sobre os objetos que eles criam, e adiciona categorias e rótulos a todos os objetos do sistema de arquivos. Usuários e processos devem ter acesso adequado a estas categorias e rótulos para que então possam interagir com esses objetos. Quando corretamente implementado, MAC permite ao sistema defender-se adequadamente. A sua capacidade de limitar os privilégios associados a processos de execução limita o âmbito de dano potencial, que pode resultar da exploração de vulnerabilidades em aplicações e serviços do sistema.<br />
Como aplicação do SELinux, o que se tem são rótulos contendo informações relevantes para a segurança de processos e arquivos. Essa informação é chamada de Contexto SELinux (SELinux context), e pode ser obtida utilizando a opção “-Z” no comando “ls”:</p>
<p># ls -lZ /etc/passwd<br />
-rw-r&#8211;r&#8211;. root root system_u:object_r:etc_t:s0 /etc/passwd</p>
<p>No arquivo acima temos o contexto do usuário (system_u), a regra (object_r), o tipo (etc_t) e o nível (s0). Estas informações são utilizadas para determinar o acesso do usuário ao arquivo. Agora, vamos voltar ao exemplo anterior, e considerar que neste sistema o SELinux está ativo. Verificaremos então o contexto do processo do Apache:</p>
<p># ps axZ | grep httpd<br />
unconfined_u:system_r:httpd_t:s0 6906 ? Ss 0:00 /usr/sbin/httpd</p>
<p>Logo, como o contexto do processo não coincide com o contexto do arquivo, o acesso ao mesmo será NEGADO, mesmo que nas permissões DAC o mesmo tenha permissão para tanto.</p>
<h2>Modificando contextos</h2>
<p>Conforme visto anteriormente, o SELinux tem seu funcionamento baseado em rótulos e em políticas de segurança. Os rótulos dos usuários, arquivos e processos definem o contexto de segurança de cada objeto. Colocando em uma aplicação prática, vejamos o exemplo a seguir:</p>
<p># ls -Z /var/www/html/<br />
-rw-r&#8212;&#8211;. root apache unconfined_u:object_r:user_home_t:s0 index.html</p>
<p>Em quase todos os casos, o campo do contexto que realmente importa é o terceiro campo; ele indica o tipo do objeto (neste caso, user_home_t indica que o tipo de arquivo é um arquivo de usuário “humano”). Considerando que este arquivo é uma página que será utilizada pelo Apache, conclui-se que ele não está com o contexto apropriado (que neste caso seria “httpd_sys_content_t”), logo não irá funcionar. Então, é necessário alterar o tipo de arquivo no contexto para que o mesmo funcione:</p>
<p># chcon -R -t httpd_sys_content_t /var/www/html/</p>
<p>Assim como o chmod é utilizado para alterar permissões DAC, o chcon pode ser utilizado para alterar o contexto dos arquivos. Porém todas as alterações realizadas com o chcon são desfeitas quando o sistema é reiniciado. Para que a alteração seja permanente, deve-se utilizar o semanage:</p>
<p># semanage fcontext -m -t httpd_sys_content_t /var/www/html/index.html</p>
<p>Alterar o contexto de arquivo por arquivo não parece ser muito produtivo. Por isso, você pode utilizar expressões regulares para alterar vários arquivos de uma vez só:</p>
<p># semanage fcontext -m -t httpd_sys_content_t &#8220;/var/www/html(/.*)?&#8221;</p>
<p>Se o retorno que você tiver for o abaixo, basta você trocar o “-m” (modificar) pelo “-a” (adicionar) no comando:</p>
<p>usr/sbin/semanage: O contexto de arquivo para /var/www/html não está definido</p>
<p># semanage fcontext -a -t httpd_sys_content_t &#8220;/var/www/html(/.*)?&#8221;</p>
<p>Após realizar as alterações com o semanage, é necessário utilizar o “restorecon” para aplicar as alterações:</p>
<p># restorecon -Rv /var/www/html</p>
<p>Agora, o arquivo já está com o contexto que permitirá seu funcionamento:</p>
<p># ls -Z /var/www/html/<br />
-rwxr-x&#8212;. root apache unconfined_u:object_r:httpd_sys_content_t:s0 index.html</p>
<h2>Políticas Booleanas</h2>
<p>Além do contexto, o SELinux utiliza políticas pré-definidas para cada serviço para restringir/conceder acesso á determinadas funções. Você pode visualiza-las utilizando o comando abaixo:</p>
<p># semanage boolean -l</p>
<p>Supondo que desejo que o home dos usuários seja acessível pelo apache (crio lá no home do usuário uma pasta public_html para o usuário acessar meusite.com/~usuario). Se não alterar nada, o SELinux irá bloquear o acesso. Então, listando as políticas, temos:</p>
<p># semanage boolean -l | grep -E &#8216;httpd.*home&#8217;<br />
httpd_enable_homedirs (desativado,desativado) Allow httpd to read home directories</p>
<p>Com isso, confirmamos que a esta opção está desativada. Vamos ativá-la então:</p>
<p># setsebool -P httpd_enable_homedirs 1</p>
<h2>Liberar Portas</h2>
<p>O SELinux também provê controle sobre qual serviço pode acessar qual porta (para o desespero de alguns). A lista de portas/serviços liberados você pode obter com o comando abaixo:</p>
<p># semanage port -l</p>
<p>Usando como exemplo um servidor apache, que quero que o mesmo funcione na porta 25000/TCP. Porém, nas políticas SELinux esta porta não está liberada:</p>
<p># semanage port -l | grep http _port<br />
http_port_t tcp 80, 81, 443, 488, 8008, 8009, 8443, 9000</p>
<p>Então, vamos adicionar a porta 25000 á regra:</p>
<p># semanage port -a -t http_port_t -p tcp 25000</p>
<h2>Resolvendo problemas</h2>
<p><strong>     </strong>Muitas vezes, por diversas razões, não conseguimos impedir que o SELinux interfira no funcionamento adequado de determinados softwares. Para solucionar casos deste tipo, podemos utilizar o audit2allow para entender melhor o problema ou para criar módulos de políticas para SELinux.</p>
<p>O primeiro passo é verificar os logs em /var/log/audit,log, que terá registros semelhantes a esse:</p>
<p>type=AVC msg=audit(1455199601.283:181376): avc: denied { setattr } for pid=7489 comm=&#8221;mingetty&#8221; name=&#8221;tty6&#8243; dev=devtmpfs ino=5354 scontext=system_u:system_r:getty_t:s0 tcontext=system_u:object_r:tmpfs_t:s0 tclass=chr_file<br />
type=SYSCALL msg=audit(1455199601.283:181376): arch=c000003e syscall=92 success=no exit=-13 a0=7ffdf8b4b090 a1=0 a2=0 a3=7ffdf8b4acd0 items=0 ppid=1 pid=7489 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 comm=&#8221;mingetty&#8221; exe=&#8221;/sbin/mingetty&#8221; subj=system_u:system_r:getty_t:s0 key=(null)<br />
type=AVC msg=audit(1455199606.148:181377): avc: denied { setattr } for pid=7490 comm=&#8221;mingetty&#8221; name=&#8221;tty2&#8243; dev=devtmpfs ino=5350 scontext=system_u:system_r:getty_t:s0 tcontext=system_u:object_r:tmpfs_t:s0 tclass=chr_file</p>
<p>Neste exemplo, SELinux está bloqueando a função &#8220;setattr&#8221; para a aplicação &#8220;mingetty&#8221;. Iremos usar o audit2allow para criar um módulo de política SELinux para corrigir tal erros.</p>
<p>Para gerar um relatórios &#8220;humano&#8221; dos eventos do SELinux, você pode utilizar o comando abaixo:<br />
# audit2allow -a</p>
<p>O comando acima irá analisar todos os registros contidos em /var/log/audit.log. Caso queira uma análise apenas para um erro específico, você pode usar o &#8220;grep&#8221; para filtrar os eventos:<br />
# grep &#8220;mingetty&#8221; /var/log/audit.log | allow2audit -w</p>
<p>Para criar um modulo de política SELinux, utilze a opção &#8220;-M&#8221;:<br />
# audit2allow -a -M meumodulo</p>
<p>Posso também utilizar o &#8220;grep&#8221;, como no exemplo anterior:<br />
# grep &#8220;mingetty&#8221; /var/log/audit.log | allow2audit -M meumodulo</p>
<p>Ele irá criar um arquivo &#8220;.pp&#8221; e um .&#8221;te&#8221; no diretório corrente. Para instalar o módulo, você utilize o comando:<br />
# semodule -i meumodulo.pp</p>
<p>Em seguinda, habilite o módulo:<br />
# semodule -e meumodulo</p>
<h2>Referências:</h2>
<p><a href="https://www.security.unicamp.br/54-selinux-um-importante-aliado-na-seguranca-de-servidores-linux-parte-1.html" target="_blank">https://www.security.unicamp.br/54-selinux-um-importante-aliado-na-seguranca-de-servidores-linux-parte-1.html</a></p>
<p><a href="https://www.security.unicamp.br/86-selinux-um-importante-aliado-na-seguranca-de-servidores-linux-parte-2.html" target="_blank">https://www.security.unicamp.br/86-selinux-um-importante-aliado-na-seguranca-de-servidores-linux-parte-2.html</a></p>
<p><a href="https://www.security.unicamp.br/103-selinux-um-importante-aliado-na-seguranca-de-servidores-linux-parte-3.html" target="_blank">https://www.security.unicamp.br/103-selinux-um-importante-aliado-na-seguranca-de-servidores-linux-parte-3.html</a></p>
<p>The post <a href="https://gesielbernardes.eti.br/configurar-selinux.html">Configurar e trabalhar com SELinux (CentOS)</a> appeared first on <a href="https://gesielbernardes.eti.br">Blog do Gesiel Bernardes</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
