quinta-feira, 13 de agosto de 2009

Configurar um Postfix ( Completo ) - Criado por Kleber


Introdução


Bom, espero que esse documento seja útil para alguém, tentei dar o máximo de clareza e informação possível, mas é claro que nada fica 100% :).

Eu pessoalmente sou um amante do QMAIL, mas tive que atualizar meus conhecimentos e entrar no mundo do POSTFIX, não vou entrar em detalhes de qual é o melhor, o que interessa é que são dois MTAs robustos, estáveis e seguros. Tive que instalar um novo servidor de e-mail em uma provedora de acesso a internet, por quê não instalei QMAIL? Por quê o cliente não queria o QMAIL por achar o POSTFIX mais amigável e estar sempre em desenvolvimento, o QMAIL já está na versão 1.0.3 há mais de 3 anos.

Eu já tinha instalado o POSTFIX, mas nunca me aprofundei bem nesse MTA, então tive que correr atrás de informações, achei vários documentos na net sobre ele, inclusive em português, documento criado por Marco A. S. Máximo, um documento muito bom e que me ajudou bastante, esse documento que estou escrevendo vai sugar muito desse material do Marco, na verdade o que eu vou fazer e colocar minhas experiências e adequar o manual pra qualquer distribuição usando o código fonte(sources) dos softwares, mas se você gosta de usar pacotes já compilados (RPM, DEB, TGZ) não haverá problemas, no documento do Marco ele usa pacotes da distribuição MANDRAKE, e eu uso SLACKWARE, o primeiro problema que eu encontrei foi que, no SLACKWARE não existe a autenticação PAM por default, então não pude usar o smtp autenticado usando o SASL, por quê o SASL necessita do PAM pra autenticar no MYSQL, bom e eu nem quis correr atrás de informações de como eu poderia contornar isso, lembrando que somente o SLACKWARE não usa PAM, todas as outras distribuições linux usam, pelo menos as mais conhecidas, também não vou entrar em discussão aqui por quê o SLACKWARE não usa PAM, então encontrei uma solução que ao meu ver era a melhor opção, uma técnica chamada POP-BEFORE-SMTP, claro que alguns já ouviram falar sobre isso, mas o que seria essa técnica? É bem simples, toda vez que um cliente autêntica no POP ou IMAP, ele tem relay aberto por um determinado tempo, e isso é transparente para o usuário, por quê não necessita de configuração especial no MUA(Mail User Agent Ex.: Outlook), poupar um pouco de trabalho ao suporte :), mas é claro se você usa smtp separado para o envio de mensagens não tem como usar essa técnica, pelos menos não tão facilmente.

Outra coisa que enfrentei muitos problemas foi migrar as contas do antigo SENDMAIL, padrão MBOX, para contas do POSTFIX, padrão MAILDIR, criei scripts que capturavam usuários do /etc/passwd e /etc/mail/virtusertable, esses scripts capturavam os usuários cadastrados e gerava automaticamente um script com todas as configurações necessárias para inclusão no MYSQL.

Bom vamos começar a colocar a mão na massa e instalar nosso ambiente.






Softwares Necessários


Até o momento nenhum link estava quebrado, mas caso enfrente problemas com links quebrados, procure na net os sites respectivos, www.google.com é uma ótima pedida! :).

Postfix:


Quando instalei esse ambiente a versão do Postfix era a 2.1.0, baixe a mais recente.

Patch para usar quota no Postfix:


Aqui está uma outra diferença do manual do Marco, ele usa o Maildrop pra fazer a entrega e controlar quota de e-mail, nos vamos usar o virtual do Postfix pra fazer a entrega e o patch para o Postfix pra gerenciar quota.

Mysql:


Bom, aqui é simples, qualquer distribuição
Linux vem com pacotes do MySQL, mas se você prefere compilar ele, como eu :), pegue os sources e mãos a obra, não vou explicar aqui como compilar o MySQL.

NOTA: Se você for compilar o MySQL e usa uma distribuição com gcc acima de 2.95, não use a opção libwrap, essa opção esta dando problemas com gcc acima de 2.95.

Courier-IMAP:


Quando instalei esse ambiente a versão era 3.0.3, baixe a mais recente.

POP-BEFORE-Smtp:


Software responsável para abrir relay para quem autenticar.

Mcafee antivírus:


Bom, aqui alguns vão falar que tem opções melhores :), como o clamav, na própria documentação do Marco ele usa o clamav como antivírus, isso fica ao seu critério, uso o uvscan por já usar ele a muito tempo e saber que ele realmente funciona, então resolvi não mudar, você ainda pode deixar os 2 antivírus rodando, o amavis_new consegue gerenciar bem isso. :)

NOTA: O uvscan pode ser baixado no site da Mcafee, é uma versão de demonstração, se desejar usa-lo você tem que comprar a licença, vale apena lembrar que, se você tem um Mcafee para Windows o registro vale para linux também, é só copiar o arquivo license.dat para dentro da pasta onde está instalado o uvscan, não vou cobrir a instalação desse antivírus por que é só rodar o script de instalação (install-uvscan) :). Deixe-o instalado antes de instalar o Amavis_new.

Amavis_new:


Para a instalação do amavis são necessários alguns módulos PERL, então tenha certeza que você tem o PERL instalado em seu sistema. O spamassassin é instalado como módulo PERL, isso será abordado na instalação do amavis.

SquirrelWebmail:


Webmail muito bom, funcional e bem robusto, um pouco feio tenho que concordar :), mas isso não importa muito, por quê resolvi usar ele? Como na documentação do Marco mesmo diz, ele aceita vários plugins um deles para o próprio usuário mudar sua senha(poupar trabalho ao suporte :)) e de fácil instalação e manutenção, claro que você vai precisar de um APACHE instalado com suporte a PHP. Também não vou cobrir a instalação do mesmo.

Postfix Admin:


Interface em PHP para administração do Postfix, também necessita de um APACHE com suporte a PHP, ele vem configurado pra usar tabelas do MYSQL pré-definidas, se você não quer usar essas tabelas, será necessário alterar o código do postfixadmin, ou se você é bom em PHP pode fazer sua própria interface, aqui será configurado com as tabelas do postfixadmin para ficar mais fácil a explicação. Com o postfixadmin você pode criar novos domínios, contas de emails, administradores para cada domínio, fazer backup de seu banco de dados etc...



Instalação do Postfix



Vale à pena lembrar que o MySQL precisa estar instalado, com suas libs completas.

A primeira coisa que vamos fazer é aplicar o patch para o Postfix pra gerenciar as quotas, faça o seguinte:

Descompacte o source em um diretório de sua preferência (eu uso o /opt/sources):

# cd /opt/sources
# tar -xvzf postfix-2.1.0.tar.gz


Descompacte o arquivo dentro do diretório do Postfix

# cd postfix-2.1.0
# tar -xvzf postfix-2.1.0.patch.gz


Após terminar aplique o patch assim:

# patch -p0 <>

Agora vamos para a instalação do Postfix:

Crie um usuário chamado postfix e um grupo chamado postdrop.

# groupadd -g 1010 postdrop
# useradd -s /bin/false -d /var/server/postfix -u 1010 -g postdrop postfix


Crie o diretório /var/server/postfix, você pode usar qualquer diretório para armazenar os Maildirs.

# mkdir -p /var/server/postfix
# chown postfix.postdrop -R /var/server/postfix


Renomeie o binário do sendmail para sendmail.old:

# mv /usr/sbin/sendmail /usr/sbin/sendmail.old

Se seu sistema possui um link simbólico em/usr/lib:

# mv /usr/lib/sendmail /usr/lib/sendmail.old

Após terminar entre no diretório que foi criado, e digite o seguinte comando.

# cd postfix-2.1.0
# make -f Makefile.init makefiles 'CCARGS=-DHAS_MYSQL -I/usr/include/mysql' 'AUXLIBS=/usr/lib/mysql -lmysqlclient -lz -lm -L/usr/lib'


OBS: isso é uma linha única. Outra coisa é que a minha instalação do mysql esta sob o /usr, se você instalou o mysql no /usr/local, altere os paths corretamente com sua instalação.

Depois de terminado rode o comando make, se você já possui uma instalação do Postfix rode o make update, se não rode o make install.

# make update
ou
# make install

A instalação te fará algumas perguntas, como localização de algumas pastas, responda todas as perguntas para a instalação ser finalizada.

Vamos verificar se o Postfix foi compilado pra usar o MYSQL, faça o seguinte:

# postconf -m
static
cidr
pcre
nis
regexp
environ
mysql
proxy
btree
unix
hash

Se tem o mysql listado, está tudo correto.

Crie arquivos com os seguintes nomes dentro de /etc/postfix:

mysql_virtual_alias_maps.cf

# Insira dentro do arquivo o que está abaixo
user = postfix
password= senha
dbname = postfix
table = alias
select_field = goto
where_field = address
hosts = localhost


mysql_virtual_mailbox_limit_maps.cf

# Insira dentro do arquivo o que está abaixo

user = postfix
password = senha
dbname = postfix
table = mailbox
select_field = quota
where_field = username
hosts = localhost


mysql_virtual_mailbox_maps.cf

# Insira dentro do arquivo o que está abaixo

user = postfix
password= senha
dbname = postfix
table = mailbox
select_field = maildir
where_field = username
hosts = localhost


Depois destes arquivos prontos, vamos criar nosso script para criação de usuários e tabelas do MYSQL. Lembram-se quando eu falei que iria usar as tabelas e usuários do postfixadmin? As tabelas que seguem nesse script são do postfixadmin, personalize se você deseja isso. Olhe no script e onde você encontrar password("postfix") ou password("postfixadmin"), altere para sua senha, ex.: password("sua senha"). Salve esse arquivo com um nome que você desejar, ex.: postfix.db. Esse script esta dentro da pasta do postfixadmin, caso queira aproveitá-lo.

DICA: O mysql por padrão vem com a senha em branco para o usuário root, se você não alterou essa senha, altere agora, rode o comando da seguinte forma:

# mysqladmin -u root -p password "sua senha"

Ele vai pedir uma senha, não digite nada apenas dê enter, após isso ter sido feito, para entrar no mysql agora como root será necessário você digitar sua senha, entre no mysql da seguinte forma:

# mysql -p

Quando for solicitado a senha digite sua senha.

Agora vamos criar nossas tabelas e usuários no MYSQL.

# mysql -p <>
Enter password:
Em enter password digite a senha do root que você alterou.

Script mysql com usuários e tabelas.

USE mysql;
# Postfix user & password
INSERT INTO user (Host, User, Password) VALUES ('localhost','postfix',password('sua senha'));
INSERT INTO db (Host, Db, User, Select_priv) VALUES ('localhost','postfix','postfix','Y');
# Postfix Admin user & password
INSERT INTO user (Host, User, Password) VALUES ('localhost','postfixadmin',password('sua senha'));
INSERT INTO db (Host, Db, User, Select_priv, Insert_priv, Update_priv, Delete_priv) VALUES ('localhost', 'postfix', 'postfixadmin', 'Y', 'Y', 'Y', 'Y');
FLUSH PRIVILEGES;
GRANT USAGE ON postfix.* TO postfix@localhost;
GRANT SELECT, INSERT, DELETE, UPDATE ON postfix.* TO postfix@localhost;
GRANT USAGE ON postfix.* TO postfixadmin@localhost;
GRANT SELECT, INSERT, DELETE, UPDATE ON postfix.* TO postfixadmin@localhost;
CREATE DATABASE postfix;
USE postfix;
#
# Table structure for table admin
#
CREATE TABLE admin (
username varchar(255) NOT NULL default '',
password varchar(255) NOT NULL default '',
created datetime NOT NULL default '0000-00-00 00:00:00',
modified datetime NOT NULL default '0000-00-00 00:00:00',
active tinyint(4) NOT NULL default '1',
PRIMARY KEY (username),
KEY username (username)
) TYPE=MyISAM COMMENT='Postfix Admin - Virtual Admins';

#
# Table structure for table alias
#
CREATE TABLE alias (
address varchar(255) NOT NULL default '',
goto text NOT NULL,
domain varchar(255) NOT NULL default '',
created datetime NOT NULL default '0000-00-00 00:00:00',
modified datetime NOT NULL default '0000-00-00 00:00:00',
active tinyint(4) NOT NULL default '1',
PRIMARY KEY (address),
KEY address (address)
) TYPE=MyISAM COMMENT='Postfix Admin - Virtual Aliases';

#
# Table structure for table domain
#
CREATE TABLE domain (
domain varchar(255) NOT NULL default '',
description varchar(255) NOT NULL default '',
aliases int(10) NOT NULL default '-1',
mailboxes int(10) NOT NULL default '-1',
maxquota int(10) NOT NULL default '-1',

created datetime NOT NULL default '0000-00-00 00:00:00',
modified datetime NOT NULL default '0000-00-00 00:00:00',
active tinyint(4) NOT NULL default '1',
PRIMARY KEY (domain),
KEY domain (domain)
) TYPE=MyISAM COMMENT='Postfix Admin - Virtual Domains';

#
# Table structure for table domain_admins
#
CREATE TABLE domain_admins (
username varchar(255) NOT NULL default '',
domain varchar(255) NOT NULL default '',
created datetime NOT NULL default '0000-00-00 00:00:00',
active tinyint(4) NOT NULL default '1',
KEY username (username)
) TYPE=MyISAM COMMENT='Postfix Admin - Domain Admins';

#
# Table structure for table log
#
CREATE TABLE log (
timestamp datetime NOT NULL default '0000-00-00 00:00:00',
username varchar(255) NOT NULL default '',
domain varchar(255) NOT NULL default '',
action varchar(255) NOT NULL default '',
data varchar(255) NOT NULL default '',
KEY timestamp (timestamp)
) TYPE=MyISAM COMMENT='Postfix Admin - Log';

#
# Table structure for table mailbox
#
CREATE TABLE mailbox (
username varchar(255) NOT NULL default '',
password varchar(255) NOT NULL default '',
name varchar(255) NOT NULL default '',
maildir varchar(255) NOT NULL default '',
quota int(10) NOT NULL default '-1',
domain varchar(255) NOT NULL default '',
created datetime NOT NULL default '0000-00-00 00:00:00',
modified datetime NOT NULL default '0000-00-00 00:00:00',
active tinyint(4) NOT NULL default '1',
PRIMARY KEY (username),
KEY username (username)
) TYPE=MyISAM COMMENT='Postfix Admin - Virtual Mailboxes';

#
# Table structure for table vacation
#
CREATE TABLE vacation (
email varchar(255) NOT NULL default '',
subject varchar(255) NOT NULL default '',
body text NOT NULL,
cache text NOT NULL,
domain varchar(255) NOT NULL default '',
created datetime NOT NULL default '0000-00-00 00:00:00',
active tinyint(4) NOT NULL default '1',
PRIMARY KEY (email),
KEY email (email)
) TYPE=MyISAM COMMENT='Postfix Admin - Virtual Vacation';


Por enquanto não iremos configurar os arquivos principais do Postfix, são eles: main.cf e master.cf. Iremos instalar agora o POP-BEFORE-SMTP.



Instalação do POP-BEFORE-SMTP



OBS: O POP-BEFORE-SMTP precisa do Berkeley db, tenha certeza que você tem ele instalado em seu sistema. No Slackware vem por padrão com as versões 2 e 3, não sei as outras distribuições. Use a verão 4, aqui vai o link se você não tem ele instalado, esse link você vai encontrar o source(código fonte) se você prefere pacotes compilados, olhe no site da sua distribuição:


Vamos instalar os módulos perl:

# perl -MCPAN -e 'install Date::Parse'
# perl -MCPAN -e 'install Net::Netmask'
# perl -MCPAN -e 'install DB_File'


Descompacte o source:

# tar -xvzf pop-before-smtp-1.35..tar.gz

Entre na pasta que foi criada, dentro desta pasta você vai encontrar 3 arquivos:

pop-before-smtp.init
pop-before-smtp
pop-before-smtp-conf.pl

Copie o pop-before-smtp.init para o /etc/rc.d/:

# cp pop-before-smtp.init /etc/rc.d/rc.popbsmtp

Dentro do /etc/rc.d/ tem um script chamado rc.M, esse é o script responsável pela inicialização dos daemons no Slackware, insira nesse arquivo a seguinte linha:

# /etc/rc.d/rc.popbsmtp start

E estará pronto a inicialização do POP-BEFORE-SMTP no Slackware.

DICA: Eu renomeei para rc.popbsmtp só para manter uma compatibilidade entre os arquivos de inicialização do Slackware, mas coloque o nome que achar melhor, se você usa RedHat, Conectiva, Mandrake, copie para o /etc/rc.d/init.d, e coloque o script na inicialização abrindo o aplicativo ntsysv, marque a opção do POP-BEFORE-SMTP, no Debian, copie o script para /etc/init.d e rode o aplicativo update-rc.d -n POP-BEFORE-SMTP.init defaults.

Feito isso com o script de inicialização vamos copiar o programa pop-before-smtp para a pasta /usr/sbin:

# cp pop-before-smtp /usr/sbin

Agora vamos a parte mais importante, o arquivo de configuração do pop-before-smtp, copie o arquivo pop-before-smtp-conf.pl para /etc:

# cp pop-before-smtp-conf.pl /etc

Feito isso, temos que configurar o arquivo, esse arquivo é um pouco grande, dê uma boa olhada nele, vou colocar aqui somente o que é necessário para o funcionamento dele com o courier-imap, ele pode trabalhar com vários daemons de POP e IMAP, vamos aos itens mais importantes, você tem que descomentar as linhas que estão listadas a baixo:

Habilitar log:

$debug = 1;
$logto = '/var/log/pop-before-smtp';


Onde será criado o arquivo com os IPs que podem fazer relay:

$dbfile = '/etc/postfix/pop-before-smtp';


Tempo que o ip pode fazer relay, o default é 30 minutos, se você acha muito ou pouco, altere essa opção, 30*60 = 30, 15*60 = 15 e assim vai:

$grace = 30*60;


Arquivo onde ele encontra quais ip´s estão autenticados corretamente:

$file_tail{'name'} = '/var/log/maillog';


Aqui é especificado quem é o POP e IMAP agentes, no caso Courier, Deixe todos os outros comentados.


# For Courier-POP3 and Courier-IMAP:$pat = '^(... .. ..:..:..) \S+ (?:courier)?(?:pop3|imap)(?:login|d|d-ssl): ' .'LOGIN, user=\S+, ip=\[[:f]*(\d+\.\d+\.\d+\.\d+)\]';


Rode o seguintes comandos:

# pop-before-smtp -dumpconfig
# /etc/rc.d/rc.popbsmtp start


E dê um ls dentro de /etc/postfix para ver se existe um arquivo pop-before-smtp.db

# ls -la /etc/postfix/pop-before-smtp.*

Se o resultado for positivo, nossa instalação está OK. )

Pronto essas são as configurações básicas para o funcionamento do POP-BEFORE-SMTP nesse ambiente que estamos montando, mas o arquivo de configuração é bem extenso de uma boa lida, talvez tenha algo interessante pra você ).


Instalação e Configuração do Courier-IMAP


A instalação do Courier-IMAP é bem simples, só que ela não pode ser feita pelo root, pelo menos na fase de preparação dos binários não, vamos a instalação.

OBS: No Slackware eu tive que mudar as permissões do /dev/null, não sei se você vai enfrentar isso na sua distribuição, então faça um:

# chmod 777 /dev/null

Isso é só temporário, quando você reiniciar a máquina ele voltará com as configurações padrões.

Logue com um usuário comum, no meu caso eu usei o próprio Postfix:

# su postfix

Rode o script configure com as seguintes opções, lembrando que você pode dar uma lida no help do configure para maiores informações:

# ./configure --prefix=/usr/local --with-mysql-libs=/usr/lib/mysql --with-msyql-includes=/usr/include/mysql \
--with-authmysql --with-authmysql=yes --with-authchangepwdir


Depois de pronto execute:

# make && make check

Se não deu nenhum erro, como root rode o make install

# make install

Pronto, agora vamos a configuração do courier-imap, se você percebeu eu fiz toda instalação usando o /usr/local como base, se você deseja alterar isso, fique a vontade, entre no diretório /usr/local/etc, la dentro você vai encontrar um arquivo chamado authmysqlrc.dist mude-o para authmysqlrc:

# cp authmysqlrc.dist authmysqlrc

Feito isso, edite esse arquivo e deixe-o dessa maneira:

MYSQL_SERVER localhost
MYSQL_USERNAME postfix
MYSQL_PASSWORD sua senha (senha que você colocou no script mysql)
MYSQL_SOCKET /var/run/mysql/mysql.sock
MYSQL_PORT 3306
MYSQL_OPT 0
MYSQL_DATABASE postfix
MYSQL_USER_TABLE mailbox
MYSQL_CRYPT_PWFIELD password
MYSQL_UID_FIELD uid
MYSQL_GID_FIELD gid
MYSQL_LOGIN_FIELD username
MYSQL_HOME_FIELD home
MYSQL_NAME_FIELD name
MYSQL_MAILDIR_FIELD maildir
MYSQL_QUOTA_FIELD quota
MYSQL_WHERE_CLAUSE active=1


Feito isso, você vai encontrar os arquivos:

imapd.dist
imapd-ssl.dist
pop3d.dist
pop3d-ssl.dist

Renomeie esses arquivos tirando o dist do final deles:

# cp imapd.dist imapd
# cp imapd-ssl.dist impad-ssl
# cp pop3d.dist pop3d
# cp pop3d-ssl.dist pop3d-ssl


Não vi necessidade de alterar alguma coisa nesses arquivos, mas se você necessita de alterações, fique a vontade para altera-los.

Os arquivos que tem ssl são daemons que usam criptografia, se você deseja usa-las rode o aplicativo que se encontra dentro de /usr/local/sbin/mkpop3dcert e /usr/local/sbin/mkimapdcert:

# cd /usr/local/sbin
# ./mkpop3dcert
# ./mkimpadcert


Feito tudo isso, vamos rodar os daemons respectivos, cada serviço tem um script para sua inicialização, estão todos dentro de /usr/local/libexec, você pode iniciar isso de várias maneiras, eu criei um script chamado rc.popimap incluindo todos os scripts necessários, mas você pode copiar esses scripts pra dentro do /etc/rc.d e colocar uma linha no rm.M para cada um, ou colocar o path completo no rc.M, no Red Hat você pode copiar os scripts pra dentro do /etc/rc.d/init.d e usar o ntsyv pra cuidar disso, no Debian a mesma coisa so usando o update-rc.d como já foi explicado antes, isso fica com você, vamos levantar os daemons pra ver se deu tudo certo agora. Rode-os assim:

# /usr/local/libexec/pop3d.rc start
# /usr/local/libexec/imapd.rc start
# /usr/local/libexec/pop3d-ssl.rc start
# /usr/local/libexec/imapd-ssl.rc start


Se não apareceu erro algum rode o comando ps aux:

# ps aux

Veja se na saída tem algo parecido com isso:

root 220 0.0 0.0 2140 976 ? S May12 0:08 /usr/local/libexec/authlib/authdaemond.mysql
root 221 0.0 0.0 2140 976 ? S May12 0:08 /usr/local/libexec/authlib/authdaemond.mysql
root 233 0.0 0.0 1460 528 ? S May12 0:10 /usr/local/libexec/couriertcpd -address=0-stderrlogger=/usr/local/sbin/courierlogger -stderrlo
root 238 0.0 0.0 1372 452 ? S May12 0:07 /usr/local/sbin/courierlogger pop3d
root 248 0.0 0.0 1460 520 ? S May12 0:00 /usr/local/libexec/couriertcpd -address=0 -stderrlogger=/usr/local/sbin/courierlogger -stderrlo
root 252 0.0 0.0 1360 288 ? S May12 0:00 /usr/local/sbin/courierlogger imapd

Se existe algo parecido os daemons estão rodando, de um telnet na porta respectiva para teste, mas lembre-se, como não cadastramos ninguém nas tabelas do MYSQL, então não da pra testarmos a autenticação ainda.

# telnet localhost 110

Deve aparecer algo assim:

Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
+OK Hello there.

# telnet localhost 143

Deve aparecer algo assim:

Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE ACL ACL2=UNION STARTTLS] Courier-IMAP ready. Copyright 1998-2004 Double Precision, Inc. See COPYING for distribution information.

Não podemos testar as portas do pop3d-ssl e nem imapd-ssl por quê necessitam de softwares especiais preparados pra trabalhar com criptografia. Se tudo ocorreu bem, estamos com nosso Courier-IMAP funcionando corretamente, vamos continuar nossa instalação, faremos testes no final do documento pra saber se esta tudo funcionando corretamente.


Instalação e Configuração do Amavis_new


A instalação do amavis não é difícil mas é um pouco chata por causa dos módulos do PERL, são vários módulos, para a instalação do amavis você precisa estar conectado, vamos usar o comando:

# perl -MCPAN -e "install modulo::perl"

Vamos ao módulos:
(Lista tirada da documentação do amavis_new)

Archive::Zip
Compress::Zlib
Convert::TNEF
Convert::UUlib
MIME::Base64
MIME::Parser
Mail::Internet
Net::Server
Net::SMTP
Digest::MD5
IO::Stringy
Time::HiRes
Unix::Syslog
Mail::SpamAssassin

Como foi dito a instalação é feita como no exemplo a seguir:

# perl -MCPAN -e "install Archiver::Zip"

Faça isso com todos os módulos listados acima.

Nota: A instalação do spamassassin é toda feita aqui, então não é preciso você baixar do site o spamassassin, a única coisa que você vai se preocupar e com o arquivo de configuração do spamassasin, no site http://www.yrex.com/spam/spamconfig.php tem um gerador automático do arquivo local.cf, nesse site você tem todas as informações necessárias para criar o arquivo, leia com bastante atenção. Vou colocar aqui um exemplo de como esse arquivo é:

# SpamAssassin config file for version 2.5x
# generated by http://www.yrex.com/spam/spamconfig.php (version 1.01)
# How many hits before a message is considered spam.
required_hits 10.0

# Whether to change the subject of suspected spam
rewrite_subject 0

# Text to prepend to subject if rewrite_subject is used
subject_tag *****SPAM*****

# Encapsulate spam in an attachment
report_safe 1

# Use terse version of the spam report
use_terse_report 0

# Enable the Bayes system
use_bayes 1

# Enable Bayes auto-learning
auto_learn 1

# Enable or disable network checks
skip_rbl_checks 0
use_razor2 1
use_dcc 1
use_pyzor 1

# Mail using languages used in these country codes will not be marked
# as being possibly spam in a foreign language.
ok_languages all

# Mail using locales used in these country codes will not be marked
# as being possibly spam in a foreign language.
ok_locales all


Há alguns softwares de sistema necessários também, aqui vai a lista deles, check se você tem esses softwares em seu sistema:
(Lista tirada da documentação do amavis_new)


Após a instalação de todas essas dependências vamos a instalação do amavis_new:

Crie um usuário e um grupo para o amavis_new:

# groupadd -g 1011 amavis
# useradd -s /bin/false -d /var/amavis -g 1011 -u 1011 amavis


Crie agora os diretórios necessários para o amavis_new:

# mkdir /var/amavis
# chown amavis.amavis -R /var/amavis
# chmod 750 -R /var/amavis

# mkdir /var/virusmails
# chown amavis.amavis -R /var/virusmails
# chmod 750 -R /var/virusmails


Descompacte o arquivo do amavis_new:

# tar -xvzf amavisd-new-20030616-p9.tar.gz

Entre dentro do diretório criado, vamos copiar alguns arquivos para diretórios específicos e mudar seus donos e permissões, são eles:

# cp amavisd /usr/sbin
# chown root.amavis /usr/sbin/amavisd
# chmod 750 /usr/sbin/amavisd

# cp amavisd.conf /etc/
# chown root.amavis /etc/amavisd.conf
# chmod 644 /etc/amavisd.conf


Agora iremos configurar o arquivo de o /etc/amavisd.conf, vou colocar aqui as opções que eu julguei importantes para o meu ambiente. Esse arquivo é bem extenso, então dê uma boa olhada em /etc/amavisd.conf.

$MYHOME = '/var/amavis';
$mydomain = 'dominio.com.br';
$myhostname = 'maquina.dominio.com.br';
$daemon_user = 'amavis';
$daemon_group = 'amavis';
$TEMPBASE = $MYHOME;

$forward_method = 'smtp:127.0.0.1:10025';
$notify_method = $forward_method;


Se você deseja notificar as pessoas que estão enviando vírus, spam, ou os seus usuários que estão recebendo esses emails, você pode personalizar essas notificações usando essas variáveis:

Por default elas vem comentadas, se você deseja personalizar é só descomentar e criar os arquivos especificados, eu preferi usar as mensagens que vem dentro do arquivo /usr/sbin/amavisd, apenas traduzindo essas mensagens para português.

$notify_sender_templ = read_text('/var/amavis/sender.txt');
$notify_virus_sender_templ= read_text('/var/amavis/virus_sender.txt');
$notify_virus_admin_templ = read_text('/var/amavis/virus_admin.txt');
$notify_virus_recips_templ= read_text('/var/amavis/virus_recip.txt');
$notify_spam_sender_templ = read_text('/var/amavis/notify_spam_sender.txt');
$notify_spam_admin_templ = read_text('/var/amavis/spam_admin.txt');


Aqui você define se as mensagens que contém virus ou spam devem passar ou não, os valores que você pode usar são D_BOUNCE, D_PASS, D_REJECT e D_DISCARD, se você usa D_PASS ou D_BOUCE todas as mensagens que chegarem com virus, o amavis notificara quem enviou o vírus e quem esta recebendo vírus e spam, eu achei melhor usar a opção D_DISCARD, usando essa opção você pode usar as variáveis que você desejar, $warnvirussender, $warnvirusrecip etc. Com o uso dessas variáveis o amavis vai notificar só quem você achar melhor, no meu caso não vou notificar quem esta enviando o vírus ou spam, somente quem esta recebendo, para evitar os spammers que usam a proliferação de vírus pra saber quais contas estão ativas ou não, no manual do Marco, ele deixa a variável $final_spam_destiny como D_PASS isso deixa o spam passar, mas assinala a mensagem com um ****SPAM****, eu preferi não deixar spam nenhum passar, mas isso você decide :), como você pode ver, só deixei as mensagens com um cabeçalho mal formado passar, o resto fica como D_DISCARD, o D_DISCARD vai rejeitar a mensagem e não vai retornar nada para quem está enviando D_REJECT retorna o erro para quem esta enviando a mensagem, as próximas linhas definem quem vai ou não receber a notificação.

$final_virus_destiny = D_DISCARD; # (defaults to D_BOUNCE)
$final_banned_destiny = D_DISCARD; # (defaults to D_BOUNCE)
$final_spam_destiny = D_DISCARD; # (defaults to D_REJECT)
$final_bad_header_destiny = D_PASS; # (defaults to D_PASS), D_BOUNCE suggested


Aqui você define quem vai ou não receber as notificações, no meu caso deixei somente o recipiente receber as notificações. Deixando a linha comentada o valor da variável e false, então descomente a linha que você desejar.

# Notify virus sender?
#$warnvirussender = 1;

# Notify spam sender?
#$warnspamsender = 1;

# Notify sender of banned files?
#$warnbannedsender = ; #

# Notify sender of syntactically invalid header containing non-ASCII characters?
#$warnbadhsender = 1;

# Notify virus (or banned files) RECIPIENT?
$warnvirusrecip = 1;
#$warnbannedrecip = 1;


A próxima configuração é para estabelecer qual o email do notificador do sistema, eu usei o postmaster, mas você pode usar quem achar melhor.

$virus_admin = "postmaster\@$mydomain";
$mailfrom_notify_admin = "postmaster\@$mydomain";
$mailfrom_notify_recip = "postmaster\@$mydomain";
$mailfrom_notify_spamadmin = "postmaster\@$mydomain
$hdrfrom_notify_sender = "postmaster


Aqui definimos qual diretório vai ser usando para a quarentena.

$QUARANTINEDIR = '/var/virusmails';


Aqui definimos quais as extensões de arquivos queremos proibir. No meu caso eu barrei extensões (vbs, pif, src, bat, cmd, com) faça da maneira que achar melhor.

$banned_filename_re = new_RE (

# qr'^UNDECIPHERABLE$', # is or contains any undecipherable components
# qr'\.[^.]*\.(vbs|pif|scr|bat|cmd|com|dll)$'i, # double extension
qr'.\.(exe|vbs|pif|scr|bat|cmd|com)$'i, # banned extension - basic
# qr'.\.(ade|adp|bas|bat|chm|cmd|com|cpl|crt|exe|hlp|hta|inf|ins|isp|js|
# jse|lnk|mdb|mde|msc|msi|msp|mst|pcd|pif|reg|scr|sct|shs|shb|vb|
# vbe|vbs|wsc|wsf|wsh)$'ix, # banned extension - long
# qr'.\.(mim|b64|bhx|hqx|xxe|uu|uue)$'i, # banned extension - WinZip vulnerab.
# qr'^\.(zip|lha|tnef|cab)$'i, # banned file(1) types
# qr'^\.exe$'i, # banned file(1) types
# qr'^application/x-msdownload$'i, # banned MIME types
qr'^application/x-msdos-program$'i,
# qr'^message/partial$'i, qr'^message/external-body$'i, # block rfc2046
);


Aqui ficam as configurações para o antivírus, como eu disso vou usar o Mcafee Antivírus pra linux, eu comentei todas as outras linhas referentes a outros antivírus. Caso queira usar outro antivírus é só instalar o software o amavis_new cuida do resto sozinho.

### http://www.nai.com/
['NAI McAfee AntiVirus (uvscan)', 'uvscan',
'--secure -rv --mime --summary --noboot - {}', [0], [13],
qr/(?x) Found (?:\ the\ (.+)\ (?:virus|trojan) |
\ (?:virus|trojan)\ or\ variant\ ([^ ]+) |
:\ (.+)\ NOT\ a\ virus)/,
# sub {$ENV{LD_PRELOAD}='/lib/libc.so.6'},
# sub {delete $ENV{LD_PRELOAD}},
],


NOTA: Como explicado no começo do documento, a instalação do uvscan é bem simples. Então é só seguir as perguntas da instalação e pronto.

Para iniciar o amavis_new é só digitar o seguinte comando:

# amavisd -c /etc/amavisd.conf start

E para pará-lo é só digitar:

# amavisd stop

Eu criei um script bem simples em /etc/rc.d/rc.amavisd com o seguinte conteúdo:

#!/bin/sh

amavis_start() {
/usr/sbin/amavisd -c /etc/amavisd.conf start
}

amavis_stop() {
/usr/sbin/amavisd stop
}

case "$1" in
'start')
amavis_start
;;
'stop')
amavis_stop
;;
'restart')
amavis_stop
sleep 3
amavis_start
;;
*)
echo "usage $0 start|stop|restart"
esac


NOTA: Notem que é bem simples mesmo, foi só pra mostrar uma maneira de iniciar, parar e restartar o amavis, sinta-se livre para fazer da maneira que achar melhor :).

Bom, eu ainda não vou falar aqui como configurar o amavis_new com o Postfix, isso vai ser feito na próxima seção onde iremos cobrir os dois arquivos principais da configuração do Postfix.



Configuração do main.cf e master.cf


Aqui mostrarei o que é necessário para a configuração do MAIN.CF e MASTER.CF, as configurações aqui mostradas são simples, se você deseja saber sobre todas as configurações que pode ser feitas no MAIN.CF você pode olhar no site do Postfix o link é http://www.postfix.org/postconf.5.html o comando postconf -d lista as configurações padrões do main.cf.

Abaixo vai o MAIN.CF que eu uso, linhas que tem // são os comentários para o que as variáveis servem:

#=== CONFIGURAÇÕES
queue_directory = /var/spool/postfix/
program_directory = /usr/sbin
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
mail_owner = postfix
default_privs = nobody
default_transport = smtp
alias_maps = hash:/etc/postfix/aliases
alias_database = hash:/etc/postfix/aliases
readme_directory = no
sample_directory = /etc/postfix
sendmail_path = /usr/sbin/sendmail
setgid_group = postdrop
manpage_directory = /usr/local/man
newaliases_path = /usr/bin/newaliases
mailq_path = /usr/bin/mailq
smtpd_banner= ESMTP SUA EMPRESA // Define o banner
disable_vrfy_command=yes // Desabilita o comando vrfy
home_mailbox = Maildir/
html_directory = no
mail_version = 2.1.0 // Versão do Software
maps_rbl_domains =
maps_rbl_reject_code = 554
smtpd_recipient_limit = 100 // Nº de msgs que podem ser enviadas por vez.
message_size_limit = 10240000 // Tamanho da msg em bytes
smtpd_helo_required = yes // Se é obrigado a fazer helo
unknown_local_recipient_reject_code = 450
default_process_limit = 1000 // Quantidades de processos o valor padrão é 100
se seu server vai receber muitas requisições aumente isso para um valor maior,
no meu caso 1000 foi o suficiente.

#=== NOME DO DOMÍNIO
myhostname = maquina.domínio.com.br
mydomain = dominio.com.br
myorigin = $mydomain
mydestination = $mydomain, $transport_maps

#=== REDES p/ Relay
mynetworks = 127.0.0.1 // Aqui você pode colocar uma rede inteira ou somente
hosts, ex.: 200.200.200.0/24 ou 200.200.200.1

#=== Pop-Before-Smtp
// Aqui entra a configuração para o pop-before-smtp vejam que só é aceito
fazer relay mynetworks, quem estiver o email de acordo com fqdn (user@domain)
e quem estiver contido no arquivo pop-before-smtp.
smtpd_recipient_restrictions = permit_mynetworks, reject_non_fqdn_recipient,check_client_access hash:/etc/postfix/pop-before-smtp, reject_unauth_destination

#=== MYSQL
virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
virtual_mailbox_base = /var/server/postfix
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_uid_maps = static:1010 // lembram quando criamos o usuário e grupo com uid e gid 1010
virtual_gid_maps = static:1010
transport_maps = virtual // Definimos o virtual como meio de transport

#=== Quota
virtual_mailbox_limit_inbox = no
virtual_mailbox_limit_maps= mysql:/etc/postfix/mysql_virtual_mailbox_limit_maps.cf
virtual_mailbox_limit_override = yes
virtual_maildir_extended = yes
virtual_create_maildirsize = yes
virtual_mailbox_limit = 200000000 // Estabelece quota de 20MB mas isso pode
ser definido para cada usuário nas tabelas do mysql.
virtual_maildir_limit_message = Lamento, a cota do usuário foi excedida, por favor tente mais tarde.
virtual_overquota_bounce = yes

#=== AMAVIS
// Aqui entra a configuração para o amavis_new
content_filter = smtp-amavis:[127.0.0.1]:10024


Abaixo vai o MASTER.CF que eu uso, linhas que tem // são os comentários para o que as variáveis servem, esse arquivo e muito extenso, vou colocar aqui somente as linhas que eu precisei alterar:

// Insira essas linhas no final do arquivo.

# AMAVIS + SPAMASSASSIN
smtp-amavis unix - - n - 2 smtp
-o smtp_data_done_timeout=1200
-o smtp_send_xforward_command=yes
-o disable_dns_lookups=yes

127.0.0.1:10025 inet n - n - - smtpd
-o content_filter=
-o local_recipient_maps=
-o relay_recipient_maps=
-o smtpd_restriction_classes=
-o smtpd_client_restrictions=
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o strict_rfc821_envelopes=yes
-o smtpd_error_sleep_time=0


São configurações simples então não tenha medo de estudar e aprofundar-se mais nessas configurações. Falaremos agora sobre a instalação do Postfixadmin e SquirrelWebmail.


Instalação e Configuração do PostfixAdmin


Não tem maiores segredos a instalação do postfixadmin, faça download do software, descompacte-o na pasta onde ficam seus htmls do apache, no meu caso /usr/local/apache/htdocs, mas veja esse path no seu sistema, uma vez descompactado renomeie para um nome mais fácil ex.: postadmin ou postfixadmin, veja como seria no meu sistema:

# tar -xvzf postfixadmin-2.0.4.tgz
# mv postfixadmin-2.0.4 postadmin
# mv postadmin /usr/local/apache/htdocs


NOTA: O path onde ficam os htmls do apache pode variar de sistema para sistema, no meu caso fica em /usr/local/apache/htdocs, em algumas distribuições como o RedHat, Conectiva e Debian, costumam ficar em /var/www/html.

Feito isso vamos configurar o arquivo de configuração do postfixadmin config.inc.php, primeiro temos que renomeá-lo:

# mv config.inc.php.sample config.inc.php

Edite esse arquivo e alteres as configurações necessárias para o seu funcionamento, vou listar somente as opções que eu achei melhor alterar, mas leia com atenção o script:

# Definir a língua para português
$CONF['language'] = 'pt-br';

# Definir o tipo de banco de dados, host, usuário, senha e base de dados.
$CONF['database_type'] = 'mysql';
$CONF['database_host'] = 'localhost';
$CONF['database_user'] = 'postfixadmin';
$CONF['database_password'] = 'sua senha'; // Aqui você coloca sua senha.
$CONF['database_name'] = 'postfix';

# Email do administrador.
$CONF['admin_email'] = 'postmaster@netgo.com.br';

# Tipo de criptografia.
$CONF['encrypt'] = 'md5crypt';

# Tamanho da quota em MB.
$CONF['maxquota'] = '20';


Dentro da pasta admin, você vai encontrar arquivos .htaccess e .htpasswd vejam o conteúdo deles:

Arquivo .htaccess:

AuthUserFile /usr/local/apache/htdocs/postadmin/admin/.htpasswd
AuthGroupFile /dev/null
AuthName "Postfix Admin"
AuthType Basic


require valid-user


O arquivo .htpasswd contém os usuários que podem acessar essa parte de administração do postfixadmin, use o comando htpasswd para criar e alterar senhas desse arquivo.

# htpasswd .htpasswd admin

NOTA: Onde admin é o usuário que você quer que acesse a área de administração.

Feito essas configurações tente acessar o postfixadmin para ver se esta tudo certo:

# lynx http://localhost/postfixadmin/admin/

Se estiver tudo certo vai aparecer alguns links como, listar domínios, listar administradores etc... Se não apareceu nada disso, veja sua configuração do apache ou do postfixadmin.

Se tudo ocorreu sem problemas vamos tentar inserir uma conta só para testes, clique em adicionar nova conta de email, preencha da forma que achar melhor, esse usuário servira para nossos testes do pop e imap.


Instalação e Configuração do SquirrelWebmail


O SquirrelWebmail é um webmail muito bom na minha opinião, claro que tem vários por ai na internet, uebimiau mesmo é um deles, mas optei pelo squirrel por ser totalmente modular e de fácil configuração. Vamos a instalação dele:

Baixe o software, descompacte e coloque no seu diretório responsável pelos htmls do apache.

# tar -xvzf squirrelmail-1.4.2.tar.gz
# mv squirrelmail-1.4.2 webmail
# mv webmail /usr/local/apache/htdocs


NOTA: O path onde ficam os htmls do apache pode variar de sitema para sistema, no meu caso fica em /usr/local/apache/htdocs, em algumas distribuições como o RedHat, Conectiva e Debian, costumam ficar em /var/www/html.

Nos arquivos do squirrel encontraremos o seguinte arquivo configure, rode este script e altere as opções que você achar necessário para seu sistema.

# ./configure

O squirrel aceita vários plugins o que eu usei foi o do change_mysqlpass com esse plugin meus usuários podem mudar a senha diretamente do webmail, também é muito fácil a instalação deste plugin, baixe-o no site do squirrel e copie-o para a pasta plugins do squirrel é só descompactar editar o arquivo de configuração, rodar o script conf.pl para adicionar o plugin.

# cd /usr/local/apache/htdocs/webmail/plugins
# tar -xvzf change_mysqlpass-3.2-1.2.8.tar.gz


Edite o arquivo de configuração do change_mysqlpass e altere as seguintes opções:

$mysql_server = 'localhost';
$mysql_database = 'postfix';
$mysql_table = 'mailbox';
$mysql_userid_field = 'username';
$mysql_password_field ='password';
$mysql_manager_id = 'postfixadmin';
$mysql_manager_pw = 'sua senha'; // Coloque aqui sua senha


Rode o script de configuração, o script de configuração fica dentro da pasta config:

# ../config/conf.pl

Selecione o item 8 plugins, o change_mysqlpass vai estar listado em AVAIBLE PLUGINS apenas digite o número correspondente ao change_mysqlpass ele passara para INSTALED PLUGINS isso serve para todos os plugins que você deseja instalar.

Veja se está tudo correto acessando o squirrel:

# lynx http://localhost/webmail

Deve aparecer uma tela pedindo o usuário e senha.

NOTA: Lembrando que essas pastas postfixadmin e webmail, foram colocadas na raiz do servidor web, se você usa virtualdomains no seu apache, coloque essas pastas em seus diretórios específicos



Testando o Sistema


Deixei para o final todos os testes, você deve ter criado um domínio e uma conta de email no postfixadmin, caso não criou vou colocar aqui como criar no mysql mesmo, para podermos testar todo o sistema.

Digite o comando abaixo para entrar no mysql acessando a base de dados POSTFIX:

# mysql -D postfix -p
Enter Password:

Estamos no console do mysql vamos usar a seguinte sintaxe para criamos os domínios e os emails, vale lembrar que fazer isso pelo postfixadmin é muito mais fácil.

Em primeiro lugar vamos criar o domínio:

mysql> INSERT INTO domain (domain, description, created, modified, active) VALUES ('teste.com.br' , 'Meu domínio' , NOW(), NOW() , '1');

Agora iremos criar o alias do usuário:

mysql> INSERT INTO alias (address, goto, domain, created, modfied, active) VALUES ('teste@teste.com.br', 'teste@teste.com.br', 'teste.com.br', NOW(), NOW(), '1');

Agora iremos criar o usuário:

NOTA: Por padrão o postfixadmin cria todos os usuários seguidos do domínio, para poder diferenciar usuários, quando montei esse ambiente na provedora o pessoal queria que usuários da provedora não precisasse digitar o email completo para logar no webmail, então tive que fazer algumas alterações no código do postfixadmin, caso você queira esse código me mande um email.

