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

<channel>
	<title>DiegoLima.org</title>
	<atom:link href="http://www.diegolima.org/wordpress/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.diegolima.org/wordpress</link>
	<description>Vivendo Livre</description>
	<lastBuildDate>Thu, 10 Jun 2010 17:57:10 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>IPTables &#8211; Entenda a diferença entre -I e -A</title>
		<link>http://www.diegolima.org/wordpress/?p=192</link>
		<comments>http://www.diegolima.org/wordpress/?p=192#comments</comments>
		<pubDate>Tue, 06 Apr 2010 17:41:12 +0000</pubDate>
		<dc:creator>Diego Lima</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Sysadmin]]></category>
		<category><![CDATA[firewall]]></category>
		<category><![CDATA[iptables]]></category>

		<guid isPermaLink="false">http://www.diegolima.org/wordpress/?p=192</guid>
		<description><![CDATA[Olhando as buscas que os visitantes do blog usaram para chegar aqui pude ver que mais de uma pessoa pesquisou por algo como &#8220;iptables diferença entre -I e -A&#8221;. Resolvi então escrever um pequeno tutorial explicando como é o fluxo dos pacotes e o processamento destes pelo iptables.
Ambos comandos adicionam regras no firewall, e a [...]]]></description>
			<content:encoded><![CDATA[<p>Olhando as buscas que os visitantes do blog usaram para chegar aqui pude ver que mais de uma pessoa pesquisou por algo como &#8220;iptables diferença entre -I e -A&#8221;. Resolvi então escrever um pequeno tutorial explicando como é o fluxo dos pacotes e o processamento destes pelo iptables.</p>
<p>Ambos comandos adicionam regras no firewall, e a diferença é a ordem em que essas são incluídas:</p>
<ul>
<li><strong>-I </strong>: Insere regras no topo das já existentes (<strong>I</strong>nsert)</li>
<li><strong>-A</strong> : Adiciona regras abaixo das já existentes (<strong>A</strong>ppend)</li>
</ul>
<p>Isto responderia a pergunta de forma resumida, mas para saber o que isso significa, continue lendo!</p>
<p><span id="more-192"></span></p>
<p>É importante conhecer a forma de processamento das regras do iptables quando vamos decidir se queremos uma nova regra no topo ou no final das já existentes. O IPTables realiza a comparação com as regras de cima para baixo e assim que um pacote atinge os critérios de uma regra a ação dela é aplicada e o pacote não passará pelas de baixo.</p>
<p>Portanto, se temos as seguintes regras na tabela INPUT:</p>
<pre># iptables -nvL
Chain INPUT (policy DROP 12078 packets, 1298K bytes)
pkts bytes target     prot opt in     out     source               destination         
57  6228 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
147K  144M ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
69  4140 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:22 state NEW /* SSH Server */
</pre>
<p>Um pacote TCP, iniciando uma nova conexão, com destino a porta 22 passará pelas seguintes fases:</p>
<ol>
<li><strong>NÃO </strong>será aplicada a primeira regra (aceitar todas conexões na interface de loopback)</li>
<li><strong>NÃO </strong>será aplicada a segunda regra (aceitar todas conexões já estabelecidas e relacionadas a estas)</li>
<li><strong>SERÁ APLICADA</strong> a terceira regra ( aceitar conexões TCP, novas, com destino a porta 22)</li>
</ol>
<p>O processamento do pacote irá parar neste ponto. É importante lembrar que, caso os pacotes não sejam processados por nenhuma das regras a política padrão da tabela será aplica (no caso do exemplo acima, DROP). Então, um pacote tcp com destino a porta 80, iniciando uma nova conexão, seria processado da seguinte maneira:</p>
<ol>
<li><strong>NÃO </strong>será aplicada a primeira regra (aceitar  todas conexões na interface de loopback)</li>
<li><strong>NÃO </strong>será aplicada a segunda regra (aceitar todas conexões já estabelecidas e  relacionadas a estas)</li>
<li><strong>NÃO</strong> será aplicada a terceira regra (aceitar conexões TCP,  novas, com destino a porta 22)</li>
<li>A política padrão será aplicada neste pacote (DROP)</li>
</ol>
<p>Vamos agora adicionar mais uma regra:</p>
<pre># iptables -A INPUT -p tcp --dport 80 -j REJECT</pre>
<p>Após aplicar esta regra nosso firewall ficaria da seguinte forma:</p>
<pre># iptables -nvL
Chain INPUT (policy DROP 12078 packets, 1298K bytes)
pkts bytes target     prot opt in     out     source               destination         
57  6228 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
147K  144M ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
69  4140 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:22 state NEW /* SSH Server */
0     0 REJECT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:80 reject-with icmp-port-unreachable</pre>
<p>Agora o pacote tcp com destino à porta 80 não seria mais descartado devido a política padrão da tabela, e sim rejeitado. A diferença entre o DROP e o REJECT é que o REJECT envia uma mensagem de erro utilizando o protocolo ICMP para informar que a conexão foi recusada. Um reject produz um erro de &#8220;conexão recusada (connection refused)&#8221; enquanto um drop produz um erro de timeout (connection timeout).</p>
<p>O processamento do pacote, neste caso, seria o seguinte:</p>
<ol>
<li><strong>NÃO </strong>será aplicada a primeira regra (aceitar  todas conexões  na interface de loopback)</li>
<li><strong>NÃO </strong>será aplicada a segunda regra (aceitar todas conexões já  estabelecidas e  relacionadas a estas)</li>
<li><strong>NÃO</strong> será aplicada a terceira regra (aceitar conexões TCP,   novas, com destino a porta 22)</li>
<li><strong>SERÁ APLICADA</strong> a quarta regra (REJECT)</li>
</ol>
<p>Vamos supor agora que desejamos aceitar conexões TCP novas e já estabelecidas na porta 80 mas ainda queremos rejeitar ativamente pacotes em outros estados. Para isso seria necessário adicionar a regra ANTES do REJECT. Portanto:</p>
<pre># iptables -I INPUT -p tcp --dport 80 -m state --state new -j ACCEPT</pre>
<p>Isso vai fazer com que nossa tabela INPUT fique da seguinte forma:</p>
<pre># iptables -nvL
Chain INPUT (policy DROP 12078 packets, 1298K bytes)
pkts bytes target     prot opt in     out     source               destination         
0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:80 state NEW
57  6228 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
147K  144M ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
69  4140 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:22 state NEW /* SSH Server */
0     0 REJECT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:80 reject-with icmp-port-unreachable
</pre>
<p>Neste caso um pacote novo com destino à porta 80 seria processado da seguinte forma:</p>
<ol>
<li><strong>SERÁ APLICADA</strong> a primeira regra (aceitar  todas  conexões TCP novas com destino a porta 80 )</li>
</ol>
<p>O restante das regras seriam ignoradas. Após o estabelecimento das conexões novas as conexões já existentes seriam aceitas pela terceira regra. Outros tipos de conexão com destino a porta 80 seriam rejeitadas pela última regra.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.diegolima.org/wordpress/?feed=rss2&amp;p=192</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>DiegoLima.org &#8211; Agora pronto para seu dispositivo Móvel</title>
		<link>http://www.diegolima.org/wordpress/?p=188</link>
		<comments>http://www.diegolima.org/wordpress/?p=188#comments</comments>
		<pubDate>Sun, 28 Mar 2010 23:52:21 +0000</pubDate>
		<dc:creator>Diego Lima</dc:creator>
				<category><![CDATA[Outros]]></category>

		<guid isPermaLink="false">http://www.diegolima.org/wordpress/?p=188</guid>
		<description><![CDATA[Agora este site é oficialmente mobile-friendly! Acesse agora com seu iPhone, iPod Touch, Android ou Blackberry e veja uma versão formatada especialmente para dispositivos móveis.
Caso tenha algum problema ou sugestão, deixe seu comentário aqui  
]]></description>
			<content:encoded><![CDATA[<p>Agora este site é oficialmente mobile-friendly! Acesse agora com seu iPhone, iPod Touch, Android ou Blackberry e veja uma versão formatada especialmente para dispositivos móveis.</p>
<p>Caso tenha algum problema ou sugestão, deixe seu comentário aqui <img src='http://www.diegolima.org/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.diegolima.org/wordpress/?feed=rss2&amp;p=188</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Configurando um proxy Squid para permitir acesso a repositórios SVN</title>
		<link>http://www.diegolima.org/wordpress/?p=186</link>
		<comments>http://www.diegolima.org/wordpress/?p=186#comments</comments>
		<pubDate>Sat, 27 Mar 2010 13:27:08 +0000</pubDate>
		<dc:creator>Diego Lima</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Sysadmin]]></category>
		<category><![CDATA[controle de versão]]></category>
		<category><![CDATA[proxy]]></category>
		<category><![CDATA[squid]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://www.diegolima.org/wordpress/?p=186</guid>
		<description><![CDATA[Se você está tendo problemas para utilizar um repositório Subversion (SVN) externo através de um proxy, é muito provável que tenha que configurá-lo para aceitar os métodos PROPFIND, REPORT, MERGE, MKACTIVITY e CHECKOUT. No caso de versões do Squid acima de 2.4 você não precisa adicionar o PROPFIND, e portanto basta adicionar a seguinte linha [...]]]></description>
			<content:encoded><![CDATA[<p>Se você está tendo problemas para utilizar um repositório Subversion (SVN) externo através de um proxy, é muito provável que tenha que configurá-lo para aceitar os métodos PROPFIND, REPORT, MERGE, MKACTIVITY e CHECKOUT. No caso de versões do Squid acima de 2.4 você não precisa adicionar o PROPFIND, e portanto basta adicionar a seguinte linha no seu /etc/squid/squid.conf:</p>
<pre>extension_methods REPORT MERGE MKACTIVITY CHECKOUT</pre>
<p>Após adicionar esta linha basta fazer um reload ou reiniciar o serviço, e deve ser possível utilizar os repositórios normalmente.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.diegolima.org/wordpress/?feed=rss2&amp;p=186</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Alterando a senha de usuários no Active Directory utilizando perl</title>
		<link>http://www.diegolima.org/wordpress/?p=174</link>
		<comments>http://www.diegolima.org/wordpress/?p=174#comments</comments>
		<pubDate>Fri, 26 Mar 2010 18:56:53 +0000</pubDate>
		<dc:creator>Diego Lima</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Sysadmin]]></category>
		<category><![CDATA[active directory]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[senha]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.diegolima.org/wordpress/?p=174</guid>
		<description><![CDATA[Creio que o título do post seja bem auto-explicativo  
Esta é uma função em perl que recebe como parâmetros o nome de usuário, senha antiga e a nova senha e realiza a alteração, retornando 0 (zero) em caso de sucesso. Para utiliza-la em seu programa basta fazer as alterações relativas ao seu ambiente. A [...]]]></description>
			<content:encoded><![CDATA[<p>Creio que o título do post seja bem auto-explicativo <img src='http://www.diegolima.org/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Esta é uma função em perl que recebe como parâmetros o nome de usuário, senha antiga e a nova senha e realiza a alteração, retornando 0 (zero) em caso de sucesso. Para utiliza-la em seu programa basta fazer as alterações relativas ao seu ambiente. A alteração de senhas por esse script é feita através do protocolo LDAP sobre SSL, o que torna a passagem de informações segura entre o cliente e servidor.</p>
<p><span id="more-174"></span></p>
<pre>#!/usr/bin/perl -w
use strict;
use warnings;
use Net::LDAPS;

#####################################################################
# Altera senha de um usuário em um servidor AD utilizando LDAPS     #
# Deve ser chamada da seguinte forma:                               #
#                                                                   #
# changeAdPass [usuario] [senha atual] [senha nova]                 #
#                                                                   #
# Autor: Diego Lima (diego@diegolima.org)                           #
#####################################################################
sub changeAdPass
{

	# Paremetros de usuario
	my $user_dn;
	my $user_name    = shift;
	my $user_pass    = shift;
	my $user_newpass = shift;
	my $uniuser_pass;
	my $uniuser_newpass;
	my $user_domain = 'diegolima.org';                            # Dominio

	# Parametros do servidor e diretorio
	my $ad_server         = '172.16.32.69';                       # Servidor AD
	my $ad_port           = '636';                                # Porta LDAPS
	my $directory_base_dn = 'ou=usuarios,dc=diegolima,dc=org';
	my $directory_scope   = 'sub';
	my $directory_filter  = "(samaccountname=$user_name)";
	my $directory_uid     = "dn=$user_name,$directory_base_dn";

	# Cria a conexao com o servidor
	my $ldap_server = Net::LDAPS-&gt;new(
									   "$ad_server",
									   port    =&gt; "$ad_port",
									   version =&gt; 3
	  )
	  or warn("Erro conectando ao servidor $ad_server - $!\n")
	  and return (1);

	# Se autentica utilizando as credenciais do usuario
	my $ldap_result =
	  $ldap_server-&gt;bind( "$user_domain\\$user_name", password =&gt; "$user_pass" )
	  or warn("Erro ao realizar bind como $user_domain\\$user_name $!\n")
	  and return (1);

	if ( $ldap_result-&gt;code )
	{
		warn(   "Erro tentando se autenticar como $user_domain\\$user_name - "
			  . $ldap_result-&gt;code
			  . "\n" )
		  and return ( $ldap_result-&gt;code );
	}

	# Busca o usuário no diretorio
	$ldap_result = $ldap_server-&gt;search(
										 base   =&gt; "$directory_base_dn",
										 scope  =&gt; "$directory_scope",
										 filter =&gt; "$directory_filter"
	  )
	  or warn("Erro ao realizar buscar $directory_filter - $!\n")
	  and return (1);

	if ( $ldap_result-&gt;code )
	{
		warn("$directory_filter não encontrado - $! \n") and return (1);
	} else
	{

		# Apenas um usuário deve ser alterado
		if ( $ldap_result-&gt;count != 1 )
		{

			# Mais de um usuario foi encontrado para a busca utilizada
			warn( $ldap_result-&gt;count
				  . " resultados encontrados. Quantidade esperada: 1\n" )
			  and return (1);
		} else
		{
			map { $uniuser_pass .= "$_\000" } split( //, "\"$user_pass\"" );
			map { $uniuser_newpass .= "$_\000" }
			  split( //, "\"$user_newpass\"" );

			# Recuperar o DN correto do usuario
			$user_dn = $ldap_result-&gt;entry(0)-&gt;dn;

			# Altera a senha do usuário (remove a antiga e adiciona a nova)
			$ldap_result =
			  $ldap_server-&gt;modify(
								"$user_dn",
								changes =&gt; [
									delete =&gt; [ 'unicodePwd' =&gt; $uniuser_pass ],
									add =&gt; [ 'unicodePwd' =&gt; $uniuser_newpass ]
								]
			  )
			  or warn("Erro modificando entrada unicodePwd de $user_dn - $! \n")
			  and return (1);

			# Verificar o resultado da operacao de modificacao
			if ( $ldap_result-&gt;code != 0 )
			{

				# Erro ao alterar a senha. Retornar o codigo do erro
				warn(   "Erro ao alterar senha de $user_dn - "
					  . $ldap_result-&gt;code
					  . "\n" )
				  and return ( $ldap_result-&gt;code );
			}
		}
	}

	# Desconectar do servidor
	$ldap_server-&gt;unbind;
	$ldap_server-&gt;disconnect();

	return (0);
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.diegolima.org/wordpress/?feed=rss2&amp;p=174</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Inserindo um Wave do Google Wave no Wordpress</title>
		<link>http://www.diegolima.org/wordpress/?p=146</link>
		<comments>http://www.diegolima.org/wordpress/?p=146#comments</comments>
		<pubDate>Mon, 16 Nov 2009 18:44:02 +0000</pubDate>
		<dc:creator>Diego Lima</dc:creator>
				<category><![CDATA[Outros]]></category>
		<category><![CDATA[google wave]]></category>
		<category><![CDATA[wave]]></category>
		<category><![CDATA[wavr]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.diegolima.org/wordpress/?p=146</guid>
		<description><![CDATA[Utilizando o plugin &#8220;wavr&#8221; podemos inserir um Wave do Google Wave no wordpress. Para fazer isso, basta inserir um tag da seguinte forma (sem os espaços entre o texto es colchetes) :
[ wave id="WaveID" ]
Para obter o WaveID você pode adicionar o contato &#8220;embeddy@appspot.com&#8221; na sua lista de contatos e então adicioná-lo ao Wave. Ele [...]]]></description>
			<content:encoded><![CDATA[<p>Utilizando o plugin &#8220;wavr&#8221; podemos inserir um Wave do Google Wave no wordpress. Para fazer isso, basta inserir um tag da seguinte forma (sem os espaços entre o texto es colchetes) :</p>
<p>[ wave id="WaveID" ]</p>
<p>Para obter o WaveID você pode adicionar o contato &#8220;embeddy@appspot.com&#8221; na sua lista de contatos e então adicioná-lo ao Wave. Ele vai informar o ID do wave a ser utilizado. O deste wave, por exemplo, é googlewave.com!w+jEI49nBOC</p>
<p>O resultado será o seguinte:</p>
<p>[wave id="googlewave.com!w+jEI49nBOC"]</p>
<p>Minhas dúvidas no momento:</p>
<ol>
<li>Como disponibilizar o Wave (somente leitura) para todos usuários do Google Wave? (atualmente apenas os participantes da Wave verão corretamente)</li>
<li><span style="text-decoration: line-through;">Como disponibilizar um Wave para que todos usuários do Google Wave possam participar (leitura e edição)?<br />
</span>Para isso basta adicionar o usuário public@a.gwave.com na sua lista de contatos e então ao seu wave.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.diegolima.org/wordpress/?feed=rss2&amp;p=146</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Configurando o GMail como cliente de email padrão no Gnome</title>
		<link>http://www.diegolima.org/wordpress/?p=129</link>
		<comments>http://www.diegolima.org/wordpress/?p=129#comments</comments>
		<pubDate>Wed, 12 Aug 2009 21:43:57 +0000</pubDate>
		<dc:creator>Diego Lima</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[gmail]]></category>
		<category><![CDATA[gnome]]></category>
		<category><![CDATA[mail client]]></category>
		<category><![CDATA[mua]]></category>

		<guid isPermaLink="false">http://www.diegolima.org/wordpress/?p=129</guid>
		<description><![CDATA[
Faça o download deste script para seu diretório home: Open Mailto
Torne o script executável (abra sua pasta pessoal, clique com o botão direito no open_mail.sh, propriedades, aba permissões e marque a caixa &#8220;permitir a execução como um programa&#8221;)
Vá no menu &#8220;Sistema&#8221;, &#8220;Preferências&#8221;, &#8220;Aplicativos Preferenciais&#8221;
Em &#8220;Leitor de Email&#8221; escolha &#8220;Personalizado&#8221; e coloque o seguinte em &#8220;comando&#8221;:
/home/diego/open_mailto.sh ffwindow [...]]]></description>
			<content:encoded><![CDATA[<ol>
<li>Faça o download deste script para seu diretório home: <a href="http://www.diegolima.org/wordpress/wp-content/uploads/2009/08/open_mailto.sh">Open Mailto</a></li>
<li>Torne o script executável (abra sua pasta pessoal, clique com o botão direito no open_mail.sh, propriedades, aba permissões e marque a caixa &#8220;permitir a execução como um programa&#8221;)</li>
<li>Vá no menu &#8220;Sistema&#8221;, &#8220;Preferências&#8221;, &#8220;Aplicativos Preferenciais&#8221;</li>
<li>Em &#8220;Leitor de Email&#8221; escolha &#8220;Personalizado&#8221; e coloque o seguinte em &#8220;comando&#8221;:
<pre>/home/diego/open_mailto.sh ffwindow %s</pre>
<p>Troque /home/diego por /home/[nome do seu usuario] (sem os colchetes, obviamente).</li>
</ol>
<p>Pronto! Agora quando voce clicar em um link de email (mailto://) uma janela do firefox com o gmail irá aparecer. Caso você prefira abrir uma aba em uma janela existente do firefox, basta substituir &#8220;ffwindow&#8221; por  &#8220;fftab&#8221; no comando acima. Caso prefire usar o opera, substitua &#8220;ffwindow&#8221; por &#8220;opera&#8221;.</p>
<p><span id="more-129"></span></p>
<p>Para quem prefere fazer tudo pelo terminal:</p>
<ol>
<li>wget http://www.diegolima.org/wordpress/wp-content/uploads/2009/08/open_mailto.sh</li>
<li>chmod +x open_mailto.sh</li>
<li>vi ~/.gconf/desktop/gnome/url-handlers/mailto/%gconf.xml</li>
<li>Altere o valor entre &lt;stringvalue&gt; e &lt;/stringvalue&gt; para /home/diego/open_mailto.sh ffwindow %s. Troque /home/diego pelo seu home, salve e saia.</li>
</ol>
<p>O script original foi modificado por mim para suportar o opera e a seleçao do método de abertura do gmail por parâmetros. O script original (e o artigo que me levou a criar este post) pode ser encontrado em: <a title="Set Gmail as Default Mail Client in Ubuntu" href="http://www.howtogeek.com/howto/ubuntu/set-gmail-as-default-mail-client-in-ubuntu" target="_blank">How-To Geek</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.diegolima.org/wordpress/?feed=rss2&amp;p=129</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Antivirus Review FAIL</title>
		<link>http://www.diegolima.org/wordpress/?p=118</link>
		<comments>http://www.diegolima.org/wordpress/?p=118#comments</comments>
		<pubDate>Fri, 22 May 2009 01:50:45 +0000</pubDate>
		<dc:creator>Diego Lima</dc:creator>
				<category><![CDATA[Outros]]></category>

		<guid isPermaLink="false">http://www.diegolima.org/wordpress/?p=118</guid>
		<description><![CDATA[Muitas vezes tento segurar meus &#8220;rants&#8221;, mas de vez enquando alguém consegue fazer algo fenomenalmente ruim. Tão ruim que você se sente culpado ao não apontar os erros daquela coisa para que desavisados não cometam o erro de se deixar levar pela aparência inofensiva. Exatamente agora me refiro à matéria &#8220;Qual é o melhor antivírus [...]]]></description>
			<content:encoded><![CDATA[<p>Muitas vezes tento segurar meus &#8220;rants&#8221;, mas de vez enquando alguém consegue fazer algo fenomenalmente ruim. Tão ruim que você se sente culpado ao não apontar os erros daquela coisa para que desavisados não cometam o erro de se deixar levar pela aparência inofensiva. Exatamente agora me refiro à matéria &#8220;<a title="Qual é o melhor antivírus de 2009?" href="http://info.abril.com.br/aberto/infonews/012009/23012009-41.shl" target="_blank">Qual é o melhor antivírus de 2009?</a>&#8221; da INFO. Segundo a matéria o teste foi feito &#8220;jogando seis mil pragas num micro&#8221; (suponho que por 6 mil virus diferentes), e em seguida oferece um comentário sobre o desempenho dos ativirus. E é aí que começa o verdadeiro problema.</p>
<p><span id="more-118"></span></p>
<ol>
<li><strong>&#8220;O Kaspersky Anti-Virus2009 foi o que obteve o melhor resultado, detectando mais de dez mil programas nocivos nos seis mil arquivos. A página de estatística é outro destaque do programa, com gráficos mostrando as ameaças em detalhes.&#8221;<br />
⠀<br />
</strong>Se foram colocados 6 mil vírus diferentes (como o texto explicando como o teste foi feito dá a entender), como foram detectados 10 mil problemas?  Podemos entender duas coisas: ou haviam arquivos infectados por mais de um tipo de virus (e espero que esse seja o caso) ou houve falsos positivos. E falsos postivos não tornam um antivirus melhor.<br />
⠀</li>
<li><strong>Entre os pacotes gratuitos, quem leva a Escolha INFO é o AVG Free Edition 8.0, com sua nova interface que permite ver todos os recursos diretamente no menu principal. Ponto para a empresa tcheca, que conseguiu se livrar do visual antigo e pobre.</strong><br />
⠀<br />
Pergunta: Como você escolhe seu antivirus? Aquele que é mais bonitinho ou o que detecta mais virus?<br />
Resposta: É óbvio que aquele que detecta mais virus. Certo?<br />
ERRADO. A taxa de detecção do AVG nem sequer foi mencionada. Aparentemente ele não ter mais o visual pobre de antes é mais que o suficiente para relevar qualquer dado relativo a seu funcionamento.<br />
⠀</li>
<li><strong>Uma boa surpresa em nossos testes foi perceber que o Norton 2009 ficou mais ágil e objetivo. A nova versão do software da Symantec ficou mais leve e também ganhou um belo upgrade na interface. Destaque também para a boa defesa dos usuários na web.</strong><br />
⠀<br />
Certo. Novamente a interface mais bela. E quanto à eficiência da detecção? Caso alguém tenha alguma dúvida: o objetivo do antivirus é&#8230; detectar virus! Para enfeitar nosso desktop temos nossos papéis de parede. E applets. E o compiz.<br />
⠀</li>
<li><strong>Um dos mais completos antivírus continua sendo o McAfee VirusScan. O firewall e o bloqueio a sites perigosos funcionam muito bem, e a taxa de detecção do programa é das mais altas: ele desalojou mais de 9 mil executáveis maliciosos.<br />
⠀<br />
</strong>Supondo que existam agora 10 mil, e não mais 6 mil, virus isso significa que ele ficou abaixo do Kaspersky, no mínimo. E não fazemos idéia de como ele se compara aos anteriores. Pelo menos sabemos que o firewall funciona, mesmo não sendo esse o foco da comparação.<br />
⠀</li>
<li><strong>Agora, se a intenção for apostar num software simples e gratuito, que dá mais importância para a leveza, pode ser uma boa experimentar o Avira AntiVir Personal. Ele tem interface espartana, mas identificou 100% das ameaças jogadas no micro.<br />
⠀<br />
</strong>É claro que ele não é o melhor, pois apesar de ter identificado 100% das ameaças (em outras palavras, tendo desempenho superior ou ao menos igual ao do Kaspersky que foi eleito como <strong>O</strong> antivirus) ele tem uma interface espartana. E é leve. Obviamente para ser o melhor ele não precisava de uma detecção tão alta, só precisava ser mais bonito. Como não perceberam isso?<br />
⠀</li>
<li><strong>Por fim, testamos também o NOD32, desenvolvido pela ESET, um antivírus que se destacou pela velocidade na varredura. Ele demorou apenas 29,5 minutos para correr atrás das pragas num sistema com apenas o Windows Vista instalado. </strong><br />
⠀<br />
Sim, claro! Destaque para a velocidade, novamente sem levar em consideração quantas &#8220;pragas&#8221; foram detectadas. E, falando em velocidade, não vi nenhuma menção a quanto tempo os outros levaram.<br />
⠀</li>
</ol>
<p>E por fim&#8230; esse é o fim. Termina assim, depois de falar bem de todos os antivirus testados, elogiando seus pontos altos (alguns deles bem duvidosos) e <span style="text-decoration: line-through;">mostrando uma tabela comparativa</span> sem mostrar uma comparação entre eles ou sequer dar notas. Não sabemos quantos virus cada um detectou (apesar de sabermos que o Avira detectou 100% deles). Não sabemos nem sequer quantos virus haviam ao certo.</p>
<p>Entendo que a matéria tem como público-alvo uma platéia composta grande parte por leigos, mas creio que isso torna ainda mais importante que cada solução seja analisada cuidadosamente. O que eu vi foi um festival do tipo &#8220;sorria e acene pois todos são bons produtos&#8221; e não uma matéria séria que vai servir como guia para os leitores &#8211; que é justamente o que eles procuram. Os leigos, lendo uma matéria de uma revista &#8220;conceituada&#8221; em informática, vão acreditar que aquilo é o certo.</p>
<p>E, sinceramente&#8230; nada ali está certo.</p>
<p><strong><br />
</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.diegolima.org/wordpress/?feed=rss2&amp;p=118</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ingressando uma máquina Ubuntu Linux em um Domínio Windows AD</title>
		<link>http://www.diegolima.org/wordpress/?p=106</link>
		<comments>http://www.diegolima.org/wordpress/?p=106#comments</comments>
		<pubDate>Wed, 20 May 2009 14:00:39 +0000</pubDate>
		<dc:creator>Diego Lima</dc:creator>
				<category><![CDATA[Outros]]></category>
		<category><![CDATA[active directory]]></category>
		<category><![CDATA[ad]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[domínio]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[sso]]></category>
		<category><![CDATA[Sysadmin]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.diegolima.org/wordpress/?p=106</guid>
		<description><![CDATA[Sempre existem 2 formas de se conseguir a mesma coisa: a difícil e a que nós não conhecemos &#8211; ainda. Por acaso esbarrei em um pacote ontem que facilita bastante o trabalho todo de ingressar uma máquina com Linux em um domínio Windows: o likewise-open. Ele permite que você ingresse seu linux sem ter que [...]]]></description>
			<content:encoded><![CDATA[<p>Sempre existem 2 formas de se conseguir a mesma coisa: a difícil e a que nós não conhecemos &#8211; ainda. Por acaso esbarrei em um pacote ontem que facilita bastante o trabalho todo de ingressar uma máquina com Linux em um domínio Windows: o likewise-open. Ele permite que você ingresse seu linux sem ter que configurar manualmente o samba, kerberos, PAM e outras coisas.</p>
<p>⠀</p>
<h3><strong>Para que eu quero ingressar minha máquina Linux em um domínio do Windows?</strong></h3>
<p>A primeira razão é que você poderá acessar o Linux com os usuários do AD. Isso permite que você utilize a estrutura de usuários já presente com o seu Linux, sem necessidade de ficar microgerenciando as estações. A segunda é utilizar os serviços que estão integrados com o AD (single sign on).</p>
<p><span id="more-106"></span></p>
<h3>⠀</h3>
<h3><strong>Instalação e Configuração</strong></h3>
<p>Instalar o likewise-open e utilizá-lo para ingressar no domínio é simples e tudo estará pronto após 5 passos:</p>
<ol>
<li>$ sudo apt-get update &amp;&amp; sudo apt-get install likewise-open</li>
<li>$ sudo domainjoin-cli join nome.do.dominio.windows Administrador</li>
<li>Coloque a senha do administrador do domínio quando solicitado</li>
<li>$ sudo /etc/init.d/likewise-open restart</li>
<li>Faça logoff.</li>
</ol>
<p>Agora você deverá poder acessar a máquina com um usuário do AD. A única nota é que você <strong>TEM</strong> que utilizar o usuário neste formato:</p>
<p>nome.do.dominio.windows\usuario</p>
<p>Por exemplo, meu domínio para testes é o sprawl.diegolima.org, então para acessar eu utilizo:</p>
<p>sprawl\diego</p>
<p>⠀</p>
<h3><strong>Utilizando a Interface Gráfica para Ingressar no Domínio</strong></h3>
<p>Se você prefere usar a interface gráfica para ingressar no domínio basta fazer o seguinte:</p>
<ul>
<li>$ sudo apt-get install likewise-open5-gui</li>
<li>$ sudo domainjoin-gui</li>
<li>Siga as instruções na tela</li>
</ul>
<h3>⠀<br />
⠀</h3>
<h3><strong>Problemas Possíveis</strong></h3>
<p><strong>Problema:</strong> Error: Lsass Error [code 0x00080047] Failed to lookup the domain controller for given domain<br />
<strong>Solução:</strong> Provavelmente seu computador não está utilizando o servidor AD como seu servidor DNS. Edite seu arquivo /etc/resolv.conf e se assegure que seu primeiro nameserver contém o ip do servidor windows controlador do domínio.<br />
<strong>Solução: </strong>O firewall do controlador de domínio está bloqueando conexões de DNS ou para a porta 123 UDP. Verifique as configurações do firewall do controlador de domínio.</p>
<p><strong>Problema:</strong> Error: Manual configuration required [code 0x00080043] The configuration stage 'open ports to DC' cannot be completed automatically.<br />
<strong>Solução: </strong>Algumas portas do controlador de domínio estão sendo bloqueadas por um firewall. Verifique o firewall do controlador e se assegure que as portas necessárias estão abertas. A lista das portas que não puderam ser alcançadas será exibida no final da mensagem de erro.</p>
<p><strong>Problema:</strong> Error: Lsass Error [code 0x00080047] The password is incorrect for the given username<br />
<strong>Solução</strong>: A senha do administrador do domínio está incorreta. Opcionalmente o usuário administrador não se chama "Administrador". No windows em inglês o nome será "Administrator" por padrão, enquanto que no windows em português este se chama "Administrador".</p>
<p>⠀</p>
<h3><strong>Instalação no Debian e Outras Distros<br />
</strong></h3>
<p>Infelizmente os pacotes estão somente presentes nos repositórios do Ubuntu e não do Debian. Porém você pode baixar os arquivos necessários neste link: <a title="Likewise-open Download" href="http://www.likewise.com/community/index.php/download/" target="_blank">http://www.likewise.com/community/index.php/download/</a></p>
<p>Estão disponíveis pacotes para Debian, Fedora Core, SuSE, RedHat, Ubuntu e Freebsd.</p>
<p>⠀</p>
<h3><strong>Créditos Onde São Aplicáveis <img src='http://www.diegolima.org/wordpress/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </strong></h3>
<p><strong> </strong>Eu descobri o likewise-open neste blog: <a title="Bauer-Power" href="http://www.bauer-power.net/2008/05/join-ubuntu-804-to-windows-domain.html" target="_blank">http://www.bauer-power.net/2008/05/join-ubuntu-804-to-windows-domain.html</a><br />
Todo o restante (adaptações, interface gráfica e erros comuns) foram redigidos por mim depois de alguma tentativa e erro.<br />
Nenhum hamster foi ferido durante a redação deste artigo.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.diegolima.org/wordpress/?feed=rss2&amp;p=106</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Wordpress Atualizado</title>
		<link>http://www.diegolima.org/wordpress/?p=103</link>
		<comments>http://www.diegolima.org/wordpress/?p=103#comments</comments>
		<pubDate>Tue, 27 Jan 2009 03:44:20 +0000</pubDate>
		<dc:creator>Diego Lima</dc:creator>
				<category><![CDATA[Outros]]></category>

		<guid isPermaLink="false">http://www.diegolima.org/wordpress/?p=103</guid>
		<description><![CDATA[Finalmente rodando com o Wordpress 2.7 
É incrível a quantidade de recursos novos e como a interface administrativa melhorou. Recomendo!
]]></description>
			<content:encoded><![CDATA[<p>Finalmente rodando com o Wordpress 2.7 <img src='http://www.diegolima.org/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
É incrível a quantidade de recursos novos e como a interface administrativa melhorou. Recomendo!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.diegolima.org/wordpress/?feed=rss2&amp;p=103</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Criando (e usando) chaves públicas de SSH a partir de chaves privadas</title>
		<link>http://www.diegolima.org/wordpress/?p=94</link>
		<comments>http://www.diegolima.org/wordpress/?p=94#comments</comments>
		<pubDate>Mon, 12 Jan 2009 11:05:25 +0000</pubDate>
		<dc:creator>Diego Lima</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Sysadmin]]></category>
		<category><![CDATA[key]]></category>
		<category><![CDATA[ssh]]></category>

		<guid isPermaLink="false">http://www.diegolima.org/?p=94</guid>
		<description><![CDATA[Caso você por acaso tenha somente uma chave SSH privada e precise de gerar uma chave pública basta fazer o seguinte:
ssh-keygen -e
Você será perguntado quanto à localização de sua chave privada, e após confirmar a localização a chave pública será mostrada. Ele irá gerar uma chave pública no padráo do RFC 4716, que precisa ser [...]]]></description>
			<content:encoded><![CDATA[<p>Caso você por acaso tenha somente uma chave SSH privada e precise de gerar uma chave pública basta fazer o seguinte:</p>
<p><em>ssh-keygen -e</em></p>
<p>Você será perguntado quanto à localização de sua chave privada, e após confirmar a localização a chave pública será mostrada. Ele irá gerar uma chave pública no padráo do RFC 4716, que precisa ser &#8220;convertida&#8221; para o formato do ssh antes de ser utilizada. Para fazer isso, copie e salve esta chave em um arquivo qualquer (por exemplo, /tmp/foo).</p>
<p>Em seguida, faça isso:</p>
<p><em>ssh-keygen -i</em></p>
<p>E informe o caminho do arquivo em que você salvou a chave gerada. Ele irá então informar o fingerprint da chave pública, que poderá ser adicionado no authorized_hosts para a autenticação.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.diegolima.org/wordpress/?feed=rss2&amp;p=94</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
