FUG-BR / Grupo Brasileiro de Usuarios de FreeBSD - Qmail-Ldap integrando com Active Directory
 
08.07  
Inicio arrow Artigos arrow Qmail-Ldap integrando com Active Directory
Principal
Inicio
Noticias
Artigos
Regras da Lista
Assinar a Lista
Histrico da Lista
Forum
Keyserver
PC-BSD: Artigos
PC-BSD: Notcias
Galeria de Imagens
Contador Usurios FUG
FUGs Estaduais
Downloads
Enquetes
FAQ
Resumo do Site
Links
Pesquisar
Contato
Sobre a FUG-BR
RSS / Twitter
-
DOC-BR (FUG BR)
Introduo
Projeto DOC-BR
Handbook
FAQ Oficial
-
+ Noticias
Alertas de Seguranca
Alertas em Ports
BSD em Geral
DaemonNews (Ingles)
MyFreeBSD
Todas Categorias
-
Login
Nome de Usurio

Senha

Lembrar login
Esqueceu sua senha?
Sem conta? Crie uma


Qmail-Ldap integrando com Active Directory PDF Imprimir E-mail
Por Carlos Cesario   
02/05/2007

Qmail-LDAPEm mais um excelente artigo publicado no portal da FUG, Felippe de Meirelles Motta e Carlos Cesário contribuiram com um howto sobre instalação, configuração e integração de um Servidor LDAP com um Servidor AD. Este que com certeza é de necessidade de muitos, conta com um patch novo para autenticar os usuários do Active Directory com o qmail-ldap.

Este artigo não entrará em detalhes sobre a instalação do AD, apenas uma rápida descrição e referência do que se deve fazer. O artigo traduzido por Felippe de Meirelles Motta foi quase que totalmente modificado para garantir melhor gerenciamento, performance e segurança sobre os serviços deste servidor. 

Sistemas já testados:

  • Windows 2003 Server com SP2
  • OpenSuse Linux-10.2
  • Ubuntu 6.10

Instalando Windows 2003 Server

Após a instalação do Servidor, instale o SFU (Windows Services for Unix) com suporte ao NIS. Adicione um novo usuário no AD e na aba "Unix Attributes" escolha o domínio e clique em OK. Altere novamente a senha do usuário.

UCSPI-TCP


# cd /usr/ports/sysutils/ucspi-tcp
# make config

(Selecione RSS_DIFF, SSL e RBL2SMTPD)

# make install clean

Daemon Tools

# cd /usr/ports/sysutils/daemontools
# make install clean

(Não é necessário selecionar nenhuma opção)

DjbDNS

# cd /usr/ports/dns/djbdns
# make install clean

(Não é necessário selecionar nenhuma opção)

Qmail-Conf

# cd /usr/ports/mail/qmail-conf
# make install clean


MailDrop

# cd /usr/ports/mail/maildrop
# make install clean


OpenLDAP Server

# cd /usr/ports/databases/openldap24-server
# make install clean

(Não é necessário selecionar nenhuma opção)

O esquema no LDAP define registros e campos na database. Qmail usa alguns esquemas com OpenLDAP, mas não é habilitado por padrão.

Para habilitar isso, adicione o seguinte em /usr/local/etc/openldap/slapd.conf:

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


Database

Voce precisa definir uma database para OpenLDAP. Para isto, adicione o seguinte para /usr/local/etc/openldap/slapd.conf:

database bdb
suffix "dc=dominio,dc=org"
rootdn "cn=Manager,dc=dominio,dc=org"
rootpw secret
directory /usr/local/var/openldap-data


Adicione no seu /etc/rc.conf:
 
slapd_enable="YES"
slapd_flags='-h "ldapi://%2fvar%2frun%2fopenldap%2fldapi/ ldap://0.0.0.0/"'
slapd_sockets="/var/run/openldap/ldapi"


Agora inicie o serviço:
 
# /usr/local/etc/rc.d/slapd.sh restart

Base Root

Nós criaremos um diretório para armazenar arquivos ldif:
 
# mkdir /usr/local/src/ldif

No próximo ponto, nós precisamos configurar o OpenLDAP para interagir com o Qmail, isso estará pronto após a compilação do qmail-ldap.

Criação de DN

Em /usr/local/src/ldif crie um arquivo chamado create_dn.ldif com o seguinte conteúdo:
 
dn: dc=dominio,dc=org
objectclass: dcObject
objectclass: organization
o: dominio
dc: dominio


dn: cn=Manager,dc=dominio,dc=org
objectClass: organizationalRole
cn: Manager


Ajuste exatamente como acima, respeitando espaços.

Este registro é adicione para database LDAP com:

# ldapadd -x -D "cn=Manager,dc=dominio,dc=org" -W -f create_dn.ldif

Nota: Você precisará digitar uma senha para administração.
 
Se rodou com sucesso, nós teremos algo como isto:
 
# ldapadd -x -D "cn=Manager,dc=dominio,dc=org,dc=mx" -W -f create_dn.ldif
Enter LDAP Password:
adding new entry "dc=dominio,dc=org,dc=mx"
adding new entry "cn=Manager,dc=dominio,dc=org,dc=mx"


Você pode testar isto com:

# ldapsearch -x -b "dc=mpsnet,dc=net,dc=mx" '(objectclass=*)'
# search result
search: 2
result: 0 Success
# numResponses: 3
# numEntries: 2


ClamAV Antivirus

ClamAV é um anti-virus grátis no qual pode ser usado em conjunto com Simscan para filtrar emails com vírus. Nós vamos mostrar como instalar isto.

# cd /usr/ports/security/clamav
# make install clean

(Não é necessário selecionar nenhuma opção)

Defina dentro de seu /usr/local/etc/clamd.conf:

User root
LogFileMaxSize 0

Adicione ao seu /etc/rc.conf:

clamav_clamd_enable="YES"
clamav_freshclam_enable="YES"


E inicie este serviço:
 
# /usr/local/etc/rc.d/clamav-clamd.sh start
# /usr/local/etc/rc.d/clamav-freshclam.sh start


SpamAssassin

SpamAssassin é um programa que pode ser usado em conjunto com Simscan para filtrar SPAM.

Você pode instalar isso com:

# cd /usr/ports/mail/p5-Mail-SpamAssassin
# make config

(Selecione quaisquer opções que achar necessário ou necessite) 

Adicione ao seu /etc/rc.conf:
 
spamd_enable="YES"

Desativando Sendmail

Adicione ao seu /etc/rc.conf:
 
sendmail_enable="NONE"

Ajuste o /etc/mail/mailer.conf como está abaixo:

sendmail /var/qmail/bin/sendmail
send-mail /var/qmail/bin/sendmail
mailq /var/qmail/bin/sendmail
newaliases /var/qmail/bin/sendmail
hoststat /var/qmail/bin/sendmail
purgestat /var/qmail/bin/sendmail


Criando usuários para continuar a instalação

# pw groupadd vmail -g 2110
# pw useradd vmail -u 11184 -g vmail -s /bin/true -m

# pw groupadd simscan
# pw useradd simscan -g simscan -s /sbin/nologin -d /nonexistent

Qmail-LDAP

# cd /usr/ports/mail/qmail-ldap
# make config

(Selecione: LOCALTIME_PATCH, BIGTODO, QUOTATRASH, LDAP_DEBUG e as opções padrões)

# make

# cd work/qmail-1.03

Baixe o patch para FreeBSD aqui , na utilização de instalação via código-fonte, use este aqui . 

# make install clean

Ativando esquema LDAP

Qmail necessita de organização especial de campos para seus registros de usuários. Estes campos são adicionados diretamente nos esquemas que o qmail-ldap pre-define. Para ativar isto, façamos:
 
# cp /var/qmail/doc/qmail.schema /usr/local/etc/openldap/schema/

E em /usr/local/etc/slapd.conf adicione:

include /usr/local/etc/openldap/schema/qmail.schema

Para aumento de performance do LDAP, você precisa indexar alguns campos na database. Para isto, adicione as seguintes linhas em /usr/local/etc/openldap/slapd.conf:
 
index objectClass eq
index mail,mailAlternateAddress,uid eq,sub
index accountStatus,mailHost,deliveryMode eq
index default sub


Configuração

Arquivos de controle

Qmail é baseado em configuração de arquivos setados em /var/qmail/control. Cada arquivos neste diretório controla uma função do qmail que você pode ser ajustada para suas necessidades. Para mais informação verifique a seção de Arquivos de Controles.

A seguir nós definimos alguns valores recomendados:

# echo "server.domain.com" > /var/qmail/control/me
# echo "127.0.0.1" > /var/qmail/control/ldapserver
# echo "ou=users,dc=dominio,dc=org" > /var/qmail/control/ldapbasedn
# echo "secret" > /var/qmail/control/ldappassword
# echo "cn=Manager,dc=dominio,dc=org" > /var/qmail/control/ldaplogin
# echo qmailUser > /var/qmail/control/ldapobjectclass
# echo "0" > /var/qmail/control/ldaplocaldelivery
# echo "0" > /var/qmail/control/ldapcluster
# echo "10000000" > /var/qmail/control/defaultquotasize
# echo "10000" > /var/qmail/control/defaultquotacount
# echo "Sua caixa postal está esgotando-se, limpe um espaço se deseja continuar a receber emails" > /var/qmail/control/quotawarning
# echo "ldaponly" > /var/qmail/control/ldapdefaultdotmode
# echo "/home/vmail" > /var/qmail/control/ldapmessagestore
# echo "11184" > /var/qmail/control/ldapuid
# echo "2110" > /var/qmail/control/ldapgid
# echo "30" > /var/qmail/control/ldaptimeout
# echo "Para maiores informações escreva para Este endereo de e-mail est sendo protegido de spam, voc precisa de Javascript habilitado para v-lo " > /var/qmail/control/custombouncetext
# touch /var/qmail/control/rbllist
# echo "0.0.0.0" > /var/qmail/control/outgoingip
# echo "./Maildir/" > /var/qmail/control/defaultdelivery
# echo "domain.com" > /var/qmail/control/locals
# echo "domain.com" > /var/qmail/control/rcpthosts

Adicione o arquivo /var/qmail/rc com o seguinte conteúdo:

#!/bin/sh
# Taken from LWQ by Dave Sill
# Using stdout for logging
# Using control/defaultdelivery from qmail-local to deliver messages by default
exec env - PATH="/usr/local/bin:/var/qmail/bin:/bin" \
qmail-start ./Maildir/


# chmod 755 /var/qmail/rc

Qmail-Delivery

# /var/qmail/bin/qmail-delivery-conf qmaill /var/qmail/service/qmail

E link isto para o svscan:
 
# ln -s /var/qmail/service/qmail /service

Isto causa início imediato do qmail. Você pode verificar o status do serviço com:

# svstat /service/qmail

Se carregado com sucesso, você obterá algo como:
 
/service/qmail: up (pid 6275) 11 seconds

Qmail-SMTPD

# /var/qmail/bin/qmail-smtpd-conf qmaild qmaill /var/qmail/service/smtpd
# ln -s /var/qmail/service/smtpd /service


Limite de memória

Você define o limite de memória com:

# echo "8000000" > /var/qmail/service/smtpd/env/DATALIMIT

Permissão para envio de email ou relay

Você pode fazer relay usando uma lista explicita de IPs estáticos ou com SMTP-AUTH. O qmail-smtpd está encarregado disto. Para configurar relay, você precisa editar /service/smtpd/tcp e listar quais IPs serão permitidos para relay. Examplo:
 
127.:allow,RELAYCLIENT=""
192.168.101.:allow,RELAYCLIENT=""
:allow

A lógica é:
Qualquer conexão de 127.oquetiver será permitido para conectar e fazer relay (uso do RELAYCLIENT="" para ativar isto)
Qualquer conexão de 192.168.101.oquetiver sera permitido e enviará email.
:allow qualquer conexão para porta 25 de qualquer outro IP será permitido para conectar, mas não irá fazer relay. Isso é para receber email de outros hosts.

Para ativar as mudanças você precisa fazer o seguinte:

# cd /service/smtpd
# make


Isto irá criar o arquivo binário tcp.cdb e o qmail automaticamente irá detectar as mudanças. Para isto não é necessário para reiniciar o serviço.
 
Dirmaker

Afim de fazer criação automatica do trabalho de caixa postal, você precisa definir o arquivo /var/qmail/bin/dirmaker.sh com o seguinte conteúdo:

#!/bin/sh
/bin/mkdir -m 700 -p $1/Maildir
/bin/mkdir -m 700 -p $1/Maildir/new
/bin/mkdir -m 700 -p $1/Maildir/cur
/bin/mkdir -m 700 -p $1/Maildir/tmp


Torne-o executável

# chmod +x /var/qmail/bin/dirmaker.sh

E configure o arquivo de controle correspondente:
 
# echo /var/qmail/bin/dirmaker.sh > /var/qmail/control/dirmaker

Log extendido

Para ativar log extendido, faça:
 
# echo "3"> /service/smtpd/env/LOGLEVEL

Recipientes LDAP

Recipientes LDAP são de alta relevância na hierarquia LDAP. Para obter ordem nos usuários qmail com uma database LDAP, você precisa definir dois recipientes: um para grupos e um para usuários. Estes recipientes devem pertencer ao nível root no LDAP.

Para adicionar um recipiente via linha de comando, você precisa primeiro criar um arquivo com os atributos necessários e carregar isso com o comando ldapadd.
 
Recipiente de usuários

# cd /usr/local/src/ldif

Crie o arquivo users.ldif com:
 
dn: ou=users,dc=dominio,dc=org
ou: users
objectclass: top
objectclass: organizationalUnit


Carregue isto com: 

# ldapadd -x -D "cn=Manager,dc=dominio,dc=org" -W -f users.ldif

Se carregado com sucesso, você irá obter:

# ldapadd -x -D "cn=Manager,dc=dominio,dc=org" -W -f users.ldif
Enter LDAP Password:
adding new entry "ou=users,dc=dominio,dc=org"


Isto irá criar o recipiente de usuários, onde usuários qmail serão armazenados.

Você pode testar isto com:
 
# ldapsearch -x -s one -b 'dc=dominio,dc=org' '(ou=users)'

# users, dominio.org
dn: ou=users,dc=dominio,dc=org
ou: users
objectClass: top
objectClass: organizationalUnit


Recipiente de grupos

# cd /usr/local/src/ldif

Em groups.ldif:
 
dn: ou=groups,dc=dominio,dc=org
ou: groups
objectclass: top
objectclass: organizationalUnit


Carregue isto com: 

# ldapadd -x -D "cn=Manager,dc=dominio,dc=org" -W -f groups.ldif

Isto cria o recipiente de grupos, onde os grupos do qmail serão armazenados. Você pode testar isto com:
 
# ldapsearch -x -s one -b 'dc=dominio,dc=org' '(ou=groups)'

# users, dominio.org
dn: ou=groups,dc=dominio,dc=org
ou: users
objectClass: top
objectClass: organizationalUnit


Criação manual de usuários qmail

Nós podemos agora criar os usuários qmail. Para fazer isto, nós precisamos criar um arquivo ldif com dados de caixa postal e uma senha encriptada. Voce pode tambem fazer isto com Webmin.

Senhas encriptadas

Você precisa armazenar senhas encriptadas em formato crypt ou md5. Para pegar a string md5 de uma senha você deve fazer o seguinte:
 
# slappasswd -h {md5}
New password:
Re-enter new password:
{MD5}72KZyef9rm13WBnOHiYguA==

A strings resultando: {MD5}72KZyef9rm13WBnOHiYguA== é a senha encriptada e é o texto que nós precisamos incluir no arquivo ldif.

Postmaster, um exemplo e usuário básico

Para cumprir com a RFC 822, todo MTA precisa ter a conta postmaster@. Para criar isso nós precisando fazer o seguinte. Criar um arquivo postmaster.ldif com:
 
dn: cn=Postmaster,ou=users,dc=domain,dc=com
cn: Postmaster
ou: users
sn: Postmaster
objectClass: top
objectClass: person
objectClass: inetOrgPerson
objectClass: qmailUser
mail: Este endereo de e-mail est sendo protegido de spam, voc precisa de Javascript habilitado para v-lo


mailHost: server.domain.com
mailQuotaSize: 0
mailQuotaCount: 0
uid: postmaster
accountStatus: active
mailMessageStore: postmaster
userPassword: {MD5}JQ9g7OhNwTK81ciA0aS3KQ==


E adicione isto para database LDAP com:
 
# ldapadd -x -D "cn=Manager,dc=domain,dc=com" -W -f postmaster.ldif

RFC 2142 adverte para também criar uma conta abuse@. Para criar isto, nós precisamos fazer o seguinte. Criar um arquivo abuse.ldif com:
 
dn: cn=Abuse,ou=users,dc=domain,dc=com
cn: Abuse
ou: users
sn: Abuse
objectClass: top
objectClass: person
objectClass: inetOrgPerson
objectClass: qmailUser
mail: Este endereo de e-mail est sendo protegido de spam, voc precisa de Javascript habilitado para v-lo

mailHost: server.domain.com
mailQuotaSize: 0
mailQuotaCount: 0
uid: abuse
accountStatus: active
mailMessageStore: abuse
userPassword: {MD5}JQ9g7OhNwTK81ciA0aS3KQ==


E adicione isto para database LDAP com:
 
# ldapadd -x -D "cn=Manager,dc=domain,dc=com" -W -f abuse.ldif

Qmail POP3

Criando serviço pop3

# /var/qmail/bin/qmail-pop3d-conf /var/qmail/bin/auth_pop qmaill /var/qmail/service/pop3d

Definindo acesso

# ldapadd -x -D "cn=Manager,dc=dominio,dc=org" -W -f users.ldif

Adicione para o arquivo /var/qmail/service/pop3d/tcp a lista de IPs permitidos para conectar. Se qualquer IP pode contar para o POP, cria o arquivo tcp com:

:allow

E se você quer restringir acesso para um range de endereços IPs, podemos fazer algo como:

172.16.1.24:allow
192.168.:allow

