FUG-BR / Grupo Brasileiro de Usuarios de FreeBSD - Instalao de servidor de email com QMAIL usando o ports do FreeBSD
 
08.07  
Inicio arrow Artigos arrow Instalao de servidor de email com QMAIL usando o ports do FreeBSD
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


Instalao de servidor de email com QMAIL usando o ports do FreeBSD PDF Imprimir E-mail
Por Carlos A. Talhati   
25/08/2006
ndice de Artigos
Instalao de servidor de email com QMAIL usando o ports do FreeBSD
Parte 2

logo qmailNeste artigo apresentaremos de forma simples e clara como disponibilizar um servidor de email utilizando o ports QMAIL_SPAMCONTROL. Este port permite várias configurações de combate ao spam que minimizam o trabalho do administrador de sistemas. Todos os softwares necessários para um funcionamento completo do servidor também está disponível aqui, do pop ao webmail. Essa é a versão atualizada do how-to anteriormente acessível aqui . Atualizem seus bookmarks.

Sistema usado :

FreeBSD xxx.xxx.br 6.1-RELEASE FreeBSD 6.1-RELEASE #3: Wed May 10 19:18:56 BRT 2006
Este endereo de e-mail est sendo protegido de spam, voc precisa de Javascript habilitado para v-lo :/usr/obj/usr/src/sys/xxx.xxx.br i386

Antes de começar uma nova instalação é aconselhável atualizar sua arvore do ports. O FreeBSD a partir da versão 5.5 diponibilizou um recurso chamado portsnap. Com ele é possível manter a arvore do ports atualizada.

Deve demorar um pouco, são aproximandamente 40MB o download do portsnap (fetch), em seguida deve se descompactar o ports e depois atualizar. Esse procedimento (extract) e o fetch de 40Mb acontece apenas na primeira vez, nas proximas basta um portsnap fetch update.

# portsnap fetch
# portsnap extract
# portsnap updade

Após estes primeiros passos, basta adicionar ao seu crontab a seguinte linha para manter sua arvore do ports atualizada.

0 3 * * * root portsnap cron update && pkg_version -vIL=

Também é seguro habilitar a checagem de vulnerabilidades do ports antes de instalar. Para isto instale o portaudit.

# cd /usr/ports/security/portaudit
# make install clean
# /usr/local/sbin/portaudit -Fda

Antes de instalar o QMAIL com o pacote do SPAMCONTROL conheça as opções disponíveis neste port e não deixe de ler o documento: http://www.fehcom.de/qmail/spamcontrol/README_spamcontrol.html

Config Spamcontrol

BIG-CONCURRENCY : (http://www.qmail.org/big-concurrency.patch): Este patch faz com que o qmail possa processar mais de 255 mensagens de uma vez no queue. Assim se a máquina for boa e com grande volume de mensagens simultâneas, o servidor poderá processá-las mais rapidamente.
LOCALTIME_PATH : Envia email com a hora local configurada no servidor, ao inves de usar a hora GMT.
MAILDIRQUOTA_PATCH : Suporte a Maildir++
SPF_PATCH : Patch para suporte a SPF
EXTTODO_PATCH : Patch que organiza melhor a fila, divide a fila, separa os remotes, os locals e com isso aumenta o desempenho.
RELAYMAILFROM : Define quem pode enviar email a partir de seu servidor. Mais seguro usar autenticação SMTP.
REQBRACKETS
: Requer que o endereço de email contenha o caracter "<" e ">", por exemplo < Este endereo de e-mail est sendo protegido de spam, voc precisa de Javascript habilitado para v-lo >.
VERP : Utiliza Return-Path por usuário (VERP - Variable Envelope Return Paths). Isto faz com que qmail-inject adicione cada endereço de recipiente no sender da cópia da mensagem que está indo para este usuário.
MOREIPME
: Scott Gifford's adicional arquivos de controle com moreipme e notipme
BIGTODO : Bruce Guenter's BigToDo patch
RCDLINK : Cria "script" qmail.sh em seu diretorio rc.d

# cd /usr/ports/mail/qmail-spamcontrol
# make config
# make install clean

Habilitar o QMAIL como padrão

# /var/qmail/scripts/enable-qmail

Antes é imprescindível adicionar esta linha no /etc/make.conf sob pena de todas as demais dependências deste port serem tratadas pelo port do QMAIL e não do QMAIL-SPAMCONTROL, gerando uma série de erros durante a instalação.

# Define qual slaveport do qmail sera usado
QMAIL_SLAVEPORT=spamcontrol

Verificar se o arquivo /etc/mail/mailer.conf está correto como abaixo:

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

Verificar se a variavel sendmail_enable="NONE" foi adicionada no final do /etc/rc.conf

Instalar o UCSPI-TCP

# cd /usr/ports/sysutils/ucspi-tcp
# make install clean

Não esqueça de selecionar o patch RSS_DIFF e RBL2SMTPD

A opção RBL2SMTPD funciona da seguinte maneira : vc tem o usuario x, é um usuário válido, ele quer mandar email, porém o mesmo usa uma rede de banda larga com IP dinâmico e este IP está em uma RBL, o RBLSMTP não vai dar a chance dele se autenticar e provar que ele é "quente" e vai cortar sua conexão antes do QMAIL-SMTPD. Este patch permite cortar a conexão depois do RCPT TO se o usuário não se autenticar e se ele autenticar sua conexão é mantida.

A opção SSL, ela somente é necessaria se for montar um pop3 e/ou um smtp com SSL

Tela de Instalao

Instalar o UCSPI-SSL-TLS se for utilizar o TLS

Ferramentas UCSPI para construir aplicações cliente-servidor com suporte à TLS

# cd /usr/ports/sysutils/ucspi-ssl-tls
# make install clean

Instalação do DAEMONTOOLS

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

Criação do daemontools em /var/qmail/service usando o qmail-conf

Instalação do QMAIL-CONF

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

Habilitando o serviço POP3D

# /var/qmail/bin/qmail-pop3d-conf \
      /usr/local/vpopmail/bin/vchkpw qmaill \
      /var/qmail/service/pop3d
# cd /var/qmail/service/pop3d/
# ee tcp
:allow
# make

Habilitando o serviço SMTP

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

Quando seu servidor não estiver configurado em um servidor de DNS, pode ocorrer o erro de "fatal: unable to read /var/qmail/control/me: file does not exist" , isto porque a instalação do QMAIL não criou o arquivo /var/qmail/control/me

Para resolver o problema faça o seguinte :
# echo seuservidor.com.br > /var/qmail/control/me
e continue a instalação.

Criação do script do smtpd que usará autenticação e verificação de spam em blacklists.

# cd /var/qmail/service/smtpd
# cat run
#######################################################

#!/bin/sh
exec 2>&1 \
envdir ./env \
sh -c '
case "$REMOTENAME" in h) H=;; p) H=p;; *) H=H;; esac
case "$REMOTEINFO" in r) R=;; [0-9]*) R="t$REMOTEINFO";; *) R=R;; esac
exec \
envuidgid qmaild \
softlimit ${DATALIMIT+"-d$DATALIMIT"} \
/usr/local/bin/tcpserver \
-vDU"$H$R" \
${LOCALNAME+"-l$LOCALNAME"} \
${BACKLOG+"-b$BACKLOG"} \
${CONCURRENCY+"-c$CONCURRENCY"} \
-xtcp.cdb \
-- "${IP-0}" "${PORT-25}" \
/usr/local/bin/rblsmtpd -r bl.spamcop.net \
/var/qmail/bin/qmail-smtpd /usr/local/vpopmail/bin/vchkpw /usr/bin/true
'
#######################################################

DELIVERY: Crie um script /var/qmail/rc com o seguinte conteudo:

# cd /var/qmail
# ee rc
#######################################################
#!/bin/sh
exec env - PATH="/var/qmail/bin:$PATH" \
qmail-start ./Maildir/ /usr/local/bin/multilog t /var/log/qmail qmaill
#######################################################
# chmod 750 /var/qmail/rc
# /var/qmail/bin/qmail-delivery-conf qmaill /var/qmail/service/qmail

Criação do diretorio de log do QMAIL

# mkdir /var/log/qmail
# chmod 750 /var/log/qmail
# chown qmaill /var/log/qmail

Configurando o DAEMONTOOLS

# mkdir /var/service
# cd /var/service
# ln -s /var/qmail/service/pop3d
# ln -s /var/qmail/service/smtpd
# ln -s /var/qmail/service/qmail

Redirecionando os emails

# echo Este endereo de e-mail est sendo protegido de spam, voc precisa de Javascript habilitado para v-lo > /var/qmail/alias/.qmail-root
# echo Este endereo de e-mail est sendo protegido de spam, voc precisa de Javascript habilitado para v-lo > /var/qmail/alias/.qmail-postmaster
# echo Este endereo de e-mail est sendo protegido de spam, voc precisa de Javascript habilitado para v-lo > /var/qmail/alias/.qmail-mailer-daemon
# ln -s .qmail-postmaster /var/qmail/alias/.qmail-abuse
# chmod 644 /var/qmail/alias/.qmail-root /var/qmail/alias/.qmail-postmaster

Antes não esqueça de verificar no rc.conf se contém a linha: svscan_enable="YES"

Configuração do SSL para rodar o TLS

Estes passos são necessários se pretende usar o TLS, caso contrário não há nenhuma necessidade.

Referências sobre SSL - http://www.suspectclass.com/~sgifford/ucspi-tls/ucspi-tls-qmail-howto.html

Cria o diretorio
# mkdir /var/qmail/ssl
# cd /var/qmail/ssl
Cria o certificado
# openssl req -new -x509 -keyout key.enc -out cert -days 360
# openssl rsa -in key.enc -out key
Remove a senha
# openssl dhparam -out dhparam 1024
Cria grupo e usuário
# pw group add ssl
# pw user add -n ssl -g ssl -c "SSL User" -d /var/qmail
Criar um arquivo chamado /var/qmail/ssl/env
# ee /var/qmail/ssl/env

# Set these three
SSL_USER=ssl
SSL_GROUP=ssl
SSL_DIR=/var/qmail/ssl
# Enable UCSPI-TLS
UCSPITLS=1
# The rest are set based on the above three
SSL_CHROOT="$SSL_DIR"
CERTFILE="$SSL_DIR/cert"
KEYFILE="$SSL_DIR/key"
DHFILE="$SSL_DIR/dhparam"
SSL_UID=`id -u "$SSL_USER"`
if [ $? -ne 0 ]; then echo "No such user '$SSL_USER'" >&2; exit; fi
# SSL_GID=`id -g "$SSL_GROUP"`
SSL_GID=`pw group show $SSL_GROUP | awk -F: '{print $3}'`
if [ $? -ne 0 ]; then echo "No such group '$SSL_GROUP'" >&2; exit; fi
# Export the variables used by other scripts
export SSL_CHROOT SSL_UID SSL_GID UCSPITLS CERTFILE KEYFILE DHFILE

# cd /var/qmail
# chown -R root:qmail ssl
# chmod -R go-rwx ssl
# cd /var/service/smtpd


Alterar o arquivo run e adicionar a linha . /var/qmail/ssl/env abaixo de #!/bin/sh. Substituir no arquivo run, tcpserver por sslserver,  o arquivo deve ficar assim:


