quarta-feira, 31 de outubro de 2007

Auth-client-config

Outra ferramenta que vem já com a nova versão do Ubuntu é o auth-client-config.

auth-client-config é um script python que modifica os arquivos de configuração do pam e o nsswitch.conf auxiliando nas configurações de autenticação. Ele pode ser usado por administradores de sistema para efetuar de forma fácil e rápida as configurações destes.

Ainda não utilizei a ferramenta, mas acho que a mesma pode ser bastante interessante e que merece um post. A possibilidade de criação de profiles é algo que pode agilizar muito em casos de instalações em larga escala.

Se alguém já usou e tem mais informações, fique à vontade para postar um comentário.

Mudanças na autenticação via LDAP do Ubuntu 7.10

Quem usa autenticação por LDAP e instalou a nova versão do Ubuntu (7.10 - Gutsy Gibbon) deve ter percebido que as coisas mudaram um pouco.

Além de corrigir os bugs das versões anteriores (principalmente a inexistência do grupo nvram que fazia o boot levar "séculos"), os arquivos de configuração mudaram. E para melhor.

Agora, ao invés de ter de configurar o libnss-ldap.conf e o pam_ldap.conf, basta configurar o arquivo ldap.conf que fica no /etc. Ele tem basicamente a mesma estrutura destes o que não será um problema pra quem já sabia como proceder nas versões anteriores.

Muito mais simples...

sábado, 27 de outubro de 2007

Openfire - uma análise mais completa

Tenho percebido uma grande movimentação em meu blog que vem de pessoas que a cada dia que passam buscam mais e mais informações sobre Jabber (XMPP - leia mais aqui e aqui), mais especificamente sobre o servidor Jabber Openfire.

O Openfire é um servidor Jabber desenvolvido em Java pela Ignite Realtime. Acompanho o mesmo desde os tempos em que se chamava Wildfire e ainda estava na versão 2.x. Desde lá ele passou por inúmeras melhorias, recebendo mais recursos e aprimorando os que já existiam (como a autenticação LDAP, por exemplo).

O Openfire tem uma gama imensa de recursos, sendo que do meu ponto de vista um dos mais interessantes é o uso de plugins, que permitem extender as funcionalidades do servidor.
Existe quase uma dezena de plugins disponíveis (e outros que já estão em desenvolvimento), dos quais dois eu acho que merecem um destaque especial:
  • Asterisk-IM que "integra" o Openfire com seu servidor Asterisk
  • Gateway IM que integra sua rede Jabber com outros protocolos como MSN, ICQ, AIM, etc... Este em particular eu já havia usado em sua versão Beta, época em que cada transporte (gateway) era um plugin diferente e bastante instável. Nessa última versão (que já não é mais beta) o plugin está muito melhor e mais prático.
Poderia também citar os demais, que são: Broadcast (para mandar mensagens de broadcast para os usuários), Content Filter (para implementar filtro de conteúdo) entre outros.

E a instalação ?

Requisitos básicos para instalação: Java JRE (recomendo a versão 6 update 3), MySQL (dê preferência para a versão 5, que tem suporte a replicação) e um servidor LDAP (opcional, que pode ser usado para autenticação).

Como meu negócio é software livre, eu vou falar da versão pra Linux, é claro.
A instalação é toda via Browser. Antes é claro você precisará abrir o .tar.gz que você baixou (ou instalar o .rpm), instalar o MySQL, criar o DB, o usuário do DB e dar as permissões de acesso ao mesmo. Depois disso basta apontar o browser para o domínio, na porta 9090 e seguir os passos (ex: http://localhost:9090). Claro que isso irá instalar um servidor básico. O resto das configurações são depois feitas pela interface web de administração, ou editando o arquivo openfire.xml que fica na pasta conf, dentro da pasta Openfire.

Já instalei o servidor, e agora ?

Depois do servidor instalado se você estiver usando LDAP para autenticar os usuários e se tiver feito tudo corretamente, basta começar a configurar e conectar os clientes.
Se você não usar LDAP será necessário logar na interface administrativa e criar os usuários e grupos manualmente. Nesse aspecto o Openfire é super bacana. Você pode criar grupos de usuários que se enxergam automaticamente entre si, fazendo com que não seja necessário que os usuários se adicionem uns aos outros na suas listas. Você pode criar vários grupos e fazer com que eles se vejam ou não. Você pode inclusive colocar nos grupos usuários de outros domínios jabber, já que você pode interconectar as redes usando o protocolos s2s.
Essa é outra feature muito legal do Openfire. Você pode permitir que seu servidor se conecte a qualquer outro servidor Jabber, ou você pode fazer uma black list de servidores que não podem ser conectar ao seu servidor, ou ainda uma whitelist só com os servidores que podem ser conectar. No caso da empresa onde trabalho, nosso servidor se conecta somente aos servidores jabber de nossos clientes e com isso podemos incluir contatos dos nossos clientes sem precisar ter um usuário jabber na rede deles. Muito prático.
Outro recurso disponível é a criação de salas de conferência. Você pode configurar os membros que podem acessar a sala, uma senha para acesso e uma série de opções que possibilitam e/ou limitam o que os membros podem fazer na sala.
As mensagens offline também tem uma configuração específica. Você pode armazenar as mesmas (e configurar o que fazer quando o limite de espaço de armazenamento for excedido), pular (não armazenar e informar o remetente) ou liberar (não armazenar e nem avisar o remetente que a mensagem não será entregue).
Com relação a auditoria (que é recurso pelo qual tenho percebido grande interesse por parte dos visitantes do blog), é possível configurar o Openfire para armazenar as mensagens em arquivos de logs (separados por usuário) em uma pasta a ser espeficada, até um limite de espaço a ser determinado (por usuário e total). Você pode configurar por quantos dias os logs serão armazenados (pode ser indefinidamente) e os pacotes a serem auditados. Também é possível informar uma lista de usuários que não deverão ser auditados. Quanto a auditoria, 2 questões devem ser esclarecidas: primeiro, o Openfire não tem um visualizador de logs de auditoria, cabendo a você desenvolver um próprio e segundo, se você utilizar gateways para outros protocolos (MSN, ICQ, etc...) essas mensagens também serão auditadas, o que parece ser algo pelo qual os administradores tem tido muito interesse ultimamente.
Outro recurso que pode ser importante, dependendo da situação é possibilidade de ativar compressão entre o cliente e o servidor. Isso pode ajudar a diminuir o uso de banda em conexões de pouca largura.
Acho que por último e não menos importante também é a capacidade do Openfire de transferir arquivos (ou desabilitar essa feature) entre os clientes. É um padrão do protocolo XMPP, mas merece certamente ser citado, pois muitas pessoas tem dúvidas se isso é possível com Jabber.
Obviamente existem outros recursos que poderiam ser citados mas acho que os principais já foram elencados acima.

E o que vem pela frente ?

A última versão estável é a 3.3.3 sendo que a 3.4 está em desenvolvimento (o programa de beta testing vai até o dia 31 de outubro - próxima quarta) e sua principal novidade será o suporte a clustering permitindo distribuir a carga entre vários servidores que servem o mesmo domínio, além é claro de diminuir o downtime, pois caso uma máquina falhe outra irá continuar atendendo.

Concluindo...

Do meu ponto de vista o Openfire é o servidor que oferece os melhores recursos entre todos os servidores Jabber que conheço e eu com certeza o recomendo para pequenas e médias instalações.
Como já disse num post anterior, não sei informar se ele seria capaz de atender um domínio como o jabber.org, por exemplo, ou que hardware seria necessário para suportar a média de 8000 conexões simultâneas deste.
Se você quiser testar, por favor depois me relate como foi sua experiência.

UPDATE (28/10 - 15:39): Informações adicionais sobre os bancos de dados suportados foram adicionados nos comentários.

UPDATE (25/01): Criada a lista de e-mail Openfire-BR. Saiba mais.

sexta-feira, 26 de outubro de 2007

Superkaramba

Como muitos eu tenho o meu lado usuário que adora um Desktop visualmente bacana e com extensões legais (preferem widgets ?) mas que ao mesmo tempo sejam também úteis.

Por isso, nunca deixo de instalar o SuperKaramba onde quer que eu esteja. O SuperKaramba é uma ferramenta que permite instalar (e até mesmo criar) widgets para seu desktop KDE.

Ele é muito popular e existem centenas de temas disponíveis para o mesmo na página do KdeLook.org. É incrível o que você encontra lá: desde temas para IM, mail, música, monitoração, até leitores de RSS e de comics online. Muito bom.

Entre os temas que eu não dispenso estão:

Kroller: o Kroller cria uma barra de menus similar a do Mac OSX que dá um visual muito bacana ao Desktop além de ser de uma praticidade incrível. Tente usar uma vez e você nunca mais conseguirá ficar sem ele.



Aero AIO: O Aero AIO é um tema que mostra todas as informações de seu computador. Uso de memória, CPU, rede, disco, versão de kernel, uptime, entre outras. Conta ainda com uma série de plugins que podem ser instalados para aumentar a quantidade de itens a serem monitorados.



Liquid Weather: O Liquid Weather é o melhor tema e software que já vi pra previsão do tempo. Cheio de recursos e de uma visual incrível, supera quaisquer outros softwares do tempo como o KWeather o e plugin ForecastFox do Firefox. Sensacional !




Se você como eu gosta desse tipo de recursos no Desktop, o SuperKaramba foi feito pra você.

OpenVPN

Falando em túneis e VPNs uma ferramenta muito útil e com uma imensa gama de recurso é o OpenVPN.

O OpenVPN é uma solução de VPN que usa autenticação por chaves o que aumenta muito a segurança da conexão.

Por ser muito flexível e parametrizável, ela pode ser implementada de várias formas. Você pode implementar sua VPN peer to peer (usando tun) ou então pode fazer com que seu micro cliente receba um IP da rede onde você está conectado (usando tap - no Linux isso demanda algumas outras modificações, inclusive no proxy ARP. Se alguém tiver interesse por favor contate-me.). Seja qual for a forma usada, você poderá implementar roteamento para os demais micros de sua rede usando a OpenVPN. Além disso você também pode implementar sua VPN usando TCP ou UDP. A escolha é sua.

A configuração da OpenVPN é bastante simples, sendo relativamente similar no lado cliente e no lado servidor. No lado do servidor você irá utilizar o arquivo server.conf. No lado do client, se você usar Linux, você pode criar um arquivo .conf para cada cliente onde deseje conectar e deixar todos na pasta /etc/openvpn (Debian ou Ubuntu). Na realidade o OpenVpn lê todos os arquivos .conf da pasta e executa os procedimentos de cada um (levanta um servidor, conecta na rede A, conecta na rede B, etc...)

Como a autenticação se faz por chaves, você precisará criar uma autoridade certificadora que irá assinar os certificados de todos os clientes que irão conectar no servidor. Se tiver dúvidas de como fazer isso, leia meu post anterior sobre openssl e geração de certificados. Além disso será necessário gerar uma chave específica também para cada cliente.

E se por ventura, sua máquina cliente rodar Windows, fique tranquilo: para essa plataforma existe o cliente OpenVPN Gui que se aloja na tray area, e que pelo menu de contexto permite que você conecte e desconecte de sua VPN com praticidade. O arquivo de configuração do mesmo é similar ao do Linux, mas a extensão muda de .conf para .opvn. Os parâmetros são exatamente os mesmos só mudando a forma de indicar os caminhos dos certificados e arquivos de log, é claro.
Se for o caso, você também pode instalar seu cliente OpenVPN Windows como um serviço, fazendo com que sua VPN seja automaticamente conectada ao ligar o micro (eu particulamente prefiro subir a mesma quando se faz necessário, seja no Linux ou no Windows).

Como você pode perceber o OpenVPN é uma ferramenta muito útil e com uma vasta lista de features, o que me permitiria escrever páginas e páginas sobre ele. Como em blogs posts muito longos ficam extremamente maçantes e a intenção do mesmo é ter textos curtos com análises de ferramentas em geral, caso você queria mais informações ou somente queria trocar uma idéia me envie um e-mail.

Vtun - Minha conexão já era...

Após instalar o Ubuntu Gutsy Gibbon (7.10) me deparei com o seguinte problema: não consigo mais fechar um túnel Vtun com servidores rodando Debian ou outras versões mais antigas do Ubuntu.

Acredito ser um problema de versão, pois o Gutsy traz a versão 3.0 do Vtun enquanto as outras distribuições "mais antigas" ainda usam a versão 2 do mesmo.

Se você passou por algo similar e conseguiu resolver a questão, por favor me mande um e-mail com a solução. :-)

Se eu encontrar a resposta, irei postar aqui no blog.

quinta-feira, 25 de outubro de 2007

Eventos comunitários no fisl 9.0

Atenção:

nos próximos dias estarão sendo abertas as inscrições para os eventos comunitários do fisl 9.0.

Para quem ainda não sabe ou não conhece, os eventos comunitários são conferências e encontros de comunidades, propostos e organizados por seus próprios integrantes que ocorrem dentro da grade do fisl.

Fiquem ligados!!!

9º Fórum Internacional Software Livre - fisl9.0
17, 18 e 19 de abril de 2008
Porto Alegre RS Brasil

quarta-feira, 24 de outubro de 2007

Gerando certificados com o OpenSSL

Gerar certificados é uma tarefa que eventualmente se faz necessária.

Pensando em facilitar esse processo (que eu particularmente acho meio chato e que nunca lembro exatamente de todos seus passos), resolvi criar um script para isso.
Para que o mesmo funcione é necessário que você tenha o certificado da CA (autoridade certificadora) que irá efetuar a assinatura e a senha deste.

Segue:

#!/bin/bash
# geraCert.sh

# Parametros
# $1 = nome do certificado a ser gerado
# $2 = nome do certificado da CA

if [ "$1" = "" ]; then

echo
echo 'Sintaxe: geraCert.sh nome do certificado nome da CA'
echo
exit
fi

if [ "$2" = "" ]; then

echo
echo 'Sintaxe: geraCert.sh
nome do certificado nome da CA'
echo
exit
fi

if [ ! -f "./$2.crt" ]; then

echo
echo Arquivo $2.crt não encontrado
echo
exit
fi

# Gera uma nova chave
openssl genrsa -out $1.key 1024

# Gera uma requisição de assinatura
openssl req -new -key $1.key -out $1.csr

# Gera um certificado assinado através da requisição (5 anos)
openssl x509 -days 1825 -CA $2.crt -CAkey $2.key -in $1.csr -req -out $1.crt

# Visualiza o certificado
openssl x509 -text -noout -in $1.crt

# Verifica a assinatura
openssl verify -CAfile $2.crt $1.crt

Se você quiser mais informações, pode ver esse pequeno howto criado pelo Marlon Dutra (que eu tomei por base para gerar o meu script).

Convertendo timestamps

Você como eu já deve ter precisado converter um timestamp em uma data "legível".

Para isso, segue um script que faz exatamente isso (Atenção, ele usa Perl e necessita da ctime.pl).

#!/bin/bash
# timestamp.sh
#
# Parametros
# $1 = timestamp

if [ "$1" = "" ]; then

echo
echo 'Sintaxe: timestamp.sh timestamp'
echo
exit
fi

EPOCH=$1
DATE=$(perl -e "require 'ctime.pl'; print &ctime($EPOCH);")
echo $DATE

Espero que seja útil.

Configurando o Nagios com o Nagios Web Config

O Nagios é uma ferramenta muito interessante (e eficiente) para monitorar serviços e servidores. Só que por outro lado, uma das coisas mais maçantes e tediosas que existem é ter de configurar o mesmo. São horas e horas em cima de vários arquivos de configurações para poder colocá-lo em funcionamento.

Mas com o Nagios Web Config isso tudo fica diferente.

O Nagios Web Config é um software que serve para configurar os hosts, serviços, grupos de hosts, comandos e todas as demais configurações do Nagios (exceto a configuração inicial do mesmo) de forma visual e prática utilizando para isso o seu browser. Por isso mesmo, ele já foi planejado para ser implementado na própria sidebar do Nagios, o que facilita ainda mais seu uso.

E como ele trabalha ? Ao ir adicionando/deletando/editando as configurações ele vai armazenando as mesmas em um DB MySQL. Depois você pode solicitar que ele escreva as configurações e ele próprio irá gerar os arquivos necessários sem que haja necessidade de editá-los manualmente. Além disso, como os dados ficam num DB caso você precise reinstalar o servidor (ou por exemplo decida colocar o Nagios em outro servidor), não haverá necessidade de refazer todas as configurações.

Como nem tudo são flores, a instalação dele junto a um Nagios recém instalado pode ser meio "chata", sendo necessário gerar algumas configurações básicas do Nagios para que o mesmo no mínimo consiga ser iniciado. Ou seja, você não vai escapar de ter de meter a mão nos arquivos do Nagios no início, mas depois tudo vai ficar muito mais simples. Pode confiar.

Sem dúvida é uma excelente ferramenta para otimizar esses processos de configuração e que com certeza ajudará muito a manter seu Nagios sempre atualizado, e o melhor, de forma bem simples. :-)

mkntpwd

Uma ferramenta que eu sempre preciso e nunca encontro é o mkntpwd.

Ele serve para criar os password hashes do Samba que são armazenados nos atributos de senha do mesmo no LDAP.

Ele é utilizado principalmente pelo PhpLdapAdmin, mas também se faz necessário na ferramenta de administração LDAP criada pela Propus.

Ou seja, sempre que preciso instalar a mesma eu nunca acho os fontes. Por isso resolvi criar um post sobre o assunto pra não perder mais o link.

Você pode baixar os fontes do mkntpwd aqui.

Gmail vai começar a suportar IMAP

Deu no Google Operating System e no Google Blogoscoped.

O Gmail começou a suportar também IMAP. Para setar essa nova feature vá em Configurações na Aba de Encaminhamento e POP/IMAP.

Como o recurso é muito recente, nem todas contas ainda o possuem (a minha ainda não tem), mas o mesmo vai começar a aparecer para todos os usuários nos próximos dias.

Vejam a figura abaixo:




Leia mais aqui ou aqui.

terça-feira, 23 de outubro de 2007

KDE 4 - Beta 3 no Ubuntu Gutsy 7.10

O site do Kubuntu está disponibilizando um howto para orientar os usuários interessados a instalar o KDE4 beta 3 no Gutsy (7.10).

Quem quiser arriscar pode ver as instruções aqui. O melhor é que é possível instalar o KDE4 junto do KDE3, mas de qualquer maneira eu não recomendo isso para micros de produção, prefiro aguardar o Kubuntu 8.04.

Boa sorte para quem tentar :-)

segunda-feira, 22 de outubro de 2007

Novo cliente IM - Instanbird

Me deparei com um novo cliente de IM que parece ter futuro. É o Instantbird.

Ele reúne o melhor da Mozilla com o Pidgin. Para quem usa o Pidgin, verá que ele o lembra em alguns aspectos, principalmente no gerenciamento de contas. Da Mozilla vem os add-ons no mesmo estilo de Firefox e Thunderbird o que promete facilitar a construção de complementos que devem começar a aparecer em breve (assim eu espero...).

Como é ainda a versão 0.1 ele ainda é muito cru para o usuário final, sendo interessante pra quem gosta de testar e conhecer novos produtos. Coloquei nele minha conta ICQ e nem os nomes dos usuários ele resolveu. Não tem menu de contexto, não tem envio de arquivos, ainda não tem praticamente nada, só troca de mensagens.

Espero que dê certo e o projeto siga adiante, pois tem tudo para ser um grande cliente.

domingo, 21 de outubro de 2007

Novo blog para Off topics

Resolvi criar um novo blog somente para postar sobre outros assuntos que não estejam necessariamente relacionados a informática (o que não quer dizer que não vá postar nada sobre esse tema também ;-) ).

Nesse novo blog irei falar sobre música, quadrinhos, videogames, filmes e irei também incluir meus post pessoais, além de outras bobagens ou coisas interessantes que aparecerem por aí.