Você pode também adicionar IPs com o comando add-client.
 
./add-client 172.16.1.24 192.168.

Agora faça o arquivo binário em ordem para o qmail(tcpserver) reconhecer as mudanças:
 
# cd /var/qmail/service/pop3d
# make


Habilitando o serviço

# ln -s /var/qmail/service/pop3d /service

LOG

Ativar level de log extendido:
 
# echo "3"> /service/pop3d/env/POP3_LOGLEVEL

Logs para consultas posteriores: 

# tail -f /service/pop3d/log/main/current

Teste acesso com telnet:
 
# telnet 127.0.0.1 110
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
+OK < Este endereo de e-mail est sendo protegido de spam, voc precisa de Javascript habilitado para v-lo >
user your_login
+OK
pass your_password
+OK
quit
+OK
Connection closed by foreign host.
%

Qmail IMAP

Nós iremos usar o servidor Courier-IMAP. A versão 4 de Courier IMAP não foi testada pelo autor, se você conhece os passos para instalar sinta-se livre para contribuir.
 
# cd /usr/ports/mail/courier-imap
# make config

(Selecione: TRASHQUOTA e desmarque IPV6)

# make install clean

Configurando

O próximo passo é para criar os arquivos de configuração:
 
# cp /usr/local/etc/courier-imap/imapd.cnf.dist /usr/local/etc/courier-imap/imapd.cnf

Edite /usr/local/etc/courier-imap/imapd.cnf e mude o próximo valor:

MAXPERIP=20

Criando um diretório de inicialização:
 
# mkdir /service/imapd

Criar /service/imapd/run com o seguinte conteúdo:

#!/bin/sh

IPADDR="0.0.0.0"
exec_prefix=/usr/local
. /usr/local/etc/imapd.cnf

exec tcpserver -c 100 -l 0 -v -R $IPADDR imap \
${exec_prefix}/sbin/imaplogin \
/var/qmail/bin/auth_imap \
${exec_prefix}/bin/imapd Maildir 2>&1

Torne-o executável e link isto: 
# chmod +x /usr/lib/courier-imap/runscript/run
# ln -s /usr/lib/courier-imap/runscript /service/imapd

Teste com telnet:

# telnet 127.0.0.1 143
...
a1 seu_login *****
a2 select inbox


Onde seu_login é um usuário válido e **** é uma senha válida.
 
Isto irá autocriar diretórios IMAP: Trash, Drafts e Sent.

Simscan

Simscan é um programa que permite o Qmail habilitar anti-virus (com ClamAV neste documento) e filtros anti-spam (SpamAssassin). Isto trabalha com o patch ALTQUEUE (incluído no qmail-ldap). Isto é escrito em C, qual é entregue com rápida performance.
 
Instalação

Se você usa usuário clamav para rodar o clamav, você precisa adicionar o parametro --enable-user=clamav para configurar linha. Também --enable-attach=y serão muito ajudados.
 
# cd /usr/ports/mail/simscan
# make config

(Selecione: CLAMAV, RIPMIME, SPAMD, ATTACH, PASSTHUR, DOMAIN, HEADERS)

# make install clean

Configuração

Em /var/qmail/control/simcontrol:

:clam=yes,spam=yes,spam_passthru=yes

spam_passthru=yes deixa o spam passar com um aviso no campo Assunto. Se você quer bloquear isto, mude esta opção para spam_passthru=no.

E atualiza com:

# /var/qmail/bin/simscanmk

Ativando

Em /service/smtpd/tcp:

127.:allow,RELAYCLIENT=""
:allow,RBL="",RCPTCHECK="",SMTPAUTH="AUTHREQUIRED",QMAILQUEUE="/var/qmail/bin/simscan"

E atualize as regras SMTPD com:
 
# cd /service/smtpd
# make


Em geral você tem que setar a opção QMAILQUEUE para aquelas redes que requisitam anti-virus. Neste caso todos, menos localhost.

SpamAssassin Anti-Spam

Nesta sessão nós vamos mostrar como usar SpamAssassin em conjunto com Simscan, mas o uso de outro software antispam como DSPAM é possível.
 
SpamAssassin é um software no qual através de múltiplos testes pode decidir se um email é considerado ou não como SPAM. Você pode configurar isto globalmente ou por usuário, você poderá montar um setup personalizado para cada um.

LDAP

Regras globais são definidas usualmente no arquivo /usr/local/etc/mail/spamassassin/local.cf e em sistemas com usuários UNIX, cada usuário pode ter um arquivo chamado ~/.spamassassin/user_prefs onde suas preferências pessoais são armazenadas em qmail-ldap e você pode também fazer isto com Simscan e a habilidade do SpamAssassin para usar preferências do LDAP. Nas preferências armazenadas no LDAP você pode definir coisas como required_score e listas branca e negra. Isto ajuda um monte de usuários diferenciados na questão do antispam.

Configuração LDAP para SpamAssassin

Em ordem para forçar SpamAssassin para ler preferências por usuário de um servidor LDAP, você precisa adicionar um atributo do spamassassin para o esquema de modo que cada usuário tenha este valor.

Você pode fazer isto como seguinte:

Adicione o atributo 'spamassassin' para /usr/local/etc/openldap/schema/inetorgperson.schema:

# spamassassin
# see http://SpamAssassin.org/ .
attributetype ( 2.16.840.1.113730.3.1.220
DESC 'SpamAssassin user preferences settings'
EQUALITY caseExactMatch
NAME 'spamassassin'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )

Você precisa usar tabs, não espaços em branco.

Integrado o atribudo para a classe. No /usr/local/etc/openldap/schema/inetorgperson.schema na ultima parte modifique:
 
userSMIMECertificate $ userPKCS12 )

Para isto: 
userSMIMECertificate $ userPKCS12 $ spamassassin )

Isto irá atualmente adicionar o atributo.

Integração do SpamAssassin e LDAP

Agora nós precisamos fazer o SpamAssassin conectar na database LDAP. Modifique /usr/local/etc/mail/spamassassin/local.cf e adicione os seguintes parametros:
 
user_scores_dsn ldap://127.0.0.1:389/ou=users,dc=domain,dc=com?spamassassin?sub?uid=__USERNAME__
user_scores_ldap_username cn=Manager,dc=dominio,dc=org
user_scores_ldap_password your_secret

Use seu servidor válido e credenciais apropriadas.

Isto é:
user_scores_dsn: define o IP do servidor LDAP, o recipiciente dos usuários, o atributo onde preferências são armazenadas, espaço de busca (base, um o secundário) e usuário. 
Em tempo de execução __USERNAME__ é modificado com uid de um usuário. 
user_scores_ldap_username: login para conectar na database.
user_scores_ldap: senha para conectar na database.

Como nós especificamos spamassassin em user_scores_dsn, neste atribudo irá as preferências por usuário que será procurada. Este é um atribudo de multivalor e em cada entrada você usar o fomato usado em local.cf.
Porém você é restrito somente para uma opção de todos valores válidos de local.cf. Alguns valores suportados são:
 
whitelist_from
blacklist_from
required_score

Exemplo:

Se por exemplo você tem um email chamado Este endereo de e-mail est sendo protegido de spam, voc precisa de Javascript habilitado para v-lo e você quer habilitar as preferências do SpamAssassin no LDAP, você precisa adicionar os seguintes valores para o atributo spamassassin do usuário:
 
spamassassin: required_score 3
spamassassin: blacklist_from Este endereo de e-mail est sendo protegido de spam, voc precisa de Javascript habilitado para v-lo

Isto irá fazer que o padrão de required_score para este usuário seja 3 (um pouco paranóico) e todos emails de Este endereo de e-mail est sendo protegido de spam, voc precisa de Javascript habilitado para v-lo .br sejam marcados como SPAM.

IMPORTANTE: Afim de ter esta configuração trabalhando, o atributo uid do usuário precisa ser o mesmo da caixa postal. Por exemplo: para  Este endereo de e-mail est sendo protegido de spam, voc precisa de Javascript habilitado para v-lo , o atributo uid na database LDAP precisa ser  Este endereo de e-mail est sendo protegido de spam, voc precisa de Javascript habilitado para v-lo .
Também precisa ter maildrop habilitado (estes são outras técnicas) para forçar cada email ser scaneado pelo SpamAssassin.

Outras técnicas AntiSPAM

RBL

qmail-ldap inclui um patch para fazer qmail-smtpd verificar se cada conexão IP é ou não considerada um gerador de SPAM. Se o IP entrante está numa lista negra, isto pode ser bloqueado ou marcado (X-RBL Header). Para configura você precisa habilitar o RBL(Lista de bloqueio de relay) através do arquivo de controle apropriado: /var/qmail/control/rbllist.

Exemplo: Em /var/qmail/control/rbllist ponha o seguinte:
 
sbl.spamhaus.org reject 127.0.0.2 Spamhaus - http://www.spamhaus.org/SBL/
list.dsbl.org reject 127.0.0.2 DSBL - http://dsbl.org/main/
bl.spamcop.net reject 127.0.0.2 Spamcop - http://spamcop.net/
spamguard.leadmon.net reject 127.0.0.2 Dialup - Address is a dialup address