#!/bin/sh
. /var/qmail/ssl/env
exec 2>&1 \
envdir ./env \
sh -c '
case "$REMOTENAME" in h) H=;; p) H=p;; *) H=H;; esac
case "$REMOTEINFO" in r) R=;; [0-9]*) R="t$REMOTEINFO";; *) R=R;; esac
exec \
envuidgid qmaild \
softlimit ${DATALIMIT+"-d$DATALIMIT"} \
/usr/local/bin/sslserver -n -e \
-vDU"$H$R" \
${LOCALNAME+"-l$LOCALNAME"} \
${BACKLOG+"-b$BACKLOG"} \
${CONCURRENCY+"-c$CONCURRENCY"} \
-xtcp.cdb \
-- "${IP-0}" "${PORT-25}" \
/usr/local/bin/rblsmtpd -b \
-r bl.spamcop.net \
-r list.dsbl.org \
-r sbl.spamhaus.org \
-r relays.ordb.org \
/var/qmail/bin/qmail-smtpd /usr/local/vpopmail/bin/vchkpw /usr/bin/true
'

# cd /var/service/pop3d

Realizar as mesmas alterações acima no arquivo run

Em caso de erros estranhos, va até os diretorios /var/qmail/service/smtpd/env e /var/qmail/service/pop3d/env e altere o conteudo do arquivo DATALIMIT para algo em torno de 40000000

Instalação do VPOPMAIL para criação de domínios virtuais.

Antes é aconselhável adicionar estas linhas no /etc/make.conf

# Vpopmail
.if ${.CURDIR:N*mail/vpopmail}==""
RELAYCLEAR=40
DEFAULT_DOMAIN=seudominio.com.br
WITH_IP_ALIAS=yes
WITH_SUID_VCHKPW=yes
WITH_SMTP_AUTH_PATCH=yes
.endif

Instalação do VPOPMAIL

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

Criando dominio e usuários

# /usr/local/vpopmail/bin/vadddomain seudominio-virtual.com.br suasenha

Verifica se criou corretamente

# ll /usr/local/vpopmail/domains/
# /usr/local/vpopmail/bin/vdominfo seudominio-virtual.com.br

Cria usuario Este endereo de e-mail est sendo protegido de spam, voc precisa de Javascript habilitado para v-lo com quota = 15000 bytes, com comentário "Usuario da diretoria" e senha suasenha

# /usr/local/vpopmail/bin/vadduser -q 15000 -c "Usuario da diretoria" Este endereo de e-mail est sendo protegido de spam, voc precisa de Javascript habilitado para v-lo suasenha

Verifica se criou corretamente

# /usr/local/vpopmail/bin/vuserinfo Este endereo de e-mail est sendo protegido de spam, voc precisa de Javascript habilitado para v-lo

Vamos instalar agora o Anti-spam e o Anti-virus utilizando o QMAIL-SCANNER

Antes é aconselhável adicionar estas linhas no /etc/make.conf

# CLAMAV User / Group
.if ${.CURDIR:N*security/clamav}==""
CLAMAVUSER=qscand
CLAMAVGROUP=qscand
.endif

# maildrop
.if ${.CURDIR:N*mail/maildrop}==""
MAILDROP_SUID=vpopmail
MAILDROP_SGID=vchkpw
.endif

# Precisa do suidperl pro qmail-scanner
.if ${.CURDIR:N*lang/perl5*}==""
ENABLE_SUIDPERL=yes
.endif

# Qmail-scanner
.if ${.CURDIR:N*mail/qmail-scanner*}==""
QMAILSCAN_ADMIN= Este endereo de e-mail est sendo protegido de spam, voc precisa de Javascript habilitado para v-lo
QMAILSCAN_ADMINREALNAME="Nome_de_sua_empresa"
QMAILSCAN_LOCALDOMAINS="seudominio.com.br"
QMAILSCAN_NOTIFY="psender,nmladm"
QMAILSCAN_SCANNERS="clamdscan,verbose_spamassassin"
QMAILSCAN_LANG=pt_BR
.endif


Instalação do ANTISPAM

Configurao do Spamassassim

# cd /usr/ports/mail/p5-Mail-SpamAssassin
# make install clean

Para que a instalação do Anti-virus (ClamAV) seja efetuada de forma correta, é necessário que o usuário "qscand" esteja criado. Quem faz a criação deste usuário é o QMAIL-SCANNER. O QMAIL-SCANNER para instalar precisa que o anti-virus já esteja instalado, portanto aqui nesta linha vamos dizer ao QMAIL-SCANNER para somente criar o usuário de forma correta e não prosseguir com a instalação. Assim instalamos o ClamAV de forma correta e depois o QMAIL-SCANNER.

# /usr/bin/env PKG_PREFIX=/usr/local /bin/sh /usr/ports/mail/qmail-scanner/pkg-install qmail-scanner PRE-INSTALL

Instalação do ANTIVIRUS

Selecione a opção stderr, isto permite o uso no smtp log. Também já é uma preparação para o novo QMAIL-SPAMCONTROL 2.4.

Configurao do Anti-virus

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

Não se esqueça de adicionar em seu rc.conf as linhas abaixo

# Liga/Desliga o spamd
spamd_enable="YES"
spamd_flags="-u qscand -c -d -r /var/run/spamd.pid --socketpath=/var/run/spamd.socket --socketowner=qscand \
--socketgroup=qscand"
# clamav
clamav_clamd_enable="YES"
clamav_freshclam_enable="YES"

Também é necessário que o spamd esteja rodando antes de instalar o QMAIL-SCANNER senão ele usa o spamassassim, para isto faça :

# /usr/local/etc/rc.d/sa-spamd.sh start

Instalação do QMAIL-SCANNER

# cd /usr/ports/mail/qmail-scanner/
# make install
# /usr/local/bin/qmail-scanner-queue.pl -z

Se necessário aumente o valor do softlimit para algo em torno de 4000000. Geralmente um valor baixo gera um erro "qq temporary problem (#4.3.0)".

# ee /var/qmail/service/smtpd/env/DATALIMIT

Ajustes em quem deve enviar email do seu servidor de forma autenticada e verificando a existencia de virus e spam.

# ee /var/qmail/service/smtpd/tcp

