Postfix com autenticação em base LDAP no Slackware

Instalação do Postfix com autenticação em base LDAP, auto-resposta usando Gnarwl, autenticação de remetentes com SASL, utilização de TLS, criação automática dos diretórios dos usuários em formato Maildir com o Maildrop, gerenciamento de listas com o Mailman, antivírus Clamav, SpamAssassin, Courier POP3, webmail Squirrelmail, Isoqlog e Mailgraph.

[ Hits: 167.373 ]

Por: Felipe Domingos em 12/08/2008


Gnarwl - autoresposta



Autoresposta => Gnarwl

URL: http://www.onyxbits.de/gnarwl
Versão na data: gnarwl-3.4.tgz

tar xvzf gnarwl-3.4.tgz
$ cd gnarwl-3.4/
$ ./configure
$ make
# make install
# make perm


Obs.: Se no "make perm" der erro, é por causa de parâmetro -r na criação do usuário, editar o Makefile e remover o -r da linha: USERADD_ARGS.

Arquivo de configuração /usr/local/etc/gnarwl.cfg, altere os parâmetros que achar necessário.

Como não usarei o schema ldap com os campos padrões de Vacation, modifiquei para usar os que quero.

#
# This is an example configfile for gnarwl(8) v3.4, listing every
# available directive. Empty lines and lines beginning with a pound symbol
# are ignored by the software. Please keep in mind, that gnarwl uses a
# very basic parser for reading this file. Therefore some restrictions are
# put on the format:
#
# 1. Only whitespaces (no tabs) are allowed as delimeter between key and
# value(s).
# 2. Whitespaces can neither be escaped nor quoted.
# 3. Macros must be declared before use.
#

# Name of the macro, refering to the "From:" field of a received mail

map_sender $sender

# Name of the macro, refering to the "To:" or "Cc:" field of a received mail
map_receiver $recepient

# Name of the macro, refering to the "Subject:" field of a received mail
map_subject $subject

# Bind a database field to a macroname
map_field $begin vacationStart

# Bind a database field to a macroname
map_field $end vacationEnd

# Bind a database field to a macroname
map_field $fullname cn

# Bind a database field to a macroname
map_field $deputy vacationForward

# LDAP Server to bind to
#server localhost
server IP_SERVIDOR_LDAP

# Port, the LDAP server is listening on
port 389

# search scope (base|one|sub)
scope sub

# Destinguished name to bind with (leave empty to bind anonymously)
login

# Password to bind with (leave empty to bind anonymously)
password

# Which protocol <0|2|3> to use for binding. The deafult is 0, which stands
# for "autodetect".
#protocol 0
protocol 3

# From where to start searching the LDAP tree (you have to change this!)
#base o=my_organization
base ou=dominio,dc=com,dc=br

# Query filter to use for ldapsearch
#queryfilter (&(mail=$recepient)(vacationActive=TRUE))
### query para verificar se o reply esta ativo ou não
queryfilter (&(mail=$recepient)(deliveryMode=reply))

# The attribute to querying for. The content of this field will be pasted
# between header and footer (see also: forceheader and forcefooter
# directives) afterwards all macros are expanded and the result is piped
# through to the MTA (see also: mta directive).
#result vacationInfo
### Campo que contem o texto que será inserido na auto-resposta
result mailReplyText

# The files in this directory are used to keep track on who was sent
# an automatic reply from whom and when.
blockfiles /usr/local/var/lib/gnarwl/block/

# File permissions to use for newly created database files
umask 0644

# After how many hours the block on a specific sender/receiver combo expires.
# Set to 0 to deactivate this feature (not recommended).
### Tempo em horas para que um remetente volte a receber msg de auto-reply
blockexpire 48

# How to send mail. Specify full name to your MTA plus arguments. Only the
# map_sender and map_receiver macros are expanded. This program must be
# able to accept email from stdin.
#mta /usr/sbin/sendmail -F $recepient
##mta /usr/sbin/sendmail -t $recepient
mta /usr/sbin/sendmail $sender

# Ignore mails, that specify too many receivers
maxreceivers 64

# Ignore mails with too many headerlines (avoid DOS attacks)
maxheader 512

# If outgoing mail may contain non ASCII characters, specify your locale
# charset here for character conversion. Check iconv(1) for allowed values.
# Leave blank to disable this feature.
charset ISO8859-1

# If gnarwl reads a mailheaderline, that exactly matches an entry in this
# database file, the mail will be ignored (usefull for preventing autoreplies
# to mailinglists). Case does matter, no wildcard expansion.
# Leave empty to deactivate.
badheaders /usr/local/var/lib/gnarwl/badheaders.db

# Gnarwl will never autoreply for emailaddresses found in the blacklist
# (usefull for preventing autoreplies from root, postmaster, etc.). Leave
# Empty to disable this feature.
blacklist /usr/local/var/lib/gnarwl/blacklist.db

# The contents of this textfile are pasted in front of each outgoing mail.
forceheader /usr/local/var/lib/gnarwl/header.txt

# The contents of this textfile are appended to each outgoing mail.
forcefooter /usr/local/var/lib/gnarwl/footer.txt

# Whitespace delimeted list of headernames, which may contain receiving
# emailaddresses (case insignificant).
recvheader To Cc

# Set loglevel (0|1|2|3). A higher loglevel always contains all lower
# loglevels.
# 0 - Critical messages only. Anything, gnarwl cannot continue afterwards.
# 1 - Warnings. Gnarwl can continue, but with reduced functionality.
# 2 - Info. General information on gnarwl's status.
# 3 - Debug.
loglevel 1

Adicionar ao final do arquivo /etc/postfix/transport:

# USADO PARA AUTO REPLY
autoreply.dominio.com.br gnarwl:dominio.com.br

Executar:

# postmap hash:/etc/postfix/transport

Adicionar ao final do arquivo /etc/postfix/master.cf:

# gnarwl autoresponder
gnarwl    unix  -       n       n       -       -       pipe
  flags=F  user=gnarwl argv=/usr/local/bin/gnarwl -a ${user}@${nexthop} -s ${sender}

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Instalando a SASL Library (Cyrus)
   3. Postfix
   4. Criando o certificado TLS
   5. Courier-Authlib
   6. Courier-imap
   7. Maildrop
   8. Clamav e Clamav-Filter
   9. SpamAssassin - Primeira forma
   10. SpamAssassin - Segunda forma (via CPAN)
   11. Integração do Spamassassin e criação do maildir automaticamente
   12. Mailman
   13. Gnarwl - autoresposta
   14. main.cf do Postfix
   15. Mais alguns detalhes
   16. Webmail Squirrelmail
   17. Serviços para subir no boot e outros
   18. Isoqlog e autenticação Apache em base LDAP
   19. Mailgraph
   20. Referências úteis e de algumas implementações utilizadas
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Servidor de e-mail Postfix + MySQL + Dovecot + Cyrus

Comunicação POP3

Migração Zimbra com Zextras Migration Tool

PHPXmail - um front-end web para o XMail

Usando Spammer e SpamDomains no sendmail

  
Comentários
[1] Comentário enviado por grandmaster em 12/08/2008 - 18:48h

Bem completo.

Gostei muito do artigo.

Pra ficar mais completo, apenas a checagem de SPF :D

---
Renato de Castro Henriques
CobiT Foundation 4.1 Certified ID: 90391725
http://www.renato.henriques.nom.br

[2] Comentário enviado por fag_oliv em 16/08/2008 - 21:58h

Sou novato com servidores de e-mail, estou tentando aprender. Gostaria de um esclarecimento, tua solucao exige que eu tenha um servidor ldap configurado?


Obrigado,


[3] Comentário enviado por Felipe Domingos em 18/08/2008 - 07:51h

grandmaster,

É realmente faltou a parte de SPF, assim que tiver um tempinho coloco para funcionar e coloco posto tb ^^

fag_oliv,

Sim, a solução que implementei utiliza uma base ldap.

t+

[4] Comentário enviado por danielmb em 11/09/2008 - 22:28h

Muito bom esse artigo Felipe.
Eu gostaria de ter um exemplo da estrutura ldap utilizada.
Eu tenho tentando implementar aqui, e tenho enfretado algumas dificuldades em relação a consulta do usuário na base ldap.
Estou lendo muito e aprendendo ainda mais, e seu artigo contribui demais, caso possa me ajudar com alguma orientação ficarei grato.
abraços

[5] Comentário enviado por Felipe Domingos em 16/09/2008 - 08:46h

Obrigado danielmb, quanto a estrutura no ldap tenho os seguintes schemas dentro do slapd.conf :

include /usr/local/etc/openldap/schema/core.schema
include /usr/local/etc/openldap/schema/cosine.schema
include /usr/local/etc/openldap/schema/nis.schema
include /usr/local/etc/openldap/schema/inetorgperson.schema
include /usr/local/etc/openldap/schema/samba.schema
include /usr/local/etc/openldap/schema/qmailuser.schema
include /usr/local/etc/openldap/schema/authldap.schema


Obs: o do samba está listado pq estou trabalhando na integração dele para utilização do mesmo usuário de email.
Obs2: muitos dos campos utilizados são baseados no qmailuser.schema.

Se tiver dificuldades, poste ou mande um email e tento ajudar.

T+

[6] Comentário enviado por c.rafael em 28/02/2009 - 00:39h

Olá , ..

Segui o seu tutorial para implementar um servidor de e-mail com ldap, porém não tive sucesso com o maildrop, ele não está gerando log e nem jogando os SPAM para a caixa dos SPAm de cada usuário.

Sabe o que pode ser?

[7] Comentário enviado por removido em 01/04/2009 - 14:28h

Artigo Matador!!!


Mas tenho uma dúvida.
Na aba 11, voce se refere a editar para...


mailMessageStore: /home/MENSAGENS
homeDirectory: /home/MENSAGENS/fox.mulder/Maildir


De que arquivo está falando que deve ser inseriadas essas linhas? É do ldap.conf ?

[8] Comentário enviado por Felipe Domingos em 01/04/2009 - 20:19h

Opa,

gilmar_moretto

Na verdade as duas linhas não se tratam de arquivo e sim de duas entradas do ldap, o usuário no ldap deve possuir esses dois campos.

Daqui alguns dias estarei implementando novamente a solução abordada nesse artigo e publico uma entrada completa de um usuário no ldap, isso deve ajudar a entender as partes relacionadas a campos do LDAP.

T+

[9] Comentário enviado por removido em 02/04/2009 - 14:19h

ha! É mesmo!
Nem me toquei que são entradas que devem ser incluídas nos arquivos ldif , o artigo fala de tantos confs diferentes que nem me toquei que mais cedo ou mais tarde deveria falar das entradas também.


Grato por tirar essa dúvida


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts