Migrando do OpenWebMail+SendMail para Zimbra

Tive este ótimo desafio de migrar do OpenWebMail para o Zimbra. Sempre estive de olho no que o Zimbra poderia oferecer para usuários finais sem falar para o administrador . OpenWebMail também pode ser bem potente porem precisa de um administrador mais encima do servidor controlando.

1 – Problemas com: OpenWebMail+SendMail+Outros

O grande problema que estava tendo com o antigo servidor era basicamente as caixas dos usuários serem maiores que 1GB então para o OpenWebMail abrir estas caixas era um custo de CPU muito grande alem da antiga maquina ser uma maquina virtual que não ajudava muito com operação I.O.(Acho que seja um problema bem comum de sistemas que usam mbox). Com o SendMail não tenho reclamação fazia seu trabalho com rapidez .

Outro problema que estava tendo era com SPAM, não tinha forma simples de fazer um treinamento com as mensagens que eram ou não eram SPAM e com o Zimbra somente com um único click os próprios usuários podem realizar este treinamento do que é Spam e não é.  O servidor antigo tinha ate o SpamAssassin instalado porem para fazer algo parecido como o Zimbra no treinamento de Spam tinha que tentar fazer uma padronização de pastas com usuarios e fazer eles moverem as mensagens para as pastas e fazer um crontab para rodar sempre o SpamAssassin nestas pastas de todos usuários para ele aprender o que seria SPAM ou não.

Outra coisa que me incomodava era que o antigo servidor não tem suporte a IMAP e usava um servido POP que somente buscava os mbox de um lugar.

2 – Desafio: Migrando caixas de e-mail

Não tem segredo.  O Zimbra tem uma ótima documentação de qual ferramenta usar para a migração de emails: http://wiki.zimbra.com/index.php?title=User_Migration

As caixas de email do antigo servidor eram organizadas das seguintes formas:

  • /mail/usuario
  • /home/horizontes/usuario/mail

Com isso teria que fazer uma escolha de um servidor de IMAP que tivesse suporte a multiplas caixas. Outro problema que tive era o pouco tempo para fazer migração de 80 GB de email e não podia parar um servidor para fazer a migração, tinha que fazer a migração em HOT e com isso vem o grande problema,  como fazer o controle de senhas ?  Quero dizer que não podia mudar a senha do servidor original para poder fazer a autenticação no IMAP pois assim o usuário não ia conseguir olhar seus emails. Acabei descobrindo que o dovecot tem uma solução simples e rápido para isso.

2.1 – dovecot

O dovecot tem opção de usar o “modulo” passwd-file que tem a possibilidade de você informar,  em um arquivo de texto simples,  usuário e senha:

user:{plain}password
user2:{plain}password2

E automaticamente ele busca informações do /etc/passwd do diretorio Home do usuario, precisava disso pois configurei o  dovecot para ler os mbox da seguinte forma:

mail_location = mbox:~/mail:INBOX=/mail/%u

Para configuração do devecot olhar o link acima que é muito bem documentado.

Resolvi colocar como senha para os usuários os 3 primeiro dígitos do CPF e os 3 últimos dígitos, com isso resolvi o problema de usuário e senha durante a migração. Agora é buscar a ferramenta para migração dos e-mails.

2.2 – imapsync e criação de usuário.

Agora com os problemas da senha resolvido bastava fazer um script simples para fazer a migração e criação dos usuário no zimbra, o script abaixo foi executado na maquina que o zimbra foi instalado.

#!/bin/bash

while read LINHA
do
email=`echo $LINHA |cut -d: -f1`
nome=`echo $LINHA |cut -d: -f2`
senha=`echo $LINHA |cut -d: -f3`
echo "/opt/zimbra/bin/zmprov ca $email $senha displayName $nome zimbraCOSid 1c6d4f62-e622-4370-8082-fab43b41e4b5"
/opt/zimbra/bin/zmprov ca $email $senha displayName "$nome" zimbraCOSid 1c6d4f62-e622-4370-8082-fab43b41e4b5
echo "/opt/zimbra/bin/zmprov listaGeralEmail@empresa.com $email"
/opt/zimbra/bin/zmprov adlm listaGeralEmail@empresa.com $email
nomeantigo=`echo $email |cut -d "@" -f1`
imapsync --buffersize 8192000 --nosyncacls --subscribe --noauthmd5 --syncinternaldates --host1 192.168.20.87 --user1 $nomeantigo.nh --password1 $senha --host2 localhost --user2 $email --password2 $senha
done < listausuarios

O parametro zimbraCOSid é ID da sua “Class of Service”  e para obter este numero basta entrar na área administrativa e clicar na sua COS padrão para os usuários.

No arquivo “listausuarios” ele esta no seguinte formato:

email@daempresa.com:'Nome da Pessoa':password

Lembrando que o password são os 3 primeiro dígitos do CPF e os 3 últimos dígitos. Antes de executar o script é importante você entrar na área administrativa do Zimbra ir em “Global Settings>IMAP” e selecionar “Enable clear text login”  senão vai dar erro durante a migração. Basta executar os scripts que ele vai criar o usuário e migrar as contas de e-mail.

Dica: noip2 port

Comecei a usar o shorewall em servidores proxy e comecei a ter o seguinte problema com o noip2:

noip2[6873]: Can't connect to dynupdate.no-ip.com (Connection refused)

A solução é que o noip2 usar a port 8245 para fazer comunicação com o servidor dele, então o jeito foi liberar esta port no shorewall

ACCEPT          $FW             net             tcp     8245

Migrando do OpenSuse para Debian

Tive que realizar uma pequena migração de OpenSuse para Debian, coisa fácil quando usado o rsync porem os usuario que foram migrados não queriam autenticar no Debian, fui pesquisar o motivo e descobrir que o OpenSuse usa o algoritmo Blowfish para fazer criptografia de senha e o Debian esta no MD5 por padrão. Como a migração do servidores era do Samba não podia simplesmente ignorar os grupos e usuários tive que utilizar o diff e pach para realizar esta migração. Vamos ao passo a passo do trabalho realizado.

1 – Vamos configurar o Debian para utilizar o Blowfish para autenticação no PAM

  • apt-get install libpam-unix2
  • Substituir “pam_unix.so” por “pam_unix2.so” nos seguintes arquivos:
    • /etc/pam.d/common-auth
    • /etc/pam.d/common-account
    • /etc/pam.d/common-session
    • /etc/pam.d/common-password
  • Substituir “md5″ por blowfish no arquivo:
    • /etc/pam.d/common-password

Para a senha de root funcionar você tem que mudar a senha para funcionar perfeitamente com o novo algoritimo de cryp. Porem estava tendo mais um problema, como juntar os arquivos passwd e groups sem dar conflito de ID dos serviços principais do Debian, o jeito foi usar o path como foi falando acima.  Fiz o seguinte codigo abaixo para fazer todo processo do path pois minha intenção e somente ativar o servidor de Backup quando o primario falhar, sim esta ativação tem que ser manual.

#!/bin/bash

echo "Iniciando Samba de backup"
echo "Fazendo bkp dos arquivos importantes /etc/original202/"
mkdir -p /etc/original202/
cp /etc/passwd /etc/original202/
cp /etc/shadow /etc/original202/
cp /etc/group /etc/original202/
echo "Juntando arquivo de passwd para manter usuarios"
cd /tmp
cp /etc/passwd passwd.old
cp /etc/bkp/passwd passwd.new
diff -c passwd.old passwd.new > passwd.patch
patch < passwd.patch
cp passwd.old /etc/passwd
cp /etc/shadow shadow.old
cp /etc/bkp/shadow shadow.new
diff -c shadow.old shadow.new > shadow.patch
patch < shadow.patch
cp shadow.old /etc/shadow
cp /etc/group group.old
cp /etc/bkp/group group.new
diff -c group.old group.new > group.patch
patch < group.patch
cp group.old /etc/group

Quantos % de software non-free você tem em sua maquina ?

Sei que é uma pergunta que não vai mudar a vida de ninguém e que sinceramente não vai fazer diferença alguma ao usuário final, porem tem pessoas que gosta de saber destas coisas. Bom o jeito facil de responder esta pergunta é usando o programa chamado “vrms” no Ubuntu. Rodando o comando ele vai gerar o resultado abaixo:

tadeucruz@fnh-rurilinux:~$ vrms
Non-free packages installed on fnh-rurilinux

fglrx-modaliases          Identifiers supported by the ATI graphics driver
linux-generic             Complete Generic Linux kernel
linux-restricted-modules- Non-free Linux 2.6.28 modules helper script
linux-restricted-modules- Restricted Linux modules for generic kernels
nvidia-173-modaliases     Modaliases for the NVIDIA binary X.Org driver
nvidia-180-modaliases     Modaliases for the NVIDIA binary X.Org driver
nvidia-71-modaliases      Modaliases for the NVIDIA binary X.Org driver
nvidia-96-modaliases      Modaliases for the NVIDIA binary X.Org driver
opera                     The Opera Web Browser
tangerine-icon-theme      Tangerine Icon theme
unrar                     Unarchiver for .rar files (non-free version)
Reason: Modifications problematic

Contrib packages installed on fnh-rurilinux

flashplugin-installer     Adobe Flash Player plugin installer
flashplugin-nonfree       Adobe Flash Player plugin installer (transitional pack
gstreamer0.10-pitfdll     GStreamer plugin for using MS Windows binary codecs
nvidia-common             Find obsolete NVIDIA drivers
ttf-mscorefonts-installer Installer for Microsoft TrueType core fonts

11 non-free packages, 0.8% of 1440 installed packages.
5 contrib packages, 0.3% of 1440 installed packages.

No total tenho 1% de pacotes “não livres” em minha maquina, porem sem alguns deles conserteza a utilização do Hardware ou da propria internet não teria tanta graça.

Upgrade no Parque Tecnologico

Minha ultima maquina foi um Dual Core com 1gb de memoria DDR1 400. Fiquei com esta maquina durante 5 anos, neste tempo fiz alguns estágios e juntei grana para comprar o tão sonhado Macbook. No inicio do ano acabei comprando o tal Macbook, infelizmente apos uma semana de uso acabou dando problemas (FOTO, VIDEO). Peguei a grana de volta e resolvi investir em outras coisas que estava com muita vontade de comprar, meu ultimo vídeo game foi o Playstation 1 e desde la não tenho comprando mais nenhum vídeo game, então com esta grana comprei um Xbox 360, ótimo vídeo game muitos jogos legais foi uma ótima compra. Porem não estava agüentando mais minha maquina que consegui chegar aos incríveis 80 graus de temperatura deixando impossível utilização para trabalhar. Bom ainda com a mesma grana que tinha investido no Macbook acabei comprando a seguinte maquina: Intel Quad Core Q8400, 4 GB DDR2 800 e hd de 320 somente para os S.O :) . Nesta maquina instalei um Windows Vista (Original) , Ubuntu 64 (Perfeito, super rápido) e Mac OSX Leopard. Isso mesmo, o S.O que mais queria conhecer, perfeito o S.O estável, rápido e super fácil de usar, pena que o Macbook deu problema ia gostar muito. Porem ainda faltava 2 coisas para fechar, um celular novo e um notebook para minha faculdade. Sim ainda com a grana que tinha sobrado do Macbook comprei um htc touch dual, celular com Windows Mobile bastante interessante porem nem chega perto de um iPhone. Mas usando com sabedoria conseguir fazer meu próprio serviço de MobileMe, então tenho meus contatos e agenda e tarefas sincronizadas com meu celular e com meu webmail (Horde). Mas ainda faltava um notebook para fechar isso tudo comecei a olhar os netbook pois o Macbook ia servir de diversão, trabalho e mobilidade porem separei as 2 cóias com o Xbox 360 e minha maquina nova então precisava de algo fácil de carregar e acabei escolhendo o Acer Aspire One A150. Foi também uma ótima compra, instalei Ubuntu na maquina e com isso tenho bateria de 4:30 horas de uso e ainda consigo usar o Eclipse na maquina para editar alguns trabalhos e apresentar na faculdade.

OpenCL 1.0

Acho que será uma área bastante famosa no futuro é a de programação em paralelo usando GPUs, a NVIDIA tem o CUDA porem você tem q desenvolver o programa especificamente para placas NVIDA, esta seria a grande vantagem do OpenCL que não depende da placa especifica para desenvolvimento. Tem grandes apoios de empresas como:

  • NVIDIA
  • EA
  • Nokia
  • AMD
  • Apple

Interessante que este tecnologia surgiu como um esboço da Apple que esta desenvolvendo o Snow Leopard para utilizar a GPUs para algumas tarefas.

Para a nota de lançamento: aqui
Referencias: aqui e aqui.

Fazendo o Leopard perder peso

Estava lendo alguns artigos pela internet e achei este ótimo artigo falando sobre alguns programas para deixa seu Leopard mais “leve”, não sou dono ainda de algum MAC mas alguns software ali já vi falando em vários lugares da internet como:

E existe tambem os programa para remover codigos de PowerPC dos programas:

Mais dicas aqui.

OpenMoko: Android


Lembra que falei sobre OpenMoko aqui, bom mais uma reviravolta, esta correndo boatos que ele usara Android em vez das interfaces que estavão desenvolvendo, algo bastante interessante já que Android ate a Palm esta pensando em usar.O aparelho sera o da foto acima, o GTA02:

  • 2.8-inch, 640×480 screen
  • Wi-Fi
  • 3 axis accelerometer
  • 400-500 MHz processor
  • 128 MB RAM
  • 256 MB NAND Flash
  • A-GPS

Fonte: gizmodo