Postfix: Por que Você deve Utilizar esse Servidor de e-mails Completo?

Criado no ano de 1997, o Postfix é um software open source patrocinado pela IBM que atua como um agente de transferência de e-mails (Message Transfer Agent, ou MTA), ou seja um servidor de emails.

Para muitas pessoas, o fato de que o GNU/Linux está presente na grande maioria dos servidores já deixou de ser uma surpresa.

postfix servidor de emails no linux

Se todas as organizações conhecessem o poder desse sistema operacional, é certo que esse número seria muito maior.

APRENDA A DOMINAR O LINUX

Aprenda a dominar o LINUX de uma vez por todos, pegue sua cópia

  • Ferramentas para instalar softwares adicionais
  • Shell do LINUX passo a passo, e muito mais...

Contudo, caso você ainda não saiba disso e precise ver para crer, basta analisar a lista do TOP 500 sobre os mais poderosos supercomputadores do mundo: 498 deles rodam em Linux ou em um sistema próprio baseado nele.

Junto a isso, logicamente, o Linux possui um servidor de e-mail amplamente adotado no mundo todo, muito rico em funcionalidades, performance e segurança. Sim, estamos falando do Postfix!

O que é Postfix?

É o servidor que recebe as mensagens enviadas pelo cliente via protocolo SMTP (Simple Mail Transfer Protocol).

Em outras palavras, o MTA é um elemento essencial, presente em aplicações colaborativas como o Zimbra, para garantir o recebimento de mensagens. Sem um servidor de e-mail como o Postfix, não há como esse tipo de serviço funcionar.

Quanto ao projeto em si, o Postfix foi desenvolvido inicialmente com a ideia de substituir o Sendmail — servidor muito utilizado em ambientes Unix —, fornecendo um serviço ágil, seguro e fácil de gerenciar, o que, aliás, não é um desafio nenhum pouco simples.

O primeiro passo para que essa meta fosse alcançada foi desenvolver uma solução robusta e mais eficiente que o Sendmail. Quanto a isso, o Postfix correspondeu, evidentemente, conforme veremos ao longo do conteúdo.

Para fazer com que o Postfix viesse a ser adotado e contasse com a mesma adesão que o Sendmail, no entanto, foi necessário manter vários comandos do Sendmail e os arquivos compatíveis, facilitando, assim, a migração daqueles que estavam menos dispostos a instalar um novo servidor de e-mail.

De lá para cá, o Postfix se consolidou não apenas como alternativa ao Sendmail, mas também como uma das maiores referências quando o assunto é servidor de e-mail, visto que oferece diversas vantagens em relação aos demais servidores existentes.

Vale salientar que houve uma mente brilhante por trás da ótima sacada. A criação do Postfix foi obra de um holandês Ph.D. em Física e programador chamado Wietse Venema, responsável pela manutenção do projeto até os dias atuais.

Por que usar o Postfix para criar um servidor de e-mail completo?

Razões não faltam para uma empresa utilizar o Postfix para criar um servidor de e-mail, afinal, a sua arquitetura é fortemente baseada em aspectos relevantes para a entrega de um serviço completo.

Vejamos, a seguir, os principais pontos que justificam o seu uso:

ARQUITETURA

Diferentemente do Sendmail, em que um único processo se responsabiliza pela execução de todas as atividades acerca do processamento das mensagens, o Postfix conta com uma arquitetura modularizada, na qual uma gama de componentes se encarrega do funcionamento.

Isso evita, entre tantos problemas, as chances de o sistema ficar sobrecarregado ou até mesmo parar de funcionar, em decorrência de alguma adversidade, por menor que seja.

DIRETRIZES DE DESENVOLVIMENTO DO SERVIDOR DE EMAILS

Outra razão a seu favor é que, segundo o próprio Venema, o desenvolvimento do Postfix fez prevalecer um conjunto de diretrizes ordenado da seguinte forma:

CONFIABILIDADE

No sentido de que o servidor é capaz de se manter disponível, mesmo nas situações que, em tese, possam interromper o seu funcionamento, como a falta de memória, por exemplo.

SEGURANÇA

