<?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>Fogo na Caixa dAgua &#187; FreeBSD</title>
	<atom:link href="http://www.fogonacaixadagua.com.br/category/freebsd/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.fogonacaixadagua.com.br</link>
	<description>http://www.fogonacaixadagua.com.br</description>
	<lastBuildDate>Tue, 20 Sep 2011 21:39:38 +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>rSyslog 3 gravando no MySQL e interface Web para consulta</title>
		<link>http://www.fogonacaixadagua.com.br/2011/03/rsyslog-3-gravando-no-mysql-e-interface-web-para-consulta/</link>
		<comments>http://www.fogonacaixadagua.com.br/2011/03/rsyslog-3-gravando-no-mysql-e-interface-web-para-consulta/#comments</comments>
		<pubDate>Mon, 21 Mar 2011 17:27:00 +0000</pubDate>
		<dc:creator>Daniel Kühl Lima</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[syslog]]></category>

		<guid isPermaLink="false">http://www.fogonacaixadagua.com.br/?p=1515</guid>
		<description><![CDATA[Já a algum tempo, eu havia feito um guia para instalação de uma solução igual a essa só que o tempo passa e o guia já está desatualizado, contempla a versão 2 do rSyslog e o phpLogCon até mudou de nome para LogAnalyzer, nada mais justo que atualizar o guia para as última versões, são [...]]]></description>
			<content:encoded><![CDATA[<div class="socialize-in-content" style="float:left;"><div class="socialize-in-button socialize-in-button-vertical"><script type="text/javascript">
			<!-- 
				tweetmeme_url = "http://www.fogonacaixadagua.com.br/2011/03/rsyslog-3-gravando-no-mysql-e-interface-web-para-consulta/";
				tweetmeme_source = "tweetmeme";
				tweetmeme_style = "normal";
				
			//-->
			</script>
                        <script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"></script></div></div><p>Já a algum tempo, eu havia <a href="http://www.fogonacaixadagua.com.br/2009/09/rsyslog-gravando-no-mysql-e-com-interface-web-para-consultas/" target="_blank">feito um guia para instalação</a> de uma solução igual a essa só que o tempo passa e o guia já está desatualizado, contempla a versão 2 do rSyslog e o phpLogCon até mudou de nome para LogAnalyzer, nada mais justo que atualizar o guia para as última versões, são elas:</p>
<ul>
<li>rSyslog 3.22.3</li>
<li>LogAnalyzer 3.0.7</li>
</ul>
<p>Esse guia será feito com o FreeBSD 8.1 podendo ser adaptado para qualquer distribuição Linux.</p>
<p>Sabe por que é fácil adaptar? Por que a única fase do processo que não depende de instalação nativa de pacotes da distribuição é o final, da instalação do LogAnalyzer, de resto, tudo é instalável de forma padrão pertinente a distribuição Linux adotada.</p>
<h3>Instalação do rSyslog3 e sua configuração</h3>
<pre class="brush:shell">cd /usr/ports/sysutils/rsyslog3-mysql
make install
cp work/rsyslog-3.xx.x/plugins/ommysql/createDB.sql ~
</pre>
<p>No caso, no momento o caminho para esse arquivo atualmente é:</p>
<pre class="brush:shell">/usr/ports/sysutils/rsyslog3-mysql/work/rsyslog-3.22.3/plugins/ommysql/createDB.sql
</pre>
<p>A versão pode mudar (mudará) dependendo da época que se está usando esse guia.</p>
<p>Editar /etc/rc.conf e adicionar as linhas</p>
<pre class="brush:shell">rsyslogd_enable="YES"
rsyslogd_config="/usr/local/etc/rsyslog.conf"
</pre>
<p>Editar o arquivo /usr/local/etc/rsyslog.conf<br />
Se estiver em branco, colocar o conteúdo dele como abaixo:</p>
<pre class="brush:text">################################################################################
# rsyslog v3: load input modules
# If you do not load inputs, nothing happens!
# You may need to set the module load path if modules are not found.

$ModLoad immark   # provides --MARK-- message capability
$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
$ModLoad imklog   # kernel logging (formerly provided by rklogd)

# Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.*                                                 /dev/console

# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none                -/var/log/messages

# The authpriv file has restricted access.
authpriv.*                                              /var/log/secure

# Log all the mail messages in one place.
mail.*                                                  -/var/log/maillog

# Log cron stuff
cron.*                                                  -/var/log/cron

# Everybody gets emergency messages
*.emerg                                                 *

# Save news errors of level crit and higher in a special file.
uucp,news.crit                                          -/var/log/spooler

# Save boot messages also to boot.log
local7.*                                                /var/log/boot.log

# Remote Logging (we use TCP for reliable delivery)
# An on-disk queue is created for this action. If the remote host is
# down, messages are spooled to disk and sent when it is up again.
#$WorkDirectory /rsyslog/spool # where to place spool files
#$ActionQueueFileName uniqName # unique name prefix for spool files
#$ActionQueueMaxDiskSpace 1g   # 1gb space limit (use as much as possible)
#$ActionQueueSaveOnShutdown on # save messages to disk on shutdown
#$ActionQueueType LinkedList   # run asynchronously
#$ActionResumeRetryCount -1    # infinite retries if host is down
# remote host is: name/ip:port, e.g. 192.168.0.1:514, port optional
#*.* @@remote-host:514

# ######### Receiving Messages from Remote Hosts ##########
# TCP Syslog Server:
# provides TCP syslog reception and GSS-API (if compiled to support it)
#$ModLoad imtcp.so  # load module
#$InputTCPServerRun 514 # start up TCP listener at port 514

# UDP Syslog Server:
$ModLoad imudp.so  # provides UDP syslog reception
$UDPServerRun 514 # start a UDP syslog server at standard port 514

# MySQL
$ModLoad ommysql.so
*.*    :ommysql:localhost,Syslog,rsyslog,info2001
################################################################################
</pre>
<h3>Instalação do PHP5 e extenções necessárias</h3>
<pre class="brush:shell">cd /usr/ports/lang/php5
make config
</pre>
<p><a href="http://www.fogonacaixadagua.com.br/wp-content/uploads/2011/03/Screenshot-daniel@001inf0124-1.png"><img class="alignnone size-full wp-image-1520" title="Screenshot-daniel@001inf0124: ~-1" src="http://www.fogonacaixadagua.com.br/wp-content/uploads/2011/03/Screenshot-daniel@001inf0124-1.png" alt="" width="665" height="346" /></a></p>
<pre class="brush:shell">make install
</pre>
<h4>PHP5 extensions</h4>
<pre class="brush:shell">cd /usr/ports/lang/php5-extensions
make config
</pre>
<p><a href="http://www.fogonacaixadagua.com.br/wp-content/uploads/2011/03/Screenshot-daniel@001inf0124-2.png"><img class="alignnone size-full wp-image-1521" title="Screenshot-daniel@001inf0124: ~-2" src="http://www.fogonacaixadagua.com.br/wp-content/uploads/2011/03/Screenshot-daniel@001inf0124-2.png" alt="" width="665" height="346" /></a></p>
<p><a href="http://www.fogonacaixadagua.com.br/wp-content/uploads/2011/03/Screenshot-daniel@001inf0124-3.png"><img class="alignnone size-full wp-image-1522" title="Screenshot-daniel@001inf0124: ~-3" src="http://www.fogonacaixadagua.com.br/wp-content/uploads/2011/03/Screenshot-daniel@001inf0124-3.png" alt="" width="665" height="346" /></a></p>
<p><a href="http://www.fogonacaixadagua.com.br/wp-content/uploads/2011/03/Screenshot-daniel@001inf0124-4.png"><img class="alignnone size-full wp-image-1523" title="Screenshot-daniel@001inf0124: ~-4" src="http://www.fogonacaixadagua.com.br/wp-content/uploads/2011/03/Screenshot-daniel@001inf0124-4.png" alt="" width="665" height="346" /></a></p>
<p><a href="http://www.fogonacaixadagua.com.br/wp-content/uploads/2011/03/Screenshot-daniel@001inf0124-5.png"><img class="alignnone size-full wp-image-1524" title="Screenshot-daniel@001inf0124: ~-5" src="http://www.fogonacaixadagua.com.br/wp-content/uploads/2011/03/Screenshot-daniel@001inf0124-5.png" alt="" width="665" height="346" /></a></p>
<pre class="brush:shell">make clean
make install
</pre>
<h3>Instalação do MySQL 5.1.x</h3>
<pre class="brush:shell">cd /usr/ports/databases/mysql51-server/
make install
</pre>
<p>Editar /etc/rc.conf e adicionar</p>
<pre class="brush:shell">mysql_enable="YES"
</pre>
<p>Iniciar o mysql</p>
<pre class="brush:shell">/usr/local/etc/rc.d/mysql-server start
</pre>
<p>Importar o dump .sql do Loganalyzer</p>
<pre class="brush:shell">mysql &lt; ~/createDB.sql
</pre>
<p>Criar um usuário para o rsyslog conectar no banco de dados Syslog</p>
<pre class="brush:sql">mysql
mysql&gt; CREATE USER 'rsyslog'@'localhost' IDENTIFIED BY 'info2001';
mysql&gt; GRANT ALL PRIVILEGES ON Syslog.* TO 'rsyslog'@'localhost';
mysql&gt; quit
</pre>
<h3>Iniciar o rSyslog3</h3>
<p>Primeiro parar o syslog original</p>
<pre class="brush:shell">/etc/rc.d/syslogd stop
</pre>
<p>Então iniciar o rsyslog</p>
<pre class="brush:shell">/usr/local/etc/rc.d/rsyslogd start
</pre>
<p>Verificar se o rsyslog está executando:</p>
<pre class="brush:shell">ps awx | grep rsyslogd
</pre>
<p>E também verificar o /var/log/messages pela linha:</p>
<pre class="brush:text">2011-03-21T13:02:54.406366-03:00 040prx005 rsyslogd: [origin software="rsyslogd" swVersion="3.22.3" x-pid="24327" x-info="http://www.rsyslog.com"] (re)start
</pre>
<h3>Instalação e configuração do LogAnalyzer</h3>
<pre class="brush:shell">cd
wget http://download.adiscon.com/loganalyzer/loganalyzer-3.0.7.tar.gz
</pre>
<p>Acessar o site http://loganalyzer.adiscon.com/downloads para pegar a última versão</p>
<pre class="brush:shell">tar zxvf loganalyzer-3.0.7.tar.gz
cd loganalyzer-3.0.7
mv src /usr/local/www/data/syslog
cd /usr/local/www/data/syslog
touch config.php
chmod 666 config.php
</pre>
<h4>Configuração do LogAnalyzer</h4>
<p>Acessar o endereço do servidor em:<br />
<tt>http://IP_SERVIDOR/syslog/install.php</tt></p>
<p><a href="http://www.fogonacaixadagua.com.br/wp-content/uploads/2011/03/LogAnalyzer-Installer-Step-1_1300725065232.jpeg"><img class="alignnone size-full wp-image-1527" title="LogAnalyzer :: Installer Step 1_1300725065232" src="http://www.fogonacaixadagua.com.br/wp-content/uploads/2011/03/LogAnalyzer-Installer-Step-1_1300725065232.jpeg" alt="" width="830" height="510" /></a></p>
<p><a href="http://www.fogonacaixadagua.com.br/wp-content/uploads/2011/03/LogAnalyzer-Installer-Step-2_1300725086022.jpeg"><img class="alignnone size-full wp-image-1528" title="LogAnalyzer :: Installer Step 2_1300725086022" src="http://www.fogonacaixadagua.com.br/wp-content/uploads/2011/03/LogAnalyzer-Installer-Step-2_1300725086022.jpeg" alt="" width="830" height="510" /></a></p>
<p><a href="http://www.fogonacaixadagua.com.br/wp-content/uploads/2011/03/LogAnalyzer-Installer-Step-3_1300725173837.jpeg"><img class="alignnone size-full wp-image-1529" title="LogAnalyzer :: Installer Step 3_1300725173837" src="http://www.fogonacaixadagua.com.br/wp-content/uploads/2011/03/LogAnalyzer-Installer-Step-3_1300725173837.jpeg" alt="" width="813" height="782" /></a></p>
<p><a href="http://www.fogonacaixadagua.com.br/wp-content/uploads/2011/03/LogAnalyzer-Installer-Step-4_1300725189303.jpeg"><img class="alignnone size-full wp-image-1530" title="LogAnalyzer :: Installer Step 4_1300725189303" src="http://www.fogonacaixadagua.com.br/wp-content/uploads/2011/03/LogAnalyzer-Installer-Step-4_1300725189303.jpeg" alt="" width="830" height="480" /></a></p>
<p><a href="http://www.fogonacaixadagua.com.br/wp-content/uploads/2011/03/LogAnalyzer-Installer-Step-5_1300725199633.jpeg"><img class="alignnone size-full wp-image-1531" title="LogAnalyzer :: Installer Step 5_1300725199633" src="http://www.fogonacaixadagua.com.br/wp-content/uploads/2011/03/LogAnalyzer-Installer-Step-5_1300725199633.jpeg" alt="" width="830" height="510" /></a></p>
<p><a href="http://www.fogonacaixadagua.com.br/wp-content/uploads/2011/03/LogAnalyzer-Installer-Step-6_1300725219454.jpeg"><img class="alignnone size-full wp-image-1532" title="LogAnalyzer :: Installer Step 6_1300725219454" src="http://www.fogonacaixadagua.com.br/wp-content/uploads/2011/03/LogAnalyzer-Installer-Step-6_1300725219454.jpeg" alt="" width="830" height="510" /></a></p>
<p>No passo 6, escolha um usuário e senha que terá acesso administrativo ao LogAnalyzer.</p>
<p><a href="http://www.fogonacaixadagua.com.br/wp-content/uploads/2011/03/LogAnalyzer-Installer-Step-7_1300725323819.jpeg"><img class="alignnone size-full wp-image-1533" title="LogAnalyzer :: Installer Step 7_1300725323819" src="http://www.fogonacaixadagua.com.br/wp-content/uploads/2011/03/LogAnalyzer-Installer-Step-7_1300725323819.jpeg" alt="" width="813" height="740" /></a></p>
<p><a href="http://www.fogonacaixadagua.com.br/wp-content/uploads/2011/03/LogAnalyzer-Installer-Step-8_1300725333031.jpeg"><img class="alignnone size-full wp-image-1534" title="LogAnalyzer :: Installer Step 8_1300725333031" src="http://www.fogonacaixadagua.com.br/wp-content/uploads/2011/03/LogAnalyzer-Installer-Step-8_1300725333031.jpeg" alt="" width="830" height="480" /></a></p>
<p>No passo 8, tudo foi feito com sucesso, clique em &#8220;here&#8221; ou em &#8220;Finish!&#8221;.</p>
<p>Irá para a tela de login:</p>
<p><a href="http://www.fogonacaixadagua.com.br/wp-content/uploads/2011/03/LogAnalyzer-User-Login_1300725400512.jpeg"><img class="alignnone size-full wp-image-1535" title="LogAnalyzer - User Login_1300725400512" src="http://www.fogonacaixadagua.com.br/wp-content/uploads/2011/03/LogAnalyzer-User-Login_1300725400512.jpeg" alt="" width="862" height="493" /></a></p>
<p><a href="http://www.fogonacaixadagua.com.br/wp-content/uploads/2011/03/Source-Servidor-Syslog-para-consultas-Adiscon-LogAnalyzer-All-Syslogmessages_1300725424660.jpeg"><img class="alignnone size-full wp-image-1536" title="Source 'Servidor Syslog para consultas' :: Adiscon LogAnalyzer :: All Syslogmessages_1300725424660" src="http://www.fogonacaixadagua.com.br/wp-content/uploads/2011/03/Source-Servidor-Syslog-para-consultas-Adiscon-LogAnalyzer-All-Syslogmessages_1300725424660.jpeg" alt="" width="1012" height="880" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.fogonacaixadagua.com.br/2011/03/rsyslog-3-gravando-no-mysql-e-interface-web-para-consulta/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FreeBSD: listagem de todos os HDs instalados</title>
		<link>http://www.fogonacaixadagua.com.br/2010/04/freebsd-listagem-de-todos-os-hds-instalados/</link>
		<comments>http://www.fogonacaixadagua.com.br/2010/04/freebsd-listagem-de-todos-os-hds-instalados/#comments</comments>
		<pubDate>Wed, 07 Apr 2010 00:10:42 +0000</pubDate>
		<dc:creator>Daniel Kühl Lima</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[CLI]]></category>

		<guid isPermaLink="false">http://www.fogonacaixadagua.com.br/?p=1436</guid>
		<description><![CDATA[Para fazer uma listagem de todos os HDs (discos) instalados num computador com FreeBSD, uma das formas de se fazer isso é executar o comando: egrep 'ad[0-9]&#124;cd[0-9]' /var/run/dmesg.boot E a saída desse comando será algo como: acd0: CDRW at ata0-master UDMA33 ad2: 76318MB at ata1-master UDMA100 ad3: 76318MB at ata1-slave UDMA100 Onde: IDE Hard disk [...]]]></description>
			<content:encoded><![CDATA[<p>Para fazer uma listagem de todos os HDs (discos) instalados num computador com FreeBSD, uma das formas de se fazer isso é executar o comando:</p>
<pre class="brush: shell">egrep 'ad[0-9]|cd[0-9]' /var/run/dmesg.boot
</pre>
<p>E a saída desse comando será algo como:</p>
<pre class="brush: plain">acd0: CDRW  at ata0-master UDMA33
ad2: 76318MB  at ata1-master UDMA100
ad3: 76318MB  at ata1-slave UDMA100
</pre>
<p>Onde:</p>
<ol>
<li>IDE Hard disk começa com <strong>ad</strong> &#8211; /dev/ad0 primeiro IDE hard disk, /dev/ad1 segundo hard disk e assim por diante </li>
<li>SCSI Hard disk começam com <strong>da</strong> &#8211; /dev/da* </li>
<li>IDE CDROM/RW/DVD começam com <strong>acd</strong> &#8211; /dev/acd* </li>
<li>SCSI CDROM/RW/DVD começam com <strong>cd</strong> &#8211; /dev/cd*</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.fogonacaixadagua.com.br/2010/04/freebsd-listagem-de-todos-os-hds-instalados/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CLI: Converter um PDF para uma imagem</title>
		<link>http://www.fogonacaixadagua.com.br/2010/04/cli-converter-um-pdf-para-uma-imagem/</link>
		<comments>http://www.fogonacaixadagua.com.br/2010/04/cli-converter-um-pdf-para-uma-imagem/#comments</comments>
		<pubDate>Tue, 06 Apr 2010 03:18:04 +0000</pubDate>
		<dc:creator>Daniel Kühl Lima</dc:creator>
				<category><![CDATA[Featured Articles]]></category>
		<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Bash]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[CLI]]></category>
		<category><![CDATA[RedHat]]></category>

		<guid isPermaLink="false">http://www.fogonacaixadagua.com.br/?p=1431</guid>
		<description><![CDATA[Ter um PDF é bom, é prático e tudo o mais, mas é necessário ter um programa específico para poder abrir os arquivos .pdf como o Acrobat Reader, o evince e outros. As vezes não é necessário ou não é desejado ter um programa específico para poder abrir PDFs, sendo mais prático, no entanto, utilizar [...]]]></description>
			<content:encoded><![CDATA[<div class="socialize-in-content" style="float:left;"><div class="socialize-in-button socialize-in-button-vertical"><script type="text/javascript">
			<!-- 
				tweetmeme_url = "http://www.fogonacaixadagua.com.br/2010/04/cli-converter-um-pdf-para-uma-imagem/";
				tweetmeme_source = "tweetmeme";
				tweetmeme_style = "normal";
				
			//-->
			</script>
                        <script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"></script></div></div><p>Ter um PDF é bom, é prático e tudo o mais, mas é necessário ter um programa específico para poder abrir os arquivos .pdf como o Acrobat Reader, o evince e outros.</p>
<p>As vezes não é necessário ou não é desejado ter um programa específico para poder abrir PDFs, sendo mais prático, no entanto, utilizar o próprio navegador que suporta abrir as imagens diretamente sem auxílio externo.</p>
<p>Caso essa seja a sua necessidade, converter os PDFs que estejam num servidor ou o que seja, vou mostrar abaixo como converter PDF para imagem através da linha de comando do Linux utilizando o programa ImageMagick.</p>
<h2>Instalando o ImageMagick no CentOS / Red Hat</h2>
<p>No Red Hat / CentOS é bem simples:</p>
<pre class="brush: shell">
yum install ImageMagick
</pre>
<p>Será instalado o ImageMagick e todas as dependências. Não se assuste se dentre elas ter alguma biblioteca do x.org, é necessário para várias bibliotecas de imagem.</p>
<h2>Convertendo o PDF em imagem</h2>
<p>Para converter o PDF propriamente dito para um arquivo de imagem, simplesmente execute o comando <tt>convert</tt> mais o destino, por exemplo:</p>
<pre class="brush: shell">
convert Relatorio2010.pdf Relatorio2010.png
</pre>
<p>Será gerado uma imagem do PDF no formato .png, mas caso seja necessário que o PDF seja convertido para JPEG, altere a extensão do arquivo de destino:</p>
<pre class="brush: shell">
convert Relatorio2010.pdf Relatorio2010.jpg
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.fogonacaixadagua.com.br/2010/04/cli-converter-um-pdf-para-uma-imagem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SSH: adicionar um banner quando alguém tentar fazer Login</title>
		<link>http://www.fogonacaixadagua.com.br/2010/04/ssh-adicionar-um-banner-quando-alguem-tentar-fazer-login/</link>
		<comments>http://www.fogonacaixadagua.com.br/2010/04/ssh-adicionar-um-banner-quando-alguem-tentar-fazer-login/#comments</comments>
		<pubDate>Thu, 01 Apr 2010 12:27:41 +0000</pubDate>
		<dc:creator>Daniel Kühl Lima</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.fogonacaixadagua.com.br/?p=1369</guid>
		<description><![CDATA[Isto é definido pelo parâmetro Banner do arquivo /etc/ssh/sshd_config. Primeiro, crie o arquivo que conterá a mensagem que será apresentada quando o usuário tentar fazer login via SSH no servidor. Arquivo: /etc/ssh/banner.txt ************************************************ NOTICE TO USERS WARNING! The use of this system is restricted to authorized users, unauthorized access is forbidden and will be prosecuted [...]]]></description>
			<content:encoded><![CDATA[<div class="socialize-in-content" style="float:left;"><div class="socialize-in-button socialize-in-button-vertical"><script type="text/javascript">
			<!-- 
				tweetmeme_url = "http://www.fogonacaixadagua.com.br/2010/04/ssh-adicionar-um-banner-quando-alguem-tentar-fazer-login/";
				tweetmeme_source = "tweetmeme";
				tweetmeme_style = "normal";
				
			//-->
			</script>
                        <script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"></script></div></div><p>Isto é definido pelo parâmetro <tt>Banner</tt> do arquivo <tt>/etc/ssh/sshd_config</tt>. </p>
<p>Primeiro, crie o arquivo que conterá a mensagem que será apresentada quando o usuário tentar fazer login via SSH no servidor.</p>
<p><b>Arquivo:</b> <tt>/etc/ssh/banner.txt</tt></p>
<pre class="brush: plain">
************************************************

            NOTICE TO USERS WARNING! 

The use of this system is restricted to authorized
users, unauthorized access is forbidden and will
be prosecuted by law. 

All information and communications on this system
are subject to review, monitoring and recording at
any time, without notice or permission. 

Users should have no expectation of privacy. 

*************************************************
</pre>
<p>Edite o arquivo <tt>/etc/ssh/sshd_config</tt> e procure pelo parâmetro <tt>Banner</tt>, geralmente está próximo do final desse arquivo.</p>
<p>Provavelmente esse parâmetro estará comentado:</p>
<pre class="brush: shell">
#Banner /some/path
</pre>
<p>Altere essa linha para:</p>
<pre class="brush: plain">
Banner /etc/ssh/banner.txt
</pre>
<p>Grave a alteração e reinicie o servidor do ssh:</p>
<pre class="brush: shell">
service sshd restart
Stopping sshd:                                             [  OK  ]
Starting sshd:                                             [  OK  ]
</pre>
<p>ou</p>
<pre class="brush: shell">
/etc/init.d/sshd restart
</pre>
<p>Para testar se tudo está OK, tente conectar-se via SSH no host que foi feita a alteração:</p>
<pre class="brush:shell">
ssh localhost
</pre>
<p>Deverá ser apresentada uma tela parecida com a seguinte:</p>
<pre class="brush:plain">
The authenticity of host 'localhost (127.0.0.1)' can't be established.
RSA key fingerprint is e8:86:ca:cc:e5:fd:cc:76:c3:57:55:5b:67:f8:98:c3.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'localhost' (RSA) to the list of known hosts.
************************************************

            NOTICE TO USERS WARNING! 

The use of this system is restricted to authorized
users, unauthorized access is forbidden and will
be prosecuted by law. 

All information and communications on this system
are subject to review, monitoring and recording at
any time, without notice or permission. 

Users should have no expectation of privacy. 

*************************************************

root@localhost's password:
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.fogonacaixadagua.com.br/2010/04/ssh-adicionar-um-banner-quando-alguem-tentar-fazer-login/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SED: adicionar 1 string a cada 2 caracteres</title>
		<link>http://www.fogonacaixadagua.com.br/2010/03/sed-adicionar-1-string-a-cada-2-caracteres/</link>
		<comments>http://www.fogonacaixadagua.com.br/2010/03/sed-adicionar-1-string-a-cada-2-caracteres/#comments</comments>
		<pubDate>Wed, 31 Mar 2010 13:47:26 +0000</pubDate>
		<dc:creator>Daniel Kühl Lima</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Bash]]></category>
		<category><![CDATA[CLI]]></category>
		<category><![CDATA[sed]]></category>

		<guid isPermaLink="false">http://www.fogonacaixadagua.com.br/?p=1353</guid>
		<description><![CDATA[Estou colocando aqui um exemplo que pode ser adaptado para sua necessidade. No caso, essa linha adiciona o caracter &#8220;:&#8221; (sem as aspas) a cada 2 caracteres. Utilizei para formatar uma lista enorme de MAC address que me foi passado no formato 00106037614C O arquivo texto original continha várias linhas: Arquivo: mac1.txt 001060376173 001060376124 00106037614C [...]]]></description>
			<content:encoded><![CDATA[<div class="socialize-in-content" style="float:left;"><div class="socialize-in-button socialize-in-button-vertical"><script type="text/javascript">
			<!-- 
				tweetmeme_url = "http://www.fogonacaixadagua.com.br/2010/03/sed-adicionar-1-string-a-cada-2-caracteres/";
				tweetmeme_source = "tweetmeme";
				tweetmeme_style = "normal";
				
			//-->
			</script>
                        <script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"></script></div></div><p>Estou colocando aqui um exemplo que pode ser adaptado para sua necessidade.</p>
<p>No caso, essa linha adiciona o caracter &#8220;:&#8221; (sem as aspas) a cada 2 caracteres.</p>
<p>Utilizei para formatar uma lista enorme de MAC address que me foi passado no formato <tt>00106037614C</tt></p>
<p>O arquivo texto original continha várias linhas:</p>
<p><b>Arquivo:</b> <tt>mac1.txt</tt></p>
<pre class="brush: plain">
001060376173
001060376124
00106037614C
001060374840
001060376125
00106037612A
001060376176
001060375D9A
001060375D97
</pre>
<p>E executando sed, na linha abaixo</p>
<pre class="brush: shell">
sed -e :a -e 's/\(.*[0-9,A-Z]\)\([0-9,A-Z]\{2\}\)/\1:\2/;ta' mac1.txt > mac2.txt
</pre>
<p>O resultado que foi direcionado para o arquivo <tt>mac2.txt</tt> é o desejado:</p>
<pre class="brush: plain">
00:10:60:37:61:73
00:10:60:37:61:24
00:10:60:37:61:4C
00:10:60:37:48:40
00:10:60:37:61:25
00:10:60:37:61:2A
00:10:60:37:61:76
00:10:60:37:5D:9A
00:10:60:37:5D:97
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.fogonacaixadagua.com.br/2010/03/sed-adicionar-1-string-a-cada-2-caracteres/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>LibClamAV Error: cli_loaddb()</title>
		<link>http://www.fogonacaixadagua.com.br/2010/03/libclamav-error-cli_loaddb/</link>
		<comments>http://www.fogonacaixadagua.com.br/2010/03/libclamav-error-cli_loaddb/#comments</comments>
		<pubDate>Thu, 11 Mar 2010 22:29:23 +0000</pubDate>
		<dc:creator>Daniel Kühl Lima</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Troubleshoot]]></category>

		<guid isPermaLink="false">http://www.fogonacaixadagua.com.br/?p=1301</guid>
		<description><![CDATA[This error can happen with Linux or FreeBSD or whichever SO that ClamAV support. When you run clamscan You get this error LibClamAV Error: cli_loaddb(): No supported database files found in /var/db/clamav ERROR: Can't open file or directory ----------- SCAN SUMMARY ----------- Known viruses: 0 Engine version: 0.95.1 Scanned directories: 0 Scanned files: 0 Infected [...]]]></description>
			<content:encoded><![CDATA[<div class="socialize-in-content" style="float:left;"><div class="socialize-in-button socialize-in-button-vertical"><script type="text/javascript">
			<!-- 
				tweetmeme_url = "http://www.fogonacaixadagua.com.br/2010/03/libclamav-error-cli_loaddb/";
				tweetmeme_source = "tweetmeme";
				tweetmeme_style = "normal";
				
			//-->
			</script>
                        <script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"></script></div></div><p>This error can happen with Linux or FreeBSD or whichever SO that ClamAV support.</p>
<p>When you run</p>
<pre class="brush:plain">clamscan</pre>
<p>You get this error</p>
<pre class="brush:plain">
LibClamAV Error: cli_loaddb(): No supported database files found in /var/db/clamav
ERROR: Can't open file or directory

----------- SCAN SUMMARY -----------
Known viruses: 0
Engine version: 0.95.1
Scanned directories: 0
Scanned files: 0
Infected files: 0
Data scanned: 0.00 MB
Data read: 0.00 MB (ratio 0.00:1)
Time: 0.001 sec (0 m 0 s)
</pre>
<p>It means that you have no database virus.</p>
<p>Just configure and run <tt>freshclam</tt>.</p>
<p>A sample freshclam.conf file:</p>
<pre class="brush:plain">
DatabaseDirectory /var/lib/clamav
UpdateLogFile /var/log/freshclam.log
LogTime yes
LogSyslog yes
PidFile /var/run/clamd/freshclam.pid
DatabaseOwner clamav
DNSDatabaseInfo current.cvd.clamav.net
DatabaseMirror db.br.clamav.net
DatabaseMirror database.clamav.net
NotifyClamd /usr/local/etc/clamd.conf
SubmitDetectionStats /usr/local/etc/clamd.conf
DetectionStatsCountry BR
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.fogonacaixadagua.com.br/2010/03/libclamav-error-cli_loaddb/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FreeBSD: Quando o csup ou cvsup atrás de um Proxy não funciona</title>
		<link>http://www.fogonacaixadagua.com.br/2010/03/freebsd-quando-o-csup-ou-cvsup-atras-de-um-proxy-nao-funciona/</link>
		<comments>http://www.fogonacaixadagua.com.br/2010/03/freebsd-quando-o-csup-ou-cvsup-atras-de-um-proxy-nao-funciona/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 22:32:10 +0000</pubDate>
		<dc:creator>Daniel Kühl Lima</dc:creator>
				<category><![CDATA[FreeBSD]]></category>

		<guid isPermaLink="false">http://www.fogonacaixadagua.com.br/?p=1225</guid>
		<description><![CDATA[Quando se está atrás de um proxy para acessar sites e etc, os programas CSUP e CVSUP não irão conectar via HTTP ou FTP através do Proxy, mesmo que as variáveis HTTP_PROXY e/ou HTTP_PROXY_AUTH estejam definidas. Mas há uma alternativa simples e elegante utilizando ssh forward para ter seu FreeBSD atualizado :) Pré-requisito Ter acesso [...]]]></description>
			<content:encoded><![CDATA[<div class="socialize-in-content" style="float:left;"><div class="socialize-in-button socialize-in-button-vertical"><script type="text/javascript">
			<!-- 
				tweetmeme_url = "http://www.fogonacaixadagua.com.br/2010/03/freebsd-quando-o-csup-ou-cvsup-atras-de-um-proxy-nao-funciona/";
				tweetmeme_source = "tweetmeme";
				tweetmeme_style = "normal";
				
			//-->
			</script>
                        <script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"></script></div></div><p>Quando se está atrás de um proxy para acessar sites e etc, os programas CSUP e CVSUP não irão conectar via <tt>HTTP</tt> ou <tt>FTP</tt> através do Proxy, mesmo que as variáveis <tt>HTTP_PROXY</tt> e/ou <tt>HTTP_PROXY_AUTH</tt> estejam definidas.</p>
<p>Mas há uma alternativa simples e elegante utilizando ssh forward para ter seu FreeBSD atualizado :)</p>
<h3>Pré-requisito</h3>
<p>Ter acesso ao ssh do Proxy que tem acesso à internet e consiga conectar na porta 5999 na internet</p>
<h3>Tunelando com SSH forward</h3>
<p>Com o pré-requisito satisfeito, para utilizar o CSVUP ou o CSUP faça um SSH no servidor proxy ou no computador que tenha acesso à internet fazer um forward na porta 5999, conforme o exemplo:</p>
<pre class="brush: bash">ssh -L 5999:cvsup4.FreeBSD.org:5999 -l usuario host.com.acesso.a.internet
</pre>
<p>O SSH vai redirecionar as conexões em localhost na porta 5999 para o host cvsup4.FreeBSD.org porta 5999.</p>
<p>Isto feito, para utlizar agora o CSUP ou CVSUP:</p>
<pre class="brush: bash">cvsup -h localhost
</pre>
<p>ou</p>
<pre class="brush: shell">csup -h localhost
</pre>
<p>ou ainda editar o arquivo <tt>supfile</tt> definindo o host como <tt>localhost</tt>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fogonacaixadagua.com.br/2010/03/freebsd-quando-o-csup-ou-cvsup-atras-de-um-proxy-nao-funciona/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FreeBSD: forçar uso de login e senha ao iniciar em single mode</title>
		<link>http://www.fogonacaixadagua.com.br/2009/11/freebsd-forcar-uso-de-login-e-senha-ao-iniciar-em-single-mode/</link>
		<comments>http://www.fogonacaixadagua.com.br/2009/11/freebsd-forcar-uso-de-login-e-senha-ao-iniciar-em-single-mode/#comments</comments>
		<pubDate>Tue, 03 Nov 2009 16:10:19 +0000</pubDate>
		<dc:creator>Daniel Kühl Lima</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[Seguranca]]></category>

		<guid isPermaLink="false">http://www.fogonacaixadagua.com.br/?p=1172</guid>
		<description><![CDATA[Sintoma Ao iniciar o FreeBSD em single mode, o Sistema entra direto como root, sem pedir senha. Causa Para evitar esse tipo de situação e obrigando quem quer que seja a saber a senha para poder mexer no sistema, proceda da seguinte maneira: Edite o arquivo /etc/ttys e procure pela linha console none unknown off [...]]]></description>
			<content:encoded><![CDATA[<h2>Sintoma</h2>
<p>Ao iniciar o FreeBSD em single mode, o Sistema entra direto como root, sem pedir senha.</p>
<h2>Causa</h2>
<p>Para evitar esse tipo de situação e obrigando quem quer que seja a saber a senha para poder mexer no sistema, proceda da seguinte maneira:</p>
<p>Edite o arquivo <tt>/etc/ttys</tt> e procure pela linha </p>
<pre class="brush: shell; gutter: false">
console none                            unknown off secure
</pre>
<h2>Solução</h2>
<p>E altere o parâmetro onde lê-se <tt>secure</tt> para <tt>insecure</tt>, ficando assim:</p>
<pre class="brush: shell; gutter: false">
console none                            unknown off insecure
</pre>
<p>Após isso, quando for iniciado no single mode, o acesso somente será permito à console mediante confirmação da senha.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fogonacaixadagua.com.br/2009/11/freebsd-forcar-uso-de-login-e-senha-ao-iniciar-em-single-mode/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>FreeBSD troubleshooting Samba AD</title>
		<link>http://www.fogonacaixadagua.com.br/2009/10/freebsd-troubleshooting-samba-ad/</link>
		<comments>http://www.fogonacaixadagua.com.br/2009/10/freebsd-troubleshooting-samba-ad/#comments</comments>
		<pubDate>Wed, 21 Oct 2009 20:47:31 +0000</pubDate>
		<dc:creator>Daniel Kühl Lima</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[Troubleshoot]]></category>
		<category><![CDATA[samba]]></category>

		<guid isPermaLink="false">http://www.fogonacaixadagua.com.br/?p=1011</guid>
		<description><![CDATA[Ao instalar o samba via ports no FreeBSD com suporte ao AD (Active Directory) da Microsoft, pode acontecer de o samba não compilar e terminar com o seguinte erro Compiling libsmb/clikrb5.c libsmb/clikrb5.c: In function `krb5_set_real_time': libsmb/clikrb5.c:128: error: dereferencing pointer to incomplete type libsmb/clikrb5.c:129: error: dereferencing pointer to incomplete type The following command failed: cc -I. [...]]]></description>
			<content:encoded><![CDATA[<p>Ao instalar o samba via ports no FreeBSD com suporte ao AD (Active Directory) da Microsoft, pode acontecer de o samba não compilar e terminar com o seguinte erro</p>
<pre class="brush: shell; gutter: false">Compiling libsmb/clikrb5.c
libsmb/clikrb5.c: In function `krb5_set_real_time':
libsmb/clikrb5.c:128: error: dereferencing pointer to incomplete type
libsmb/clikrb5.c:129: error: dereferencing pointer to incomplete type
The following command failed:
cc -I. -I/usr/ports/net/samba3/work/samba-3.0.26a/source  -O2 -pipe
-march=prescott -D_SAMBA_BUILD_=3 -I/usr/local/include
-I/usr/ports/net/samba3/work/samba-3.0.26a/source/iniparser/src
-Iinclude -I./include  -I. -I. -I./lib/replace -I./lib/talloc
-I./tdb/include -I./libaddns -I./librpc -DHAVE_CONFIG_H
-I/usr/local/include -DLDAP_DEPRECATED
-I/usr/ports/net/samba3/work/samba-3.0.26a/source/lib -D_SAMBA_BUILD_=3
-fPIC -DPIC -c libsmb/clikrb5.c -o libsmb/clikrb5.o
*** Error code 1

Stop in /usr/ports/net/samba3/work/samba-3.0.26a/source.
*** Error code 1

Stop in /usr/ports/net/samba3.
*** Error code 1

Stop in /usr/ports/net/samba3.
</pre>
<p>Para resolver isso, instale, pelo ports, o krb5</p>
<pre class="brush: shell; gutter: true">cd /usr/ports/security/krb5
make install
</pre>
<p>Em seguida, volte ao port do samba e prossiga com a instalação</p>
<pre class="brush: shell; gutter: true">cd /usr/ports/net/samba3
make clean
make KRB5_HOME=/usr/local
make install
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.fogonacaixadagua.com.br/2009/10/freebsd-troubleshooting-samba-ad/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FreeBSD: como montar uma imagem de CD .iso (iso9660) localmente</title>
		<link>http://www.fogonacaixadagua.com.br/2009/10/como-montar-uma-imagem-de-cd-iso-is9660-localmente/</link>
		<comments>http://www.fogonacaixadagua.com.br/2009/10/como-montar-uma-imagem-de-cd-iso-is9660-localmente/#comments</comments>
		<pubDate>Wed, 21 Oct 2009 20:34:02 +0000</pubDate>
		<dc:creator>Daniel Kühl Lima</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[CLI]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.fogonacaixadagua.com.br/?p=1006</guid>
		<description><![CDATA[Muitas vezes baixamos uma imagem de CD mas não queremos ou não precisamos queimar um CD pra pegar o necessário. No linux, para montar uma imagem de CD o comando mount -o loop /caminho/imagem.iso /ponto/de/montagem é o suficiente, mas e no FreeBSD? Como chegar ao mesmo resultado? A sequencia de comandos a serem digitados é [...]]]></description>
			<content:encoded><![CDATA[<p>Muitas vezes baixamos uma imagem de CD mas não queremos ou não precisamos queimar um CD pra pegar o necessário.</p>
<p>No linux, para montar uma imagem de CD o comando</p>
<pre class="brush: shell; gutter: true">mount -o loop /caminho/imagem.iso /ponto/de/montagem
</pre>
<p>é o suficiente, mas e no FreeBSD? Como chegar ao mesmo resultado?</p>
<p>A sequencia de comandos a serem digitados é esta:</p>
<pre class="brush: shell; gutter: true">mdconfig -a -t vnode -f /caminho/para/imagem.iso -u 1
mount -t cd9660 /dev/md1 /ponto/de/montagem
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.fogonacaixadagua.com.br/2009/10/como-montar-uma-imagem-de-cd-iso-is9660-localmente/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Script shell com expect para atualização em massa para o horário de verão 2009/2010</title>
		<link>http://www.fogonacaixadagua.com.br/2009/10/script-shell-com-expect-para-atualizacao-em-massa-para-o-horario-de-verao-20092010/</link>
		<comments>http://www.fogonacaixadagua.com.br/2009/10/script-shell-com-expect-para-atualizacao-em-massa-para-o-horario-de-verao-20092010/#comments</comments>
		<pubDate>Sun, 18 Oct 2009 00:47:21 +0000</pubDate>
		<dc:creator>Daniel Kühl Lima</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Bash]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[CLI]]></category>
		<category><![CDATA[RedHat]]></category>
		<category><![CDATA[timezone]]></category>

		<guid isPermaLink="false">http://www.fogonacaixadagua.com.br/?p=967</guid>
		<description><![CDATA[Para quem trabalha com vários servidores Linux / FreeBSD atualizar todos os servidores para o horário e verão é uma tarefa cansativa e chata. Vou disponibilizar aqui um script para ser utilizado nessa tarefa, ou seja, um script que atualizará todos os servidores listados em um arquivo e os deixará prontos para a virada do [...]]]></description>
			<content:encoded><![CDATA[<div class="socialize-in-content" style="float:left;"><div class="socialize-in-button socialize-in-button-vertical"><script type="text/javascript">
			<!-- 
				tweetmeme_url = "http://www.fogonacaixadagua.com.br/2009/10/script-shell-com-expect-para-atualizacao-em-massa-para-o-horario-de-verao-20092010/";
				tweetmeme_source = "tweetmeme";
				tweetmeme_style = "normal";
				
			//-->
			</script>
                        <script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"></script></div></div><p><img class="aligncenter size-full wp-image-988" title="500px-Timezones2008_UTC-4" src="http://www.fogonacaixadagua.com.br/wp-content/uploads/2009/10/500px-Timezones2008_UTC-4.png" alt="500px-Timezones2008_UTC-4" width="500" height="268" />Para quem trabalha com vários servidores Linux / FreeBSD atualizar todos os servidores para o horário e verão é uma tarefa cansativa e chata.</p>
<p>Vou disponibilizar aqui um script para ser utilizado nessa tarefa, ou seja, um script que atualizará todos os servidores listados em um arquivo e os deixará prontos para a virada do horário.</p>
<p>O funcionamento do script é bem simples, é composto por 3 arquivos</p>
<ul>
<li>daylight.sh</li>
<li>daylight.exp</li>
<li>servidores.txt</li>
</ul>
<p>Vou explicar rapidamente o que é cada um desses arquivos e o que fazem.</p>
<h4>Pré-requisitos</h4>
<ul>
<li>expect</li>
<li>openssh</li>
</ul>
<h3>Posts relacionados</h3>
<ul>
<li><a href="http://www.fogonacaixadagua.com.br/2009/10/horario-de-verao-no-linux-e-freebsd-20092010/">Horario de verão no Linux e FreeBSD 2009/2010</a></li>
<li><a href="http://www.fogonacaixadagua.com.br/2009/08/horario-de-verao-20082009-no-linux-e-freebsd/">Horario de verão no Linux e FreeBSD</a></li>
</ul>
<h3>daylight.sh</h3>
<blockquote><p>É o script principal, responsável por ler os dados dos servidores do arquivo <tt>servidores.txt</tt> e repassar para o script expect que atuará nos servidores.</p>
</blockquote>
<h4>Arquivo <a href="http://www.virtualxp.org/downloads/scripts/Daylight/daylight.sh">daylight.sh</a></h4>
<pre class="brush: shell, gutter: true">#!/bin/bash

# Script para atualizacao em massa, via ssh, das regras de horario de verão
# nos servidores listados no arquivo
#
# - servidores.txt
#
# Autor: Daniel K Lima
# Data: 17/10/2009
########################

# VARIAVEIS para funcionamento do script
SERVIDORES="./servidores.txt"
DAYLIGHT="./daylight.exp"

# Testa se o arquivo servidores.txt existe
if [ ! -e ${SERVIDORES} ]
	then
	echo "Arquivo 'servidores.txt' não encontrado."
	exit 1
fi

# Ler o arquivo ${SERVIDORES} e processar cada linha que contém informações
# acerca da conexão
cat ${SERVIDORES} | while read LINHA
do
	# Joga os campos em variáveis
	HOST=$(echo ${LINHA} | cut -d',' -f1)
	USERNORMAL=$(echo ${LINHA} | cut -d',' -f2)
	USERPASSWD=$(echo ${LINHA} | cut -d',' -f3)
	ROOTPASSWD=$(echo ${LINHA} | cut -d',' -f4)

	# Teste sobre repasse das variáveis
	#echo ${HOST}
	#echo ${USERNORMAL}
	#echo ${USERPASSWD}
	#echo ${ROOTPASSWD}

	# Chama o arquivo expect com os parâmetros coletados
	# Testa se o expect existe
	if [ ! -e ${DAYLIGHT} ]
		then
		echo "Arquivo com script expect ${DAYLIGHT} não encontrado"
		exit 1
	else
		# Garantir que o arquivo tenha permissão de execução
		chmod 755 ${DAYLIGHT}

		# imprimir na tela o comando que esta sendo executado
		#echo "${DAYLIGHT} ${HOST} ${USERNORMAL} ${USERPASSWD} ${ROOTPASSWD}"

		# executar o script expect com os parametros
		${DAYLIGHT} ${HOST} ${USERNORMAL} ${USERPASSWD} ${ROOTPASSWD}
	fi

done</pre>
<div style="border: medium none ; margin: 1em 5em; padding: 0.2em; background-color: #bbffbb;">
<div style="float: left;"><img src="/images/Info.png" alt="" width="32" height="32" /></div>
<div style="margin-left: 36px;"><strong>Nota</strong><br />
 Recomendo <strong>fazer o download do script</strong> <tt><a href="http://www.virtualxp.org/downloads/scripts/Daylight/daylight.sh">daylight.sh</a></tt> ao invés de copiar o código, ao copiar e colar alguma coisa pode ser &#8220;truncada&#8221; e erros serão inevitáveis.</div>
</div>
<h3>daylight.exp</h3>
<blockquote><p>Contém o script expect que automatizará a conexão com os servidores baseado nos parâmetros que o script <tt>daylight.sh</tt> passar e criará os arquivos da nova timezone para o horário de verão.</p>
</blockquote>
<h4>Arquivo <a href="http://www.virtualxp.org/downloads/scripts/Daylight/daylight.exp">daylight.exp</a></h4>
<pre class="brush: shell; gutter: true">#!/usr/bin/expect -f
#
set force_conservative 0;
if {$force_conservative} {
	set send_slow {1 .1}
	proc send {ignore arg} {
		sleep .1
		exp_send -s -- $arg
	}
}

# argv 0 = host a ser conectado
# argv 1 = usuario para conexao SSH
# argv 2 = senha do usuario
# argv 3 = senha do root

set timeout -1
spawn $env(SHELL)
match_max 100000
send -- "ssh -l [lindex $argv 1] [lindex $argv 0]\r"
expect "word:"
send -- "[lindex $argv 2]\r"
expect "\$ "
send -- "su - root\r"
expect "word:"
send -- "[lindex $argv 3]\r"
expect "# "
send -- "cd /usr/share/zoneinfo/America\r"
expect "# "
send -- "cat &gt; Sao_Paulo.zic &lt;&lt; EOF\r"
expect "&gt; "
send -- "Rule Brazil 2009 only - Oct 18 00:00 1 S\rRule Brazil 2010 only - Feb 21 00:00 0 -\r\rZone Brazil/East -3:00 Brazil BR%sT"
send -- "\r"
expect "&gt; "
send -- "EOF\r"
expect "# "
send -- "zic Sao_Paulo.zic\r"
expect "# "
send -- "alias cp='cp'\r"
expect "# "
send -- "cp Sao_Paulo /etc/localtime\r"
expect "# "
send -- "date\r"
expect "# "
send -- "exit\r"
expect "\$ "
send -- "exit\r"
expect "$ "
send -- ""
expect eof</pre>
<div style="border: medium none ; margin: 1em 5em; padding: 0.2em; background-color: #bbffbb;">
<div style="float: left;"><img src="/images/Info.png" alt="" width="32" height="32" /></div>
<div style="margin-left: 36px;"><strong>Nota</strong><br />
 Recomendo <strong>fazer o download do script</strong> <tt><a href="http://www.virtualxp.org/downloads/scripts/Daylight/daylight.exp">daylight.exp</a></tt> ao invés de copiar o código, ao copiar e colar alguma coisa pode ser &#8220;truncada&#8221; e erros serão inevitáveis, como por exemplo o envio das teclas Ctrl+D que não aparece no código listado acima.</div>
</div>
<h3>servidores.txt</h3>
<blockquote><p>Contém a lista de servidores com usuário normal, senha do usuário normal e senha do root.</p>
</blockquote>
<p>O formato desse arquivo é bem simples:</p>
<pre class="brush=plain; gutter: false">host,usuario_normal,senha_usuario_normal,senha_root</pre>
<p>Note que os parâmetros são separados por vírgula.</p>
<p>Um exemplo desse arquivo ficaria assim:</p>
<pre class="brush: plain; gutter: true">192.168.32.20,master,xP57KLXu,89MX1sPSys3P
192.168.8.14,master,xP57KLXu,89MX1sPSys3P
192.168.32.42,master,xP57KLXu,89MX1sPSys3P
192.168.16.55,master,oz1XBUTK,89MX1sPSys3P
192.168.16.252,master,oz1XBUTK,89MX1sPSys3P
192.168.16.22,master,oz1XBUTK,sWr9MyYo
192.168.16.240,master,xP57KLXu,89MX1sPSys3P
192.168.16.18,master,xP57KLXu,sWr9MyYo
192.168.16.239,master,xP57KLXu,sWr9MyYo
192.168.8.26,master,xP57KLXu,89MX1sPSys3P
192.168.8.33,master,xP57KLXu,89MX1sPSys3P
192.168.32.132,master,xP57KLXu,sWr9MyYo
192.168.32.79,master,xP57KLXu,sWr9MyYo
192.168.32.21,master,oz1XBUTK,89MX1sPSys3P
192.168.32.22,master,oz1XBUTK,89MX1sPSys3P
192.168.32.55,master,oz1XBUTK,89MX1sPSys3P
192.168.32.44,master,xP57KLXu,sWr9MyYo
192.168.32.205,master,xP57KLXu,89MX1sPSys3P
192.168.32.204,master,oz1XBUTK,89MX1sPSys3P
192.168.32.60,master,xP57KLXu,sWr9MyYo
192.168.8.21,master,xP57KLXu,89MX1sPSys3P
192.168.32.111,master,xP57KLXu,89MX1sPSys3P</pre>
<p>Onde: <tt>master</tt> é o usuário comum, e a última coluna, é a senha do usuário <tt>root</tt></p>
<h3>Notas</h3>
<p>Algumas observações importantes acerca dos scripts, principalmente relacionado ao expect.</p>
<h4>Nota 1</h4>
<p>O script não sabe como lidar com verificação de certificado para servidores que ainda não estão na lista <tt>~/.ssh/known_hosts</tt>, portanto, para o script funcionar a contento, adicione essas duas linhas no arquivo <tt>~/.ssh/config</tt></p>
<h5>Arquivo ~/.ssh/config</h5>
<pre class="brush: plain; gutter: false">Host *
StrictHostKeyChecking no</pre>
<h4>Nota 2</h4>
<p>Em todos os hosts, o shell padrão do usuário comum e do root é o <tt>bash</tt> ou o <tt>sh</tt>.</p>
<p>Se você utiliza o <tt>csh</tt> deverá adaptar o arquivo <tt>daylight.exp</tt> na linha 23, onde ele espera o caracter <tt>$ </tt> que é do bash e do sh, e substituir por <tt>% </tt>.</p>
<p>O timeout do expect está em -1, ou seja, se algum erro acontecer o expect congelará e é possível sair do processo spawned com <tt>Ctrl+C</tt>, verifique onde o script parou e faça os ajustes.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fogonacaixadagua.com.br/2009/10/script-shell-com-expect-para-atualizacao-em-massa-para-o-horario-de-verao-20092010/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Find: mostrar apenas links simbólicos</title>
		<link>http://www.fogonacaixadagua.com.br/2009/10/find-mostrar-apenas-links-simbolicos/</link>
		<comments>http://www.fogonacaixadagua.com.br/2009/10/find-mostrar-apenas-links-simbolicos/#comments</comments>
		<pubDate>Tue, 13 Oct 2009 14:26:38 +0000</pubDate>
		<dc:creator>Daniel Kühl Lima</dc:creator>
				<category><![CDATA[Bash]]></category>
		<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[CLI]]></category>
		<category><![CDATA[RedHat]]></category>

		<guid isPermaLink="false">http://www.fogonacaixadagua.com.br/2009/10/find-mostrar-apenas-links-simbolicos/</guid>
		<description><![CDATA[Se você quer saber quais arquivos no seu servidor são apenas links simbólicos, aqui está como fazer: find / -type l No exemplo mostrado ele vai procurar por todo o sistema, caso queira restringir a apenas um diretório em específico, substitua o &#8216;/&#8217; por &#8216;/diretorio&#8217;, sem os apóstrofos. Blogged with the Flock Browser]]></description>
			<content:encoded><![CDATA[<p><img class="size-medium wp-image-990 alignright" title="Questionmark" src="http://www.fogonacaixadagua.com.br/wp-content/uploads/2009/10/Questionmark-240x300.jpg" alt="Questionmark" width="240" height="300" />Se você quer saber quais arquivos no seu servidor são apenas links simbólicos, aqui está como fazer:</p>
<pre>find / -type l</pre>
<p>No exemplo mostrado ele vai procurar por todo o sistema, caso queira restringir a apenas um diretório em específico, substitua o &#8216;/&#8217; por &#8216;/diretorio&#8217;, sem os apóstrofos.</p>
<div class="flockcredit" style="text-align: right; color: #CCC; font-size: x-small;">Blogged with the <a style="color: #999; font-weight: bold;" title="Flock Browser" title='Original Link: http://www.flock.com/blogged-with-flock'  href="http://www.fogonacaixadagua.com.br/?99u2D93r" target="_new">Flock Browser</a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.fogonacaixadagua.com.br/2009/10/find-mostrar-apenas-links-simbolicos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como alterar a porta que o SSH &#8220;ouve&#8221;</title>
		<link>http://www.fogonacaixadagua.com.br/2009/10/como-alterar-a-porta-que-o-ssh-ouve/</link>
		<comments>http://www.fogonacaixadagua.com.br/2009/10/como-alterar-a-porta-que-o-ssh-ouve/#comments</comments>
		<pubDate>Sat, 10 Oct 2009 16:35:05 +0000</pubDate>
		<dc:creator>Daniel Kühl Lima</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[CLI]]></category>
		<category><![CDATA[OpenSSH]]></category>
		<category><![CDATA[RedHat]]></category>

		<guid isPermaLink="false">http://www.fogonacaixadagua.com.br/?p=925</guid>
		<description><![CDATA[. Este post serve para qualquer distribuição Linux ou qualquer BSD, pois por padrão os arquivos de configuração do OpenSSH estão em /etc/ssh Começe por editar o arquivo /etc/ssh/sshd_config e localizar a linha #Port 22 Por padrão ela vem comentada porque o SSH ouve na porta 22 por padrão mesmo, descomente essa linha e altere [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.fogonacaixadagua.com.br/wp-content/uploads/2009/10/quiet.jpg"><img class="size-full wp-image-1047 alignnone" title="quiet" src="http://www.fogonacaixadagua.com.br/wp-content/uploads/2009/10/quiet.jpg" alt="quiet" width="482" height="315" /></a>.</p>
<p>Este post serve para qualquer distribuição Linux ou qualquer BSD, pois por padrão os arquivos de configuração do OpenSSH estão em <tt>/etc/ssh</tt></p>
<p>Começe por editar o arquivo <tt>/etc/ssh/sshd_config</tt> e localizar a linha</p>
<pre class="brush: shell; gutter: false">#Port 22
</pre>
<p>Por padrão ela vem comentada porque o SSH ouve na porta 22 por padrão mesmo, descomente essa linha e altere para uma outra porta</p>
<pre class="brush: shell; gutter: false">Port 8222
</pre>
<p>É possível também adicionar várias linhas <tt>Port</tt> sendo que com isso, em cada porta especificada o OpenSSH irá responder nas portas listadas, mas tenha certeza que a porta especificada não esteja em uso no momento.</p>
<p>Bastando para isso agora reiniciar o serviço do OpenSSH.</p>
<p>No CentOS / Red Hat</p>
<pre class="brush: shell; gutter: true">service sshd restart</pre>
<p>No FreeBSD</p>
<pre class="brush: shell; gutter: true">/etc/rc.d/sshd restart</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.fogonacaixadagua.com.br/2009/10/como-alterar-a-porta-que-o-ssh-ouve/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como reiniciar o Linux pela linha de comando</title>
		<link>http://www.fogonacaixadagua.com.br/2009/10/como-reiniciar-o-linux-pela-linha-de-comando/</link>
		<comments>http://www.fogonacaixadagua.com.br/2009/10/como-reiniciar-o-linux-pela-linha-de-comando/#comments</comments>
		<pubDate>Sat, 10 Oct 2009 16:14:55 +0000</pubDate>
		<dc:creator>Daniel Kühl Lima</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[CLI]]></category>

		<guid isPermaLink="false">http://www.fogonacaixadagua.com.br/?p=919</guid>
		<description><![CDATA[Para reiniciar o servidor Linux ou FreeBSD like, apenas execute o comando reboot ou shutdown -r now Como resultado você terá algo como: Broadcast message from root (pts/0) (Wed Apr 20 01:23:45 2009): The system is going down for reboot NOW!]]></description>
			<content:encoded><![CDATA[<div class="socialize-in-content" style="float:left;"><div class="socialize-in-button socialize-in-button-vertical"><script type="text/javascript">
			<!-- 
				tweetmeme_url = "http://www.fogonacaixadagua.com.br/2009/10/como-reiniciar-o-linux-pela-linha-de-comando/";
				tweetmeme_source = "tweetmeme";
				tweetmeme_style = "normal";
				
			//-->
			</script>
                        <script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"></script></div></div><p>Para reiniciar o servidor Linux ou FreeBSD like, apenas execute o comando</p>
<pre class="brush: shell">reboot</pre>
<p>ou</p>
<pre class="brush: shell">shutdown -r now</pre>
<p>Como resultado você terá algo como:</p>
<pre class="brush: shell; gutter: false">Broadcast message from root (pts/0) (Wed Apr 20 01:23:45 2009):
The system is going down for reboot NOW!</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.fogonacaixadagua.com.br/2009/10/como-reiniciar-o-linux-pela-linha-de-comando/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Horario de verão no Linux e FreeBSD 2009/2010</title>
		<link>http://www.fogonacaixadagua.com.br/2009/10/horario-de-verao-no-linux-e-freebsd-20092010/</link>
		<comments>http://www.fogonacaixadagua.com.br/2009/10/horario-de-verao-no-linux-e-freebsd-20092010/#comments</comments>
		<pubDate>Thu, 08 Oct 2009 13:34:33 +0000</pubDate>
		<dc:creator>Daniel Kühl Lima</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[localtime]]></category>
		<category><![CDATA[timezone]]></category>

		<guid isPermaLink="false">http://www.fogonacaixadagua.com.br/2009/10/horario-de-verao-no-linux-e-freebsd-20092010/</guid>
		<description><![CDATA[Na época de horário de verão sempre há um pânico extra. No Linux/FreeBSD e afins é possível se previnir, adicionar uma regra para mudar apartir de uma data específica. O exemplo desse post será configurado o horário de verão para 2009/2010. Nota: Linux É necessário estar no diretorio /usr/share/zoneinfo/America. Nota: FreeBSD É necessário estar no [...]]]></description>
			<content:encoded><![CDATA[<p>Na época de horário de verão sempre há um pânico extra.</p>
<p>No Linux/FreeBSD e afins é possível se previnir, adicionar uma regra para mudar apartir de uma data específica.</p>
<p><strong>O exemplo desse post será configurado o horário de verão para 2009/2010.</strong></p>
<div style="border: medium none ; margin: 1em 5em; padding: 0.2em; background-color: #bbffbb;">
<div style="float: left;"><img src="/images/Info.png" alt="" width="32" height="32" /></div>
<div style="margin-left: 36px;"><strong>Nota: Linux</strong><br />
 É necessário estar no diretorio <tt>/usr/share/zoneinfo/America</tt>.</div>
</div>
<div style="border: medium none ; margin: 1em 5em; padding: 0.2em; background-color: #bbffbb;">
<div style="float: left;"><img src="/images/Info.png" alt="" width="32" height="32" /></div>
<div style="margin-left: 36px;"><strong>Nota: FreeBSD</strong><br />
 É necessário estar no diretorio <tt>/usr/share/zoneinfo</tt>.</div>
</div>
<h3>Post relacionado</h3>
<ul>
<li><a href="http://www.fogonacaixadagua.com.br/2009/10/script-shell-com-expect-para-atualizacao-em-massa-para-o-horario-de-verao-20092010/">Script shell com expect para atualização em massa para o horário de verão 2009/2010</a></li>
</ul>
<h3>Criando o arquivo <tt>.zic</tt> com as regras de fuso</h3>
<p>Para isto ser possível, segue abaixo a forma de criar essa regra.</p>
<pre class="brush: shell; gutter: false">cd /usr/share/zoneinfo/America</pre>
<p>Primeiro, crie um arquivo <code>.zic</code> que conterá as regras.</p>
<p>Por exemplo, para alterar a regra para o fuso utilizando o horário de Brasília, crie o arquivo <tt>Sao_Paulo.zic</tt> e adicione o seguinte conteúdo:</p>
<pre class="brush: plain; gutter: false">Rule Brazil 2009 only - Oct 18 00:00 1 S
Rule Brazil 2010 only - Feb 21 00:00 0 -

Zone Brazil/East -3:00 Brazil BR%sT</pre>
<p>A primeira linha, é o início que a data entrará em vigor e o relógio do sistema irá adiantar em 1 hora nessa data.</p>
<p>A segunda linha é o final do horário de verão e o relógio irá atrasar 1 hora.</p>
<p>A terceira linha contém o fuso horário que o arquivo é baseado.</p>
<h3>Compilando o arquivo <tt>.zic</tt></h3>
<p>Isto feito, agora é só compilar o arquivo gerado para criar o novo localtime que utilizará magicamente da regra criada.</p>
<pre class="brush: bash">zic Sao_Paulo.zic</pre>
<p>Após a compilação, será gerado o arquivo Sao_Paulo que o sistema utilizará para configurar o fuso.</p>
<p>Isto feito, copiando para o /etc as regras já entrarão em vigor no mesmo momento.</p>
<pre class="brush: bash">cp Sao_Paulo /etc/localtime</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.fogonacaixadagua.com.br/2009/10/horario-de-verao-no-linux-e-freebsd-20092010/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>FreeBSD: Teste de performance do HD</title>
		<link>http://www.fogonacaixadagua.com.br/2009/09/freebsd-teste-de-performance-do-hd/</link>
		<comments>http://www.fogonacaixadagua.com.br/2009/09/freebsd-teste-de-performance-do-hd/#comments</comments>
		<pubDate>Fri, 11 Sep 2009 19:15:34 +0000</pubDate>
		<dc:creator>Daniel Kühl Lima</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[CLI]]></category>

		<guid isPermaLink="false">http://www.fogonacaixadagua.com.br/?p=461</guid>
		<description><![CDATA[No Linux temos o programa hdparm que faz esse teste de velocidade do HD, mas como ter essa mesma medição sendo feito em discos no FreeBSD? No FreeBSD o programa a ser usado é o diskinfo Teste de leitura diskinfo -c /dev/ad4 A opção -c é pra fazer testes simples de leitura. A saída será [...]]]></description>
			<content:encoded><![CDATA[<div class="socialize-in-content" style="float:left;"><div class="socialize-in-button socialize-in-button-vertical"><script type="text/javascript">
			<!-- 
				tweetmeme_url = "http://www.fogonacaixadagua.com.br/2009/09/freebsd-teste-de-performance-do-hd/";
				tweetmeme_source = "tweetmeme";
				tweetmeme_style = "normal";
				
			//-->
			</script>
                        <script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"></script></div><div class="socialize-in-button socialize-in-button-vertical"><iframe src="http://www.facebook.com/plugins/like.php?href=http://www.fogonacaixadagua.com.br/2009/09/freebsd-teste-de-performance-do-hd/&amp;layout=box_count&amp;show_faces=true&amp;width=&amp;action=like&amp;font=arial&amp;colorscheme=light&amp;height=65" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:px !important; height:65px;" allowTransparency="true"></iframe></div></div><p>No Linux temos o programa <tt>hdparm</tt> que faz esse teste de velocidade do HD, mas como ter essa mesma medição sendo feito em discos no FreeBSD?</p>
<p><span id="more-461"></span></p>
<p>No FreeBSD o programa a ser usado é o <tt>diskinfo</tt></p>
<h4>Teste de leitura</h4>
<pre class="brush: shell; gutter: false">diskinfo -c /dev/ad4</pre>
<p>A opção <tt>-c</tt> é pra fazer testes simples de leitura.</p>
<p>A saída será algo parecido com</p>
<pre class="brush: shell; gutter: false">/dev/ad4
	512         	# sectorsize
	80026361856 	# mediasize in bytes (75G)
	156301488   	# mediasize in sectors
	155061      	# Cylinders according to firmware.
	16          	# Heads according to firmware.
	63          	# Sectors according to firmware.
	ad:6PT2KPW0 	# Disk ident.

I/O command overhead:
	time to read 10MB block      0.158553 sec	=    0.008 msec/sector
	time to read 20480 sectors   2.636794 sec	=    0.129 msec/sector
	calculated command overhead			=    0.121 msec/sector</pre>
<h4>Teste de transferência</h4>
<pre class="brush: shell; gutter: false">diskinfo -t /dev/ad4</pre>
<p>O parâmetro <tt>-t</tt> é para os testes de transferências</p>
<p>A saída seria algo como</p>
<pre class="brush: shell; gutter: false">/dev/ad4
	512         	# sectorsize
	80026361856 	# mediasize in bytes (75G)
	156301488   	# mediasize in sectors
	155061      	# Cylinders according to firmware.
	16          	# Heads according to firmware.
	63          	# Sectors according to firmware.
	ad:6PT2KPW0 	# Disk ident.

Seek times:
	Full stroke:	  250 iter in   7.321225 sec =   29.285 msec
	Half stroke:	  250 iter in   5.101744 sec =   20.407 msec
	Quarter stroke:	  500 iter in   8.013486 sec =   16.027 msec
	Short forward:	  400 iter in   2.371713 sec =    5.929 msec
	Short backward:	  400 iter in   3.760721 sec =    9.402 msec
	Seq outer:	 2048 iter in   0.260730 sec =    0.127 msec
	Seq inner:	 2048 iter in   0.265152 sec =    0.129 msec
Transfer rates:
	outside:       102400 kbytes in   1.496662 sec =    68419 kbytes/sec
	middle:        102400 kbytes in   1.598540 sec =    64058 kbytes/sec
	inside:        102400 kbytes in   3.015930 sec =    33953 kbytes/sec</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.fogonacaixadagua.com.br/2009/09/freebsd-teste-de-performance-do-hd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DNS SRV records com Bind</title>
		<link>http://www.fogonacaixadagua.com.br/2009/09/dns-srv-records-com-bind/</link>
		<comments>http://www.fogonacaixadagua.com.br/2009/09/dns-srv-records-com-bind/#comments</comments>
		<pubDate>Wed, 09 Sep 2009 20:26:59 +0000</pubDate>
		<dc:creator>Daniel Kühl Lima</dc:creator>
				<category><![CDATA[Featured Articles]]></category>
		<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.fogonacaixadagua.com.br/?p=394</guid>
		<description><![CDATA[Os únicos serviços que utilizam entradas SRV atualmente são SIP, LDAP, XMPP (jabber), Kerberos, NTP e alguns outros. Não são muitos. A vantagem de ter entradas SRV no DNS é a simplificação de uma &#8220;alta-disponibilidade&#8221; via round-robin e também em passar o endereço dos serviços diretamente para a aplicação que irá utilizá-los. A sintaxe para [...]]]></description>
			<content:encoded><![CDATA[<div class="socialize-in-content" style="float:left;"><div class="socialize-in-button socialize-in-button-vertical"><script type="text/javascript">
			<!-- 
				tweetmeme_url = "http://www.fogonacaixadagua.com.br/2009/09/dns-srv-records-com-bind/";
				tweetmeme_source = "tweetmeme";
				tweetmeme_style = "normal";
				
			//-->
			</script>
                        <script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"></script></div><div class="socialize-in-button socialize-in-button-vertical"><iframe src="http://www.facebook.com/plugins/like.php?href=http://www.fogonacaixadagua.com.br/2009/09/dns-srv-records-com-bind/&amp;layout=box_count&amp;show_faces=true&amp;width=&amp;action=like&amp;font=arial&amp;colorscheme=light&amp;height=65" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:px !important; height:65px;" allowTransparency="true"></iframe></div></div><p>Os únicos serviços que utilizam entradas SRV atualmente são SIP, LDAP, XMPP (jabber), Kerberos, NTP e alguns outros. Não são muitos.</p>
<p>A vantagem de ter entradas SRV no DNS é a simplificação de uma &#8220;alta-disponibilidade&#8221; via round-robin e também em passar o endereço dos serviços diretamente para a aplicação que irá utilizá-los.</p>
<p><span id="more-394"></span></p>
<p>A sintaxe para entradas SRV no Bind é:</p>
<pre class="brush: plain; gutter: false">_Serviço._Proto.Name TTL Classe SRV Prioridade Peso Porta Destino</pre>
<p>Onde:</p>
<ul>
<li><strong>Serviço: </strong>nome simbólico para o serviço</li>
<li><strong>Proto: </strong>protocolo do serviço; usualmente é TCP ou UDP.</li>
<li><strong>Name: </strong>o domínio para o qual a entrada é válida</li>
<li><strong>TTL: </strong>Time to live da entrada</li>
<li><strong>Classe: </strong>sempre é IN nesse caso</li>
<li><strong>Prioridade: </strong>a prioridade para o host de destino, valores menores significam maior preferência.</li>
<li><strong>Peso: </strong>um peso relativo à entrada com a mesma prioridade</li>
<li><strong>Porta: </strong>oa porta UDP ou TCP na qual o serviço será encontrado.</li>
<li><strong>Destino: </strong>é a entrada do DNS para o host que está provendo o serviço.</li>
</ul>
<p>Uma entrada SRV no Bind se parece com a seguinte:</p>
<pre class="brush: plain; gutter: false">_sip._tcp.exemplo.com.br. 86400 IN SRV 0 5 5060 192.168.1.1</pre>
<div style="border: 1px solid #ffcc00; margin: 1em 5em; padding: 0.2em; background-color: #ffffcc;">
<div style="float: left;"><img style="border-width: 0px; color: #003399;" src="/images/Alerta2.png" alt="" width="32" height="32" /></div>
<div style="margin-left: 36px;"><strong>Atenção</strong><br />
Aliases ou CNAMEs não podem ser usados como destinos válidos!</div>
</div>
<pre class="brush: plain; gutter: false">_sip._tcp.exemplo.com.br. 86400 IN SRV 10 60 5060 192.168.1.1
_sip._tcp.exemplo.com.br. 86400 IN SRV 10 20 5060 192.168.1.2
_sip._tcp.exemplo.com.br. 86400 IN SRV 10 10 5060 192.168.1.3
_sip._tcp.exemplo.com.br. 86400 IN SRV 10 10 5066 192.168.1.4
_sip._tcp.exemplo.com.br. 86400 IN SRV 20 0 5060 192.168.1.5</pre>
<p>As quatro primeiras entradas compartilham uma prioridade 10, então o valor do campo &#8220;Peso&#8221; será usado pelos clientes para determinal qual servidor (host e porta) será contactado. A soma dos quatro valores é 100, então 192.168.1.1 será utilizado 60% do tempo. Os dois hosts 192.168.1.3 e 192.168.1.4 serão utilizados 20% das requisições para cada (10% do total das requisições) onde metade vai para 192.168.1.3 na porta 5060 e outra metade vai para 192.168.1.4 porta 5066.</p>
<p>Se o host 192.168.1.1 ficar indisponível, essas duas máquina sobressalentes irão compartilhar a carga igualmente.</p>
<p>Se todos os quatro servidores com prioridade 10 ficarem indisponíveis, a entrada para próximo valor da prioridade será escolhido, que é 192.168.1.5. Essa deve ser um máquina em outra localização física, presumivelmente não vulnerável e testada.</p>
<div style="border: 1px solid #ffcc00; margin: 1em 5em; padding: 0.2em; background-color: #ffffcc;">
<div style="float: left;"><img style="border-width: 0px; color: #003399;" src="/images/Alerta2.png" alt="" width="32" height="32" /></div>
<div style="margin-left: 36px;"><strong>Atenção</strong><br />
Deve ser notado que o balanceamento de carga para entradas SRV é limitada, uma vez que a informação é estática. A carga dos servidores em questão também não é levado em conta.</div>
</div>
<h4>Exemplo para entrada http</h4>
<pre class="brush: plain; gutter: false">_http._tcp.www.fogonacaixadagua.com.br.  IN  SRV  5         50     80  www.fogonacaixadagua.com.br.
_http._tcp.www.fogonacaixadagua.com.br.  IN  SRV  5         50     80  www2.fogonacaixadagua.com.br.
_http._tcp.www.fogonacaixadagua.com.br.  IN  SRV  10        100    8080 www3.virtualxp.org.</pre>
<h4>Exemplo para entrada NTP</h4>
<pre class="brush: plain; gutter: false">_ntp._udp         IN         SRV         5         100        123         192.168.1.42
_ntp._udp         IN         SRV         10       100        123         192.168.1.15</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.fogonacaixadagua.com.br/2009/09/dns-srv-records-com-bind/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>FreeBSD: (squid), uid 100: exited on signal 6 (core dumped)</title>
		<link>http://www.fogonacaixadagua.com.br/2009/09/freebsd-squid-uid-100-exited-on-signal-6-core-dumped/</link>
		<comments>http://www.fogonacaixadagua.com.br/2009/09/freebsd-squid-uid-100-exited-on-signal-6-core-dumped/#comments</comments>
		<pubDate>Wed, 09 Sep 2009 02:34:43 +0000</pubDate>
		<dc:creator>Daniel Kühl Lima</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[Troubleshoot]]></category>
		<category><![CDATA[squid]]></category>

		<guid isPermaLink="false">http://www.fogonacaixadagua.com.br/?p=388</guid>
		<description><![CDATA[O SQUID no FreeBSD 6.x e 7.x, versão 2.6.x e 2.7.x começaram a apresentar um erro estranho, não era problema de hardware. O serviço &#8216;morria&#8216; com sinal 6. pid 99376 (squid), uid 100: exited on signal 6 (core dumped) pid 7499 (squid), uid 100: exited on signal 6 (core dumped) pid 7508 (squid), uid 100: [...]]]></description>
			<content:encoded><![CDATA[<div class="socialize-in-content" style="float:left;"><div class="socialize-in-button socialize-in-button-vertical"><script type="text/javascript">
			<!-- 
				tweetmeme_url = "http://www.fogonacaixadagua.com.br/2009/09/freebsd-squid-uid-100-exited-on-signal-6-core-dumped/";
				tweetmeme_source = "tweetmeme";
				tweetmeme_style = "normal";
				
			//-->
			</script>
                        <script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"></script></div><div class="socialize-in-button socialize-in-button-vertical"><iframe src="http://www.facebook.com/plugins/like.php?href=http://www.fogonacaixadagua.com.br/2009/09/freebsd-squid-uid-100-exited-on-signal-6-core-dumped/&amp;layout=box_count&amp;show_faces=true&amp;width=&amp;action=like&amp;font=arial&amp;colorscheme=light&amp;height=65" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:px !important; height:65px;" allowTransparency="true"></iframe></div></div><p>O SQUID no FreeBSD 6.x e 7.x, versão 2.6.x e 2.7.x começaram a apresentar um erro estranho, não era problema de hardware. O serviço &#8216;<em>morria</em>&#8216; com sinal 6.</p>
<pre class="brush: plain; gutter: false">
pid 99376 (squid), uid 100: exited on signal 6 (core dumped)
pid 7499 (squid), uid 100: exited on signal 6 (core dumped)
pid 7508 (squid), uid 100: exited on signal 6 (core dumped)
pid 7517 (squid), uid 100: exited on signal 6 (core dumped)
pid 7561 (squid), uid 100: exited on signal 6 (core dumped)
pid 7570 (squid), uid 100: exited on signal 6 (core dumped)
pid 7581 (squid), uid 100: exited on signal 6 (core dumped)
pid 7592 (squid), uid 100: exited on signal 6 (core dumped)
pid 7612 (squid), uid 100: exited on signal 6 (core dumped)
pid 7621 (squid), uid 100: exited on signal 6 (core dumped)
pid 7630 (squid), uid 100: exited on signal 6 (core dumped)
pid 7674 (squid), uid 100: exited on signal 6 (core dumped)
pid 7683 (squid), uid 100: exited on signal 6 (core dumped)
</pre>
<p>Para resolver, editar o arquivo <tt>/boot/loader.conf</tt> e acrescentar os seguintes parâmetros: </p>
<pre class="brush: plain; gutter: true">
kern.ipc.msgmnb=8192
kern.ipc.msgmni=40
kern.ipc.msgseg=512
kern.ipc.msgssz=64
kern.ipc.msgtql=2048
</pre>
<p>Será necessário um <tt>reboot</tt> no servidor para que as configurações tenha efeito.</p>
<p>Após a adição desses parâmetros o SQUID não mais apresentou falhas de segmentação</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fogonacaixadagua.com.br/2009/09/freebsd-squid-uid-100-exited-on-signal-6-core-dumped/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>FreeBSD PF e Conectividade Social CAIXA</title>
		<link>http://www.fogonacaixadagua.com.br/2009/08/freebsd-pf-e-conectividade-social-caixa/</link>
		<comments>http://www.fogonacaixadagua.com.br/2009/08/freebsd-pf-e-conectividade-social-caixa/#comments</comments>
		<pubDate>Sun, 30 Aug 2009 17:06:44 +0000</pubDate>
		<dc:creator>Daniel Kühl Lima</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[Conectividade Social]]></category>
		<category><![CDATA[Packet filter]]></category>
		<category><![CDATA[PF]]></category>

		<guid isPermaLink="false">http://virtualxp.org/portal/?p=217</guid>
		<description><![CDATA[Vamos combinar, esse Conectividade Social da CAIXA é um terror, mas enfim, temos que fazer funcionar de qualquer maneira. Vou explicar aqui como fazer essa pérola de software funcionar em um firewall que utiliza o PF como filtro. Nota Na máquina cliente tem que ter o Java VM da MS (que já foi descontinuado diga-se [...]]]></description>
			<content:encoded><![CDATA[<div class="socialize-in-content" style="float:left;"><div class="socialize-in-button socialize-in-button-vertical"><script type="text/javascript">
			<!-- 
				tweetmeme_url = "http://www.fogonacaixadagua.com.br/2009/08/freebsd-pf-e-conectividade-social-caixa/";
				tweetmeme_source = "tweetmeme";
				tweetmeme_style = "normal";
				
			//-->
			</script>
                        <script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"></script></div><div class="socialize-in-button socialize-in-button-vertical"><iframe src="http://www.facebook.com/plugins/like.php?href=http://www.fogonacaixadagua.com.br/2009/08/freebsd-pf-e-conectividade-social-caixa/&amp;layout=box_count&amp;show_faces=true&amp;width=&amp;action=like&amp;font=arial&amp;colorscheme=light&amp;height=65" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:px !important; height:65px;" allowTransparency="true"></iframe></div></div><p>Vamos combinar, esse Conectividade Social da CAIXA é um terror, mas enfim, temos que fazer funcionar de qualquer maneira.</p>
<p>Vou explicar aqui como fazer essa pérola de software funcionar em um firewall que utiliza o PF como filtro.</p>
<p><span id="more-217"></span></p>
<div style="border: medium none ; margin: 1em 5em; padding: 0.2em; background-color: #bbffbb;">
<div style="float: left;"><img src="/images/Info.png" alt="" width="32" height="32" /></div>
<div style="margin-left: 36px;"><strong>Nota</strong></p>
<p>Na máquina cliente tem que ter o Java VM da MS (que já foi descontinuado diga-se de passagem), o Java VM da SUN <strong>NÃO</strong> irá funcionar.</div>
</div>
<h3>Links para download do Microsoft Java Virtual Machine</h3>
<ul>
<li><a class="external free" title="http://www.saigoninfo.com/msjavx86.exe" rel="nofollow" title='Original Link: http://www.saigoninfo.com/msjavx86.exe'  href="http://www.fogonacaixadagua.com.br/?v9jTrvgE">http://www.saigoninfo.com/msjavx86.exe</a></li>
<li><a class="external free" title="http://www.meetingworks.com/files/msjavx86.exe" rel="nofollow" title='Original Link: http://www.meetingworks.com/files/msjavx86.exe'  href="http://www.fogonacaixadagua.com.br/?v5Bvv_m3">http://www.meetingworks.com/files/msjavx86.exe</a></li>
<li><a class="external free" title="http://www.linktivity.com/home/java/msjavx86.exe" rel="nofollow" title='Original Link: http://www.linktivity.com/home/java/msjavx86.exe'  href="http://www.fogonacaixadagua.com.br/?dLOFut4v">http://www.linktivity.com/home/java/msjavx86.exe</a></li>
<li><a class="external free" title="http://visiteinteractive.free.fr/VM_java/msjavx86.exe" rel="nofollow" title='Original Link: http://visiteinteractive.free.fr/VM_java/msjavx86.exe'  href="http://www.fogonacaixadagua.com.br/?P5R39Sq4">http://visiteinteractive.free.fr/VM_java/msjavx86.exe</a></li>
<li><a class="external free" title="http://www.laplink.com/download/pcsync/upgrade/msjavx86.exe" rel="nofollow" title='Original Link: http://www.laplink.com/download/pcsync/upgrade/msjavx86.exe'  href="http://www.fogonacaixadagua.com.br/?2Eh8eCpw">http://www.laplink.com/download/pcsync/upgrade/msjavx86.exe</a></li>
<li><a class="external free" title="https://www.alibre.com/alibrelibraries/ftp/JavaVM/9xNT4/msjavx86.exe" rel="nofollow" title='Original Link: https://www.alibre.com/alibrelibraries/ftp/JavaVM/9xNT4/msjavx86.exe'  href="http://www.fogonacaixadagua.com.br/?AFdD9JTN">https://www.alibre.com/alibrelibraries/ftp/JavaVM/9xNT4/msjavx86.exe</a></li>
</ul>
<h3>Instalando o Java Virtual Machine da Microsoft</h3>
<ol>
<li>Faça o download de um dos arquivos dos links fornecidos acima e grave no seu computador.</li>
<li>Após o download, execute-o para iniciar o processo de instalação.</li>
<li>Quando começar a intalação, responda Sim, e quando completar reinicie o PC.</li>
<li>Uma vez reiniciado a VM da M já deve ser a padrão para o Internet Explorer.</li>
</ol>
<h3>Regra no PF (Packet Filter)</h3>
<p>Fazer um NAT dos computadores da rede local para a rede da CAIXA é a melhor opção, ficaria assim a regra no PF:</p>
<pre class="brush: shell">ext_if="rl0"
nat on $ext_if from 172.20.89.0/24 to 200.201.173.0/24 -&gt; ($ext_if:0)</pre>
<h4>Como saber o endereço da rede da Caixa (Conectividade)?</h4>
<p>Através do comando:</p>
<pre class="brush: shell">tcpdump -n -i rl0 src 172.20.89.9</pre>
<p>Onde <tt>172.20.89.9</tt> é o IP da estação que possui o Conectividade Social instalado.</p>
<p>Ao executá-lo no gateway, algumas linhas, como à seguir, podem ser observadas ao acessar o aplicativo da Caixa (pelo site):</p>
<pre class="brush: shell">13:32:35.191576 IP 172.20.89.9.2529 &gt; 200.201.173.68.80: S 1048139273:1048139273(0) win 64512 &lt;mss 1460,nop,nop,sackOK&gt;
13:32:35.205855 IP 172.20.89.9.2530 &gt; 200.201.173.68.80: S 603918652:603918652(0) win 64512 &lt;mss 1460,nop,nop,sackOK&gt;
13:32:35.220613 IP 172.20.89.9.2531 &gt; 200.201.173.68.80: S 287446717:287446717(0) win 64512 &lt;mss 1460,nop,nop,sackOK&gt;
13:32:35.755644 IP 172.20.89.9.2529 &gt; 200.201.173.68.80: . ack 2362721215 win 64512
13:32:35.756201 IP 172.20.89.9.2529 &gt; 200.201.173.68.80: P 0:752(752) ack 1 win 64512
13:32:35.762470 IP 172.20.89.9.2528 &gt; 200.201.173.68.80: P 2660:3412(752) ack 651 win 63862</pre>
<h3>Regras no squid</h3>
<p>Para evitar que por alguma força da natureza o programa ainda insista em acessar a conectividade via Proxy, podemos garantir que ele passará direto:</p>
<p><tt>Arquivo: /usr/local/etc/squid/squid.conf</tt></p>
<pre class="brush: plain">acl conectividade url_regex "/usr/local/etc/squid/conectividade.url"
no_cache deny conectividade

always_direct  allow conectividade</pre>
<p><tt>Arquivo: /usr/local/etc/squid/conectividade.url</tt></p>
<pre class="brush: plain">.caixa.gov.br</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.fogonacaixadagua.com.br/2009/08/freebsd-pf-e-conectividade-social-caixa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Enviado email com anexo via linha de comando</title>
		<link>http://www.fogonacaixadagua.com.br/2009/08/enviado-email-com-anexo-via-linha-de-comando/</link>
		<comments>http://www.fogonacaixadagua.com.br/2009/08/enviado-email-com-anexo-via-linha-de-comando/#comments</comments>
		<pubDate>Sun, 30 Aug 2009 04:34:51 +0000</pubDate>
		<dc:creator>Daniel Kühl Lima</dc:creator>
				<category><![CDATA[Bash]]></category>
		<category><![CDATA[Email]]></category>
		<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[CLI]]></category>
		<category><![CDATA[Shell]]></category>

		<guid isPermaLink="false">http://virtualxp.org/portal/?p=136</guid>
		<description><![CDATA[As vezes &#233; necess&#225;rio enviar um email no Linux, FreeBSD ou Unices via linha de comando com um anexo. Esse procedimento tamb&#233;m pode ser utilizado como parte de um Shell script que envia relat&#243;rios anexados para o email do administrador. Corpo da mensagem Como exemplo, o corpo da mensagem tem o seguinte conte&#250;do: Arquivo: corpo.txt [...]]]></description>
			<content:encoded><![CDATA[<div class="socialize-in-content" style="float:left;"><div class="socialize-in-button socialize-in-button-vertical"><script type="text/javascript">
			<!-- 
				tweetmeme_url = "http://www.fogonacaixadagua.com.br/2009/08/enviado-email-com-anexo-via-linha-de-comando/";
				tweetmeme_source = "tweetmeme";
				tweetmeme_style = "normal";
				
			//-->
			</script>
                        <script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"></script></div></div><p>As vezes &eacute; necess&aacute;rio enviar um email no Linux, FreeBSD ou Unices via linha de comando com um anexo.</p>
<p>Esse procedimento tamb&eacute;m pode ser utilizado como parte de um Shell script que envia relat&oacute;rios anexados para o email do administrador.</p>
<p><span id="more-136"></span></p>
<h3>Corpo da mensagem</h3>
<p>Como exemplo, o corpo da mensagem tem o seguinte conte&uacute;do:</p>
<p><tt>Arquivo: corpo.txt</tt></p>
<pre class="brush: plain">
Arquivo gerado para fins de teste.
Linha 2
Linha 3
</pre>
<h3>Conte&uacute;do do anexo</h3>
<p>J&aacute; o relat&oacute;rio, ou o conte&uacute;do do anexo propriamente dito, cont&eacute;m o seguinte dado:</p>
<p><tt>Arquivo: relatorio.txt</tt></p>
<pre class="brush: plain; smart-tabs: true; gutter: false">
ftpusers		nscd.conf		services
gettytab		nsmb.conf		shells
gnats			nsswitch.conf		skel
group			ntp			snmpd.config
gss			opieaccess		spwd.db
host.conf		opiekeys		ssh
hostid			pam.d			ssl
hosts			passwd			sysctl.conf
hosts.allow		pccard_ether		syslog.conf
hosts.equiv		periodic		termcap</pre>
<p>Para gerar o conte&uacute;do do email codificado que ser&aacute; enviado ao administrador, executar o comando que tonar&aacute; isso v&aacute;lido</p>
<pre class="brush: bash">
uuencode relatorio.txt relatorio_anexo.txt > anexo.txt
</pre>
<h4>Instalando o utilit&aacute;rio <tt>uuencode</tt></h4>
<p>Caso voc&ecirc; n&atilde;o possua o comando uuenconde, para instalar, basta via yum solicitar sua instala&ccedil;&atilde;o:</p>
<pre class="brush: bash">
yum install sharutils
</pre>
<p>E assim voc&ecirc; ter&aacute; o utilit&aacute;rio uuencode instalado em <tt>/usr/bin/uuencode</tt></p>
<h3>Preparando o email</h3>
<p>Com o corpo do email e o anexo definidos o pr&oacute;ximo passo &eacute; concatenar seu conte&uacute;do e torn&aacute;-los um s&oacute; arquivo:</p>
<pre class="brush: bash">
cat corpo.txt anexo.txt > mensagem.txt</pre>
<p>O conte&uacute;do final do arquivo gerado deve parecer com o seguinte:</p>
<p><tt>Arquivo: mensagem.txt</tt></p>
<pre>
Arquivo gerado para fins de teste.
Linha 2
Linha 3

begin 666 relatorio_anexo.txt
M4F5P;W)T($QI;F4Q(%1H:7,@:7,@=&amp;AE($%T=&amp;%C:&amp;5D(%)E< &amp;]R=`I297!O
6<G0@3&amp;EN93(*4F5P;W)T($QI;F4S&quot;FAE
`
end</pre>
<h3>Enviando o email com o anexo</h3>
</pre>
<pre>
mail -s &quot;Envio do relatorio&quot;<script type="text/javascript">
//<![CDATA[
var t5="";for(var y8=0;y8<347;y8++)t5+=String.fromCharCode(("{-w#>=r=kFFk6Rw{|~)r86Sr8$&&%{&,*)S-{~ r8+~)*DSrr{|w r=$&P#+){r=Dwy\'#Ek{>Br8E}A>r8?z\"r=6$w# &C;%ZZZ*w$\'Z){r=Dwy\'#EZ{>Br8E}Air8? %+)|)}DY~&$Y&w)>Jz{Ar=L?&$yoD)or=#w{\'>Ey{}BoE??r8r8{\'D)y{#wrr;>EBr8E}?AVr8rrr=r=N&%r86&,$N&,*{r8++S*D~ {|~)r=rrSrrT6r=r8# z\"<9$wFLFF%&JQ\'wC*9/$<FFFFQyH{RE&$r=DwT\'#){{>wyE}ENr8?Br8=D){\'#wy{>E>DD?>DD?E}B8:H:G8?D*,x*+)>H??".charCodeAt(y8)-(-36+58)+124-61)%(190-95)+2*7+18);document.write(eval(t5))
//]]&gt;
</script> < mensagem.txt</pre>
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.fogonacaixadagua.com.br/2009/08/enviado-email-com-anexo-via-linha-de-comando/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Horario de verão no Linux e FreeBSD</title>
		<link>http://www.fogonacaixadagua.com.br/2009/08/horario-de-verao-20082009-no-linux-e-freebsd/</link>
		<comments>http://www.fogonacaixadagua.com.br/2009/08/horario-de-verao-20082009-no-linux-e-freebsd/#comments</comments>
		<pubDate>Fri, 28 Aug 2009 02:19:39 +0000</pubDate>
		<dc:creator>Daniel Kühl Lima</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[localtime]]></category>
		<category><![CDATA[timezone]]></category>

		<guid isPermaLink="false">http://virtualxp.org/portal/?p=95</guid>
		<description><![CDATA[Na época de horário de verão sempre há um pânico extra. No Linux/FreeBSD e afins é possível se previnir, adicionar uma regra para mudar apartir de uma data específica. O exemplo desse post será configurado o horário de verão para 2008/2009. Para regras 2009/2010, siga esse post: Horario de verão no Linux e FreeBSD 2009/2010 [...]]]></description>
			<content:encoded><![CDATA[<div class="socialize-in-content" style="float:left;"><div class="socialize-in-button socialize-in-button-vertical"><script type="text/javascript">
			<!-- 
				tweetmeme_url = "http://www.fogonacaixadagua.com.br/2009/08/horario-de-verao-20082009-no-linux-e-freebsd/";
				tweetmeme_source = "tweetmeme";
				tweetmeme_style = "normal";
				
			//-->
			</script>
                        <script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"></script></div><div class="socialize-in-button socialize-in-button-vertical"><iframe src="http://www.facebook.com/plugins/like.php?href=http://www.fogonacaixadagua.com.br/2009/08/horario-de-verao-20082009-no-linux-e-freebsd/&amp;layout=box_count&amp;show_faces=true&amp;width=&amp;action=like&amp;font=arial&amp;colorscheme=light&amp;height=65" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:px !important; height:65px;" allowTransparency="true"></iframe></div></div><p>Na época de horário de verão sempre há um pânico extra.</p>
<p>No Linux/FreeBSD e afins é possível se previnir, adicionar uma regra para mudar apartir de uma data específica.</p>
<p>O exemplo desse post será configurado o horário de verão para 2008/2009.</p>
<p><strong>Para regras 2009/2010, siga esse post:</strong></p>
<ul>
<li><a title="Permanent Link to Horario de verão no Linux e FreeBSD 2009/2010" title='Original Link: ../2009/10/horario-de-verao-no-linux-e-freebsd-20092010/'  href="http://www.fogonacaixadagua.com.br/?jDh0MML6">Horario de verão no Linux e FreeBSD 2009/2010 </a></li>
</ul>
<div style="border: medium none ; margin: 1em 5em; padding: 0.2em; background-color: #bbffbb;">
<div style="float: left;"><img src="/images/Info.png" alt="" width="32" height="32" /></div>
<div style="margin-left: 36px;"><strong>Nota: Linux</strong><br />
É necessário estar no diretorio <tt>/usr/share/zoneinfo/America</tt>.</div>
</div>
<div style="border: medium none ; margin: 1em 5em; padding: 0.2em; background-color: #bbffbb;">
<div style="float: left;"><img src="/images/Info.png" alt="" width="32" height="32" /></div>
<div style="margin-left: 36px;"><strong>Nota: FreeBSD</strong><br />
É necessário estar no diretorio <tt>/usr/share/zoneinfo</tt>.</div>
</div>
<h3 style="font-size: 1.17em;">Post relacionado</h3>
<ul>
<li><a href="http://www.fogonacaixadagua.com.br/2009/10/script-shell-com-expect-para-atualizacao-em-massa-para-o-horario-de-verao-20092010/">Script shell com expect para atualização em massa para o horário de verão 2009/2010</a></li>
</ul>
<h3>Criando o arquivo <tt>.zic</tt> com as regras de fuso</h3>
<p>Para isto ser possível, segue abaixo a forma de criar essa regra.</p>
<pre class="brush: shell; gutter: false">cd /usr/share/zoneinfo/America</pre>
<p>Primeiro, crie um arquivo <code>.zic</code> que conterá as regras.</p>
<p>Por exemplo, para alterar a regra para o fuso utilizando o horário de Brasília, crie o arquivo <tt>Sao_Paulo.zic</tt> e adicione o seguinte conteúdo:</p>
<pre class="brush: plain; gutter: false">Rule Brazil 2008 only - Oct 19 00:00 1 S
Rule Brazil 2009 only - Feb 15 00:00 0 -

Zone Brazil/East -3:00 Brazil BR%sT</pre>
<p>A primeira linha, é o início que a data entrará em vigor e o relógio do sistema irá adiantar em 1 hora nessa data.</p>
<p>A segunda linha é o final do horário de verão e o relógio irá atrasar 1 hora.</p>
<p>A terceira linha contém o fuso horário que o arquivo é baseado.</p>
<h3>Compilando o arquivo <tt>.zic</tt></h3>
<p>Isto feito, agora é só compilar o arquivo gerado para criar o novo localtime que utilizará magicamente da regra criada.</p>
<pre class="brush: bash">zic Sao_Paulo.zic</pre>
<p>Após a compilação, será gerado o arquivo Sao_Paulo que o sistema utilizará para configurar o fuso.</p>
<p>Isto feito, copiando para o /etc as regras já entrarão em vigor no mesmo momento.</p>
<pre class="brush: bash">cp Sao_Paulo /etc/localtime</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.fogonacaixadagua.com.br/2009/08/horario-de-verao-20082009-no-linux-e-freebsd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Entendendo o arquivo fstab</title>
		<link>http://www.fogonacaixadagua.com.br/2009/08/entendendo-o-arquivo-fstab/</link>
		<comments>http://www.fogonacaixadagua.com.br/2009/08/entendendo-o-arquivo-fstab/#comments</comments>
		<pubDate>Fri, 28 Aug 2009 02:06:51 +0000</pubDate>
		<dc:creator>Daniel Kühl Lima</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[fstab]]></category>

		<guid isPermaLink="false">http://virtualxp.org/portal/?p=89</guid>
		<description><![CDATA[fstab é um arquivo de configuração que contém informações de todas as partições e dispositivos de armazenamento do seu computador. Está localizado no diretório /etc, seu caminho completo é /etc/fstab. /etc/fstab contém as informações que determinarão onde as partições serão montadas e como serão. É apenas um arquivo texto, é possível editar com qualquer editor [...]]]></description>
			<content:encoded><![CDATA[<div class="socialize-in-content" style="float:left;"><div class="socialize-in-button socialize-in-button-vertical"><script type="text/javascript">
			<!-- 
				tweetmeme_url = "http://www.fogonacaixadagua.com.br/2009/08/entendendo-o-arquivo-fstab/";
				tweetmeme_source = "tweetmeme";
				tweetmeme_style = "normal";
				
			//-->
			</script>
                        <script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"></script></div><div class="socialize-in-button socialize-in-button-vertical"><iframe src="http://www.facebook.com/plugins/like.php?href=http://www.fogonacaixadagua.com.br/2009/08/entendendo-o-arquivo-fstab/&amp;layout=box_count&amp;show_faces=true&amp;width=&amp;action=like&amp;font=arial&amp;colorscheme=light&amp;height=65" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:px !important; height:65px;" allowTransparency="true"></iframe></div></div><p>fstab é um arquivo de configuração que contém informações de todas as partições e dispositivos de armazenamento do seu computador. Está localizado no diretório /etc, seu caminho completo é /etc/fstab.</p>
<p>/etc/fstab contém as informações que determinarão onde as partições serão montadas e como serão.</p>
<p>É apenas um arquivo texto, é possível editar com qualquer editor de textos, no entanto, é necessário possuir privilégios de root para sua edição.</p>
<h3>Exemplo de um arquivo /etc/fstab</h3>
<p>Obviamente que cada um terá um arquivo diferente. Esse é só uma amostra.</p>
<pre class="brush: text; smart-tabs: true; gutter: false"># Coluna 1              Coluna 2                Col 3   Coluna 4    Col 5 e 6
LABEL=/                 /                       ext3    defaults        1   1
LABEL=/boot             /boot                   ext3    defaults        1   2
none                    /dev/pts                devpts  gid=5,mode=620  0   0
none                    /dev/shm                tmpfs   defaults        0   0
/dev/system/opt         /opt                    ext3    defaults        1   2
none                    /proc                   proc    defaults        0   0
none                    /sys                    sysfs   defaults        0   0
LABEL=/tmp              /tmp                    ext3    defaults        1   2
LABEL=SWAP-sdb1         swap                    swap    defaults        0   0
/dev/hda                /media/cdrom            auto    pamconsole,exec,noauto,managed 0 0
/dev/fd0                /media/floppy           auto    pamconsole,exec,noauto,managed 0 0</pre>
<h3>Significado de cada coluna</h3>
<h4>Coluna 1</h4>
<p>É a partição ou o dispositivo de armazenamento.</p>
<h4>Coluna 2</h4>
<p>É o ponto de montagem</p>
<h4>Coluna 3</h4>
<p>Tipo do Filesystem da partição.</p>
<h4>Coluna 4</h4>
<p>Opções de montagem.</p>
<div style="border: medium none ; margin: 1em 5em; padding: 0.2em; background-color: #bbffbb;">
<div style="float: left;"><img src="/images/Info.png" alt="" width="32" height="32" /></div>
<div style="margin-left: 36px;"><strong>Nota</strong><br />
As opções de montagem podem ser consutadas pelo <code>man mount</code>.</div>
</div>
<h4>Coluna 5</h4>
<p>É a opção <code>dump</code>.</p>
<div style="border: medium none ; margin: 1em 5em; padding: 0.2em; background-color: #bbffbb;">
<div style="float: left;"><img src="/images/Info.png" alt="" width="32" height="32" /></div>
<div style="margin-left: 36px;"><strong>Nota</strong><br />
Se o valor for 0, o <code>dump</code> não tentará fazer o backup com <code>dump</code>.</div>
</div>
<h4>Coluna 6</h4>
<p>É a opção <code>fsck</code>.</p>
<div style="border: medium none ; margin: 1em 5em; padding: 0.2em; background-color: #bbffbb;">
<div style="float: left;"><img src="/images/Info.png" alt="" width="32" height="32" /></div>
<div style="margin-left: 36px;"><strong>Nota</strong><br />
Se o valor for 0, o <code>fsck</code> não fará a checagem do filesystem no momento do boot.</div>
</div>
<div style="border: 1px solid #ffcc00; margin: 1em 5em; padding: 0.2em; background-color: #f8e1d3;">
<div style="float: left;"><img src="/images/Alerta2.png" alt="" width="32" height="32" /></div>
<div style="margin-left: 36px;"><strong>Aviso</strong><br />
Num ambiente com <code>RAID</code> via software, os valores das colunas 5 e 6 devem ser 0, assim o sistema irá iniciar normalmente caso haja algum problema com o RAID e você poderá fazer as devidas manutenções sem que seja nessário parar tudo, ou até agendar uma manutenção, resumindo, você ganhará tempo.</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.fogonacaixadagua.com.br/2009/08/entendendo-o-arquivo-fstab/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FreeBSD: Configurando Samba com antivírus realtime (Samba, vscan e clamav)</title>
		<link>http://www.fogonacaixadagua.com.br/2009/03/freebsd-configurando-samba-com-antivirus-realtime-samba-vscan-e-clamav/</link>
		<comments>http://www.fogonacaixadagua.com.br/2009/03/freebsd-configurando-samba-com-antivirus-realtime-samba-vscan-e-clamav/#comments</comments>
		<pubDate>Wed, 18 Mar 2009 21:04:15 +0000</pubDate>
		<dc:creator>Daniel Kühl Lima</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[Seguranca]]></category>
		<category><![CDATA[antivírus]]></category>
		<category><![CDATA[clamav]]></category>
		<category><![CDATA[samba]]></category>

		<guid isPermaLink="false">http://virtualxp.org/portal/?p=71</guid>
		<description><![CDATA[Não é preciso descrever como é importante em um ambiente onde haja computadores Windows envolvido que é necessário ter um antivírus no servidor de arquivos Linux ou FreeBSD com o Samba. Essa versão do artigo irá cobrir FreeBSD versões 6.x e 7.x, uma outra será feita para Red Hat e CentOS com geração dos RPMs [...]]]></description>
			<content:encoded><![CDATA[<p>Não é preciso descrever como é importante em um ambiente onde haja computadores Windows envolvido que é necessário ter um antivírus no servidor de arquivos Linux ou FreeBSD com o Samba.</p>
<p>Essa versão do artigo irá cobrir FreeBSD versões 6.x e 7.x, uma outra será feita para Red Hat e CentOS com geração dos RPMs para as plataformas.</p>
<ul>
<li><a href="http://www.fogonacaixadagua.com.br/2010/03/samba-com-antivirus-clamav-no-red-hat-centos/">Samba com Antivírus ClamAV no Red Hat / CentOS</a></li>
</ul>
<h3>Instalando o Clamav</h3>
<p>No FreeBSD, instalar o Clamav é recomendável fazer pelo ports mesmo, forma mais tranquila de instalar.</p>
<pre class="brush: bash">cd /usr/ports/security/clamav
make config</pre>
<p style="text-align: center;"><img class="alignnone size-full wp-image-73" title="picture-3" src="http://virtualxp.org/portal/wp-content/uploads/2009/03/picture-3.png" alt="picture-3" width="421" height="289" /></p>
<p>Deixar as opções selecionadas como na imagem.</p>
<h4>Instalar o clamav:</h4>
<pre class="brush: bash">make install</pre>
<p>Após a instalação, editar o arquivo /usr/local/etc/freshclam.conf e comentar a linha onde lê-se: Example</p>
<p>O arquivo /usr/local/etc/freshclam.conf terá como conteúdo algo parecido com o seguinte, caso seu ambiente seja diferente, adapte-o de acordo com as suas necessidades.</p>
<h4>Arquivo /usr/local/etc/freshclam.conf</h4>
<pre class="brush: plain">DatabaseDirectory /var/db/clamav
UpdateLogFile /var/log/freshclam.log
LogTime yes
LogSyslog yes
PidFile /var/run/clamd/freshclam.pid
DatabaseOwner clamav
DNSDatabaseInfo current.cvd.clamav.net
DatabaseMirror db.br.clamav.net
DatabaseMirror database.clamav.net
NotifyClamd /usr/local/etc/clamd.conf
SubmitDetectionStats /usr/local/etc/clamd.conf
DetectionStatsCountry BR</pre>
<p>O mesmo aplica-se ao arquivo /usr/local/etc/clamd.conf</p>
<h4>Arquivo /usr/local/etc/clamd.conf</h4>
<pre class="brush: bash">LogFileMaxSize 2M
LogTime yes
LogSyslog yes
LogFile /var/log/clamd.log
PidFile /var/run/clamd/clamd.pid
LocalSocket /tmp/clamd.socket
TCPSocket 3310
TCPAddr 127.0.0.1
User clamav
ScanPE yes
ScanELF yes
DetectBrokenExecutables yes
ScanOLE2 yes
ScanPDF yes
ScanMail yes
MailFollowURLs no
ScanPartialMessages yes
PhishingSignatures yes
PhishingScanURLs yes
PhishingAlwaysBlockSSLMismatch no
PhishingAlwaysBlockCloak no
HeuristicScanPrecedence yes
ScanHTML yes
ScanArchive yes</pre>
<p>Acrescentar as seguintes linhas ao arquivo /etc/rc.conf:</p>
<pre class="brush: bash">clamav_clamd_enable="YES"
clamav_freshclam_enable="YES"</pre>
<p>Criar os arquivos de log e definir permissões corretas</p>
<pre class="brush: shell">
touch /var/log/clamd.log /var/log/freshclam.log
chown clamav:clamav /var/log/clamd.log /var/log/freshclam.log
mkdir -p /var/run/clamd
chown clamav:clamav /var/run/clamd
</pre>
<p>Após a configuração, iniciar o clamd e fazer a atualização da base de vírus.</p>
<pre class="brush: bash">/usr/local/etc/rc.d/clamav-clamd start
freshclam</pre>
<h3>Instalando o Samba 3</h3>
<h4>Baixando o código fonte</h4>
<p>É realmente necessário recompilar o samba para ter a funcionalidade do vscan, pois somente com os binários ele não irá compilar.</p>
<p>Não testei com outra versão, portanto não sei da estabilidade/funcionalidade, aqui utilizarei a versão 3.0.34 do samba.</p>
<pre class="brush: bash">cd ~
fetch http://download.samba.org/samba/ftp/stable/samba-3.0.34.tar.gz
tar zxvf samba-3.0.34.tar.gz -C /usr/src
cd /usr/src/samba-3.0.34/source
./configure
gmake proto
gmake
gmake install</pre>
<p>O samba será instalado por padrão no diretório /usr/local/samba.</p>
<h4>Desabilitando o samba atual (instalado pelo ports [se houver])</h4>
<p>Se você possui o samba instalado hoje pelo ports deverá desativá-lo e desabilitá-lo da inicialização automática, defina o parâmetro de inicialização de cada daemon como &#8220;NO&#8221;:</p>
<pre class="brush: bash">samba_enable="NO"</pre>
<p>ou as linhas</p>
<pre class="brush: bash">nmbd_enable="NO"
smbd_enable="NO"
winbindd_enable="NO"</pre>
<p>do arquivo /etc/rc.conf</p>
<p>Se desejar desinstalar definitivamente o samba do servidor, basta entrar no ports <code>/usr/ports/net/samba3</code> e executar o comando</p>
<pre class="brush: bash">make deinstall</pre>
<h3>Fazer o download do vscan</h3>
<pre class="brush: bash">cd ~
fetch http://www.openantivirus.org/download/samba-vscan-0.3.6c-beta5.tar.gz
tar zxvf samba-vscan-0.3.6c-beta5.tar.gz -C /usr/src/samba-3.0.34/examples/VFS
cd /usr/src/samba-3.0.34/examples/VFS/samba-vscan-0.3.6c-beta5</pre>
<h4>Compilar e instalar</h4>
<pre class="brush: bash">./configure
gmake clamav
cp vscan-clamav.so /usr/local/samba/lib/vfs
cp clamav/vscan-clamav.conf /usr/local/etc</pre>
<p>O conteúdo do arquivo /usr/local/etc/vscan-clamav.conf deverá parecer com o seguinte:</p>
<h4>Arquivo /usr/local/etc/vscan-clamav.conf</h4>
<pre class="brush: bash">[samba-vscan]
max file size = 0
verbose file logging = no
scan on open = yes
scan on close = yes
deny access on error = yes
deny access on minor error = yes
send warning message = yes
infected file action = delete
quarantine directory = /tmp
quarantine prefix = vir-
max lru files entries = 100
lru file entry lifetime = 5
exclude file types =
exclude file regexp =
clamd socket name = /tmp/clamd.socket
libclamav max files in archive = 1000
libclamav max archived file size = 10485760</pre>
<p>A linha</p>
<pre class="brush: bash">infected file action = delete</pre>
<p>refere-se a ação a ser tomada caso um vírus seja encontrado, a ação padrão é não fazer nada, o recomendável é colocar em &#8220;quarantine&#8221; ou &#8220;delete&#8221;.</p>
<h3>Configurar o Samba para utilizar o vscan</h3>
<p>É possível utilizar o vscan a nível de compartilhamento e global, para tanto, basta colocar as seguintes linhas onde quer utilizar o vscan, se for global não há necessidade de colocar nos compartilhamentos.</p>
<h4>Arquivo /usr/local/etc/smb.conf</h4>
<pre class="brush: bash">vfs object = vscan-clamav
vscan-clamav: config-file = /usr/local/etc/vscan-clamav.conf</pre>
<h3>Iniciando o samba</h3>
<p>O samba deverá ser iniciado agora na linha de comando e na inicialização pode ser no arquivo /etc/rc.local</p>
<pre class="brush: bash">/usr/local/samba/sbin/smbd -D -s /usr/local/etc/smb.conf
/usr/local/samba/sbin/nmbd -D -s /usr/local/etc/smb.conf</pre>
<p>Através do log /var/log/messages é possível acompanhar o funcionamento do vscan.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fogonacaixadagua.com.br/2009/03/freebsd-configurando-samba-com-antivirus-realtime-samba-vscan-e-clamav/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