Se alguém quiser acompanhar, o endereço é http://offtopicsandfun.blogspot.com/.

Se preferir, o RSS é http://feeds.feedburner.com/Mhterres-OffTopicsAndFun.

quinta-feira, 18 de outubro de 2007

Openfire e o plugin Gateway IM

Um recurso que pode ser bem importante para quem pensa em implementar um servidor de mensagens instantâneas é poder se interligar com as outras redes de IM disponíveis (ICQ, MSN, AIM).

Por mais que você pretenda usar somente o Jabber, muitas pessoas continuarão pelo menos no período inicial de implantação necessitando de suas contas nas outras redes para manter seus contatos ativos.

Pensando nisso, resolvi falar sobre um plugin que pode ser a solução se você tem esse problema: o Gateway IM.

O Gateway IM permite que você instale os chamados transportes sobre o Jabber. Os transportes nada mais são que meios de se acessar um conta de outra rede (MSN, ICQ ou outros protocolos) usando sua própria conta Jabber. Isso permite ao SysAdmin bloquear totalmente esses protocolos em sua rede e liberar os mesmos somente para usuários específicos. E fica melhor: você pode liberar a conta ICQ para o usuário A, para o usuário B liberar somente a conta MSN e para o usuário C não liberar rede nenhuma. O plugin é muito flexível.

Após a instalação do plugin, aparecerá uma nova opção chamada Gateways na aba do Servidor (bem no final da lista). Lá existem 2 itens:

Configurações: nesse item você irá determinar quais tipos de gateway quer liberar (AIM, Gadu Gadu, ICQ, IRC, MSN e Yahoo). Existem outros gateways experimentais os quais eu não recomendo que sejam marcados em servidores de produção.

Cada gateway tem 3 opções:

Testes: aqui você irá testar a conexão de seu server Jabber com a rede que você quer conectar.
Opções: aqui você irá configurar os dados de conexão a rede (os dados default costumam funcionar bem).
Permissões: aqui você irá setar como serão as permissões de acesso, que são 3 possíveis: Todos os usuários podem ser registrar. Esses usuários e/ou grupos podem se registrar (você então deverá informar os usuários e grupos com permissão) ou Somente registro manual (o que obriga que você cadastre cada usuário e sua conta específica na rede que será acessada - é mais trabalhoso, mas gera o maior controle possível).

Registros: Se você tiver escolhido para algum gateway a opção de registro manual, nesse item você irá mapear o usuário jabber e sua conta na rede externa. Para isso basta adicionar o novo usuário e colocar seu login da rede Jabber, o tipo de gateway, o usuário da rede externa, sua senha da rede externa e o apelido.
Ao cadastrar minha conta MSN na conta Jabber de nosso servidor, tão logo cliquei no botão Adicionar e minha conta MSN foi automaticamente desconectada do Pidgin. Instantaneamente meus contatos MSN começaram a aparecer na minha lista através do transporte Jabber.

Percebe-se que realmente o plugin além de ser muito útil é bastante simples de utilizar. E o que é ainda melhor, já que seus usuários estarão navegando via Jabber, todas as mensagens das outras redes também poderão ser monitoradas via a auditoria do Openfire.

Se você preferir pode também usar outros clientes específicos Jabber para evitar que os usuários tenham acesso a outros protocolos. Seguem algumas sugestões:

psi - Linux/Windows
Coccinella - Linux/Windows
Exodus - Windows

E outros mais podem ser encontrados aqui.

UPDATE (25/01): Quer trocar idéias com usuários do Openfire ? Cadastre-se na lista Openfire-BR


UPDATE 17/06/2012: Saiba mais sobre o Spectrum IM, o projeto atual do desenvolvedor do Kraken e do Gateway IM (ambos descontinuados).

Ubuntu Gutsy Gibbon liberado

Não é novidade mas eu não poderia de deixar de postar a notícia.

O Ubuntu 7.10 está disponível para download.

Ubuntu - versão x86
Kubuntu - versão x86

Ubuntu - versão 64
Kubuntu - versão 64


Para outras versões e mirrors do Ubuntu, clique aqui.
Para outras versões e mirrors do Kubuntu, clique aqui.
Interessado no Xubuntu, clique aqui.

Ou se preferir, peça gratuitamente seus CDs do Ubuntu ou do Kubuntu.

ISOs já baixados e dist-upgrades em andamento.

Vamos ver qual é :-)

segunda-feira, 15 de outubro de 2007

ejabberd 2 - o que vem por aí...

Novas e aguardadas features estão chegando na nova versão do ejabberd, ainda sem previsão de lançamento. Entre elas:

*Visualização do IP dos clientes na interface admin Web
*Melhoria nos logs s2s (server to server)
*Módulo de autenticação LDAP que agora permite fazer bind em múltiplos atributos
*Autenticação via PAM
*Suporte para pool de servidores LDAP
*Instalador full 64 bits
*Porta do MySQL/PostgreSQL que agora pode ser especificada no arquivo de configuração
*Lista de servidores liberados/bloqueados para comunicação s2s

E muitas outras. No total são quase 200 bugs/novas features/melhorias em comparação a versão atual (1.1.4).

É aguardar e instalar assim que sair :-)

Bacula - backup eficiente

Um serviço muito importante para qualquer servidor é o do backup (apesar de muita gente não dar o valor necessário até precisar dele).

E falando em backup, uma ferramenta que me vem direto ao pensamento é o Bacula.

O Bacula é um software livre com recursos de backup em rede. Ele pode usar vários tipos de mídias para backup como fitas, DVDs, CDs ou mesmo um HD. Além disso, ele tem clientes para Linux e Windows o que flexibiliza bastante o backup de um ambiente homogêneo.

A instalação do servidor consiste basicamente em compilar/instalar o pacote e depois configurar os serviços. Você pode usar um DB MySQL ou PostgreSQL como forma de armazenamento do catálogo. O servidor se divide em 3 serviços: o director, o storage e o file daemon (opcional para o servidor).

O director é onde você configura efetivamente o servidor. Nele você configura seu DB, os endereços de e-mail para envio das mensagens de alerta/aviso e os pools de volumes. Além disso nele você também deve setar os jobs, os clientes e os file sets.
Os clientes são as máquinas onde você vai conectar para buscar os dados.
Os file sets são os arquivos que vocês vai backupear do cliente.
Os jobs são nada mais do que a junção de tudo isso, ou seja o cliente, com o file set, agendamento de horário, nível do mesmo além de outras features. Você pode configurar um job padrão com as configurações comuns e dizer para seus outros jobs para usá-lo, setando no mesmo só as configurações mais específicas.
Além disso, você pode ter mais que um job para um mesmo cliente com um file set diferente, ou seja, você pode backupear seus dados em várias partes, na hora que for mais oportuna. A flexibilidade do bacula nesse ponto é muito interessante.
No director você também pode configurar para rodar scripts antes ou depois de um job específico. Por exemplo, você pode fazer o dump de uma base MySQL antes de fazer o backup do servidor MySQL, ou então, você pode fazer a fita ser ejetada após o último job.

O storage é onde você configura onde serão armazenados os dados. Nele você informa se vai usar uma unidade de fita, um DVD, um CD ou todos eles.

O file daemon também deve ser configurado para que seu servidor possa ser backupeado. Ele é opcional para o servidor funcionar, mas você não vai deixar de backupear o próprio servidor, correto ? ;-)

Já no lado do cliente, basta instalar o file daemon e configurar o mesmo. Ou seja, no cliente a operação é muito simples, ainda mais se for um cliente Linux. Se for Windows pode ser um pouco mais chato, porque após instalar o mesmo, é necessário copiar os arquivos de configuração e reiniciar o serviço. O problema aí é saber onde exatamente colocar os arquivos. :-D
Se precisar de mais informações sobre isso, me avise que eu possa detalhar melhor a situação.

O bacula possui vários softwares para conectar ao seu console que permitem configurá-lo, agendar jobs, restaurar dados, etc...
O principal deles é o bconsole, que é via linha de comando. Graficamente temos o bweb (via web, obviamente, que pode ser obtido pelo svn do bacula e que vale a pena instalar), um console para gnome (que nada mais é que um frontend visual para o bconsole, bastante interessante e que tem uma linha de comando como o bconsole), um monitorador que fica no tray e mais recentemente o BAT (Bacula Administration Tool) que promete ser a ferramente gráfica oficial do Bacula.

Claro que nem tudo é perfeito, então segue uma lista de features que eu acho que seriam interessantes:

Aviso programado por e-mail que informa o label da fita do próximo backup a ser realizado (para por exemplo, enviar um e-mail às 17hs informando qual o nome da fita que deve ser colocada para o próximo backup, que roda às 23hs).

Um novo evento de script para quando a fita lotar (para poder ejetar a fita, por exemplo).

Concluindo, na minha opinião é uma ótima ferramenta que deve ser avaliada por todos interessados numa solução de backup.

Outras ferramentas de backup:
Amanda - nunca usei, mas está em desenvolvimento há bastante tempo e tem sua última versão lançada em 06/06/2007 (versão 2.5.2p1).
Restore - tem chamado minha atenção pelo constante desenvolvimento que tenho percebido nos últimos tempos. A última versão é a 4.0b3-1(lançada em 15/10/2007). O que me incomoda com relação ao Restore é que ele não disponibiliza os fontes (ou se faz, está bem escondido). No site só existe ISO das VMs e pacotes binários para Debian e Ubuntu.

ERRATA (23/11): Quer obter os fontes do Restore? Saiba aqui como fazê-lo.

Openfire e o plugin asterisk-IM

Um recurso muito interessante do Openfire é sua "integração" com o asterisk.

O plugin do asterisk, pode ser facilmente instalando usando a aba Plugins do console de administração do Openfire. Após sua instalação, uma nova aba surgirá na barra (Asterisk-IM), onde então devem ser feitas as configurações específicas do mesmo, que são as seguintes:

1) Habilitar o plugin (basta clicar no option button Enabled).