Seguindo a própria filosofia inserida no GNU/Linux, em que os privilégios são bastante limitados, o Postfix possui diferentes componentes que demandam o mínimo possível de privilégios para desempenhar suas tarefas.

Fora isso, há recursos que mitigam ataques de diversas naturezas.

DESEMPENHO

Os recursos inerentes ao desempenho são um ponto forte do Postfix e consistem, principalmente, na limitação de processos criados.

FLEXIBILIDADE

O Postfix é formado por componentes distintos que funcionam de modo independente, possibilitando a customização individual para atender a necessidades específicas.

Ao observarmos essas diretrizes, logo notamos que elas evidentemente deram origem aos múltiplos componentes — responsáveis pelo funcionamento do sistema — aos quais nos referimos.

LICENÇA

É possível implementar um servidor de e-mail robusto e gratuito? A boa notícia é que o Postfix permite a instalação de um excelente servidor, sem que haja necessidade de pagar por licenças de uso, visto que estamos falando de um software open source (de código aberto).

FLEXIBILIDADE

O fator open source também indica que o Postfix pode ser customizado para melhor atender às necessidades da empresa, ou seja, pode-se criar um servidor de e-mail “sob medida”, que poderá ser utilizado sob quaisquer circunstâncias.

Leia também ...   wget - Como Instalar e Utilizar Essa Ferramenta Para Download De Arquivos No Terminal

WEBMAIL

Com o Postfix, é possível fazer a instalação de um webmail — uma caixa de e-mail que pode ser acessada com uso do navegador — chamado SquirrelMail, que se caracteriza por ser altamente leve e compatível com a maioria dos browsers, até mesmo os mais antigos.

Para isso, tudo o que você precisa ter disponível é o próprio Postfix e um servidor Linux — como o Apache, por exemplo —, com o suporte a mais recente versão do PHP funcionando.

COMPATIBILIDADE

Devido a todas as características que moldam o Postfix, a capacidade que ele tem de se integrar a outras soluções de software também é uma vantagem que merece destaque, visto que as suas possibilidades são aumentadas.

 

Como usar o Anti-Spam, ASSP (Anti-Spam SMTP Proxy) no Linux

Não tem nada mais chato que controlar spam, eu usava o postfix em conjunto com o MailScanner, mas não é tarefa facil para qualquer servidor, os processos são lentos e longos, o processamento do servidor é duplicado, quando vi a noticia do underlinux sobre o ASSP não pensei duas veses, ainda mais que o tutorial foi feito pelo howtoforge.com.

anti-spam-com-ssp-no-linux

Como o ASSP é feito em Perl, tive que instalar vários módulos no meu debian, no tutorial a instalação dos módulos perl foram via cpan, mas como eu uso DEBIAN, resolvi o problema via apt-get mesmo, que é muito mais rápido.

Oque é o ?

ASSP é literalmente um Proxy Anti-Spam para seu SMTP, ou seja ele será configurado antes do seu servidor de email (SMTP), então o ASSP vai receber as conexões e redirecionar para seu postfix, qmail, sendmail isto claro pode ser em servidores diferentes, eu configurei no mesmo, mas dependendo do volume de emails vale apena instalar em servidores separados.


Módulos Perl necessários

Compress::Zlib NEEDED – Standard Perl installation
Digest::MD5 NEEDED – Standard Perl installation
Email::Valid OPTIONAL, BUT ADVISED
File::ReadBackwards OPTIONAL, BUT ADVISED
Mail::SPF::Query OPTIONAL
Mail::SRS OPTIONAL
Net::DNS NEEDED TO RUN RBL, SPF and 1.2.X
Sys::Syslog OPTIONAL
Net::LDAP OPTIONAL :: NEEDED IF YOU RUN LDAP
Time::HiRes NEEDED – Standard Perl installation

Via cpan

perl -MCPAN -e shell

install Compress::Zlib

e assim por diante, com todos os módulos.

Via apt-get

Para quem usa linux like DEBIAN, ubuntu e derivações, pode usar o:

apt-get install nome do módulo

Caso não tenha certeza do nome correto, que é o meu caso, use o :

apt-cache search perl | grep -i Zlib

Instalando o ASSP