mysql> INSERT INTO mailbox (username, password, name, maildir, quota, domain, created, modified, active) VALUES ('teste@teste.com.br', encrypt('123'), 'teste', '/var/server/postfix/teste.com.br/teste/Maildir', '20000000', 'teste.com.br', NOW(), NOW(), '1');

Estamos criando um usuário com seu home em /var/server/postfix/teste.com.br/teste/Maildir quota de 20MB (20000000) e sua conta esta ativa 1. Vamos testar todos os daemons, se ainda não estão rodando levante-os agora: Nota: Estes exemplos são para o Slackware.

# /etc/rc.d/rc.popimap start
# /etc/rc.d/rc.amavis start
# /etc/rc.d/rc.popbsmtp start
# postfix start

O postfix já tem o script pronto, você pode rodá-lo de qualquer ponto do sistema.

Vamos testar o amavis:

# telnet localhost 10024

Deve aparecer algo assim:

Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 [127.0.0.1] ESMTP amavisd-new service ready

# telnet localhost 10025

Deve aparecer algo assim:

Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 ESMTP SUA EMPRESA

Vamos testar o postfix:

# telnet localhost 25

Deve aparecer algo parecido:

Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 ESMTP SUA EMPRESA

Isso indica que o postfix esta rodando perfeitamente, caso não funcione de uma olhada nos logs de emails, /var/log/maillog, veja qual foi o erro que apareceu.

Tente mandar um email para o usuário teste@teste.com.br:

220 ESMTP SUA EMPRESA
helo teste
mail from: teste@teste.com.br
rcpt to: teste@teste.com.br
data
354 End data with .
Digite aqui seu texto.
. // ponto para terminar
250 Ok: queued as 92F2214812C // Esse número e aleatório deve aparecer outro.

Vamos ver se o email chegou:

# cd /var/server/postfix/teste.com.br/teste/Maildir/new
# cat 92F2214812C.V801I23ccd8.server,S=1023

Return-Path:
X-Original-To: teste@teste.com.br
Delivered-To: teste@teste.com.br
Received: from localhost (localhost [127.0.0.1])
by server.teste.com.br (Postfix) with ESMTP id 92F2214812C
for ; Mon, 17 May 2004 17:40:30 -0300 (BRT)
Received: from server.teste.com.br ([127.0.0.1])
by localhost (server.teste.com.br [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id 04649-08 for ;
Mon, 17 May 2004 17:40:29 -0300 (BRT)
Received: from teste (localhost [127.0.0.1])
by server.teste.com.br (Postfix) with SMTP id 6FC17147BC0
for ; Mon, 17 May 2004 17:39:39 -0300 (BRT)
Message-Id: <20040517203939.6fc17147bc0@server.teste.com.br>
Date: Mon, 17 May 2004 17:39:39 -0300 (BRT)
From: teste@teste.com.br
To: undisclosed-recipients: ;
X-Virus-Scanned: by amavisd-new at teste.com.br
X-Spam-Status: No, hits=3.5 tagged_above=3.0 required=6.3 tests=BAYES_44,
MSGID_FROM_MTA_SHORT, NO_REAL_NAME
X-Spam-Level: ***

Digite aqui seu texto.

Beleza nosso postfix está funcionando 100%.

Agora vamos testar o POP3:

# telnet localhost 110

Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
+OK Hello there.
user teste@teste.com.br
+OK Password required.
Pass 123
+OK logged in.
quit

Beleza nosso servidor pop3 também esta funcionando corretamente.

Agora vamos testar o IMAP:

# telnet localhost 143

Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE ACL ACL2=UNION STARTTLS] Courier-IMAP ready. Copyright 1998-2004 Double Precision, Inc. See COPYING for distribution information.
0 login teste@teste.com.br 123
0 OK LOGIN Ok.
0 logout

Beleza nosso servidor imap também esta funcionando corretamente.



Fontes de pesquisa


Site Postfix:
http://www.postifx.org
Documentação muito boa, principalmente dos arquivos de configuração.

Leonardo Rodrigues :)
http://www.solutti.com.br
Obrigado Leonardo por ter agüentando as minhas perguntas e ter respondido a todas elas.

Documentação de Marco A. S. Máximo
http://www.linuxdicas.com.br/tutoriais1/tutorial_courier_mysql_postfix.txt

Site Amavis_new:
http://www.ijs.si/software/amavisd/#doc
Muito bem documentado o site do amavis_new, recomendo a leitura.

Recomendo também leitura em todos os README dos sources.


O Autor


Kleber Rocha
klinuxk@hotmail.com.br
Administrador de Redes e Sistemas
PoliPrint Ltda.
http://www.poliprint.com.br




Joomla Day Brasil 2009 - Rio de Janeiro

Joomla Day Brasil 2009

A Cidade Maravilhosa foi eleita sede do Joomla!Day Brasil 2009, após uma votação acirrada.

O evento será realizado na Escola de Comando e Estado-Maior do Exército (ECEME), aos pés do Pão de Açúcar, com um auditório para trezentas pessoas e amplo espaço para coffee-break e networking.

Grandes desenvolvedores, empresas e colaboradores do Joomla! confirmaram presença. O evento contará com palestras para usuários iniciantes e desenvolvedores, estudos de caso e estimulará o networking. Vamos priorizar este último, pois desejamos que a rede seja expandida. Assim, vamos caminhar todos juntos para melhorar o gerenciamento de conteúdo na internet.

Mais informações : www.joomladaybrasil.org/2009

Debian Day 2009 - Manaus

Debian Day é um evento realizado anualmente por vários grupos de Software Livre em todo o mundo. Também conhecido por Dia Debian e Dia D, este evento comemora o aniversário da distribuição GNU/Linux Debian, que neste ano (2009) completa 16 anos de existência.

Em Manaus, o Debian Day é realizado pelo Grupo de Usuários Debian do Amazonas, conhecido por Debian-AM, sendo patrocinado pela UniLaSalle e com o apoio do Projeto Zagaia, AIT Technologies, Gráfica Silva, OrangeTel, SafeNode, Hospital e Maternidade Santo Alberto e Águacrim/Natucrim.

Neste Debian Day, em Manaus, teremos um convidado especial, o criador e mantenedor do portal Viva o Linux (http://vivaolinux.com.br), Fábio Berbert de Paula.


Data: 22 de Agosto de 2009

Local: UniLaSalle : Av. D. Pedro I, 151 - D. Pedro I. Em frente à praça de alimentação do D. Pedro.

Hora: 9h - 17:30h (1:30h de almoço - das 12h às 13:30h)

Entrada: 2Kg de alimentos não perecíveis, exceto sal.

Mais informações: http://diadebian.org/am/2009/