Postfix + AD (Active Directory)

Tenho visto muita gente brigando para fazer o Postfix trabalhar bem com o AD, decidi contribuir com a minha solução para o problema. Gostaria de agradecer a ajuda do amigo José Arthur com o script de usuários AD, a documentação de Mauricio Bonani (http://bonani.cdmil.com.br) e as dicas de Deives Michellis (http://www.unitednerds.org/thefallen).

[ Hits: 177.681 ]

Por: Luiz Carlos Tomaz em 25/04/2007


Instalando ClamAV



Instale a última versão do ClamAV, você pode baixar o pacote em:
# tar -zxvf clamav-0.90.1.tar.gz
# cd clamav-0.90.1
# groupadd clamav
# useradd -g clamav -s/bin/false -c"ANTI-VIRUS Clamav" clamav
# ./clamav-0.90.1/configure --prefix=/usr --sysconfdir=/etc && make && make install


Edite o /etc/clamd.conf:

LogTime
LogSyslog
LogFile /var/log/clam/clamd.log
PidFile /var/run/clam/clamd.pid
LocalSocket /var/run/clam/clamd.sock
FixStaleSocket
MaxThreads 50
ThreadTimeout 600
MaxDirectoryRecursion 15
FollowFileSymlinks
SelfCheck 600
User clamav
ScanMail
ScanArchive
ArchiveMaxFileSize 10M
ArchiveMaxRecursion 5
ArchiveMaxFiles 1000

Foram usados os diretórios (inexistentes) /var/run/clam, /var/log/clam. Crie ambos e de permissoes para o usuario "clamav":

# mkdir /var/run/clam /var/log/clam
# chown -R clamav:clamav /var/run/clam /var/log/clam


Edite o arquivo clamav-filter.sh dentro de /var/libexec/postfix e dê permissão 0755:

PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin
PATH=$PATH:/usr/bin:/bin:/usr/X11R6/bin:/usr/games
export PATH
INSPECT_DIR=/var/spool/filter
SENDMAIL="/usr/bin/spamc -f -e /usr/sbin/sendmail -i "
MYHOSTNAME=`postconf -h myhostname`
REPORTHOST=`postconf -h myhostname`
EX_TEMPFAIL=75
EX_UNAVAILABLE=69
EX_DENIED=77
nome_arquivo=`date +%Y%m%d%H%M%S`
nome_arquivo=in.$$.$nome_arquivo
AVCMD="/usr/bin/clamdscan   --disable-summary --stdout "

NOTIFY_VIRUS=yes
NOTIFY_POSTMASTER=yes

viruscan() {
  VIRUS=`$AVCMD  $nome_arquivo`
  SAIDA=$?
  VIRUS=`echo $VIRUS | cut -d" " -f2-`
  if [ $SAIDA -eq 1 ]; then
    postlog -t postfix/virus-filter message-id=$msgid reject: VIRUS from=\<$from\> to=\<$rcpts\> 2>/dev/null
    if [ "$NOTIFY_VIRUS" = "yes" ]; then
      echo "From: Virus Scanner <mailer-daemon@$MYHOSTNAME>
Subject: AVISO: Email rejeitado: VIRUS Detectado
To: $from

Seu email para ($rcpts) com assunto ($subj) foi rejeitado por conter virus.

Virus encontrados: $VIRUS

" | $SENDMAIL -f MAILER-DAEMON -- $from
    fi

    if [ "$NOTIFY_POSTMASTER" = "yes" ]; then
      echo "From: Virus Scanner <mailer-daemon@$MYHOSTNAME>
Subject: Postmaster Copy: VIRUS Detectado
To: postmaster@$MYHOSTNAME

Um email de $from para ($rcpts) com assunto ($subj) foi rejeitado por conter virus.
Virus encontrados: $VIRUS

" | $SENDMAIL -f MAILER-DAEMON -- postmaster@$MYHOSTNAME
   fi
   exit 0
  fi
}
trap "rm -rf $nome_arquivo*" 0 1 2 3 15
cd $INSPECT_DIR || { echo $INSPECT_DIR does not exist; exit $EX_TEMPFAIL; }

cat >$nome_arquivo || { echo Cannot save mail to file; exit $EX_TEMPFAIL; }

from=$2
if [ "$from" != "--" ]; then
  shift
else
  $from=""
fi

shift ; shift

dominio=`echo $from | cut -d"@" -f2`
email=`echo $from | cut -d"@" -f1`
subj=`head -n 200 $nome_arquivo | grep -i "^Subject:" | cut -d":" -f2- | head -n 1`
msgid=`head -n 200 $nome_arquivo | grep -i "^message-id" | cut -d: -f 2- | sed 's/^ *//' | head -n 1`

saida="-f $from -- $@"
rcpts=$@

viruscan

$SENDMAIL $saida <$nome_arquivo

exit 0

# chmod 0755 clamav-filter.sh

Crie o diretório e dê permissão ao usuário clamav:

# mkdir /var/spool/filter
# chown clamav:clamav /var/spool/filter


Dentro de /etc/postfix/máster.cf, edite a linha:
smtp  inet    n       -       n       -       -       smtpd
Por:

smtp  inet    n       -       n       -       -       smtpd
           -o content_filter=clamav:clamav

E insira a linha:

clamav unix    -       n       n       -       -       pipe
        flags=Rq user=clamav argv=/usr/lib/postfix/clamav-filter.sh -f ${sender}  --  ${recipient}

Crie dentro de /etc/crontab uma linha com:

30 *    * * *   root    /etc/dominiomail/clamavdb.sh

Edite o arquivo /etc/crontab/clamavdb.sh:

#!/bin/bash
/usr/bin/freshclam --log-verbose --daemon-notify --daemon --checks=50 --log=/var/log/clam/freshclam.log
Página anterior     Próxima página

Páginas do artigo
   1. Ambiente
   2. Instalação Kerberos
   3. Instalação SAMBA
   4. Editando o nsswitch
   5. Instalando Apache
   6. Instalação Postfix
   7. Instalando sasl2
   8. Instalando Courier
   9. Script de usuários AD
   10. Instalação Spamassassin
   11. Instalando ClamAV
   12. Instalando Webmail
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Postfix com courier-pop de forma simples

POSTFIX + SASL - Autenticando em SMTP remoto

Postfix - Relay agent

Debian + Postfix + MySQL + PostfixAdmin + MailScanner + Webmail + Quotas

Clamav com Mailscanner para Postfix

  
Comentários
[1] Comentário enviado por dailson em 25/04/2007 - 10:05h

Excelente artigo.
Parabéns

Dailson

[2] Comentário enviado por rogeriosap em 25/04/2007 - 11:10h

Parabens


Este artigo esta muito completo e bem explicado sobre o assunto.

Rogério

[3] Comentário enviado por thelinux em 25/04/2007 - 11:39h

luiz.tomaz parabéns pelo artigo. Não cheguei a ler todo o teu artigo, mas vai um contribuição: é importante a sincronização de horários do Linux e o Windows com o AD.

[4] Comentário enviado por balani em 25/04/2007 - 12:50h

Parabens pelo artigo, eu estava tentando fazer o mesmo, seu artigo está me ajudando muito. VLW

[5] Comentário enviado por robertofonseca em 25/04/2007 - 15:21h

Cara eu não entendi muito bem o script para usuarios do AD. Como o postfix vai entender esses usuários? A cada alteração de senha de usuarios por exemplo, o ad vai estar replicando pro postfix? Tenho um Suse que já loga no AD, já faz parte do dominio, preciso também executar esse script?

[6] Comentário enviado por luiz.tomaz em 25/04/2007 - 16:55h

Na verdade, o objetivo do script é só criar e deletar os diretorios de mail dos usuários, autenticar e perceber as alterações de senha é função do Winbind.

Vc percebe bem a função do script analisando a saida do comando wbinfo -u

[7] Comentário enviado por robertofonseca em 25/04/2007 - 17:20h

Cara eu fiz todos procedimentos descritos, com exceção da parte de ssl no apache e comentei as linhas referentes a ssl no main.cf. Porém depois na hora configurar o outlook ele não esta autenticando. Nem pra pop nem pra smtp. Eu uso Suse 10.1 e o meu suse já estava autenticando no Active Directory via kerberos. Tens idéia de onde estou errando?

[8] Comentário enviado por Osky_CG.W em 26/04/2007 - 21:05h

Samba, Apache, antispam, antivírus etc, etc e está tudo na caixa!

Arrebentou!

Obrigado pelo artigo.. muito bom []s

[9] Comentário enviado por fabiotux em 27/04/2007 - 09:19h

Adorei essa solução Estou acostumado a usar o qmail e a integração dele com o AD é muito mais complicada que a do Postfix, porém eu gostaria de tirar uma dúvida:
Os usuários criados no meu AD disparam automaticamente a criação da conta de email no Postfix?

Grato!
Fábio LittleTux®

[10] Comentário enviado por gzanatta00 em 05/06/2007 - 08:15h

amigo estou com um problema q ja me atormenta
a muito tempo, meu servidor de e-mail envia e recebe
e-mails por um unico ip ex: 200.180....3,
que esta configurado dentro do bind ex:
pop3 IN A 200.180....3
smtp IN A 200.180....3
mail IN A 200.180.....3
E DENTRO DOs .cf que esta no diretorio
/etc/postfix, ..... entao eu pensei o seguinte
fazer com que o servidor enviasse e-mails pelo ip
200.180....4, e recebesse pelo ip 200.180...3
pq estou caindo quase todos os dias nas listas negras
e ja me cansei se ficar liberando e tal....
so que nao sei qual os arquivos q tenho q mudar...
ou se existe outra forma de acabar com isso

me de uma ajuda ai..

[11] Comentário enviado por regisnr em 20/06/2007 - 17:28h

Faltam alguns pequenos grandes detalhes no how-to...além dos erros de digitação e de dependências..

Tem que adicionar o usuário do postfix no grupo sasl

adduser postfix sasl

Quem está com problema de autenticação SMTP essa é a solução.

Para quem rodou o script e o mesmo não fidelizou as permissões nas pastas dos usuários, na linha chown....coloque . após {i}

Mas vamos lá um dia encontraremos um how-to COMPLETO passo-a-passo!!!

Abs

No mais quase 10...

[12] Comentário enviado por hlbomfim em 22/06/2007 - 09:38h

como faço pra mandar um e-mail para o grupo de trabalho do win2003. tem como replicar para todos os membros do grupo?

[13] Comentário enviado por augustoferronato em 08/08/2007 - 10:23h

Eu instalei tudo aqui e tal, só que quando eu logo no Squirremail ele fica com a tela branca??? O que pode estar acontecendo?

Abs[]

[14] Comentário enviado por fgallego em 21/08/2007 - 11:28h

Instalei tudo conforme o tutorial, porém quando uso smtp autenticado me dá o seguinte erro:

warning: SASL authentication failure: cannot connect to saslauthd server: Permission denied

Já pesquisei muito e não encontrei nada que solucionasse. Alguem sabe o que pode estar errado?

Abraços

[15] Comentário enviado por fgallego em 21/08/2007 - 11:43h

O problema acima foi resolvido adicionando o usuário do postfix no grupo do sasl:

usermod -G postfix,sasl postfix

[16] Comentário enviado por auditor em 22/10/2007 - 16:19h

galera, aqui qndo testo o envio de email por telnet a saida do mail.log eh a seguinte:
"warning: maildir access problem for UID/GID=10011/10000: create maildir file /home/MEUDOMINIO/MYUSER/Maildir/tmp/1193080190.P27931.deb: Permission denied"

e com isso ele nao consegue criar as pastas..parece que ele reclama dos uids e gids configurado no smb.conf. alguma sugestao?

Obrigado.

[17] Comentário enviado por almssp em 11/12/2007 - 00:37h

ae galera meu samba está funcionando corretamente mas a autenticação do email não está não toda vez que tento logar com usuário local ou do AD ele me dá login failed pelo log. e no squirrel tenho um usuario ou senha incorreta.

[18] Comentário enviado por fabiojs em 29/04/2008 - 12:14h

Segui todos os passos, aparentemente tudo deu certo, so que quando tendo enviar email da um erro e gera o seguinte log

Apr 29 11:56:01 localhost postfix/smtpd[3666]: initializing the server-side TLS engine
Apr 29 11:56:01 localhost postfix/smtpd[3666]: cannot load Certificate Authority data
Apr 29 11:56:01 localhost postfix/smtpd[3666]: connect from localhost[127.0.0.1]
Apr 29 11:56:01 localhost postfix/smtpd[3666]: lost connection after UNKNOWN from localhost[127.0.0.1]
Apr 29 11:56:01 localhost postfix/smtpd[3666]: disconnect from localhost[127.0.0.1]

Alguem pode me dar uma ajuda? Obrigado

[19] Comentário enviado por Emmanuel Santini em 13/06/2008 - 15:44h

muito bacana esse skin do webmail!!

Parabéns pelo artigo.

[]'s
Emmanuel

[20] Comentário enviado por dastrevasbr em 26/06/2008 - 18:29h

Pessoal, seque erro demostrado ao executar o script!

main.sh: line 9: ${ARQ_AD}: ambiguous redirect
Error looking up domain users
comm: missing operand after `/etc/dominiomail/local'
Tente `comm --help' para mais informação.
comm: missing operand after `/etc/dominiomail/local'
Tente `comm --help' para mais informação.

[21] Comentário enviado por matheus.silva em 06/07/2008 - 18:37h

Muito bacana mesmo o skin do squirrel. Me ajudou muito aqui hehe.

E Parabéns pelo Artigo.

[]'s
Matheus

[22] Comentário enviado por pablitocwb em 04/09/2008 - 09:02h

Aparentemente muito simples e facil de fazer porem não funciona....


[23] Comentário enviado por terranova em 16/10/2008 - 00:22h

Pessoal, preciso implementar essa solução na empresa em que trabalho, só que o dominio do windows é empresa.local e o dominio na internet é empresa.com, seria possivel serguir este tutorial ou não é possivel fazer essa implementação pelo fato dos dominios serem diferente ?

[24] Comentário enviado por infortecpfz em 17/09/2009 - 14:05h

Parabéns pelo Artigo!

Me esclareça uma dúvida por favor! Eu preciso configurar um grupo de e-mail para meu domínio,
semelhante aos grupos do Yahoo! e Google Grupos, para quando eu enviar um e-mail para
@meudominio.com.br todos que tiveram conta cadastrada neste domínio receba a mesma
mensagem, poderia me auxiliar no mesmo por favor? Muito obrigado :wq



Fernando Santorsula

[25] Comentário enviado por jorge_piotto em 29/10/2009 - 18:26h

SO FALO UMA COISA!!!
ESSE É O TOMAZ!!!
UMA FIGURA QUE TENHO O PRAZER DE CONHECER PESSOALMENTE!!!

ISSO É SO UM MILHONESIMO DO QUE ESSA RAPAZ CONHECE!!!

ELE É REALMENTE GENIAL!!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts