<?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>Jansen Sena &#187; Dicas e truques</title>
	<atom:link href="http://www.jsena.info/category/dicas_e_truques/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jsena.info</link>
	<description>"Give us directions; the best of goodwill. Put us in touch with your fair winds" - (Weathercock, JT)</description>
	<lastBuildDate>Fri, 20 Jan 2012 16:01:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Quando a ajuda cai do &#8220;shell&#8221;&#8230;</title>
		<link>http://www.jsena.info/2012/01/20/quando-a-ajuda-cai-do-shell/</link>
		<comments>http://www.jsena.info/2012/01/20/quando-a-ajuda-cai-do-shell/#comments</comments>
		<pubDate>Fri, 20 Jan 2012 16:01:27 +0000</pubDate>
		<dc:creator>Jansen Sena</dc:creator>
				<category><![CDATA[Dicas e truques]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Sysadmin]]></category>
		<category><![CDATA[Tela preta]]></category>
		<category><![CDATA[comandos]]></category>
		<category><![CDATA[shell script]]></category>
		<category><![CDATA[truques]]></category>

		<guid isPermaLink="false">http://www.jsena.info/?p=463</guid>
		<description><![CDATA[Muitos administradores de sistemas, desenvolvedores e até usuários (mais avançadas) de GNU/Linux (e outros tipos de Unix, na verdade) costumam lidar com a famosa &#8220;tela preta&#8221; por horas todos os dias. E, como não poderia ser diferente, mudar de diretórios é uma tarefa executada dezenas ou centenas de vezes em uma simples jornada de trabalho. [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Muitos administradores de sistemas, desenvolvedores e até usuários (mais avançadas) de GNU/Linux (e outros tipos de Unix, na verdade) costumam lidar com a famosa &#8220;tela preta&#8221; por horas todos os dias. E, como não poderia ser diferente, mudar de diretórios é uma tarefa executada dezenas ou centenas de vezes em uma simples jornada de trabalho. Com isso, errar o caminho do diretório é algo bem comum e que, além de fazer você perder tempo, pode prejudicar sua paciência!</p>
<p style="text-align: justify;">Uma das formas de facilitar sua vida no poderoso mundo da &#8220;tela preta&#8221; é o próprio recurso do <em>auto completion</em>, presente em shells com o bash. Outro truque bem simples e interessante, mas deconhecido por muitos, é comando shopt. Com ele, pode-se pedir uma ajuda da shell para completar seus comandos &#8220;cd&#8221; para mudar de diretório quando há apenas um pequeno erro de digitação.</p>
<p style="text-align: justify;">Por exemplo, suponha que ao tentar entrar no diretório /tmp, vc execute o seguinte comando:</p>
<p style="text-align: justify;">$ cd /tmx</p>
<p style="text-align: justify;">Obviamente que você receberá uma mensagem de que esse diretório (/tmx) não existe. Entretanto, tente executar o comando shopt dessa maneira:</p>
<pre style="text-align: justify;">$ shopt -s cdspell</pre>
<p style="text-align: justify;">Em seguinda, tente executar o comando &#8220;cd /tmx&#8221; e confira que, mesmo tendo errado o caminho, você estará dentro do diretório pretendido, ou seja, o /tmp. Se você quiser que todas os seus terminais de comandos sejam executados já com essa opção, basta inserir o comando &#8220;shopt -s cdspell&#8221; no arquivo .bashrc ou .bash_profile (conforme sua distribuição Linux ou versão de Unix).</p>
<p style="text-align: justify;">Antes de terminar, logicamente que o título desse pequeno <em>post</em> é completamente baseado nas &#8220;peripécias criativas&#8221; de meu grande amigo e mestre do shell Júlio Neves. Por fim, como se pode ver, mesmo no mundo da &#8220;tela preta&#8221;, às vezes, a ajuda cai do &#8220;shell&#8221;. Até a próxima!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jsena.info/2012/01/20/quando-a-ajuda-cai-do-shell/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como copiar sua chave SSH mais rapidamente.</title>
		<link>http://www.jsena.info/2012/01/19/como-copiar-sua-chave-ssh-mais-rapidamente/</link>
		<comments>http://www.jsena.info/2012/01/19/como-copiar-sua-chave-ssh-mais-rapidamente/#comments</comments>
		<pubDate>Thu, 19 Jan 2012 13:00:36 +0000</pubDate>
		<dc:creator>Jansen Sena</dc:creator>
				<category><![CDATA[Dicas e truques]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Segurança]]></category>
		<category><![CDATA[Sysadmin]]></category>
		<category><![CDATA[Tela preta]]></category>
		<category><![CDATA[comandos]]></category>
		<category><![CDATA[SSH]]></category>

		<guid isPermaLink="false">http://www.jsena.info/?p=451</guid>
		<description><![CDATA[Resolver problemas remotamente utilizando SSH é um recurso presenta no dia-a-dia dos sysadmins, desenvolvedores e até usuários mais avançados de ambientes Unix/Linux. Aliás, esse é um recurso seguro e muito útil, não é mesmo? Com isso, é comum que, ao longo de suas atividades diárias, um usuário que se vale desse recurso necessite abrir sessões [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Resolver problemas remotamente utilizando SSH é um recurso presenta no dia-a-dia dos sysadmins, desenvolvedores e até usuários mais avançados de ambientes Unix/Linux. Aliás, esse é um recurso seguro e muito útil, não é mesmo? Com isso, é comum que, ao longo de suas atividades diárias, um usuário que se vale desse recurso necessite abrir sessões SSH em muitas máquinas. Obviamente que a criptografia inerente ao protolo SSH não evita a existência de um processo de autenticação. São recursos de segurança complementares. Portanto, da maneira tradicional, cada abertura de sessão SSH necessita que o usuário insira uma senha. Com o tempo, principalmente para quem costuma fazer dezenas de sessões SSH diariamente, essa pode ser uma tarefa cansativa, não é mesmo?</p>
<p style="text-align: justify;">Para evitar isso, o protocolo SSH possui um recurso muito interessante: a autenticação por meio de chaves públicas, que evita a necessidade de prover senhas durante a abertura de sessões SSH em máquinas remotas onde a chave pública do usuário já foi previamente copiada. Normalmente, esse processo se dá através da criação de um par de chaves criptográficas por meio do comando ssh-keygen, conforme apresentado no exemplo a seguir:</p>
<pre style="text-align: justify;">jansen@scadufax $ <strong>ssh-keygen -t dsa</strong></pre>
<p style="text-align: justify;">Nesse caso, um par de chaves (pública e privada) está sendo criado usando-se o algorimo DSA. As chaves privada e pública, recém-criadas, são gravadas, nesse caso, nos arquivos id_dsa e id_dsa.pub, respectivamente, e ficam localizadas no diretório .ssh, dentro do home do usuário. Para se valer do recurso de não precisar prover senhas é preciso, então, copiar a chave pública para o arquivo .ssh/authorized_keys nos diretórios home dos usuários remotos, usando-se, por exemplo, o seguinte comando:</p>
<pre style="text-align: justify;">jansen@scadufax $ <strong>scp ~/.ssh/id_dsa.pub jsena@smeagol:~/.ssh/authorized_keys</strong></pre>
<p style="text-align: justify;">Nesse caso, quando o usuário jansen, a partir da máquina scadufax, tentar abrir uma sessão SSH com o usuário jsena na máquina smeagol, nenhuma senha será necessária. O processo de autenticação se dará através das chaves criptográficas. Até nenhuma novidade, certo? Entretanto, imagine que mais de um usuário deseje acessar a conta jsena na máquina smeagol. Pode até ser a mesma pessoa utilizando um par de chaves criptográficas diferentes do anterior, gerado, por exemplo, em outro computador. Nesse caso, se o mesmo procedimento anterior for utilizado, o arquivo authorized_keys, que já contém a chave pública de outro usuário, será sobrescrito, passando a invalidar o acesso cadastrado anteriormente. Para evitar esse problema, a partir do segundo usuário, seria necessário adotar outros procedimentos para a cópia da chave-pública de forma a não sobrescrever o conteúdo já existente no arquivo authorized_keys.</p>
<p style="text-align: justify;">Para facilitar esse processo, existe um utilitário chamado ssh-copy-id que é desconhecido por uma parcela considerável dos usuários de SSH. Essa pequena ferramenta resolve esse problema da cópia de diversas chaves para um mesmo arquivo authorized_keys:</p>
<pre style="text-align: justify;">jansen@scadufax $ <strong>ssh-copy-id jsena@smeagol</strong></pre>
<p style="text-align: justify;">Caso seja necessário copiar outras chaves para acessar a conta jsena na máquina smeagol, basta utilizar o mesmo comando. Caso um mesmo usuário tenha mais de um par de chaves (sim, isso é possível), pode-se indicar quais delas se deseja copiar para a máquina remota:</p>
<pre style="text-align: justify;">jansen@gandalf $ <strong>ssh-copy-id -i .ssh/id_rsa.pub jansen.sena@boromir</strong></pre>
<p style="text-align: justify;">Simples, não? Bem, acho que é isso.</p>
<p style="text-align: justify;"><strong><em>IMPORTANTE</em></strong>: Para que o mecanismo de autenticação através de chaves públicas funcione corretamente, é necessário que o servidor SSH esteja configurado para tal. Mas isso é assunto para outro momento!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jsena.info/2012/01/19/como-copiar-sua-chave-ssh-mais-rapidamente/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A &#8220;tela preta&#8221; e seus poderes: reduzindo a resolução de suas fotos através da linha de comando e dos &#8220;pipes&#8221;.</title>
		<link>http://www.jsena.info/2011/10/18/a-tela-preta-e-seus-poderes-reduzindo-a-resolucao-de-suas-fotos-atraves-da-linha-de-comando-e-dos-pipes/</link>
		<comments>http://www.jsena.info/2011/10/18/a-tela-preta-e-seus-poderes-reduzindo-a-resolucao-de-suas-fotos-atraves-da-linha-de-comando-e-dos-pipes/#comments</comments>
		<pubDate>Tue, 18 Oct 2011 06:30:18 +0000</pubDate>
		<dc:creator>Jansen Sena</dc:creator>
				<category><![CDATA[Dicas e truques]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tela preta]]></category>
		<category><![CDATA[linha de comando]]></category>
		<category><![CDATA[truques]]></category>

		<guid isPermaLink="false">http://www.jsena.info/?p=415</guid>
		<description><![CDATA[Foi-se o tempo em que as distribuições GNU/Linux eram limitadas aos terminais de &#8220;tela preta&#8221;. Atualmente, existem diversas alternativas de ambientes gráficos e uma vasta parafernalha de recursos para tornar seu ambiente gráfico de desktop ágil e bastante atrativo. Por outro lado, isso não significa dizer que a &#8220;tela preta&#8221; ficou para trás e não [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Foi-se o tempo em que as distribuições GNU/Linux eram limitadas aos terminais de &#8220;tela preta&#8221;. Atualmente, existem diversas alternativas de ambientes gráficos e uma vasta parafernalha de recursos para tornar seu ambiente gráfico de desktop ágil e bastante atrativo. Por outro lado, isso não significa dizer que a &#8220;tela preta&#8221; ficou para trás e não possui mais qualquer utilidade. Muito pelo contrário. Ela continua sendo uma excelente ferramenta para administradores de sistemas, analistas de segurança, desenvolvedores e usuários mais avançados.</p>
<p>Além de poder executar diversos comandos individuais de maneira ágil, a possibilidade de poder combinar comandos através do uso dos pipes é o que, particularmente, considero ser um dos grandes poderes &#8220;Jedi&#8221; da &#8220;tela preta&#8221;. Com esse recurso, é possível criar, facilmente, funcionalidades que não existem através de um único comando para atender às suas necessidades. É claro que, quanto maior a experiência com a &#8220;tela preta&#8221;, melhor será suas condições em usar do recurso dos pipes. E, logicamente, nada melhor do que praticar um pouco para desafiar a criatividade.</p>
<p>Diante disso, resolvi compartilhar por aqui um exemplo que pode ser útil para o seu dia a dia: reduzir o tamanho de suas fotos. Com câmeras digitais cada vez mais acessíveis e com a sua inclusão em diversos dispositivos como celulares e tablets, muitas pessoas costumam acumular muitos gigas armazenando suas imagens. Some-se a isso o fato das resoluções cada vez mais altas gerarem arquivos maiores. Diante disso, seja como uma forma de economizar espaço em seus meios de armazenamento (e.g. HDs externos) ou como facilitar o envio e o compartilhamento de suas fotos através da Internet, reduzir o tamanho de suas fotografias, às vezes, pode ser uma ideia interessante.</p>
<p>A questão é: como fazer isso de umam única vez aplicando a redução para todas as fotografias selecionadas? Bem, como você já deve ter desconfiado, a &#8220;tela preta&#8221; pode lhe ser útil nesse momento especialmente por meio do uso dos pipes. Vamos dar uma olhada?</p>
<p><span id="more-415"></span>Suponha que exista um diretório chamado /home/jansen/MyPictures repleto de fotografias com a extensão &#8220;JPG&#8221;. Todas essas fotografias estão com uma resolução muito alta e cada arquivo possui em torno de 5MB. A ideia é conseguir reduzir todos esses arquivos para uma resolução de 800&#215;600.</p>
<p>O primeiro passo consiste em instalar um excelente gerenciador de imagens em linha de comando (sim, isso mesmo!), chamado imagemagick. Caso sua distribuição seja baseada no Debian (e.g. Ubuntu), basta executar o seguinte comando com o seu usuário convencional:</p>
<pre style="text-align: justify;"><strong>$ sudo apt-get install imagemagick</strong></pre>
<p style="text-align: justify;">Em seguida, digite sua senha. Por outro lado, caso seu usuário não esteja configurado no sudo (isso é comum em instalações padrão do Debian, por exemplo), abra um terminal como root e digite o comando anterior diretamente:</p>
<pre style="text-align: justify;"><strong># apt-get install imagemagick</strong></pre>
<p style="text-align: justify;">Com o seu usuário convencional, entre no diretório /home/jansen/MyPictures, onde estão armazenadas as imagens e use do &#8220;poder Jedi&#8221; dos pipes:</p>
<pre style="text-align: justify;"><strong>$ cd /home/jansen/MyPictures</strong>

<strong>$ mkdir /tmp/MyReducedPictures &amp;&amp; ls *JPG | cut -d. -f1 | xargs -t -i \ convert -resize 800x600 {}.JPG /tmp/MyReducedPictures/{}_REDUCED.JPG</strong></pre>
<p style="text-align: justify;">Com isso, suas imagens vão começar a ser reduzidas de tamanho, uma a uma. Passados alguns segundos (de acordo com a quantidade de fotos), uma cópia com a resolução reduzida de todas as imagens, estará salva no diretório /tmp/MyReducedPictures!!! Simples, não?!</p>
<p>Quer entender um pouco melhor o que aconteceu? Então aguarde o próximo post&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jsena.info/2011/10/18/a-tela-preta-e-seus-poderes-reduzindo-a-resolucao-de-suas-fotos-atraves-da-linha-de-comando-e-dos-pipes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fazendo seu servidor Apache &#8220;falar&#8221; um pouco menos&#8230;</title>
		<link>http://www.jsena.info/2011/07/07/fazendo-seu-servidor-apache-falar-um-pouco-menos/</link>
		<comments>http://www.jsena.info/2011/07/07/fazendo-seu-servidor-apache-falar-um-pouco-menos/#comments</comments>
		<pubDate>Fri, 08 Jul 2011 01:46:14 +0000</pubDate>
		<dc:creator>Jansen Sena</dc:creator>
				<category><![CDATA[Dicas e truques]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Segurança]]></category>
		<category><![CDATA[Sysadmin]]></category>

		<guid isPermaLink="false">http://www.jsena.info/?p=371</guid>
		<description><![CDATA[Tarefa básica e que faz parte do cotidiano de um usuário: abrir o browser de sua preferência e acessar algum site na Internet. Simples, não? Do ponto de vista do usuário, sim. Mas, aos olhos de um administrador de sistemas preocupado com segurança, essa é uma atividade que merece ser um pouco mais estudada. Todas [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Tarefa básica e que faz parte do cotidiano de um usuário: abrir o <em>browser</em> de sua preferência e acessar algum site na Internet. Simples, não? Do ponto de vista do usuário, sim. Mas, aos olhos de um administrador de sistemas preocupado com segurança, essa é uma atividade que merece ser um pouco mais estudada. Todas as vezes que um cliente conecta-se a um servidor Web há uma troca de informações entre ambas as partes. Nesse caso, a linguagem falada é o HTTP. A questão é que algumas dessas informações podem revelar informações do seu servidor Web úteis na elaboração de um ataque.</p>
<p style="text-align: justify;">Para verificar algumas das informações comumente reveladas por um servidor Web aos clientes que conectam-se a ele, basta utilizar o antiquado mas ainda útil <em>telnet</em>. Nesse caso, é suficiente escolher um <em>site </em>qualquer, direcionar a conexão para a porta 80 e submeter ao servidor algumas das poucas informações obrigatórias do protocolo HTTP (GET e Host, por exemplo), conforme mostrado a seguir:</p>
<pre style="text-align: justify;"><strong># root@scadufax:~# telnet www.xxxxx.com.br 80</strong>
Trying 201.123.123.121...
Connected to server.xxxxx.com.br.
Escape character is '^]'.
<strong>GET / HTTP/1.1</strong>
<strong>Host: www.xxxxx.com.br</strong></pre>
<p style="text-align: justify;">Após a cláusula &#8220;Host&#8221;, pressione duas vezes <em>Enter</em>. Em seguida, o servidor Web deve retornar os cabeçalhos HTTP de resposta e o conteúdo da página, de acordo como mostrado abaixo:</p>
<pre style="text-align: justify;">HTTP/1.1 200 OK
Date: Fri, 08 Jul 2011 00:47:40 GMT
<strong>Server: Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny10 with Suhosin-Patch</strong>
Last-Modified: Thu, 20 Apr 2006 18:44:51 GMT
ETag: "9f132-c96-411e12ad8aec0"
Accept-Ranges: bytes
Content-Length: 3222
Content-Type: text/html; charset=ISO-8859-1

&lt;&lt;&lt; CONTEÚDO DA PÁGINA&gt;&gt;&gt;</pre>
<p style="text-align: justify;">Dentre os cabeçalhos de resposta, dedique atenção especial ao &#8220;Server&#8221;, em destaque. Nele, é possível identificar o servidor Web (Apache), sua versão (2.2.9), o sistema operacional (Debian) e ainda a versão do PHP (5.2.6-1+lenny10). Tais informações já ajudam um atacante a escolher quais ferramentas ele poderá ajudar em um eventual ataque. Pior ainda: o atacante consegue descobrir se seu servidor encontra-se completamente desatualizado e, portanto, possivelmente vulnerável contra um conjunto maior de <em>exploits</em>. Revelar essas informações no cabeçalho &#8220;Server&#8221; é o comportamento mais comum para um servidor Apache instalado diretamente dos repositórios de pacotes de sua distribuição.</p>
<p style="text-align: justify;">Outra forma de identificar se o servidor está revelando mais informações do que deveria consiste simplesmente em provocar algum erro, acessando, por exemplo, uma página que, certamente, não existe naquele servidor Web:</p>
<p style="text-align: justify;">http://www.xxxxx.com.br/abcdefghijklmnop</p>
<div id="attachment_378" class="wp-caption aligncenter" style="width: 527px"><a href="http://www.jsena.info/wp-content/uploads/2011/07/apache2.png"><img class="size-full wp-image-378" title="apache2" src="http://www.jsena.info/wp-content/uploads/2011/07/apache2.png" alt="" width="517" height="399" /></a><p class="wp-caption-text">Servidor Apache revelando informações desnecessárias.</p></div>
<p style="text-align: justify;">Normalmente, em <em>sites </em>mais bem configurados, as páginas de erro são todas customizadas. Nesses casos, algumas vezes, as informações sobre o servidor não são apresentadas.</p>
<p style="text-align: justify;">Surpreso? É nesse estado que se encontra seu servidor? Bem, então é hora de corrigir esse problema.</p>
<p style="text-align: justify;">O Apache possui duas configurações bem simples mas que são costumeiramente ignoradas, fundalmentalmente pelos administradores de sistemas menos experientes: ServerTokens e ServerSignature que podem impedir que o servidor revele informações mais detalhadas no cabeçalho &#8220;Server&#8221; do HTTP e que informações desnecessárias sejam apresentadas nas páginas de erro <em>default</em> do Apache, respectivamente. Para fazê-las desempenhar essas funções, basta adicioná-las no arquivo de configuração do Apache da seguinte maneira:</p>
<pre style="text-align: justify;">ServerTokens Prod
ServerSignature Off</pre>
<p style="text-align: justify;">Depois, reinicie o seu servidor Apache e veja se agora, seu servidor passou a &#8220;falar&#8221; um pouco menos&#8230;</p>
<p style="text-align: justify;">Logicamente que existem muitas outras providências a serem tomadas para fazer um bom trabalho de <em>hardening</em> de um servidor Apache. Entretanto, deixaremos isso para uma outra oportunidade.</p>
<p style="text-align: justify;">Bem, acho que é isso. Até o próximo <em>post</em>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jsena.info/2011/07/07/fazendo-seu-servidor-apache-falar-um-pouco-menos/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Meu eeePC 701 e o Ubuntu 11.04.</title>
		<link>http://www.jsena.info/2011/06/23/meu-eeepc-701-e-o-ubuntu-11-04/</link>
		<comments>http://www.jsena.info/2011/06/23/meu-eeepc-701-e-o-ubuntu-11-04/#comments</comments>
		<pubDate>Thu, 23 Jun 2011 20:16:30 +0000</pubDate>
		<dc:creator>Jansen Sena</dc:creator>
				<category><![CDATA[Dicas e truques]]></category>
		<category><![CDATA[Notícias]]></category>
		<category><![CDATA[Software Livre]]></category>
		<category><![CDATA[eeePC]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.jsena.info/?p=359</guid>
		<description><![CDATA[Assim que a febre dos netbooks começou a se espalhar, comprei o Asus eeePC 701, um dos modelos de mais sucesso desse tipo de equipamento e precursor de muitos outros notebooks que foram lançados posteriormente. Apesar de já ser um pouco antigo, eu ainda o utilizo para fazer tarefas menores e algumas &#8220;experiências&#8221;, principalmente envolvendo [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><a href="http://www.jsena.info/wp-content/uploads/2011/06/eeePC.jpg"><img class="alignleft size-thumbnail wp-image-363" title="eeePC" src="http://www.jsena.info/wp-content/uploads/2011/06/eeePC-150x150.jpg" alt="" width="150" height="150" /></a>Assim que a febre dos netbooks começou a se espalhar, comprei o Asus eeePC 701, um dos modelos de mais sucesso desse tipo de equipamento e precursor de muitos outros notebooks que foram lançados posteriormente. Apesar de já ser um pouco antigo, eu ainda o utilizo para fazer tarefas menores e algumas &#8220;experiências&#8221;, principalmente envolvendo segurança de sistemas e redes. Enfim, o meu eeePC 701 desempenha uma função de coringa em meio aos meus computadores.</p>
<p style="text-align: justify;">Já utilizei diversas distribuições Linux nesse equipamento. Aliás, foi essa uma das razões pelas quais eu o adquiri. Testar algumas distribuições Linux é um <em>hobby</em> antigo. Além da distro original, o Xandros, que durou poucas horas no equipamento, já testei diversas outras opções baseadas em Debian, o Eeebuntu, o Easy Peasy, dentre outros. O Ubuntu passou, então, a ter uma versão oficial para esses equipamentos: o Ubuntu Netbook Remix, que comecei a utilizar em meu Asus eeePC 701. Entretanto, esse produto passou a ser integrado ao Ubuntu padrão. Ou seja, a partir de então, a mesma imagem ISO poderia ser utilizada para notebooks e netbooks.</p>
<p style="text-align: justify;"><span id="more-359"></span></p>
<p style="text-align: justify;">Recentemente, então, resolvi atualizar o sistema operacional dele para o <a href="http://www.ubuntulinux.org">Ubuntu</a> 11.04 (32 bits). Aproveito, então, esse rápido post para compartilhar algumas informações mais básicas. Gravei a imagem ISO em um <em>pen drive</em> mas, para minha surpresa, o instalador detectou um problema que impedia a instalação de prosseguir: o espaço mínimo sugerido para instalação é 4.4 GB, entretanto, o Asus eeePC 701 conta apenas com um SSD de 4 GB. A solução foi, então, fazer o <a href="http://mirror.globo.com/ubuntu/releases//11.04/">download da versão alternate do Ubuntu 11.04</a> e a instalação transcorreu sem mais problemas.</p>
<p style="text-align: justify;">Quanto ao particionamento, não utilizei partições separadas para os diversos diretórios muito menos qualquer recurso de LVM. Afinal de contas, trata-se de um pequeno disco de 4 GB. Outra recomendação interessante: não utilizei qualquer partição de <em>swap</em>. Existem muitas discussões com relação ao limite de operações de escrita que um SSD pode suportar antes de apresentar problemas. Fóruns repletos de comentários sobre essas questões estão publicados Internet a fora. Não utilizar uma partição de <em>swap</em> é uma forma de reduzir um pouco essas operações e ainda uma boa oportunidade para ver como o sistema iria se comportar. Em meu caso, a ausência do <em>swap</em> não foi um problema uma vez que meu Asus eeePC 701 possui 2 GB de RAM, mais do que suficiente para o tipo de uso que faço desse equipamento. Após a fase de particionamento, o instalador &#8220;reclamou&#8221; da ausência de uma partição de <em>swap</em>, mas não impediu que eu prosseguisse com a instalação.</p>
<p style="text-align: justify;">Feito isso, decorridos alguns minutos, estava com o Ubuntu 11.04 instalado em meu eeePC. De imediato, desinstalei alguns pacotes desnecessários para economizar espaço tal como o Evolution, jogos, dentre outros.</p>
<p style="text-align: justify;">Por fim, utilizei o tmpfs, um sistema de arquivos que é mapeado na memória RAM, para montar os diretórios /tmp e /var/tmp. Para isso, basta editar o arquivo /etc/fstab acrescentando as seguintes linhas:</p>
<pre>tmpfs		/tmp		tmpfs	size=100M,mode=1777	0 0
tmpfs		/var/tmp	tmpfs	size=100M,mode=1777	0 0</pre>
<p style="text-align: justify;">Logicamente, como tmpfs é mapeado na memória RAM, o conteúdo desses diretórios é apagado todas vezes que seu noteebok é desligado. Bem, sem problemas nesse caso porque o conteúdo desses diretórios deve ser, presumidamente, temporário. Feito esse processo, no próximo <em>reboot</em> o pequeno eeePC já deve separar os dois diretórios dos demais que estão gravados no SSD.</p>
<p style="text-align: justify;">Para verificar se essa configuração funcionou, após reiniciar o computador, execute o comando &#8220;mount&#8221; e tente localizar linhas semelhantes às apresentadas a seguir:</p>
<pre>tmpfs on /tmp type tmpfs (rw,size=100M,mode=1777)
tmpfs on /var/tmp type tmpfs (rw,size=100M,mode=1777)</pre>
<div style="text-align: justify;">Bem, acho que é isso. Até agora, tudo funcionando normalmente. Aliás, escrevo esse <em>post</em> de meu Asus eeePC 701. Existem muitas outras experiências e configurações interessantes para fazer com um equipamento como esses. Mas, vamos deixar isso para outras oportunidades.</div>
]]></content:encoded>
			<wfw:commentRss>http://www.jsena.info/2011/06/23/meu-eeepc-701-e-o-ubuntu-11-04/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Problemas para remover volumes lógicos com LVM2?</title>
		<link>http://www.jsena.info/2011/06/17/problemas-para-remover-volumes-logicos-com-lvm2/</link>
		<comments>http://www.jsena.info/2011/06/17/problemas-para-remover-volumes-logicos-com-lvm2/#comments</comments>
		<pubDate>Fri, 17 Jun 2011 16:56:25 +0000</pubDate>
		<dc:creator>Jansen Sena</dc:creator>
				<category><![CDATA[Dicas e truques]]></category>
		<category><![CDATA[Sysadmin]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[LVM]]></category>

		<guid isPermaLink="false">http://www.jsena.info/?p=342</guid>
		<description><![CDATA[Sem sombra de dúvidas, planejar o particionamento de um servidor GNU/Linux com LVM é uma opção muito interessante e praticamente obrigatória para um sysadmin precavido e organizado. Entretanto, podemos tratar um pouco mais sobre o LVM e suas vantagens em outra oportunidade. Esse rápido post é apenas para compartilhar uma situação que já passei em [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Sem sombra de dúvidas, planejar o particionamento de um servidor GNU/Linux com LVM é uma opção muito interessante e praticamente obrigatória para um <em>sysadmin</em> precavido e organizado. Entretanto, podemos tratar um pouco mais sobre o LVM e suas vantagens em outra oportunidade. Esse rápido <em>post</em> é apenas para compartilhar uma situação que já passei em algumas oportunidades: em alguns servidores que administro, já tive problemas para remover volumes lógicos (LVs).</p>
<p style="text-align: justify;">A maneira mais comum para remover um LV consiste, simplesmente, em utilizar o comando lvremove. Por exemplo:</p>
<pre style="text-align: justify;"># lvremove /dev/MyVG/lvol_test</pre>
<p style="text-align: justify;">Entretanto, em alguns sistemas, me deparei com o seguinte erro ao tentar remover LV:</p>
<pre style="text-align: justify;"># lvremove /dev/MyVG/lvol_test
<span style="color: #ff0000;">Can't remove open logical volume "lvol_test"</span></pre>
<p style="text-align: justify;">Bem, caso você esteja com esse problema, existe uma solução muito simples por meio da utilização do dmsetup.</p>
<pre style="text-align: justify;"># dmsetup info -c MyVG-lvol_test</pre>
<pre style="text-align: justify;">Name               Maj Min Stat   Open Targ Event  UUID
MyVG-lvol_test     253   8 L–w       1    1      0 XiuqlKY91paW...</pre>
<p style="text-align: justify;">Nesse caso, o valor que interessa é o da coluna <em>Open</em>. O  número &#8220;1&#8243; identifica que o LV encontra-se no <em>status </em>de aberto e isso pode ser a causa do problema. Se esse for o seu caso, execute o comando dmsetup da seguinte maneira:</p>
<pre style="text-align: justify;"># dmsetup remove MyVG-lvol_test</pre>
<p style="text-align: justify;">Em seguida, tente executar novamente o comando lvremove que, dessa vez, deve reportar a remoção com sucesso do LV:</p>
<pre># lvremove /dev/MyVG/lvol_test
Logical volume "lvol_test" successfully removed</pre>
<p style="text-align: justify;">Bem, acho que é isso.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jsena.info/2011/06/17/problemas-para-remover-volumes-logicos-com-lvm2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Você ainda apaga arquivos com o &#8220;rm&#8221;? Removendo arquivos de maneira segura com o shred.</title>
		<link>http://www.jsena.info/2011/04/18/voce-ainda-apaga-arquivos-com-o-rm-removendo-arquivos-de-maneira-segura-com-o-shred-2/</link>
		<comments>http://www.jsena.info/2011/04/18/voce-ainda-apaga-arquivos-com-o-rm-removendo-arquivos-de-maneira-segura-com-o-shred-2/#comments</comments>
		<pubDate>Mon, 18 Apr 2011 17:14:49 +0000</pubDate>
		<dc:creator>Jansen Sena</dc:creator>
				<category><![CDATA[Dicas e truques]]></category>
		<category><![CDATA[Segurança]]></category>
		<category><![CDATA[Sysadmin]]></category>
		<category><![CDATA[comandos]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[shred]]></category>

		<guid isPermaLink="false">http://www.jsena.info/?p=320</guid>
		<description><![CDATA[Remover arquivos faz parte da rotina diária de qualquer usuário de um sistema operacional, não é mesmo? Provavelmente você deve fazer isso algumas dezenas de vezes ao longo de um dia de trabalho em frente ao computador. Caso um arquivo qualquer (como uma ISO de um sistema operacional, por exemplo) esteja sendo apagado simplesmente para [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Remover arquivos faz parte da rotina diária de qualquer usuário de um sistema operacional, não é mesmo? Provavelmente você deve fazer isso algumas dezenas de vezes ao longo de um dia de trabalho em frente ao computador. Caso um arquivo qualquer (como uma ISO de um sistema operacional, por exemplo) esteja sendo apagado simplesmente para liberar espaço em seus meios de armazenamento, que mal há utilizar o bom e velho &#8220;rm&#8221;? Por outro lado, tenho a impressão de que você não gostaria de saber que aquele script que contém todas as suas regras de <em>firewall</em>, por exemplo, ou qualquer outro arquivo com alguma informação sensível pode cair em mãos erradas se você confiar no apenas no &#8220;rm&#8221;.</p>
<p style="text-align: justify;">Bem, primeiramente, permita que eu me desculpe por &#8216;descortinar&#8217; essa verdade caso você ainda achasse, até o parágrafo anterior, que um &#8220;rm -f&#8221; era um comando forte e com tanta &#8216;personalidade&#8217; ao ponto de mandar pro espaço qualquer arquivo ou diretório. O fato é que ao remover um arquivo com esse comando o sistema operacional, em poucas palavras, simplesmente retira os &#8220;ponteiros&#8221; para os blocos de dados que formavam o arquivo. Por outro lado, esses blocos estão lá em seu HD e podem, com a ajuda de algumas ferramentas, ser recuperados. Provavelmente esses blocos irão ser sobrescritos apenas quando novos arquivos forem utilizando aqueles mesmos espaços e isso pode demorar um tempo bastante considerável principalmente se o computador em questão não tiver operações um fluxo de gravação de arquivos muito intenso.</p>
<p style="text-align: justify;">E, antes que você se pergunte, mas quem pode ter acesso ao meu HD? Bem, fácil. Seu computador pode ser invadido através da Internet, você pode perdê-lo, você pode ser roubado, você pode vendê-lo ou você pode mandá-lo para uma assistência técnica para consertar um problema, por exemplo. Enfim, são muitas as possibilidade, não é verdade? Pior ainda quando se está falando dos pequenos e portáteis <em>pen drives </em>que carregamos conosco o tempo todo para todo lugar. Quando é possível, pode-se utilizar os <a href="http://www.jsena.info/2010/10/24/criando-um-sistema-de-arquivos-criptogrado-no-gnulinux/">sistemas de arquivos criptografados</a>. Entretanto, em situações onde não é possível utilizar essas soluções, é preciso tomar cuidado para garantir que arquivos sensíveis foram, de fato, removidos.</p>
<p style="text-align: justify;"><span id="more-320"></span></p>
<p style="text-align: justify;">A notícia boa é que existe um &#8220;irmão&#8221; do rm que pode ser utilizado para fazer a remoção de arquivos cujo conteúdo você deseja manter longe das mãos dos curiosos. Trata-se do shred. E sabe o qué melhor? Provavelmente ele já encontra-se instalado em seu sistema GNU/Linux mesmo que você nunca o tenha utilizado. Vamos, então, dar uma olhada nesse comando?</p>
<p style="text-align: justify;">Suponnha que você tenha um arquivo com algum dado sensível:</p>
<pre style="text-align: justify;"><strong>$ echo "Esse arquivo possui dados secretos." &gt; /tmp/segredo.txt
$ cat /tmp/segredo.txt
Esse arquivo possui dados secretos.</strong></pre>
<p style="text-align: justify;">Em seguida, utilize o comando shred simplesmente indicando o arquivo recém-criado:</p>
<pre style="text-align: justify;"><strong>$ shred /tmp/segredo.txt</strong></pre>
<p style="text-align: justify;">E agora, tente dar uma olhada no conteúdo do arquivo utilizando o comando cat:</p>
<pre style="text-align: justify;"><strong>$ cat /tmp/segredo.txt</strong></pre>
<p style="text-align: justify;">E aí, surpreso com o que você viu?</p>
<p style="text-align: justify;">Caso você deseje que o shred remova o arquivo após &#8220;bagunçar&#8221; seus dados você pode utilizar a opção &#8220;-u&#8221;. E ainda, se quiser acompanhar de perto o que o shred está fazendo durante seu período de execução basta acrescentar, como em muitos outros comandos dos sistemas Unix, o parâmetro &#8220;-v&#8221;. Então, experimente executar o shred com a seguinte sintaxe:</p>
<pre><strong>$ shred -u -v /tmp/segredo.txt</strong></pre>
<pre>shred: /tmp/segredo.txt: pass 1/3 (random)...
shred: /tmp/segredo.txt: pass 2/3 (random)...
shred: /tmp/segredo.txt: pass 3/3 (random)...
shred: /tmp/segredo.txt: removing
shred: /tmp/segredo.txt: renamed to /tmp/00000000000
shred: /tmp/00000000000: renamed to /tmp/0000000000
shred: /tmp/0000000000: renamed to /tmp/000000000
shred: /tmp/000000000: renamed to /tmp/00000000
shred: /tmp/00000000: renamed to /tmp/0000000
shred: /tmp/0000000: renamed to /tmp/000000
shred: /tmp/000000: renamed to /tmp/00000
shred: /tmp/00000: renamed to /tmp/0000
shred: /tmp/0000: renamed to /tmp/000
shred: /tmp/000: renamed to /tmp/00
shred: /tmp/00: renamed to /tmp/0
shred: /tmp/segredo.txt: removed</pre>
<p style="text-align: justify;">É interessante notar que durante sua execução, o shred preencheu o conteúdo do arquivo três vezes com dados aleatórios e depois, antes de removê-lo, o comando renomeou o arquivo 11 vezes.</p>
<p style="text-align: justify;">Para promover um processo um pouco mais seguro, você pode ainda selecionar o número de interações que o shred irá fazer substituindo o conteúdo do arquivo utilizando o parâmetro &#8220;-n &lt;qtde&gt;&#8221;. Por exemplo:</p>
<pre><strong>$ shred -n 25 -u -v /tmp/segredo.txt</strong></pre>
<p style="text-align: justify;">Observe que, nesse caso, alternou o processo de substituição do conteúdo com alguns padrões fixos e dados aleatórios. Outra opção interessante até para &#8220;esconder&#8221; a ação do shred é solicitar que depois de todas as interações, ele substitua os dados do arquivo com zeros. Isso pode ser feito por meio da adição do parâmetro &#8220;-z&#8221;:</p>
<pre><strong>$ shred -n 25 -u -v -z /tmp/segredo.txt</strong></pre>
<p style="text-align: justify;">Como &#8220;tudo&#8221; em sistemas GNU/Linux (Unix, na verdade) é representado por meio de arquivos, você pode utilizar o shred como uma ferramenta para apagar HDs ou outros dispositivos de armazenamento inteiros. Isso pode ser útil quando você vai repassar esse equipamento para outra pessoa. Para isso, basta passar como argumento o arquivo que representa o seu dispositivo de armazenamento. Por exemplo:</p>
<pre><strong># shred -n 30 -v -z /dev/sda</strong></pre>
<p style="text-align: justify;">Duas observações importantes aqui: primeiro, essa operação, salvo alguma configuração prévia, requer privilégios de root (observe o prompt como &#8220;#&#8221; no exemplo anterior). Segundo, tome muito cuidado para não passar o dispositivo errado e apagar coisas erradas! Ou seja, esse comando não é recomendado se você não estiver em paz e bem tranquilo!</p>
<p style="text-align: justify;">Sim, é certo que com algum investimento em tecnologias mais avançadas de hardware e software, é possível recuperar dados mesmo que eles tenham sido sobrescritos diversas vezes.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jsena.info/2011/04/18/voce-ainda-apaga-arquivos-com-o-rm-removendo-arquivos-de-maneira-segura-com-o-shred-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Problemas para acessar o iPhone a partir do Ubuntu 10.10?</title>
		<link>http://www.jsena.info/2011/01/11/problemas-para-acessar-o-iphone-a-partir-do-ubuntu-10-10/</link>
		<comments>http://www.jsena.info/2011/01/11/problemas-para-acessar-o-iphone-a-partir-do-ubuntu-10-10/#comments</comments>
		<pubDate>Wed, 12 Jan 2011 01:03:31 +0000</pubDate>
		<dc:creator>Jansen Sena</dc:creator>
				<category><![CDATA[Dicas e truques]]></category>
		<category><![CDATA[Geral]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.jsena.info/?p=286</guid>
		<description><![CDATA[As coisas parecem estar progredindo bastante quando se fala de GNU/Linux, não é mesmo? Lembro-me da época em que tudo era muito complicado e trabalhoso para funcionar. Hoje em dia é provável que muitos usuários instalem uma distribuição como o Ubuntu em seus computadores e, em poucos minutos, tenham tudo funcionando perfeitamente, sem que sejam [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">As coisas parecem estar progredindo bastante quando se fala de GNU/Linux, não é mesmo? Lembro-me da época em que tudo era muito complicado e trabalhoso para funcionar. Hoje em dia é provável que muitos usuários instalem uma distribuição como o <a href="http://www.ubuntulinux.org">Ubuntu</a> em seus computadores e, em poucos minutos, tenham tudo funcionando perfeitamente, sem que sejam necessárias peripécias e truques. Mesmo assim, problemas acontecem&#8230;</p>
<p style="text-align: justify;">Em algumas versões anteriores do Ubuntu, por exemplo, era necessário instalar alguns pacotes e fazer algumas configurações para que fosse possível acessar um iPhone a partir de seu sistema operacional. Com o <a href="http://www.ubuntulinux.org">Ubuntu</a> 10.10 (Maverick Meerkat) as coisas evoluíram bastante: ao conectar um iPhone, o sistema já apresenta o seu sistema de arquivos automaticamente e ainda fica apto a conectar com ferramentas como o gtkpod, o Banshee e o RhythmBox. Maravilha, não? Isso funciona muito bem&#8230; ou, pelo menos, funcionava até atualizar a versão do iOS para a 4.2.1&#8230; Com essa versão, a conexão do aparelho celular ao seu computador deve apresentar um erro ao invés da tela que você estava acostumado a ver.</p>
<p style="text-align: justify;">Com uma rápida pesquisa na Internet, encontrei uma <a href="http://geekfiles.altervista.org/en/ubuntu-iphone-non-riconosciuto-dopo-laggiornamento-ios-4-2-ecco-come-risolvere-il-problema/">solução muito simples</a> que resolveu o problema.  Em poucas palavras, a saída consiste em atualizar alguns pacotes, dentre os quais o libimobiledevices, uma biblioteca que provê a interface de comunicação de dispositivos como iPhones e iPod Touchs com o sistema operacional, através de um repositório que deve ser adicionado ao seu sistema operacional.</p>
<p style="text-align: justify;">Para isso, abra um terminal como super-usuário e execute os seguintes comandos:</p>
<pre style="text-align: justify;"># add-apt-repository ppa:pmcenery/ppa</pre>
<pre style="text-align: justify;"># apt-get update</pre>
<pre style="text-align: justify;"># apt-get dist-upgrade
</pre>
<p style="text-align: justify;"><em>Caso seu terminal não seja de super-usuário, não esqueça de acrescentar o &#8220;sudo&#8221; antes de cada um dos três comandos anteriores.</em></p>
<p style="text-align: justify;">Após a execução dos comandos anteriores, basta reconectar o iPhone ao Ubuntu e tudo deve estar funcionando novamente. Simples, não?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jsena.info/2011/01/11/problemas-para-acessar-o-iphone-a-partir-do-ubuntu-10-10/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Criando um sistema de arquivos criptografado no GNU/Linux.</title>
		<link>http://www.jsena.info/2010/10/24/criando-um-sistema-de-arquivos-criptogrado-no-gnulinux/</link>
		<comments>http://www.jsena.info/2010/10/24/criando-um-sistema-de-arquivos-criptogrado-no-gnulinux/#comments</comments>
		<pubDate>Sun, 24 Oct 2010 16:15:20 +0000</pubDate>
		<dc:creator>Jansen Sena</dc:creator>
				<category><![CDATA[Dicas e truques]]></category>
		<category><![CDATA[Segurança]]></category>
		<category><![CDATA[Software Livre]]></category>
		<category><![CDATA[Sysadmin]]></category>
		<category><![CDATA[criptografia]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[sistema de arquivos]]></category>

		<guid isPermaLink="false">http://www.jsena.info/?p=154</guid>
		<description><![CDATA[O aumento da capacidade de armazenamento dos meios de armazenamento (HDs, pen drives, cartões de memória, etc) e a redução drástica nos preços desses equipamentos mantém uma relação proporcional ao nível de dependência, cada vez maior, diga-se de passagem, que os usuários (e suas corporações) possuem com relação às informações preservadas nesses dispositivos. Hoje, pequenos [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">O aumento da capacidade de armazenamento dos meios de armazenamento (HDs, <em>pen drives</em>, cartões de memória, etc) e a redução drástica nos preços desses equipamentos mantém uma relação proporcional ao nível de dependência, cada vez maior, diga-se de passagem, que os usuários (e suas corporações) possuem com relação às informações preservadas nesses dispositivos. Hoje, pequenos <em>pen drives</em> possuem muito mais espaço de armazenamento do que servidores inteiros de alguns anos atrás. Discos com <em>terabytes</em> de capacidade podem ser adquiridos na maioria das lojas de informática a preços bem acessíveis. Some-se a isso o fato desses meios de armazenamento estarem menores e , portanto, &#8220;perambulando&#8221; em bolsas, bolsos, mochilas, pastas, dentre outros.</p>
<p style="text-align: justify;">Essas facilidades, entretanto, aumentam em muito a possibilidade de se perder esses equipamentos ou mesmo tê-los furtados por outra pessoa. Ainda que sejam arquivos de natureza pessoal, tais como fotos, e-mails e outros documentos, a maioria das pessoas não gostaria de ver esses arquivos em mãos erradas, não é mesmo? Trocando o contexto para o meio corporativo, o comprometimento de informações pode inviabilizar projetos, negócios, estratégias e até a própria sobrevivência da instituição. Por outro lado, são poucas as pessoas e as instituições que têm implementados mecanismos que possam proteger as informações contra a perda ou o roubo dos meios de armazenamento. A grande maioria prefere sofrer com o arrependimento e com as lamentações quando perdem seus dados e os deixam expostos sem qualquer proteção para evitar que os mesmos sejam acessados (e explorados) livremente.</p>
<p style="text-align: justify;">A boa notícia é que existem recursos muito simples para instalar e configurar alguns mecanismos e ferramentas para melhorar a confidencialidade de suas informações. Dentre os diversos recursos e ferramentas disponíveis, uma das mais eficazes são os sistemas de arquivos criptografados e, em ambientes GNU/Linux é algo simples de fazer. A seguir, compartilho uma das maneiras que costumo utilizar para criar, rapidamente, sistemas de arquivos criptografados. Vamos lá?</p>
<p style="text-align: justify;"><span id="more-154"></span>Irei tomar como referência o <a href="http://www.ubuntulinux.org">Ubuntu Linux</a>. Entretanto, respeitadas as diferenças no processo de instalação dos pacotes necessários, o restante do processo é semelhante em outras distribuições. Em tempo, o processo a seguir mostra os procedimentos utilizando-se utilitários de linha de comando. Com isso, esse mesmo processo pode ser utilizado para criar sistemas de arquivos criptografados em servidores e/ou desktops da mesma maneira.</p>
<p style="text-align: justify;">O primeiro passo consiste em instalar os pacotes necessários. Para tal, a partir de um terminal com privilégios de super-usuário, execute o seguinte comando:</p>
<pre style="text-align: justify;"><strong># apt-get install cryptsetup cryptmount</strong>
</pre>
<p style="text-align: justify;">Em seguida, supondo que você reservou a partição /dev/sda5 para criar o seu sistema de arquivos seguro, o próximo passo consiste em formatá-la já considerando a camada de criptografia. Esse processo irá exigir a inserção de uma &#8220;frase-senha&#8221; que irá proteger o sistema de arquivos. Portanto, a segurança de seus dados será proporcional à força dessa senha. Esse passo deve ser executado por meio do comando abaixo:</p>
<pre style="text-align: justify;"><strong># cryptsetup luksFormat /dev/sda5</strong></pre>
<pre>WARNING!
========
This will overwrite data on /dev/sda5 irrevocably.

Are you sure? (Type uppercase yes): YES
Enter LUKS passphrase:
Verify passphrase:</pre>
<p><span style="text-decoration: underline;"><em><strong>IMPORTANTE</strong></em></span>: Caso você esteja criptografando o conteúdo de um <em>pen drive</em> ou de qualquer outro dispositivo de armazenamento que já contenha um  sistema de arquivos convencional e que seja, por conta disso, montado  automaticamente em seu ambiente, tome o cuidado de desmontá-lo antes de  prosseguir com as configurações. Caso contrário, o comando &#8220;<em>cryptsetup luksFormat</em>&#8221; irá falhar!</p>
<p style="text-align: justify;">Observe que, antes de solicitar a senha, o comando irá confirmar se pode prosseguir sua execução uma vez que esse processo irá sobrescrever todos os dados que possam estar, eventualmente, presentes nessa partição. Para confirmar, é necessário responder com &#8220;YES&#8221; (em caixa alta). Logo depois, a &#8220;frase-senha&#8221; e sua respectiva confirmação são solicitadas.</p>
<p style="text-align: justify;">Uma vez criado o sistema criptografado, é necessário &#8220;abrir&#8221; o dispositivo de forma que ele possa ser acessado como um <em>device</em> convencional e que, portanto, possa conter um sistema de arquivos como o ext3, por exemplo. Isso deve ser feito através do seguinte comando que irá solicitar a &#8220;frase-senha&#8221;:</p>
<pre><strong># cryptsetup luksOpen /dev/sda5 MYCRYPT</strong>
Enter passphrase for /dev/sda5:
Key slot 0 unlocked.</pre>
<p style="text-align: justify;">Executado esse comando, o sistema operacional deve ter criado um dispositivo chamado /dev/mapper/MYCRYPT que é, na verdade, um dispositivo normal de armazenamento como outro qualquer e que pode, portanto, ser formatado. Entretanto, nesse caso, os dados armazenados em /dev/mapper/MYCRYPT são salvos, fisicamente, no sistema de arquivos criptografado criado em /dev/sda5. Em outras palavras, uma vez que seus meios de armazenamento caiam em mãos erradas, o que o &#8220;novo dono&#8221; terá acesso é um monte de dados criptografados que não representam nada (a não ser que você tenha deixado sua &#8220;frase-senha&#8221; à mostra em algum lugar).</p>
<p style="text-align: justify;">Para formatar o sistema de arquivos mapeado com ext3, por exemplo, utilize o próprio comando mkfs.ext3:</p>
<pre style="text-align: justify;"><strong># mkfs.ext3 -L MYCRYPT /dev/mapper/MYCRYPT</strong>
</pre>
<p style="text-align: justify;">Criado o sistema de arquivos, monte-o normalmente para poder começar a salvar seus dados mais sensíveis:</p>
<pre style="text-align: justify;"><strong># mount  /dev/mapper/MYCRYPT /media</strong></pre>
<p style="text-align: justify;">No Ubuntu Desktop, o processo de montagem também pode ser feito pela própria interface gráfica. Ou seja, após criar e formatar o sistema de arquivo, ao acessar a opção <em>Places</em> (Lugares) na barra superior, já é possível ver o reconhecimento do dispositivo criptografado recém-criado. Ao selecionar esse disco, o próprio ambiente gráfico já solicita a senha para montagem do dispositivo.</p>
<p style="text-align: justify;">Voltando pra linha de comando, após utilizar o sistema de arquivos seguro, você deve desmontá-lo e, em seguida, desfazer o mapeamento criado entre o dispositivo criptografado (/dev/sda5) e o mapeado (/dev/mapper/MYCRYPT):</p>
<pre style="text-align: justify;"><strong># umount /media</strong></pre>
<pre style="text-align: justify;"><strong># cryptsetup luksClose MYCRYPT</strong>
</pre>
<p style="text-align: justify;">Para explorar mais funcionalidades tais como trocar ou adicionar senhas para o sistema de arquivos criptografos, consulte a <em>man page</em> do comando cryptsetup.</p>
<p style="text-align: justify;">Existem ainda opções para fazer com que o sistema de arquivos criptografado seja montado automaticamente todas as vezes que o usuário efetua o seu <em>login</em> no sistema. Isso pode ser feito por meio do PAM combinado com outras configurações. Mas, vamos deixar isso pra uma outra oportunidade.</p>
<p style="text-align: justify;">Espero que essa dica seja, de alguma maneira, útil e que, depois dela, seus dados mais críticos recebam a proteção que eles merecem!</p>
<p style="text-align: justify;">
<p style="text-align: justify;">
]]></content:encoded>
			<wfw:commentRss>http://www.jsena.info/2010/10/24/criando-um-sistema-de-arquivos-criptogrado-no-gnulinux/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Rsync funciona com o SSH em uma porta diferente da 22?</title>
		<link>http://www.jsena.info/2010/10/17/rsync-funciona-com-o-ssh-em-uma-porta-diferente-da-22/</link>
		<comments>http://www.jsena.info/2010/10/17/rsync-funciona-com-o-ssh-em-uma-porta-diferente-da-22/#comments</comments>
		<pubDate>Sun, 17 Oct 2010 21:44:11 +0000</pubDate>
		<dc:creator>Jansen Sena</dc:creator>
				<category><![CDATA[Dicas e truques]]></category>
		<category><![CDATA[Sysadmin]]></category>

		<guid isPermaLink="false">http://www.jsena.info/?p=246</guid>
		<description><![CDATA[O rsync é uma ferramenta extremamente útil e bastante utilizada por diversos administradores de sistemas Unix/Linux e até mesmo por usuários mais avançados. O próprio nome do utilitário já se confunde com a função de sincronizar arquivos e diretórios. Basicamente, quando se deseja utilizar essa ferramenta para sincronizar arquivos entre máquinas distintas, existem duas maneiras [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">O <em>rsync</em> é uma ferramenta extremamente útil e bastante utilizada por diversos administradores de sistemas Unix/Linux e até mesmo por usuários mais avançados. O próprio nome do utilitário já se confunde com a função de sincronizar arquivos e diretórios. Basicamente, quando se deseja utilizar essa ferramenta para sincronizar arquivos entre máquinas distintas, existem duas maneiras básicas e mais comuns: ou por meio de um <em>daemon rsync</em> que deve estar sendo executado na máquina onde se deseja sincronizar os arquivos; ou através do popular servidor SSH. Como a última alternativa já se aproveita de um serviço de acesso remoto seguro, presente na grande maioria das máquinas que possui Unix e/ou alguma distribuição GNU/Linux, essa pode ser a maneira mais prática.</p>
<p style="text-align: justify;">Por exemplo, suponha que você deseje sincronizar o conteúdo do diretório <em>/home/jansen/docs</em> com o diretório <em>/home/bkp/jansen</em> que fica na máquina chamada <em>aragorn.jsena.com.br</em>. Considerando que existe um usuário chamado <em>jsena</em> no host <em>aragorn.jsena.com.br</em> e um servidor SSH, basta utilizar o seguinte comando para realizar essa tarefa:</p>
<pre style="text-align: justify;"><strong>$ rsync -avz /home/jansen/docs jsena@aragorn.jsena.com.br:/home/jsena/bkp</strong></pre>
<p style="text-align: justify;">Simples, não? É claro que existem outras opções do rsync bastante úteis e que podem ser consideradas para fazer operações de sincronismo mais customizadas e específicas. Normalmente, o SSH irá solicitar a senha para autenticar o usuário jsena no host aragorn.jsena.com.br. Entretanto, caso seja de seu interesse executar esse sincronismo automaticamente, sem a necessidade de inserção de senha, basta gerar um par de chaves com o aplicativo <em>ssh-keygen</em> e transferir a chave pública do usuário (criada normalmente com o nome de <em>id_pub.dsa</em> ou <em>id_pub.rsa</em>) em seu computador local para o arquivo <em>/home/jsena/.ssh/authorized_keys</em>. Mas, isso é assunto para outra oportunidade. A questão aqui é tratar do seguinte problema: como fazer o <em>rsync</em> funcionar por meio do SSH se esse servidor não estiver sendo executado em sua porta TCP padrão, a 22?</p>
<p style="text-align: justify;">Antes que você possa se perguntar: &#8220;afinal de contas, por que utilizar o SSH em uma porta diferente da padrão?&#8221;, aí vai uma rápida explicação. Sempre coloco esse serviço para executar em outras portas, diferentes da padrão por questões de segurança e de hábito. Isso não representa muita segurança (e uma melhor solução seria utilizar o SPA, <em>Single Packet Authorization</em>). Po outro lado, quando isso não é aplicável, essa medida pode, ao menos, desviar a atenção principalmente dos atacantes e/ou curiosos menos experientes. O problema é que o <em>rsync</em> não possui um parâmetro do tipo &#8220;port&#8221; ou &#8220;-p&#8221; para se indicar a utilização de uma outra porta quando o SSH está sendo utilizado para o sincronismo de arquivos. A solução é, por outro lado, bastante simples. Tomando como base o exemplo apresentado e supondo que o servidor SSH no host <em>aragorn.jsena.com.br</em> esteja funcionando na porta 22119, basta executar o comando anterior da seguinte maneira:</p>
<pre><strong>$ rsync -avz -e 'ssh -p 22119' /home/jansen/docs \
      jsena@aragorn.jsena.com.br:/home/jsena/bkp</strong></pre>
<p>Pronto. O problema está resolvido!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jsena.info/2010/10/17/rsync-funciona-com-o-ssh-em-uma-porta-diferente-da-22/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