Onde cada linha consiste de quatro campos separados por um ou mais espaços. Se você usa a diretiva reject, o email será rejeitado.

Para ativar este recurso, você configura a variável RBL  em /service/smtpd/tcp:

127.:allow,RELAYCLIENT=""
:allow,RBL=""

A variável RBL é definida para todas conexões, exceto 127.*.

E então refazer a database do tcp.

# cd /service/smtpd
# make

Checagem para recipientes válidos (RCPTCHECK)

Se um spammer enviar um email para um usuário inexistente, este email é normalmente aceite pelo smtpd, mas após qmail(qmail-local) irá descobrir que este endereço não existe e irá gerar um email de erro para o remetente. Se o remetente não existe (comum com spammers), um novo email de erro é gerado para postmaster. 
Todo este tráfego pode ser evitado se após aceite uma mensagem nós verificarmos se a conta existe. Isto é possível através do RCPTCHECK.

Isto é feito com RCPTCHECK, que quando é habilitado ao chegar uma mensagem checa se o correio enviado pertence a dominios listados em /var/qmail/control/locals e verifica se a conta no servidor LDAP existe. Se a conta não existe, o correio é parado por qmail-smtpd com um erro 550. Para habilitar esta função se define a variável RCPTCHECK com um valor vazio.
Em /service/smtpd/tcp se adiciona:

127.:allow,RELAYCLIENT=""
192.168.101.:allow,RELAYCLIENT=""
allow,SMTPAUTH=”AUTHREQUIRED”,RBL="",RCPTCHECK=""

Se regera tcp.cdb e pronto.

Segurança

Além de ajustar um firewall e ter uma boa e patcheada instalação, você pode fazer duas coisas para aumentar a segurança: use SMTP AUTH e TLS. O primeiro irá deixar você fechar relay para qualquer um mas usuários com uma conta válida. Isto reduz o risco de seu servidor ser usado por um spammer ou spyware e você não precisa de pop-before-smtp para ninguém mais. A segunda opção (TLS) calculará todo seu tráfego SMTP, reduzindo o risco de seu tráfego na porta 25 seja sniffado. EM seguida nós explicamos como configurar estas duas características.

SMTP-AUTH permite relay para usuários com IPs dinamicos no qual não estão no arquivo tcp.cdb. Para habilitar isto, você precisa editar /service/smtpd/run e mudar a linha:
 
/var/qmail/bin/qmail-smtpd

para isto: 
/var/qmail/bin/qmail-smtpd /var/qmail/bin/auth_smtp /usr/bin/true

Adicionalmente você precisa definir a variável SMTPAUTH para aquelas classes no qual deverá usar isto. Precisa adicionar a strings 'SMTPAUTH=AUTHREQUIRED' para classes requisitadas em /service/smtpd/tcp e todas outras.

Exemplo:
127.:allow,RELAYCLIENT=""
192.168.1.:allow,RELAYCLIENT="",SMTPAUTH="AUTHREQUIRED"
:allow,SMTPAUTH="AUTHREQUIRED"

Isto irá habilitar SMTP AUTH para todos em: 192.168.1.x (192.168.1.). Somente o localhost (127.) não precisará passar pelo SMTP AUTH.

Para habilitar isto digite make no diretório do arquivo tcp:
 
# cd /service/smtpd
# make


TLS

Isto é possível para calcular todo tráfego SMTP com o protocolo TLS (Transport Layer Security). Para isto, você precisa ter compilado qmail-ldap com suporte TLS e gerar certificados apropriados. Para fazer isto, vá ao diretório qmail-ldap e faça o make cert.

# cd /usr/ports/mail/qmail-ldap/work/qmail-1.03/
# make cert


Quando você executa para fazer o cert, que lhe será perguntado dados básicos e um novo certificado de auto-assinatura será criado em /var/qmail/control/cert.pem, no qual será enviado para os usuários através da encriptação STARTTLS.

Agora avise o qmail-ldap onde poderá encontrar o certificado: 
 
# echo "/var/qmail/control/cert.pem" > /var/qmail/control/smtpcert

E habilite isto, reinicie smtpd:
 
# svc -t /service/smtpd

Você pode força que sempre todas as transações SMTP sejam encriptadas, mas tenha cuidado porque este pode causa vários problemas se você não souber o que está fazendo.
Se você está certo que deseja isto, faça:

# echo "TLSREQUIRED" > /service/smtpd/env/SMTPAUTH

MailDrop

Você pode marcar todo o spam (ou a maioria) com SpamAssassin. Mas o que você quer para deixar isto passar e armazenar automaticamente uma pasta específica do IMAP (algo como Yahoo ou Gmail)? Você pode fazer isto com maildrop, um programa para filtrar mensagens em algo muito similar para procmail. Com maildrop você pode fazer algumas coisas como, por exemplo, enviar emails entrantes de sua namorada e de todas as listas de discussão que você está inscrito para pastas IMAP diferentes. A sessão seguinte descreve como fazer isto.

Instalação

A lógica é isso:
Faça todo email entrando ser processador por maildrop. 

Configure maildrop para reconhecer o email entrante marcado pelo spamassassin e envia isto para uma pasta SPAM do IMAP.

Habilitando maildrop para usuários e qmail

Para habilitar maildrop, nós precisamos configurar os arquivos de controle apropriados, então um programa externo poderá ser usado e então mudar os atributos correntes para todo usuários com este recurso. Para ativar programas de terceiros globalmente no qmail, faça o seguinte:

# echo ldapwithprog>/var/qmail/control/ldapdefaultdotmode

Com o próximo conteúdo mude no atributo deliveryProgramPath para todo usuário que irá usar maildrop.
 
/usr/local/bin/maildrop

Para evitar emails duplicados, mude o atributo deliveryMode para:

nolocal

Configurando maildrop

Agora iremos criar um arquivo de configuração padrão para o maildrop. Isto está pronto em /usr/local/etc/maildroprc.

import HOME
import MAILDIRQUOTA

XBOUNCE="| bouncesaying 'Sorry, no mailbox here by that name.'"

if (/^X-Spam-Status: Yes/)
{
to "$HOME/Maildir/.Spam/"
}
if ( $HOME eq "" )
{
to "$XBOUNCE"
}
else
{
exception {
include "$HOME/.mailfilter"
}
exception {
to "$HOME/Maildir"
}
}
to "$HOME/Maildir"

Com isto todos os emails com o cabeçado X-Spam-Status: YES (marcado pelo SpamAssassin) será enviado para uma pasta IMAP chamado Spam. Isto irá também checar se nele existe um ~/.mailfilter para todo usuário, e se isso for encontrado, carregue o arquivo e então mude o comportamente para o usuário corrente. Por exemplo, se eu criar um ~/.mailfilter (/var/vmail/oarmas/.mailfilter) algo como:

if (/@spamassassin.apache.org/)
{
to "$HOME/Maildir/.SPAMASSASSIN/"
}

if (/^From:.* Este endereo de e-mail est sendo protegido de spam, voc precisa de Javascript habilitado para v-lo /)
{
to "$HOME/Maildir/.GIRLFRIEND/"
}

to "$HOME/Maildir/.MAIN/"
#to "$HOME/Maildir", to send the rest to INBOX

Irá fazer disso que qualquer email de @spamassassin.apache.org seja enviado para pasta SPAMASSASSIN (qual precisa ser criado após), e todos emails de Este endereo de e-mail est sendo protegido de spam, voc precisa de Javascript habilitado para v-lo será enviado para GIRLFRIEND. Todo o resto de email será enviado para pasta PRINCIPAL. Se você quiser enviar isto para INBOX, use a linha comentada. 

Pedimos que, por gentileza, enviem um feedback após a instalação, devido à falta de tempo e disponibilidade para testar a risco este artigo, sinta-se livre para sugerir ou criticar este documento.

Referência: Artigo oficial [http://www.qmail-ldap.org/wiki/Full_Installation_Guide] - Traduzido e modificado por Felippe de Meirelles Motta <lippe em NOSPAM fug ponto com ponto br>
Colaborador do Patch: Carlos Cesário <ccesario em NOSPAM tecnomega ponto com ponto br>

Comentrios


Comente!*
Nome:
E-mail
Homepage
Ttulo:
Comentrio:

Cdigo:* Code

ltima Atualizao ( 10/05/2007 )
 
< Anterior   Prximo >
FUG-BR - Espalhando BSD
Dicas Rpidas:
O portsclean(1) é uma ferramenta que limpa todo o diretório work/ do ports(7). Além de liberar espaço em disco ele é capaz de remover arquivos antigos que não possuem referência no /usr/ports/distfiles.

#portsclean -C
Limpa o diretorio work/

#portsclean -D

Limpa o diretorio distfiles/

#portsclean -i
Modo interativo, pergunta se você quer remover o arquivo

Recomendado
#portsclean -CDi
 






Wallpapers
Sua Opiniao
Online:
Ns temos 22 visitantes online


Devil Store - Sua loja BSD
FreeBSD Brasil LTDA

FUG-BR: Desde 1999, espalhando BSD pelo Brasil.