Em 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> |