127.:allow,RELAYCLIENT="",RBLSMTPD="",QMAILQUEUE="/usr/local/bin/qmail-scanner-queue.pl"
10.0.0.:allow,RBLSMTPD="",QMAILQUEUE="/usr/local/bin/qmail-scanner-queue.pl"
172.16.:allow,RBLSMTPD="",REQUIREAUTH="",QMAILQUEUE="/usr/local/bin/qmail-scanner-queue.pl"
:allow,MFDNSCHECK="",SMTPAUTH="crammd5",BADMIMETYPE="",RBLSMTPD="",REQBRACKETS="",
TARPITCOUNT="10",TARPITDELAY="10",HELOCHECK=".",QMAILQUEUE="/usr/local/bin/qmail-scanner-queue.pl"

Após a alteração execute o comando make

REQUIREAUTH : se ela for setada, não entrará nenhum email sem autenticação(auth), somente serve para smtpd, se for um mx não pode de maneira alguma pois os outros smtps nao poderao enviar emails para seus usuários

Alguns exemplos de conexões

0.0.0.0:allow,RBLSMTPD="TEST_LIST test illegal addr-to-be-treated-as-hostname [0.0.0.0]"
0.1.2.3:allow,RBLSMTPD="TEST_LIST test illegal addr-to-be-treated-as-hostname [0.1.2.3]"
255.255.255.255:allow,RBLSMTPD="TEST_LIST test illegal addr-to-be-treated-as-hostname [255.255.255.255]"
# Exemplo de blacklist por reverso
=.dialuol.com.br:allow,RBLSMTPD="BLOQUEADO / BLOCKED"
# Conexoes normais
:allow,BADMIMETYPE="",REQBRACKETS="",TARPITCOUNT="10",TARPITDELAY="10",
HELOCHECK=".",LOCALMFCHECK=""

BADMIMETYPE, isso é pra você bloquear anexos pelo MIME type.

# cd /var/qmail/control
# ee badmimetypes

TVqAAAEAA
TVqQAAMAA
TVpQAAIAA
TVpAALQAc
TVpyAXkAX
TVrmAU4AA
TVrhARwAk
TVoFAQUAA
TVoAAAQAA
TVoIARMAA
TVouARsAA
TVrQAT8AA
TVrvAEQAe
# MyDoom (*.zip)
# UEsDBAoAA
# *.zip
# UEsDBAkAA
# *.z (gnu-zip)
# H4sIADWWb
# double Base 64 Windows Executable
VFZxUUFBT
# triple Base 64 Windows Executable
VkZaeFVVR
# Pif File
TVoAAAEAA
# VBS Files
ZGltIGZpb
# RAR Files
# UmFyIRoHA

Após qualquer alteração no arquivo acima é necessario executar o arquivo /var/qmail/bin/qmail-badmimetypes para que o arquivo cdb seja recriado.

A variável TARPIT$ (TARPITCOUNT) define o número de destinatários seguidos, ele vai fazer um delay de ${TARPITDELAY} segundos isso dificulta a vida de spammers

A variável HELOCHECK="." é útil no caso de algum usuário passar alguma informação no campo HELO. Abaixo alguns exemplos extraídos do manual do SPAMCONTROL

HELOCHECK="": evaluate badhelo  control file
HELOCHECK="!": reject session, if no HELO/EHLO greeting is provided/empty.
HELOCHECK=".": reject session, if no HELO/EHLO greeting is provided/empty and evaluate badhelo control file
HELOCHECK="=": require that the HELO/EHLO greeting corresponds to the FQDN of the host.
HELOCHECK="A": DNS A lookup for the HELO/EHLO greeting and evaluate badhelo.
HELOCHECK="M": DNS MX lookup for the HELO/EHLO greeting and evaluate badhelo.

A variável LOCALMFCHECK="" é útil quando um usuário autentica o From que tem que ser @aqueledominio, isso evita que algum usuário interno envie spam ou entao se algum spammer conseguir a senha de um usuário.

Pode se optar por colocar estas variáveis diretamente dentro do arquivo run do smtpd, ao invés de colocá-las no tcp.

export RBL2SMTPD=""
export MFDNSCHECK=""
export BADMIMETYPE=""
export SMTPAUTH="login"

Configurando o SPAMASSASSIN

Após esta instalação é interessante que seja criado um diretorio .spamassassin no /usr/local/qmailscan

Depois que o diretório foi criado, crie um link simbólico user_prefs apontando para a configuração do spamassassin (local.cf)

# cd
# mkdir
/usr/local/qmailscan/.spamassassin
# cd /
# mv /usr/local/etc/mail/spamassassin/local.cf.sample /usr/local/etc/mail/spamassassin/local.cf
# ln -s usr/local/etc/mail/spamassassin/local.cf
/usr/local/qmailscan/.spamassassin/user_prefs
# chown -R qscand:qscand
/usr/local/qmailscan/.spamassassin

Agora não se esqueça de inicializar os serviços instalados.

# /usr/local/etc/rc.d/clamav-clamd start
# /usr/local/etc/rc.d/clamav-freshclam start
# /usr/local/etc/rc.d/sa-spamd start
# /usr/local/etc/rc.d/svscan.sh start

Abaixo para conferência os dois arquivos que foram modificados durante a instalação.

# cat /etc/rc.conf

sendmail_enable="NONE"
svscan_enable="YES"

# Liga/Desliga o spamd
spamd_enable="YES"
spamd_flags="-u qscand -c -d -r /var/run/spamd.pid --socketpath=/var/run/spamd.socket --socketowner=qscand\
--socketgroup=qscand"

# clamav
clamav_clamd_enable="YES"
clamav_freshclam_enable="YES"

# cat /etc/make.conf

# Define qual slaveport do qmail sera usado

QMAIL_SLAVEPORT=spamcontrol
# Vpopmail
.if ${.CURDIR:N*mail/vpopmail}==""
RELAYCLEAR=40
DEFAULT_DOMAIN=seudominio.com.br
WITH_IP_ALIAS=yes
WITH_SUID_VCHKPW=yes
WITH_SMTP_AUTH_PATCH=yes
.endif

# CLAMAV User / Group
.if ${.CURDIR:N*security/clamav}==""
CLAMAVUSER=qscand
CLAMAVGROUP=qscand
.endif

# maildrop
.if ${.CURDIR:N*mail/maildrop}==""
MAILDROP_SUID=vpopmail
MAILDROP_SGID=vchkpw
.endif

# Precisa do suidperl pro qmail-scanner
.if ${.CURDIR:N*lang/perl5*}==""
ENABLE_SUIDPERL=yes
.endif

# Qmail-scanner
.if ${.CURDIR:N*mail/qmail-scanner*}==""
QMAILSCAN_ADMIN= Este endereo de e-mail est sendo protegido de spam, voc precisa de Javascript habilitado para v-lo
QMAILSCAN_ADMINREALNAME="Nome _da_Instituição"
QMAILSCAN_LOCALDOMAINS="servidor.com.br"
QMAILSCAN_NOTIFY="psender,nmladm"
QMAILSCAN_SCANNERS="clamdscan,verbose_spamassassin"
QMAILSCAN_LANG=pt_BR
.endif

# Qmailadmin
.if ${.CURDIR:N*mail/qmailadmin}==""
WITH_DOMAIN_AUTOFILL=yes
WITH_MODIFY_QUOTA=yes
CGIBINDIR= www/cgi-bin
CGIBINSUBDIR=
CGIBINURL= /cgi-bin
WEBDATADIR= www/data
WEBDATASUBDIR= qmailadmin
WEBDATAURL=
.endif

# added by use.perl 2006-05-03 15:39:06
PERL_VER=5.8.8
PERL_VERSION=5.8.8

Pronto seu servidor está pronto para enviar e receber email com segurança e "praticamente" livre de spam e virus.

Para facilitar o trabalho de manutenção de dominios e usuários, vamos agora instalar o QMAILADMIN, um aplicativo que permite que os dominios e usuários virtuais do VPOPMAIL sejam criados através da WEB. Para isto voce deverá ter o APACHE instalado e rodando em seu servidor. Uma outra opção interessante sera usar o LIGHTTPD. O Lighttpd foi desenvolvido para ser um servidor rápido, seguro, compatível e flexivel. Possui suporte a virtualhost, url-rewrite, large files, fastcgi, cgi, ssi, php e varios outros.

Antes é aconselhavel adcionar estas linhas no /etc/make.conf

# Qmailadmin
.if ${.CURDIR:N*mail/qmailadmin}==""
WITH_DOMAIN_AUTOFILL=yes
WITH_MODIFY_QUOTA=yes
CGIBINDIR= www/cgi-bin
CGIBINSUBDIR=
CGIBINURL= /cgi-bin
WEBDATADIR= www/data
WEBDATASUBDIR= qmailadmin
WEBDATAURL=
.endif

Instalando o QMAILADMIN

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

Algumas telas do QMAILADMIN. Com ele a manutenção de dominios e usuários se torna muito facíl e intuitiva. No QMAILADMIN, os usuários podem por exemplo colocarem mensagens de férias ou redirecionar sua conta para outra, trocar senha.

Administrao do Qmailadmin Administrao do Qmailadmin Administrao do Qmailadmin

Se o seu apache gerar algum erro na execução do QMAILADMIN, adicione estas linhas no seu httpd.conf

<Directory "/usr/local/www/cgi-bin/qmailadmin">
deny from all
Options ExecCGI
AllowOverride AuthConfig
Order deny,allow
</Directory>

Super dicas

  • Em nenhuma hipótese coloque espaço em branco na variável QMAILSCAN_ADMINREALNAME="Nome_de_sua_empresa" no make.conf;
  • Não poderá haver espaços em branco antes do .if e .endif no make.conf;
  • Nas variáveis do diretório /var/qmail/service/smtpd/env/, não poderá haver espaços adicionais ou comentários;
  • Para quem usa o vpopmail e quer que todos os domínios fiquem no vpopmail a variável /var/qmail/control/locals deve ficar vazia.

Instalando o COURIER-IMAP

Configurao do COURIER-IMAP

# cd /usr/ports/mail/courier-imap
# make install clean
# cd /usr/local/etc/courier-imap
# cp imapd.cnf.dist imapd.dist

Adicionar estas linhas no /etc/make.conf

# courier-imap
courier_authdaemond_enable="YES"
courier_imap_imapd_enable="YES"

Adicionar estas linhas no /etc/rc.conf

# courier-imap
courier_authdaemond_enable="YES"
courier_imap_imapd_enable="YES"
courier_imap_imapd_ssl_enable="YES"

Definição do protocolo IMAP pela Wikipedia: http://pt.wikipedia.org/wiki/IMAP

Instalando um servidor de webmail - SQUIRRELMAIL

O Squirrelmail é um completo webmail que se integra completamente nesse ambiente com domínios virtuais. Ele é escrito em PHP, o que possibilita a sua total personalização. Um outro recurso muito interessante, é a possibilidade de se aumentar as funcionalidades do Squirrelmail com a instalação de plugins. Para sua utilização é necessário ter o APACHE e o PHP rodando em seu sistema.

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

O Squirrelmail se instala no diretório /usr/local/www/squirrelmail do FreeBSD. Para criar um link para seu diretório do apache faça um link simbólico utilizando o comando ln. Após, vá ao diretório do Squirrelmail e configure ele.

# cd /usr/local/www/squirrelmail
# ./configure


Configurao do Squirrelmail

Para a instalação de novos plugins, faça o download do mesmo, descompacte ele no diretorio /usr/local/www/squirrelmail/plugins e para habilitar selecione a opção 8 no menu de configuração do squirrelmail

Para o perfeito funcionamento do Squirrelmail é necessário o ajuste das seguintes variáveis no PHP.INI

  • file_uploads = On
  • session.auto_start = 1

Melhorando seu servidor de email com ajuda de Domainkeys e SPF

DomainKeys é uma proposta de tecnologia que pode trazer de volta a simplicidade deste processo de decisão, dando aos provedores de e-mail um mecanismo para verificação tanto do domínio de cada remetente de e-mail, como da integridade de suas mensagens enviadas (comprovando, por exemplo, que elas não foram alteradas durante o envio). E, uma vez que o domínio pode ser verificado, ele pode ser comparado ao domínio utilizado pelo remetente no campo "De:" da mensagem para detectar forjadores. Em caso de falsificação, trata-se então de uma mensagem de spam ou fraude e pode ser descartada sem impactos para o usuário. Se não for uma falsificação, então o domínio é conhecido, e um perfil sobre sua reputação pode ser estabelecido e ligado aos sistemas de política de antispam, compartilhado entre os provedores de serviço de e-mail, ou até exposto ao usuário. 

Informações Adicionais : http://domainkeys.sourceforge.net/

O SPF (ou Sender Policy Framework) é uma extensão do SMTP que facilita a identificação de spam com endereço de origem forjado. A descrição técnica é simples: cada domínio interessado em combater e-mails forjados acrescenta uma linha de texto padronizada à configuração do seu próprio DNS. Esta linha segue o padrão definido pelo SPF, e descreve quais os endereços dos servidores de e-mail autorizados a gerar mensagens daquele domínio. Assim, o administrador do domínio provedorX.com pode definir em seu DNS que mensagens com o sufixo "@provedorX.com" só podem ser originadas dos servidores mailer1.provedorX.com e backup.reserva.com. Em consequência, quem tiver suporte ao SPF e receber mail com o sufixo "@provedorX.com" que tenha sido originado em outro servidor que não seja um dos dois definidos acima precisará apenas fazer uma rápida consulta de DNS para saber que deverá tratá-lo como mail forjado.

Informações Adicionais : http://www.saout.de/misc/spf/

Ao trabalho:

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

# mkdir -m 700 /var/qmail/domainkeys/
# cd /var/qmail/domainkeys

# openssl genrsa -out rsa.private 768
# openssl rsa -in rsa.private -out rsa.public -pubout -outform PEM
# mv rsa.private seudominio

# chmod 600 seudominio
# chown -R qmaild /var/qmail/domainkeys

Até aqui seu servidor já pode trabalhar com Domainkeys, porém ainda se faz necessários mais alguns ajustes. Seu qmail precisa saber como verificar o Domainkeys e seu DNS precisa confirmar seu DomainKey.

No seu arquivo TCP.

# cd /var/qmail/service/smtpd/
# ee tcp

Altere seu arquivo para que inclua ou altere isto.

DKSIGN="/var/qmail/domainkeys/seudominio",
DKVERIFY="DEGIJKfh",
DKQUEUE="/usr/local/bin/qmail-scanner-queue.pl",
QMAILQUEUE="/var/qmail/bin/qmail-dk"

Ficará parecido com isto:

172.16.:allow,RELAYCLIENT="",BADMIMETYPE="",RBLSMTPD="",REQUIREAUTH="",
DKSIGN="/var/qmail/domainkeys/seudominio",
DKVERIFY="DEGIJKfh",
DKQUEUE="/usr/local/bin/qmail-scanner-queue.pl",
QMAILQUEUE="/var/qmail/bin/qmail-dk"

Nos exemplos acima é em uma única linha.

Não esqueça de dar o make no arquivo

# make

Para gerar a chave para seu DNS:

# cd /var/qmail/domainkeys/
# grep -v ^- rsa.public | perl -e 'while(<>){chop;$l.=$_;}print "t=y; p=$l;\n";'

No seu servidor DNS adicione isto:

_domainkey.seudominio.com. IN TXT "t=y; o=-";
seudominio._domainkey.seudominio.com. IN TXT "DomainKey_do_resultado_do_grep"

Depois de tudo pronto e testado, pode adicionar o B na variável DKVERIFY e remover o t=y do DNS. O t=y diz que ainda está em fase de testes e a adição do B torna o DomainKey mais agressivo. No caso do B, letra minúscula gera um SoftError e maiúscula um Hard Error.

Para o SPF, já é bem mais simples, pois o ports ja fez praticamente todo o trabalho. Apenas adicione uma variável ao diretório control do qmail

echo "3" > /var/qmail/control/spfbehavior

Pode especificar valores entre 0 e 6 para spfbehavior:

0: Never do SPF lookups, don't create Received-SPF headers
1: Only create Received-SPF headers, never block
2: Use temporary errors when you have DNS lookup problems
3: Reject mails when SPF resolves to fail (deny)
4: Reject mails when SPF resolves to softfail
5: Reject mails when SPF resolves to neutral
6: Reject mails when SPF does not resolve to pass

Valores maiores que 3 são desaconselháveis

Para testar as configurações de DK e SPF utilize este site http://www.skylist.net/resources/authentication.php

Algumas configurações adicionais para a manutenção do seu servidor de email

- Limitar o tamanho do email em 10MB

# echo "10000000" > /var/qmail/control/databytes

- Definir tempo de spool. Define o número máximo em segundos que uma mensagem pode ficar na fila do qmail. Depois desse tempo, qmail-send tentará entregar a mensagem mais uma vez e tratará qualquer outro erro, como um erro permanente. Padrão: 604800 (uma semana). Utilizado por: qmail-send.

# echo "604800" > /var/qmail/control/queuelifetime

- Recusar spam

# echo "spammeur@spam" > /var/qmail/control/badmailfrom

- Verificar Logs

# tail /var/qmail/service/smtpd/log/main/current | tai64nlocal
# tail /var/qmail/service/pop3d/log/main/current | tai64nlocal
# tail /var/log/qmail/current | tai64nlocal
# tail /var/log/clamav/clamd.log | tai64nlocal

- Verificar estatísticas

# /var/qmail/bin/qmail-qstat
# /var/qmail/bin/qmail-qread | grep remote | grep -v done

- Ajustes para alteração do subject(assunto) da mensagem que for classificada como SPAM

# ee /usr/local/etc/mail/spamassassin/local.cf
Definir [SPAM] no subject, alterar a linha -> rewrite_header Subject *****SPAM*****

- Verificar os serviços que estão rodando

# svstat /var/service/* /var/service/*/log

- Gerar relatorio de SPAM do seu servidor diariamente

Adicionar ao crontab

# /usr/local/share/spamassassin/tools/sa-stats.pl -u -s 'midnight' -e 'now' --mail= Este endereo de e-mail est sendo protegido de spam, voc precisa de Javascript habilitado para v-lo

- Gerar uma listagem dos tipos de virus capturados pelo seu servidor de email

# grep CLAMDSCAN /var/log/maillog* | awk '{print $6}' | awk -F":" '{print $2}' | sort -u

- Aumentar o tamanho dos arquivos de log do smtpd e pop3d

Maiores informações sobre variáveis do sistema : http://www.din.or.jp/~ushijima/qmail-conf/environment.html

ee /var/qmail/service/smtpd/log/env/MAXFILESIZE
ee /var/qmail/service/pop3d/log/env/MAXFILESIZE

- Bloqueie os emails para usuários inexistentes antes de entrarem na fila
Maiores informações em http://www.fehcom.de/qmail/spamcontrol/README_spamcontrol.html

Em seu arquivo de crontab adicione esta linha

# Gera lista de usuarios a cada 30 minutos
*/30 * * * * root /var/qmail/scripts/qmail-vpopmail2recipients > /dev/null


e em seu arquivo /var/qmail/control/recipients acrescente users/recipients.cdb

- Melhor controle de relay

Adicione as linhas a seu arquivo badrcptto

# ee /var/qmail/control/badrcptto
*%*
*!*
*@*@*

Para testes de relay utilize este site http://www.antispam-ufrj.pads.ufrj.br/test-relay.html

Isso é tudo ppessoal :-)
15/05/2006


Este artigo foi escrito com a intenção de facilitar a instalaçao de um serviço muito util que é o envio de email. O objetivo principal é torna-lo uma ferramenta segura e de fácil manutenção através do uso do ports do FreeBSD.

- Carlos A. Talhati (cat at SWCat dot com)
- Renato Botelho (garga at FREEBSD dot org)


Atualizado em 30/08/2006

Comentrios
Excelente
Por Este endereo de e-mail est sendo protegido de spam, voc precisa de Javascript habilitado para v-lo em 28/08/2006 10:49:38
Muito completo, porm seria melhor visualizado com outra formatao/alinhamento, hehe! 
 
Valeu Talhati e Garga! :)
Realmente era o que faltava!!!
Por Este endereo de e-mail est sendo protegido de spam, voc precisa de Javascript habilitado para v-lo em 29/08/2006 08:44:38
Muito bom esse artigo. 
Dispensa comentrios.
Sr.
Por Este endereo de e-mail est sendo protegido de spam, voc precisa de Javascript habilitado para v-lo em 30/08/2006 00:48:22
encontrei um erro no make.conf 
que fala sobre os .elif sem .if 
dai retirei dos .elif e deixei .if, e funcionou 
Ajustes no artigo
Por Este endereo de e-mail est sendo protegido de spam, voc precisa de Javascript habilitado para v-lo em 30/08/2006 12:03:28
Lippe, quanto a formatao acho que agora melhorou, ele foi copiado de outra rea e copiado, ainda vai melhorar. 
 
Lincoln, os erros com elif foram resolvidos. 
 
Abraos 
Carlos
pra ficar perfeito so falta..
Por Leonardo em 01/10/2006 16:16:34
So falta autenticar usuarios e dominios tudo no mysql, para suportar varios dominios... 
 
voce consegue por isso :)
Erro na configurao do SPAMASSASSIN
Por Denis Souza em 05/01/2007 17:49:15
No : 
 
ln -s usr/local/etc/mail/spamassassin/local.cf user_prefs 
 
e sim: 
 
ln -s /usr/local/etc/mail/spamassassin/local.cf user_prefs
Vpopmail com Mysql
Por Marcus Vincius Sigrist Masier em 17/06/2007 03:12:17
Parabns pelo artigo.... 
 
Quem quiser autenticar o Vpopmail no MySQL basta seguir os seguintes passos: 
 
1- Criar o BD para o Vpopmail usar 
 
mysql> CREATE DATABASE vpopmaildb; 
mysql> GRANT select, insert, update, delete, create, drop ON vpopmaildb.* TO vpopmail@localhost IDENTIFIED BY \'senha_do_banco\'; 
mysql> FLUSH PRIVILEGES; 
mysql> QUIT; 
 
**************************************** 
 
2- Incluir no /etc/make.conf 
 
# Vpopmail 
.if ${.CURDIR:N*mail/vpopmail}==\"\" 
RELAYCLEAR=40 
DEFAULT_DOMAIN=seudominio 
WITH_IP_ALIAS=yes 
WITH_SUID_VCHKPW=yes 
WITH_SMTP_AUTH_PATCH=yes 
WITH_MYSQL=yes 
WITH_VALIAS=yes 
WITH_QMAIL_EXT=yes 
WITH_DOMAIN_QUOTAS=yes 
WITH_MYSQL_USER=vpopmail 
WITH_MYSQL_PASSWD=senha_do_banco 
WITH_MYSQL_DB=vpopmaildb 
.endif 
 
**************************************** 
 
Espero que minha contribuio possa ajudar a comunidade FreeBSD. 
 
Abraos
Vpopmail com Mysql
Por Marcus Vincius Sigrist Masier em 17/06/2007 03:12:36
Parabns pelo artigo.... 
 
Quem quiser autenticar o Vpopmail no MySQL basta seguir os seguintes passos: 
 
1- Criar o BD para o Vpopmail usar 
 
mysql> CREATE DATABASE vpopmaildb; 
mysql> GRANT select, insert, update, delete, create, drop ON vpopmaildb.* TO vpopmail@localhost IDENTIFIED BY \'senha_do_banco\'; 
mysql> FLUSH PRIVILEGES; 
mysql> QUIT; 
 
**************************************** 
 
2- Incluir no /etc/make.conf 
 
# Vpopmail 
.if ${.CURDIR:N*mail/vpopmail}==\"\" 
RELAYCLEAR=40 
DEFAULT_DOMAIN=seudominio 
WITH_IP_ALIAS=yes 
WITH_SUID_VCHKPW=yes 
WITH_SMTP_AUTH_PATCH=yes 
WITH_MYSQL=yes 
WITH_VALIAS=yes 
WITH_QMAIL_EXT=yes 
WITH_DOMAIN_QUOTAS=yes 
WITH_MYSQL_USER=vpopmail 
WITH_MYSQL_PASSWD=senha_do_banco 
WITH_MYSQL_DB=vpopmaildb 
.endif 
 
**************************************** 
 
Espero que minha contribuio possa ajudar a comunidade FreeBSD. 
 
Abraos
Vpopmail com Mysql
Por Marcus Vincius Sigrist Masier em 17/06/2007 03:16:22
Parabns pelo artigo.... 
 
Quem quiser autenticar o Vpopmail no MySQL basta seguir os seguintes passos: 
 
1- Criar o BD para o Vpopmail usar 
 
mysql> CREATE DATABASE vpopmaildb; 
mysql> GRANT select, insert, update, delete, create, drop ON vpopmaildb.* TO vpopmail@localhost IDENTIFIED BY \'senha_do_banco\'; 
mysql> FLUSH PRIVILEGES; 
mysql> QUIT; 
 
**************************************** 
 
2- Incluir no /etc/make.conf 
 
# Vpopmail 
.if ${.CURDIR:N*mail/vpopmail}==\"\" 
RELAYCLEAR=40 
DEFAULT_DOMAIN=seudominio 
WITH_IP_ALIAS=yes 
WITH_SUID_VCHKPW=yes 
WITH_SMTP_AUTH_PATCH=yes 
WITH_MYSQL=yes 
WITH_VALIAS=yes 
WITH_QMAIL_EXT=yes 
WITH_DOMAIN_QUOTAS=yes 
WITH_MYSQL_USER=vpopmail 
WITH_MYSQL_PASSWD=senha_do_banco 
WITH_MYSQL_DB=vpopmaildb 
.endif 
 
**************************************** 
 
Espero que minha contribuio possa ajudar a comunidade FreeBSD. 
 
Abraos
Vpopmail com Mysql
Por Marcus Vincius Sigrist Masier em 17/06/2007 03:20:14
Parabns pelo artigo.... 
 
Quem quiser autenticar o Vpopmail no MySQL basta seguir os seguintes passos: 
 
1- Criar o BD para o Vpopmail usar 
 
mysql> CREATE DATABASE vpopmaildb; 
mysql> GRANT select, insert, update, delete, create, drop ON vpopmaildb.* TO vpopmail@localhost IDENTIFIED BY \'senha_do_banco\'; 
mysql> FLUSH PRIVILEGES; 
mysql> QUIT; 
 
**************************************** 
 
2- Incluir no /etc/make.conf 
 
# Vpopmail 
.if ${.CURDIR:N*mail/vpopmail}==\"\" 
RELAYCLEAR=40 
DEFAULT_DOMAIN=seudominio 
WITH_IP_ALIAS=yes 
WITH_SUID_VCHKPW=yes 
WITH_SMTP_AUTH_PATCH=yes 
WITH_MYSQL=yes 
WITH_VALIAS=yes 
WITH_QMAIL_EXT=yes 
WITH_DOMAIN_QUOTAS=yes 
WITH_MYSQL_USER=vpopmail 
WITH_MYSQL_PASSWD=senha_do_banco 
WITH_MYSQL_DB=vpopmaildb 
.endif 
 
**************************************** 
 
Espero que minha contribuio possa ajudar a comunidade FreeBSD. 
 
Abraos
Vpopmail com Mysql
Por Marcus Vincius Sigrist Masier em 17/06/2007 03:20:55
Parabns pelo artigo.... 
 
Quem quiser autenticar o Vpopmail no MySQL basta seguir os seguintes passos: 
 
1- Criar o BD para o Vpopmail usar 
 
mysql> CREATE DATABASE vpopmaildb; 
mysql> GRANT select, insert, update, delete, create, drop ON vpopmaildb.* TO vpopmail@localhost IDENTIFIED BY \'senha_do_banco\'; 
mysql> FLUSH PRIVILEGES; 
mysql> QUIT; 
 
**************************************** 
 
2- Incluir no /etc/make.conf 
 
# Vpopmail 
.if ${.CURDIR:N*mail/vpopmail}==\"\" 
RELAYCLEAR=40 
DEFAULT_DOMAIN=seudominio 
WITH_IP_ALIAS=yes 
WITH_SUID_VCHKPW=yes 
WITH_SMTP_AUTH_PATCH=yes 
WITH_MYSQL=yes 
WITH_VALIAS=yes 
WITH_QMAIL_EXT=yes 
WITH_DOMAIN_QUOTAS=yes 
WITH_MYSQL_USER=vpopmail 
WITH_MYSQL_PASSWD=senha_do_banco 
WITH_MYSQL_DB=vpopmaildb 
.endif 
 
**************************************** 
 
Espero que minha contribuio possa ajudar a comunidade FreeBSD. 
 
Abraos



ltima Atualizao ( 30/11/2008 )
 
< 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 21 visitantes online


Devil Store - Sua loja BSD
FreeBSD Brasil LTDA

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