2) Configurar o(s) servidor(ou servidores) asterisk: nesse passo você irá adicionar um servidor clicando na opção Add Server e irá informar os seguintes dados:
Server Address: o nome do servidor (para identificação)
Server IP: ip do servidor
Port: porta de conexão, padrão 5038
Username: nome do usuário que irá conectar no manager do asterisk
Password: senha do usuário

3) Configurar o Phone Manager: o importante aqui é setar o contexto do asterisk (Asterisk Context) somente.

4) Criar os mapeamentos dos telefone: nessa opção você irá mapear seu usuário jabber com um ramal e device de telefone, com os seguintes dados:
Username: nome do usuário Jabber
Device: device do asterisk, ex: SIP/101
Extension: ramal (ex:101)
Caller ID: identificação do ramal (opcional)
Primary: marque sim se o ramal for primário, no caso do usuário ter mais de 1 ramal (opcional em caso de apenas um ramal para o usuário)

Com isso feito, basta agora ligar para o ramal do usuário mapeado e quando ele atender automaticamente seu status mudará para Away com mensagem "On the phone". Ao desligar a chamada, ele irá retornar ao estado anterior.

Bacana e bem útil, esse é um plugin que pode ser instalado e configurado com facilidade e que é uma das features que me faz gostar do Openfire e das quais eu sinto falta no ejabberd.


UPDATE (25/01): Quer trocar idéias com usuários do Openfire ? Cadastre-se na lista Openfire-BR.

sexta-feira, 12 de outubro de 2007

E por falar em RSS...

E por falar em RSS, segue aqui pra quem se interessar uma lista de alguns interessantes RSS que tenho no meu Google Reader:

BR-Linux - Notícias sobre Software Livre
Digg - Notícias em geral
Freshmeat - Atualizações de Softwares Livres e Lançamentos
KDE Dot News - Notícias sobre o KDE
Kernel Linux - Notícias sobre novas versões do Kernel Linux
Omelete - Cinema, DVD, HQs e séries de TV.
Official Google Blog - Blog oficial do Google
OhGizmo - Novidades sobre aparelhos eletrônicos em geral
Outerspace - Games, games e mais games
Por um punhado de pixels - Cinema, séries, cultura em geral
Projeto Software Livre - Notícias de Software LIvre
Random Good Stuff - Similar ao OhGizmo
TechEBlog - Idem
Ubuntu Fridge - Notícias sobre Ubuntu
XKCD - comics geeks

É só clicar e assinar :-)

Quem quiser outras dicas de RSS legais é só falar...

FeedBurner e Technorati

Cadastrei meu blog no Technorati para aumentar a divulgação do meu blog, já que agora decide começar a postar mais e tentar dar um "rumo" para o mesmo.

Aproveitei também e mudei meu RSS para o FeedBurner para poder obter estatísticas de uso do mesmo. Então se você assina meu RSS, por favor assine-o novamente usando a URL do FeedBurner (basta clicar no ícone da barra de endereço ou no novo ícone que posicionei na lateral direita - em todo caso você pode também clicar aqui).

O FeedBurner foi comprado pelo Google, o que provavelmente fará com que ele se integre ao Blogspot/Blogger no futuro, mas ainda não é o caso.

Para quem tem um blog, vale a pena usar os 2 serviços, principalmente o FeedBurner para você pode ter todas estatísticas de acesso do RSS e de seu site.

Muito bom mesmo.

quinta-feira, 11 de outubro de 2007

Ubuntu Open Week

Em época de lançamento de nova versão do Ubuntu, está programada uma nova Ubuntu Open Week.

A Ubuntu Open Week é uma semana de eventos virtuais que ocorrem no canal #ubuntu-classroom nos servidores IRC da rede Freenode.

Ela vai consistir de 42 tutoriais dos mais variados assuntos e vai contar com várias pessoas envolvidas diretamente no projeto, como Jono Bacon, Daniel Holbach, entre outros e inclusive uma sessão com Mark Shuttleworth. Entre os temas, podemos encontrar: empacotamento, triagem de bugs, traduções, acessibilidade e muito mais. Haverão também sessões para Kubuntu, Xubuntu, Ubuntu Studio e Gobuntu.

A programação completa pode ser encontrada aqui.

Cadastrando no Technoratti :-)

Technorati Profile

quarta-feira, 10 de outubro de 2007

Servidores Jabber

Uma questão que deixa muitas dúvidas quando pensa sem Jabber é: qual servidor eu vou usar ?

Dentro os vários que existem, dois eu acho que são muito interessantes:

Openfire (3.3.3) e ejabberd (1.1.4).

O Openfire (antigo Wildfire) é um servidor jabber em Java, que tem muitos recursos interessantes é uma interface web de configuração extremamente completa e simples.
Entre seus principais recursos os que mais me chamam atenção são: Plugins, auditoria das mensagens dos usuários e controle de conexão com outros servidores jabber.
Os plugins são dos mais variados: Transportes ICQ, MSN e até integração com o Asterisk (que é bem bacana).
Quanto a auditoria de mensagens dos usuários, o Openfire permite manter as mesmas em logs, mas não fornece uma forma de visualizá-los. Para isso desenvolvi um PHP que mostra o conteúdo das mesmas de forma bem simples.
Já com relação ao controle de conexão com outros servers, acho interesssante que o Openfire possibilite a criação de listas brancas de permissão, o que garante que só servidores confiáveis possam se comunicar com o Openfire (esse recurso deve também ser disponibilizado no ejabber 2, que ainda está em desenvolvimento).

Já o ejabberd apesar de não possuir algumas dessas features do Openfire conta com uma importante vantagem: o fato de ser o servidor que roda no Jabber.org. Isso já mostra a robustez e capacidade do mesmo em atender uma grande quantidade de usuários. Para se ter uma idéia, no Jabber.org existem mais de 330 mil usuários registrados, e uma média de 8000 usuários simultâneos. Isso tudo rodando num Dual P4 com 4Gb de memória e DB PostgreSQL. Para visualizar mais dados sobre o servidor, vá na página de Status do servidor Jabber.org.
Muitos poderão dizer que o Jabber.org não é uma grande referência pois fica muito tempo fora do ar. Conversando com stpeter, administrador do Jabber.org levantei essa questão e ele me explicou que muitos dos problemas se devem aos usuários usarem o Jabber.org como área de testes, o que gera instabilidade no servidor. Por exemplo: usuários com 600 mil mensagens offline, usuários que criam web services para fazer inúmeras conexões e por aí vai. Com tanta "invenção", realmente não tem servidor que aguente.

Com relação a performance, pesa (ou será que não ?) o fato do Openfire ser em Java. Já o ejabberd é escrito em Erlang, uma linguagem não muito conhecida e utilizada.

De minha experiência, conheço servidores rodando Openfire com mais ou menos 50 usuários sem grande consumo de recursos do hardware em máquinas relativamente baratas. Mais do que isso eu ainda não utilizei, mas acredito que possa ser viável fazê-lo. Já o ejabberd tem o Jabber.org como um ótimo case de instalação o que faz com que eu prefira-o para instalações com grande número de usuários.

Gnarwl - um "vacation" usando LDAP

Procurando uma solução de resposta automática para e-mail para um servidor rodando Postfix e Courier, me deparei com uma ferramenta muito interessante.

Trata-se do GNARWL.

Gnarwl é um autoresponder de e-mail que se integra a um servidor LDAP, o que resolveu a minha questão de imediato, já que todas as contas de e-mail estavam armazenadas em um.

Ele tem um schema próprio que ao ser incluído no LDAP libera uma nova classe (Vacation) e novos atributos. Entre eles os mais importantes são o vacationActive (resposta automática ativa ou não) e vacationInfo (mensagem da resposta automática).

O Gnarwl também tem arquivo de configuração próprio que permite setar o tempo de intervalo de resposta para mensagens vindas de mesmo remetente (como no vacation) e outras coisas mais.

É uma excelente solução para quem está precisando de uma configuração de resposta automática para seu servidor.

E o melhor de tudo, para integrar ao postfix basta uma meia dúzia de linhas.

Vale a pena dar uma olhada.


UPDATE (07/07/2008):
  • Clique aqui para ir para o novo site do projeto.
  • A última versão disponível (3.4) possui um "plugin para o Horde" que permite manipular o Gnarwl direto na interface de configurações dos usuários. Com isso o controle do vacation fica muito mais simples (ainda não testei com quais versões do Horde funciona). Não sei se as versões anteriores já traziam o recurso, mas é possível que já estivesse disponível há algum tempo.
UPDATE (12/08/2009)
  • Saiba como fazer o Gnarwl funcionar com TLS aqui.

Bobby Tables :-)

O xkcd é um site com tiras diárias de quadrinhos muito divertido pra quem é da área de TI.

Na tirinha de hoje eles se superaram e eu acho que vale um post.

Conheçam o pequeno Bobby Tables.

:-)

quinta-feira, 4 de outubro de 2007

Liquid Rescale

Ok,

eu sei que não é novidade, mas eu realmente fiquei impressionado e achei que o Liquid Rescale merecia um post.

Não sou nenhum expert em Gimp (dá pra me encaixar no nível semi-intermediário ou básico avançado :-) ), mas com o liquid rescale é muito fácil mexer na imagem (redimensionar mantendo ou removendo partes da mesma) e o resultado é surpreendente.

Um HowTo pode ser encontrado aqui.

Segue o resultado de um teste que fiz com uma imagem de 1024x768. Para obter o resultado da segunda foto, mandei preservar as casas e as motos e redimensionar a imagem para 800x768.

O fundo todo foi dimensionado para a nova largura mas os objetos selecionados foram preservados de forma perfeita. Outra coisa interessante é que mesmo mexendo só na largura e não alterando a altura os demais objetos não ficaram com aquele formato "esticado". Cabe ressaltar que isso funciona muito melhor com paisagens no fundo.

Quem não conhece a imagem original pode nem perceber a manipulação.

Imagem Original 1024x768




Imagem modificada 800x768






Mais informações sobre esse plug-in você encontra aqui. Você também pode ver um vídeo demonstrando o plugin aqui.

Muito show :-)