cd /usr/src
wget -c http://surfnet.dl.sourceforge.net/sourceforge/assp/ASSP_1.2.5-Install.zip
wget -c http://surfnet.dl.sourceforge.net/sourceforge/assp/ASSP_1.2.5_Rev.2-Update.zip

unzip ASSP_1.2.5-Install.zip
unzip ASSP_1.2.5_Rev.2-Update.zip

mkdir -p /usr/share/assp/spam
mkdir /usr/share/assp/notspam
mkdir /usr/share/assp/errors
mkdir /usr/share/assp/errors/spam
mkdir /usr/share/assp/errors/notspam

mv -f assp.pl ASSP
mv -f ASSP/ /usr/share/assp

chown -R 0.0 /usr/share/assp


Inciando o ASSP

Aqui que tem um divergência no tutorial, pois indica o caminho.

cd /usr/share/assp
perl assp.pl

quando o correto é

cd /usr/share/assp/ASSP
perl assp.p
l

Depois isto, é o acessar a interface web de administração do ASSP, muito interessante por sinal.

Acesse http://ip_do_seu_servidor:55555

Vai pedir o usuario e senha que por padrão é:

user: nospam4me
password:
nospam4me

 

 

Network Setup

SMTP Destination 127.0.0.1:25 The internal Postfix

V As a Daemon Check the box

Listen Port IP_DO_SEU_SERVIDOR:25 The spam proxy

Web Admin Port xxxx A non default number

Relaying

Local Domains* seu_dominio.com|outro_dominio.com

Security

Web Admin Password newpasword

Eu ainda tive que configurar a opção de relay para a minha rede interna, e também configurei o Pop Before SMTP, que eu já usava com o postfix.

Relaying

Accept All Mail* 127.0.0.1|ip_rede_interna.

Pop Before SMTP DB File /path/pop-before-smtp.db

Agora só falta configurar o master do postfix para receber as solicitações apenas no localhost.


vim /etc/postfix/master.cf

Mude a linha:

smtp inet n – n – – smtpd

Para:

localhost:smtp inet n – n – – smtpd

Depois é só reiniciar o postfix, com o ASSP iniciado é claro, pois agora quem vai responder pelo SMTP é o ASSP

Um comando legal, é a possibilidade de criar um lista de spam particular: Para isto é só salvar a mensagem considerada spam no diretorio /usr/share/assp/spam e rodar o comando.

cd /usr/share/assp/ASSP && perl rebuildspamdb.pl

Para automatizar esta operação eu criei um schell script bem simples, para pegar os emails que eu encaminho para [email protected] e gerar base para o ASSP, para informação eu uso o postfix com Maildir

