<?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>Rafael Lima &#187; servidor</title>
	<atom:link href="http://rafael.adm.br/tag/servidor/feed/" rel="self" type="application/rss+xml" />
	<link>http://rafael.adm.br</link>
	<description>Empreendedorismo, Web, Agile, Tecnologia, Desenvolvimento, Negócios, Marketing, Aplicação Web, Ruby on Rails.</description>
	<lastBuildDate>Sat, 03 Dec 2011 23:55:38 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>pt</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Rodando scripts binários 32bits em plataformas 64bits com linux baseado em Debian</title>
		<link>http://rafael.adm.br/p/rodando-scripts-binarios-32bits-em-plataformas-64bits-com-linux-baseado-em-debian/</link>
		<comments>http://rafael.adm.br/p/rodando-scripts-binarios-32bits-em-plataformas-64bits-com-linux-baseado-em-debian/#comments</comments>
		<pubDate>Sun, 03 May 2009 02:39:55 +0000</pubDate>
		<dc:creator>Rafael Lima</dc:creator>
				<category><![CDATA[Posts]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[configuração]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[servidor]]></category>
		<category><![CDATA[servidores]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://rafael.adm.br/?p=325</guid>
		<description><![CDATA[ Atualizado: Pareceu o dia inteiro, quando escrevi isso, mas depois constatei que foram umas 5 horas.
Hoje eu passei o dia inteiro tentando colocar um script binário escrito em C, para rodar no meu servidor novo. Depois de quebrar muito a cabeça entrei no chat do serviço de hospedagem, pois já estava achando que era [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-right: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Frafael.adm.br%2Fp%2Frodando-scripts-binarios-32bits-em-plataformas-64bits-com-linux-baseado-em-debian%2F"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Frafael.adm.br%2Fp%2Frodando-scripts-binarios-32bits-em-plataformas-64bits-com-linux-baseado-em-debian%2F" height="61" width="51" /></a></div><p><strong> Atualizado:</strong> Pareceu o dia inteiro, quando escrevi isso, mas depois constatei que foram umas 5 horas.</p>
<p>Hoje eu passei <strong>o dia inteiro</strong> tentando colocar um script binário escrito em C, para rodar no meu servidor novo. Depois de <a href="http://twitter.com/rafaelp/status/1683570361">quebrar muito a cabeça</a> entrei no chat do serviço de hospedagem, pois já estava achando que era problema de hardware ou das máquinas virtuais.</p>
<p>O suporte em princípio não ajudou muito mas no final, quando eu citei que conseguia fazer o script rodar em outro servidor, o atendente do suporte me perguntou se eu sabia se o outro servidor era 32bits.</p>
<p>Só neste momento que eu me liguei neste problema. Nem tinha pensando nisso até então. Entrei na página do script e vi que ele era escrito para a plataforma 32bits.</p>
<p>Uma rápida busca me levou para a página <a href="http://alioth.debian.org/docman/view.php/30192/21/debian-amd64-howto.html#id292205">The Debian GNU/Linux AMD64 HOW-TO</a></p>
<p>Como uso Ubuntu na máquina virtual, fiz o primeiro passo que era instalar o pacote ia32-libs e <a href="http://twitter.com/rafaelp/status/1683587234">tudo funcionou</a>.</p>
<div class="dean_ch" style="white-space: wrap;">apt-get <span class="kw2">install</span> ia32-libs</div>
<p>A título de indexação nos sistemas de busca, colocarei abaixo os erros que encontrei durante o processo.</p>
<p>Premature end of script headers:<br />
(2)No such file or directory: exec of /xxx failed<br />
HTTP Error 500 &#8211; Internal server error</p>
<p>Como era um script cgi, mais algumas palavras chaves são relevantes: apache apache2 cgi-bin script Options ExecCGI script-alias SetHandler cgi-script</p>
<p>Por hoje chega!</p>
]]></content:encoded>
			<wfw:commentRss>http://rafael.adm.br/p/rodando-scripts-binarios-32bits-em-plataformas-64bits-com-linux-baseado-em-debian/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cuidado ao fazer migração de repositório subversion</title>
		<link>http://rafael.adm.br/p/cuidado-ao-fazer-migracao-de-repositorio-subversion/</link>
		<comments>http://rafael.adm.br/p/cuidado-ao-fazer-migracao-de-repositorio-subversion/#comments</comments>
		<pubDate>Wed, 22 Apr 2009 12:22:40 +0000</pubDate>
		<dc:creator>Rafael Lima</dc:creator>
				<category><![CDATA[Posts]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[configuração]]></category>
		<category><![CDATA[migração]]></category>
		<category><![CDATA[servidor]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://rafael.adm.br/?p=315</guid>
		<description><![CDATA[Este final de semana eu fiz uma migração de um servidor subversion. Como eu esperava, teria algumas dores de cabeça pois o subversion é muito sensível. Fiz muitos testes durane o processo e consegui uma maneira que funcionasse.
No final das contas consegui migrar todo o repositório de um servidor para outro e manter a mesma [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-right: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Frafael.adm.br%2Fp%2Fcuidado-ao-fazer-migracao-de-repositorio-subversion%2F"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Frafael.adm.br%2Fp%2Fcuidado-ao-fazer-migracao-de-repositorio-subversion%2F" height="61" width="51" /></a></div><p>Este final de semana eu fiz uma migração de um servidor subversion. Como eu esperava, teria algumas dores de cabeça pois o subversion é muito sensível. Fiz muitos testes durane o processo e consegui uma maneira que funcionasse.</p>
<p>No final das contas consegui migrar todo o repositório de um servidor para outro e manter a mesma URL de modo que ficasse transparente para os clients, evitando a necessidade de rodar um &#8220;svn switch &#8211;relocate&#8221; em cada working copy.</p>
<p>O problema é que quando fui usar hoje, dois dias depois, <strong>eu consegui acessar o repositório pela web, mas não consegui fazer um checkout.</strong></p>
<p>A Lei de Murphy está aí para isso <img src='http://rafael.adm.br/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Depois de perquisar um pouqinho, descobri que foi uma configuração que fiz por último e que é uma verdadeira pegadinha. No caso eu estou usando o Apache2 com mod_dav.</p>
<p>A pegadinha é que você não pode configurar o DocumentRoot com o mesmo path do SVNParentPath. Tem outros casos que causam o mesmo problema, basicamente <strong>o fato de existir um diretório no DocumentRoot com o mesmo nome do repositório controlado pelo DAV gera um conflito e o servidor se perde.</strong></p>
<p>Mais informações sobre isso podem ser encontradas em: <a href="http://subversion.tigris.org/faq.html#301-error">http://subversion.tigris.org/faq.html#301-error</a></p>
<p>Espero que seja útil!</p>
<p>Abraços e até a próxima.</p>
]]></content:encoded>
			<wfw:commentRss>http://rafael.adm.br/p/cuidado-ao-fazer-migracao-de-repositorio-subversion/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Segurança e Hardening de servidores linux</title>
		<link>http://rafael.adm.br/p/seguranca-e-hardening-de-servidores-linux/</link>
		<comments>http://rafael.adm.br/p/seguranca-e-hardening-de-servidores-linux/#comments</comments>
		<pubDate>Mon, 06 Oct 2008 04:48:57 +0000</pubDate>
		<dc:creator>Rafael Lima</dc:creator>
				<category><![CDATA[Posts]]></category>
		<category><![CDATA[chkrootkit]]></category>
		<category><![CDATA[csf]]></category>
		<category><![CDATA[fail2ban]]></category>
		<category><![CDATA[hardening]]></category>
		<category><![CDATA[lfd]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[logcheck]]></category>
		<category><![CDATA[logrotate]]></category>
		<category><![CDATA[logwatch]]></category>
		<category><![CDATA[mod_security]]></category>
		<category><![CDATA[mrtg]]></category>
		<category><![CDATA[rkhunter]]></category>
		<category><![CDATA[segurança]]></category>
		<category><![CDATA[servidor]]></category>
		<category><![CDATA[servidores]]></category>
		<category><![CDATA[smartd]]></category>
		<category><![CDATA[suhosin]]></category>
		<category><![CDATA[watchdog]]></category>

		<guid isPermaLink="false">http://rafael.adm.br/?p=257</guid>
		<description><![CDATA[Este final de semana fiquei envolvido com questões de segurança nos servidores da BielSystems. Deixo aqui uma sopinha de letras para quem quiser buscar ler mais sobre o assunto.

csf
lfd
logcheck
logwatch
Fail2Ban
SSHv2
rkhunter
chkrootkit
mod_security
logrotate
Suhosin
MRTG
Watchdog
smartd
SSH Keys
Alguns links interessantes:
http://www.puschitz.com/SecuringLinux.shtml
http://www.gentoo.org/doc/en/security/security-handbook.xml

]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-right: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Frafael.adm.br%2Fp%2Fseguranca-e-hardening-de-servidores-linux%2F"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Frafael.adm.br%2Fp%2Fseguranca-e-hardening-de-servidores-linux%2F" height="61" width="51" /></a></div><p>Este final de semana fiquei envolvido com questões de segurança nos servidores da <a href="http://bielsystems.com.br">BielSystems.</a> Deixo aqui uma sopinha de letras para quem quiser buscar ler mais sobre o assunto.</p>
<ul>
<li><a href="http://configserver.com/cp/csf.html">csf</a></li>
<li><a href="http://configserver.com/cp/csf.html">lfd</a></li>
<li><a href="http://logcheck.org/">logcheck</a></li>
<li><a href="http://www.logwatch.org/">logwatch</a></li>
<li><a href="http://www.fail2ban.org">Fail2Ban</a></li>
<li><a href="http://www.bmighty.com/security/showArticle.jhtml?articleID=203103226">SSHv2</a></li>
<li><a href="http://sourceforge.net/projects/rkhunter/">rkhunter</a></li>
<li><a href="http://www.chkrootkit.org/">chkrootkit</a></li>
<li><a href="http://www.modsecurity.org/">mod_security</a></li>
<li><a href="http://iain.cx/src/logrotate/">logrotate</a></li>
<li><a href="http://www.hardened-php.net/suhosin/index.html">Suhosin</a></li>
<li><a href="http://oss.oetiker.ch/mrtg/">MRTG</a></li>
<li><a href="http://sourceforge.net/projects/watchdog/">Watchdog</a></li>
<li><a href="http://smartmontools.sourceforge.net/">smartd</a></li>
<li><a href="http://www.sshkeychain.org/mirrors/SSH-with-Keys-HOWTO/">SSH Keys</a></li>
<p>Alguns links interessantes:<br />
<a href="http://www.puschitz.com/SecuringLinux.shtml">http://www.puschitz.com/SecuringLinux.shtml</a><br />
<a href="http://www.gentoo.org/doc/en/security/security-handbook.xml">http://www.gentoo.org/doc/en/security/security-handbook.xml</a></p>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://rafael.adm.br/p/seguranca-e-hardening-de-servidores-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Configurando sistema de backup do banco de dados MySQL no Amazon S3 em 10 minutos</title>
		<link>http://rafael.adm.br/p/configurando-sistema-de-backup-do-banco-de-dados-mysql-no-amazon-s3-em-10-minutos/</link>
		<comments>http://rafael.adm.br/p/configurando-sistema-de-backup-do-banco-de-dados-mysql-no-amazon-s3-em-10-minutos/#comments</comments>
		<pubDate>Thu, 20 Mar 2008 05:20:11 +0000</pubDate>
		<dc:creator>Rafael Lima</dc:creator>
				<category><![CDATA[Posts]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[banco de dados]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[segurança]]></category>
		<category><![CDATA[servidor]]></category>

		<guid isPermaLink="false">http://rafael.adm.br/p/configurando-sistema-de-backup-do-banco-de-dados-mysql-no-amazon-s3-em-10-minutos/</guid>
		<description><![CDATA[Por indicação do William, passei a usar o AutoMySQLBackup em conjunto com um script de sincronização de diretórios no Amazon S3, para realizar backup dos bancos de dados MySQL dos servidores dedicados da BielSystems.
Este script é bem completo e tem tudo que alguém pode precisar para um sistema de backup eficiente e seguro em ambiente [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-right: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Frafael.adm.br%2Fp%2Fconfigurando-sistema-de-backup-do-banco-de-dados-mysql-no-amazon-s3-em-10-minutos%2F"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Frafael.adm.br%2Fp%2Fconfigurando-sistema-de-backup-do-banco-de-dados-mysql-no-amazon-s3-em-10-minutos%2F" height="61" width="51" /></a></div><p>Por indicação do <a href="http://williamaraujo.eng.br/">William</a>, passei a usar o <a href="http://sourceforge.net/projects/automysqlbackup/">AutoMySQLBackup</a> em conjunto com um script de sincronização de diretórios no Amazon S3, para realizar backup dos bancos de dados MySQL dos servidores dedicados da <a href="http://bielsystems.com.br">BielSystems</a>.</p>
<p><strong>Este script é bem completo e tem tudo que alguém pode precisar para um sistema de backup eficiente e seguro em ambiente de produção.</strong></p>
<p>Abaixo segue o &#8220;pacacá&#8221; de instalação:</p>
<p>Por motivos de segurança, sugiro que você crie um usuário somente para backup, que tenha permissão apenas de leitura (SELECT). Para fazer isso, conforme <a href="http://gentoo-wiki.com/HOWTO_Backup_MySQL">sugerido aqui</a>, rode o comando abaixo no servidor que possui o MySQL instalado.</p>
<div class="dean_ch" style="white-space: wrap;">$ mysql -u root -p -e <span class="st0">&quot;GRANT SELECT, LOCK TABLES ON *.* TO &#8216;backup&#8217;@'localhost&#8217; IDENTIFIED BY &#8216;escolha-uma-senha&#8217;;&quot;</span></div>
<p>Depois disso  <a href="http://sourceforge.net/project/showfiles.php?group_id=101066">baixe o script AutoMySQLBackup</a> no seu diretório de scripts, por exemplo, <strong>/usr/local/scripts</strong></p>
<div class="dean_ch" style="white-space: wrap;">$ <span class="kw2">mkdir</span> -p /usr/<span class="kw3">local</span>/scripts<br />
$ <span class="kw3">cd</span> /usr/<span class="kw3">local</span>/scripts<br />
$ <span class="kw2">wget</span> -c http://ufpr.dl.sourceforge.net/sourceforge/automysqlbackup/automysqlbackup.sh<span class="nu0">.2</span><span class="nu0">.5</span></div>
<p>Edite o arquivo com seu editor preferido (ex: nano -w automysqlbackup.sh.2.5) e configure os parâmetros. Fora os parâmetros de acesso ao banco de dados (lembre-se de usar o usuário <em>backup</em> que foi criado no passo anterior), sugiro a alteração destes parâmetros:</p>
<div class="dean_ch" style="white-space: wrap;"># Mail setup<br />
# What would you like to be mailed to you?<br />
# &#8211; log &nbsp; : send only log file<br />
# &#8211; files : send log file and sql files as attachments (see docs)<br />
# &#8211; stdout : will simply output the log to the screen if run manually.<br />
# &#8211; quiet : Only send logs if an error occurs to the MAILADDR.<br />
MAILCONTENT=&quot;log&quot;</p>
<p># Separate backup directory and file for each DB? (yes or no)<br />
SEPDIR=yes</p>
<p># Additionally keep a copy of the most recent backup in a seperate directory.<br />
LATEST=yes</div>
<p>Coloque o script para rodar no cron diariamente.</p>
<div class="dean_ch" style="white-space: wrap;">$ <span class="kw3">cd</span> /etc/cron.daily<br />
$ <span class="kw2">ln</span> -s /usr/<span class="kw3">local</span>/scripts/automysqlbackup.sh<span class="nu0">.2</span><span class="nu0">.5</span> automysqlbackup</div>
<p><strong>Enviando os arquivos de backup para uma conta no Amazon S3</strong></p>
<p>Para enviar o backup realizado para um conta no <a href="http://aws.amazon.com/s3">Amazon S3</a>, que é o web service de storage da Amazon, siga as instruções abaixo que foram retiradas <a href="http://blog.eberly.org/2006/10/09/how-automate-your-backup-to-amazon-s3-using-s3sync/">deste link</a>.</p>
<p>Antes de mais nada, instale o ruby 1.8.4 ou mais novo e a biblioteca de ssl para o ruby.</p>
<div class="dean_ch" style="white-space: wrap;">$ <span class="kw2">sudo</span> apt-get <span class="kw2">install</span> ruby libopenssl-ruby</div>
<p>Confirme a versão do ruby</p>
<div class="dean_ch" style="white-space: wrap;">$ ruby -v<br />
ruby <span class="nu0">1.8</span><span class="nu0">.6</span> <span class="br0">&#40;</span><span class="nu0">2008</span><span class="nu0">-03</span><span class="nu0">-03</span> patchlevel <span class="nu0">114</span><span class="br0">&#41;</span> <span class="br0">&#91;</span>i686-linux<span class="br0">&#93;</span></div>
<p>Agora vamos instalar o <a href="http://s3sync.net">s3sync</a> que é um script de sincronização de diretórios locais com diretórios no S3.</p>
<p>Vá para o diretório que você deseja instalar o s3sync, como por exemplo <strong>/usr/local/scripts</strong></p>
<div class="dean_ch" style="white-space: wrap;">$ <span class="kw3">cd</span> /usr/<span class="kw3">local</span>/scripts</div>
<p>Faça o download e descompacte:</p>
<div class="dean_ch" style="white-space: wrap;">$ <span class="kw2">wget</span> http://s3.amazonaws.com/ServEdge_pub/s3sync/s3sync.<span class="kw2">tar</span>.gz<br />
$ <span class="kw2">tar</span> xvzf s3sync.<span class="kw2">tar</span>.gz</div>
<p>Remova o arquivo compactado:</p>
<div class="dean_ch" style="white-space: wrap;">$ <span class="kw2">rm</span> s3sync.<span class="kw2">tar</span>.gz</div>
<p>Crie um diretório para os certificados e baixe alguns:</p>
<div class="dean_ch" style="white-space: wrap;">$ <span class="kw3">cd</span> s3sync<br />
$ <span class="kw2">mkdir</span> certs<br />
$ <span class="kw3">cd</span> certs<br />
$ <span class="kw2">wget</span> http://mirbsd.mirsolutions.de/cvs.cgi/~checkout~/src/etc/ssl.certs.shar</div>
<p>rode o instalador dos certificados</p>
<div class="dean_ch" style="white-space: wrap;">$ <span class="kw2">sh</span> ssl.certs.shar</div>
<p>Pronto, s3sync instalado!</p>
<p>Vamos agora criar um script que pega os últimos arquivos de backup e envia para a sua conta do S3.</p>
<p>Crie o arquivo de script com o conteúdo abaixo. Exemplo: <strong>/usr/local/scripts/automysqlbackup-upload-to-s3.sh</strong></p>
<div class="dean_ch" style="white-space: wrap;">#!/bin/bash<br />
cd /usr/local/scripts/s3sync<br />
export AWS_ACCESS_KEY_ID=yourS3accesskey<br />
export AWS_SECRET_ACCESS_KEY=yourS3secretkey<br />
export SSL_CERT_DIR=/usr/local/scripts/s3sync/certs<br />
ruby s3sync.rb -r &#8211;ssl &#8211;delete /backups/latest nomedobucket:backup/mysql</div>
<p>Observações:</p>
<ul>
<li>O comando <em>&#8211;delete</em> diz para o s3sync excluir os arquivos que existem no S3 mas não existem mais na pasta local.</li>
<li>Para enviar somente os últimos backups (diretório <em>latest</em>), é necessário que o parâmetro LATEST seja igual a <em>yes</em> no AutoMySQLBackup</li>
<li>Atenção para o nome do bucket, para os paths e principalmente para o path /backups/latest que deve conter o diretório que está configurado no parâmetro BACKUPDIR do AutoMySQLBackup concatenado com &#8220;/latest&#8221;.</li>
</ul>
<p>O último passo é configurar o AutoMySQLBackup para rodar o script de envio dos arquivos para o S3 logo após cada backup.</p>
<p>Para isso altere o parâmetro POSTBACKUP como o exemplo abaixo:</p>
<div class="dean_ch" style="white-space: wrap;"># Command run after backups (uncomment to use)<br />
POSTBACKUP=&quot;/usr/local/scripts/automysqlbackup-upload-to-s3.sh&quot;</div>
<p><strong>Parabéns, você já está com um backup seguro e eficiente!</strong></p>
<p>Abraços e até a próxima.</p>
]]></content:encoded>
			<wfw:commentRss>http://rafael.adm.br/p/configurando-sistema-de-backup-do-banco-de-dados-mysql-no-amazon-s3-em-10-minutos/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

