wiki:Servicos/Postfix

Postfix

O Postfix é o serviço de correio onde roda o protocolo SMTP, responsável pelo envio de mensagens. Implementa ainda as filas de mensagens e deixa ainda registrados em suas logs os envios de mensagens, para consulta do administrador. Seus pacotes já possuem integração com os outros componentes do Expresso, como LDAP e Cyrus, e pode ser usado com qualquer protocolo de recebimento de mensagens.

Como configurar

Atenta as configurações, nos arquivos /etc/postfix/main.cf e expressos-dominios

/etc/postfix/main.cf

myorigin = *SEU DOMINIO*
myhostname = *SEU DOMINIO*
append_at_myorigin = no
append_dot_mydomain = no
unknown_local_recipient_reject_code = 450
recipient_delimiter = +
smtpd_banner = SMTP
mynetworks = 127.0.0.1/32

mydestination = $myhostname, localhost.$mydomain, *SEU DOMINIO*
inet_interfaces = all
disable_dns_lookups = no
mailbox_transport = lmtp:unix:/var/run/cyrus/socket/lmtp

#smtpd_use_tls = no
alias_maps = hash:/etc/aliases
virtual_alias_maps = ldap:aliases, ldap:mailboxes, ldap:grupos, ldap:listas

#Caixas Postais
mailboxes_server_host = 127.0.0.1
        # host do servidor LDAP.
mailboxes_version = 3
        # versao do ldap
mailboxes_timeout = 10
        # tempo em segundo para gerar um timeout na consulta
mailboxes_chase_referral = 0
        # seguir referral? (false = 0 = nao)
mailboxes_search_base = *SUA BASE DO LDAP*
        #Base do servidor LDAP.
mailboxes_query_filter = (&(|(mail=%s)(mailAlternateAddress=%s))(objectClass=posixAccount)(phpgwAccountType=u)(accountStatus=active))
        # A pesquisa que sera feita. Será retornado o UID e o MailForwardingAddress (result_attribute) da Entrada
        # correspondente ao query_filter. %s eh oq vem do postfix.
mailboxes_bind = no
mailboxes_domain = hash:/etc/postfix/expresso-dominios
        # utilizar anonymous.
mailboxes_result_attribute = uid, mailForwardingAddress
        # o LDAP retornará estes atributos.
#Aliases
aliases_server_host = 127.0.0.1
aliases_version = 3
aliases_timeout = 10
aliases_chase_referral = 0
aliases_search_base = *SUA BASE DO LDAP*
aliases_query_filter = (&(|(mail=%s)(mailAlternateAddress=%s))(objectClass=posixAccount)(phpgwAccountType=u)(deliveryMode=forwardOnly)(accountStatus=active))
aliases_domain = hash:/etc/postfix/expresso-dominios
aliases_result_attribute = mailForwardingAddress

#Listas
listas_server_host = 127.0.0.1
listas_version = 3
listas_timeout = 10
listas_chase_referral = 0
listas_search_base = *SUA BASE DO LDAP*
listas_query_filter = (&(mail=%s)(phpgwAccountType=l)(objectClass=posixAccount)(deliveryMode=forwardOnly)(accountStatus=active))
listas_domain = hash:/etc/postfix/expresso-dominios
listas_result_attribute = mailForwardingAddress
#Grupos
grupos_server_host = 127.0.0.1
grupos_version = 3
grupos_timeout = 10
grupos_chase_referral = 0
grupos_search_base = *SUA BASE DO LDAP*
grupos_query_filter = (&(cn=%u)(objectClass=posixGroup)(phpgwAccountType=g))
grupos_bind = no
grupos_domain = hash:/etc/postfix/expresso-dominios
grupos_result_attribute = memberUid

#Controle de falha de entrega
queue_run_delay = 480s
bounce_queue_lifetime = 5400s
maximal_backoff_time = 480s
minimal_backoff_time = 240s

/etc/postfix/expressos-dominios

*SEU DOMINIO* OK

No terminal execute como super-usuário

adduser postfix mail
/etc/init.d/postfix restart
postmap /etc/postfix/expresso-dominios
postmap /etc/aliases

Além disso certifique-se que 127.0.0.1 esteja listado no seu /etc/hosts

Como configurar antivirus

Esta instalação utiliza o módulo perl do clamav. Mas cuidado, pois dependendo do volume de emails no seu servidor, este serviço pode acabar com o processamento da máquina.

1. Adicione a linha abaixo no arquivo /etc/postfix/main.cf
header_checks = regexp:/etc/postfix/header_checks

2. Crie o arquivo /etc/postfix/header_checks com o conteúdo abaixo:
/^Received:/ HOLD

3. Instale o Clamav
apt-get install -t sarge-backports clamav clamav-base clamav-docs clamav-freshclam libclamav-dev unrar

Obs: Para instalar o unrar é necessário que suas fontes (/etc/apt/sources.list) contenham a fonte non-free:
deb http://ftp.br.debian.org/debian/ stable main non-free

4. Execute o comando:
perl -MCPAN -e shell

e depois, no shell do perl, os comandos abaixo:
install Parse::RecDescent
install Inline
install Inline::C
install Mail::ClamAV

5. Instale o mailscanner
apt-get install mailscanner

6. Edite o arquivo /etc/default/mailscanner e descomente a linha abaixo:
run_mailscanner=1

7. Altere as linhas abaixo no arquivo /etc/MailScanner/MailScanner.conf
Run As User = postfix
Run As Group = postfix
Incoming Queue Dir = /var/spool/postfix/hold
Outgoing Queue Dir = /var/spool/postfix/incoming
MTA = postfix
Virus Scanning = yes
Virus Scanners = clamavmodule
Monitors for ClamAV Updates = /var/lib/clamav/*.cvd

Obs: Estas são as mudanças básicas, provavelmente você terá que fazer mais alterações ....

8. Altere as permições das pastas do MailScanner com os comandos abaixo:
chown postfix.postfix /var/spool/MailScanner/incoming
chown postfix.postfix /var/spool/MailScanner/quarantine
chown postfix.postfix /var/lib/MailScanner
chown postfix.postfix /var/run/MailScanner

Obs: Podem haver mais pastas, mas ao iniciar o MailScanner um aviso irá ser mostrado para você.

9. Inicio o MailScanner e de um reload no postfix:
/etc/init.d/mailscanner start
/etc/init.d/postfix reload

João Alfredo Knopik Junior
jakjr@celepar.pr.gov.br
DISER - CELEPAR

Attachments

  • bounce.diff Download (3.7 KB) - added by amuller 16 years ago. Como fazer com que o postfix retorne mensagem de erro com o email do LDAP, este pacth deve ser aplicado ao código postfix 2.4.6 e a base de ldap precisa ser alterada