#!/bin/sh
mv /path/vmail/spam/Maildir/new/* /usr/share/assp/spam 2> /dev/null
cd /usr/share/assp/ASSP && perl rebuildspamdb.pl

Com este script em mãos, é só agendar no crontab, pois todo email encaminhado para o endereço [email protected] será enviado para o ASSP bloquear.

No site do howtoforge.com tem um shell script para iniciar o ASSP.

Em resumo, a solução é bem mais rápida e simples,do que usar o MailScanner, lembrando que estou comparando apenas com o MailScanner, pois eu usava ele para controlar o spam.

Como instalar o Kaspersky Anti-Virus for Linux Mail Server integrado com postfix e amavis

Kaspersky Anti-virus é um ótima ferramenta com versões para Linux, FreeBSD e Windows. Podendo ser integrado com o servidor de emails postfix, e manter email livre de vírus. Em ambiente com o postfix e amavis, o Kaspersky Anti-Virus for Linux Mail Server pode ser integrado facilmente.

Leia também ...   chmod - Modificando Permissões De Arquivos No Linux Sem Complicação

Kaspersky-servidor-emails

Neste exemplo, estou levando em consideração a instalação do Kaspersky 5.6 for Linux Mail Server em um ambiente de servidor de email já configurado com:

Como fazer a Instalação do Kaspersky 5.6 for Linux Mail Server

A instalação Kaspersky 5.6 for Linux Mail Server é simples, neste exemplo estou utilizando a distribuição Linux Debian, por isto fiz o download do arquivo kav4lms_5.6-39_i386.deb em download do Kaspersky Anti-Virus for Linux Mail Server.

O Kaspersky é uma solução comercial, ou seja, necessita de licença, tem suporte e documentação.

A instalação é feita com o comando abaixo.

dpkg -i kav4lms_5.6-39_i386.deb 

Algumas opções importantes na instalação do Kaspersky:

Endereço do proxy, necessário fazer o downloads das atualizações.

http proxy server in one of the following forms,
 http://proxyIP:port or http://user:[email protected]:port. If you
 don't have or need a proxy server to access the Internet, enter
 'no' here [no]:
 

Diretório onde se localiza o arquivo de licença, .key (será enviado pelo fabricante)

Endereço de domínio do servidor de emails
 
 Example usage:
 LicensedUsersDomains=re:.*@example.com
 matches all addresses in the domains using a regular expression
 LicensedUsersDomains=*@example.com
 Or press Enter to keep current config value
 [localhost, localhost.localdomain, meudominio.com.br]:
 

Modo de integração, no caso da minha instalação, não solicitei que o instalador fizesse a integração com o postfix, pois vamos utilizar o amavis para fazer a integração entre o postfix e o Kaspersky, utilize a opção 1

Set up mail server anti-virus protection.
 The following mail server(s) have been found on the server:
 1) No integration
 2) Exim4 (/etc/exim4/exim4.conf.template)
 3) Postfix (/etc/postfix/master.cf)
 Please choose 1-3:
 1

Configurando permissão para o Kaspersky 5.6 for Linux Mail Server rodar com o mesmo usuário do amavis

O amavis que esta rodando neste servidor, esta configurado para rodar com o usuário e grupo chamado amavis, como ele será o responsável por ativar o anti-virus e scaner os emails, mudamos as permissões dos diretórios do Kaspersky, com os comandos abaixo.
 
 chown amavis:amavis -R /etc/opt/kaspersky/
 chown amavis:amavis -R /var/opt/kaspersky/
 chown amavis:amavis -R /var/log/kaspersky/
 

Vamos alterar o arquivo de configuração do Kaspersky para indicar o usuário e o grupo que irá rodar o anti-virus.

vim /etc/opt/kaspersky/kav4lms.conf 
Troque o nome de usuário que será responsável por rodar o daemon do Kaspersky ant-virus.
 
 [kav4lms:server.settings]
 # Mandatory: yes, OID: 1.3.6.1.4.1.23668.1043.1.4.1.1
 #
 # After the initialization run under specified user id privileges.
 # This must be an existing system username.
 #
 # Note: when the filter and the server run on the same machine, be sure to
 # use same RunAsUser setting, to ensure access to shared local files.
 #
 RunAsUser=amavis
 # Mandatory: yes, OID: 1.3.6.1.4.1.23668.1043.1.4.1.2
 #
 # After the initialization run under specified group id privileges.
 # This must be an existing system group.
 #
 RunAsGroup=amavis
 

Configurando o amavis para utilizar o Kaspersky

Agora vamos dizer para o amavis que ele deve utilizar o Kaspersky, para verificar vírus nas mensagens do servidor de emails postfix.

vim /etc/amavis/conf.d/15-content_filter_mode

Descomente a linhas abaixo, para o amavis habilitar a verificação de virus (retirando os # ) do inicio de cada linha, deve ficar conforme abaixo.

@bypass_virus_checks_maps = (
 %bypass_virus_checks, @bypass_virus_checks_acl, $bypass_virus_checks_re);

Dizendo para o amavis, qual o anti-virus ele deverá utilizar.

Antes um pequeno backup, porque nunca se sabe.

cp /etc/amavis/conf.d/15-av_scanners /etc/amavis/conf.d/15-av_scanners.bkp
 vim /etc/amavis/conf.d/15-av_scanners
 

Deixe seu arquivo, com indicado abaixo.

----------------------- copie abaixo ----------------------------------
 use strict;
 ##
 ## AV Scanners (Debian version)
 ##
 @av_scanners = (
 ['KasperskyLab kavscanner', ['/opt/kaspersky/kav4lms/bin/kav4lms-kavscanner','kavscanner'],
 '-i1 -xp {}', [0,10,15], [5,20,21,25],
 qr/(?:CURED|INFECTED|CUREFAILED|WARNING|SUSPICION) (.*)/ ,
 sub {chdir('/opt/kaspersky/kav4lms/bin') or die "Can't chdir to kav: $!"},
 sub {chdir($TEMPBASE) or die "Can't chdir back to $TEMPBASE $!"},
 ],
 );
 @av_scanners_backup = (
 );
 1; # insure a defined return
 ---------------------------------- copie acima --------------------------------
 

A hora de reiniciar os serviços

Torça para tudo dar certo !

/etc/init.d/kav4lms restart
/etc/init.d/amavis restart
/etc/init.d/postfix restart

A hora de verificar os logs

Para verificar o log do postfix

tail -f /var/log/mail.log

Para verificar o log do Kaspersky
tail -f /var/log/kaspersky/kav4lms/kavscanner.log

[21-05-2009 16:37:56 I] The scan path: /var/lib/amavis/tmp/amavis-20090521T163617-12323/parts
[21-05-2009 16:37:56 A] /var/lib/amavis/tmp/amavis-20090521T163617-12323/parts/p001 OK
[21-05-2009 16:37:56 A] /var/lib/amavis/tmp/amavis-20090521T163617-12323/parts/p003 OK
[21-05-2009 16:37:56 A] /var/lib/amavis/tmp/amavis-20090521T163617-12323/parts/p006 INFECTED EICAR-Test-File
[21-05-2009 16:37:56 A] /var/lib/amavis/tmp/amavis-20090521T163617-12323/parts/p006 CUREFAILED EICAR-Test-File
[21-05-2009 16:37:56 I] Scan summary: Files=3 Folders=0 Archives=0 Packed=0 Infected=1 Warnings=0 Suspicios=0 Cured=0 CureFailed=1 Corrupted=0 Protected=0 Error=0 ScanTime=00:00:03 ScanSpeed=0.173 Kb/s

Kaspersky Anti-Virus for Mailservers – módulo no webmin KAV for Linux Mail Servers

Caso já tenha o webmin instalado no servidor, o próprio instalador do Kaspersky já habilita um módulo do webmin.

Para quem não tem o webmin instalado é só executar.

apt-get install webmin

Conclusão

O Kaspersky Anti-Virus for Mailservers é uma opção de anti-virus comercial. Existe uma dupla opensource muito conhecida, o clamav integrado com o amavis. O Kaspersky é um boa opção para quem deseja ter suporte comercial e não tem problemas em pagar por este serviço. Outro detalhe importante, é a performace do servidor onde o Kaspersky estará rodando, pois ele consome muito processamento, mesmo assim compensa.

Leia também ...   Afinal, para que serve um servidor VoIP?

6 Passos para criar um servidor de gateway de email com Postfix

Existem vários motivos para criar um servidor de gateway de email, a grande maioria cria um para aplicar regrar de anti-spam e anti vírus. Vamos discutir uma outra aplicação para um servidor de Gateway de email com postfix.

Gateway de email com postfix

É o seguinte:
Vamos imaginar que necessitamos migrar o nosso serviço de email para um outro local, mas isso não pode ser feito de um só vez, por várias razões. Sendo assim, podemos montar um servidor de gateway de email para redirecionar os emails para o novo servidor conforme vamos migrando as contas, e aqueles que ainda não foram migrados podem ser direcionados para o servidor antigo.

Então vamos ao nosso passo a passo.

1) Instalando o postfix

apt-get install postfix

2) Fazendo a configuração de gateway no postfix, /etc/postfix/main.cf

vim /etc/postfix/main.cf

# Fica em Branco, pois não vamos receber email neste servidor
mydestination =

# Indica os domínios que o nosso gateway vai responder
relay_domains = dominio1.com, domino2.com.br

# Tabela indicando para qual servidor de email vamos encaminhar os emails
transport_maps = hash:/etc/postfix/transport

3) Fazendo a configuração de gateway no postfix, /etc/postfix/master.cf

vim /etc/postfix/master.cf

# local unix – n n – – local

Comentamos a linha que cuida a entrega local, pois neste servidor não vamos precisar receber email, ele vai apenas repassar. Algo com a linha acima, apesar que este passo é opcional.

5) Fazendo a configuração do gateway no postfix, /etc/postfix/transport

vim /etc/postfix/transport

[email protected] smtp:192.168.0.1
dominio1.com smtp:192.168.0.2
dominio2.com.com.br smtp:192.168.0.3
[email protected] smtp:192.168.0.4

Vamos rodar o comando para gerar a tabela do tranport

postmap /etc/postfix/transport

Essa configuração é muito simples também:

Linha 1: Recebe os emails de [email protected] e encaminha para o um outro servidor que deverá responder no ip 192.168.0.1, um detalhe importante é que o servidor que esta no ip 192.168.0.1 pode ser qualquer outro servidor de email, um qmail, um sendmail, outro postfix, uma solução do ZIMBRA, ou até mesmo o famoso e caro Microsoft Exchange.

Linha 2: Recebe todo o resto dos emails do domínio dominio1.com e encaminha para o servidor de email que esta respondendo no endereço ip 192.168.0.2

Linha3: Recebe todo o resto dos emails do domínio dominio2.com.br e encaminha para o servidor de email que esta respondendo no endereço ip 192.168.0.3

Linha 4: Recebe os emails de [email protected] e encaminha para o um outro servidor que deverá responder no ip 192.168.0.4, lembrando que o servidor que esta no ip 192.168.0.4 pode ser qualquer outro servidor de email, um qmail, um sendmail, outro postfix, uma solução do ZIMBRA, ou até mesmo o famoso e caro Microsoft Exchange.

5) A configuração do DNS, entrada MX

Um detalhe importante, que parece até ser um pouco obvio as vezes é o seguinte, a entrada MX do se domínio deve estar apontando para o endereço do gateway, e não mais para o seu servidor de email padrão

Algo como a configuração abaixo do bind9

$TTL 3600
@ IN SOA ns1.dominio1.com. root.ns1.dominio1.com. (
2009123001 ; serial YYYYMMDDnn
3600 ; refresh ( 1 hours)
7200 ; retry ( 2 hours)
1209600 ; expire ( 5 days)
172800 ) ; minimum ( 2 days)

;
; cria o nome para o servidor de email, ip deve ser do servidor gateway de email
;
mail0 IN A 200.000.00.000

;
; seta quem sera o servidor de email
;
@ IN MX 10 mail0

6) Ajuste no servidor que vai receber os redirecionamentos

O servidor que vai receber os encaminhamento de email deve ter a habilidade de receber emails dos domínios e aceitar relay do servidor de gateway. No caso do postfix isto é simples.

vim /etc/postfix/main.cf (exemplo o servidor 192.168.0.2 que vai responder por dominio1.com )

mydestination = dominio1.com
mynetworks = 127.0.0.0/8, 192.168.0.200 #(192.168.0.200 é o ip do nosso servidor gateway )

Pronto, isso é o bastante para o servidor de email receber os encaminhamentos do servidor de gateway de email.

Esta solução pode ser adotada caso exista uma necessidade de fazer uma migração de servidor de emails, ou utilizar um solução com vários servidores de email, que podem ser Microsoft Exchange, uma solução de email do Google, ou outra solução de email livre, como qmail, sendmail, zimbra etc.

GOOGLE APPS, veja esta solução de gateway de email com o qmail, um manual do google


Resumindo, o Postfix reúne benefícios atrativos o bastante para que esteja sempre entre os favoritos na hora de escolher um servidor de e-mail. Esteja você buscando por desempenho, boa arquitetura, redução de custos ou funcionalidades, é certo que encontrará isso no Postfix.

Se você deseja aprender a configurar um servidor LINUX, até mesmo um servidor de emails com Postfix, eu sugiro que você assista a essa aula que eu preparei, mostrando o passo a passo para você iniciar com LINUX de forma profissional.

Até mais, e forte abraço.

Sobre pedrodelfino

Trabalha a mais de 14 anos com administração de sistemas LINUX, dedicado em ensinar novos profissionais a atuar com servidores. Saiba mais aqui. "Caso queira participar de uma aula online comigo utilize o formulário Acima"