luiscarlos
(usa Fedora)
Enviado em 15/01/2008 - 11:33h
Tenho qmail com vpopmail funcionando perfeitamente, apliquei o patch qmail-smtpd-auth-0.31 para fazer autenticação e compilei sem problemas o qmail, ele esta recebendo e enviando email numa boa, no outlook configurei a conta e tentei enviar email e APARENTEMENTE funcionou, ele pediu autenticação para o envio dos emails e, caso eu digitasse a senha incorreta ele me retornava pedindo a senha novamente, apos colocar a senha ele enviava numa boa, entao acreditei que estava funcionando.
Sendo assim, fui para mais teste, tentei enviar um email usando o comando mail na console e para minha supresa, o email chegou ate mim, e eu nem tive que digitar meu usuario e senha, tente dar um telnet no meu smtp e para minha surpresa ele aceitou que eu enviasse email sem autenticação.
Entao busquei outro patch para aplicar no meu email, tentei usar o qmail-auth-20010105 e tambem o qmail-authentication-067 mas nenhum dos patches funcionou, aconteceu exatamente igual.
Verificando algumas documentacoes entrei o seguinte
---------------------------------------------------------------
qmail-smtpd must
be invoked with three arguments: hostname, checkprogram, and
subprogram
hostname is simply used to form the CRAM-MD5 challenge. qmail-smtpd
invokes checkprogram, feeding it the username and password, in the
case of LOGIN or PLAIN, or the username, challenge, and response, in
the case of CRAM-MD5. If the user checks out, checkprogram invokes
subprogram, which just has to exit with a status of 0 for the user to
be authenticated. Otherwise, checkprogram exits with a non-zero
status. subprogram can usually be /usr/bin/true (or /bin/true,
depending on your flavor of OS).
---------------------------------------------------------------
meu ingles nao eh muito bom mas pelo que entendi nessa parte
If the user checks out, checkprogram invokes
subprogram, which just has to exit with a status of 0 for the user to
be authenticated. Otherwise, checkprogram exits with a non-zero
status. subprogram can usually be /usr/bin/true
se o usuario NAO for autenticado o checkprogram chama um subprograma que deve retornar 0 (zero) para que o usuario seja autenticado, sendo assim, concluí todos os usuarios serao autenticados, entao no meu raciocinio logico alterei a linha do meu qmail-smtp/run que esta assim
-------------------------------------------
exec /usr/local/bin/softlimit -m 30000000 \
/usr/local/bin/tcpserver -v -R -l "$LOCAL" -x /etc/tcp.smtp.cdb -c "$MAXSMTPD" \
-u "$QMAILDUID" -g "$NOFILESGID" 0 smtp \
/var/qmail/bin/qmail-smtpd dominio.organizacao.pais \
/var/vpopmail/bin/vchkpw /usr/bin/true 2>&1
--------------------------------------------
para assim
--------------------------------------------
exec /usr/local/bin/softlimit -m 30000000 \
/usr/local/bin/tcpserver -v -R -l "$LOCAL" -x /etc/tcp.smtp.cdb -c "$MAXSMTPD" \
-u "$QMAILDUID" -g "$NOFILESGID" 0 smtp \
/var/qmail/bin/qmail-smtpd dominio.organizacao.pais \
/var/vpopmail/bin/vchkpw /usr/bin/false 2>&1
--------------------------------------------
veja a diferença no final do script onde mudou de /bin/true para /bin/false
reiniciei meu qmail e fiz alguns testes, pelo outlook foi solicitada minha senha do smtp
mas nao logava nem com a senha correta com o comando mail pela console ainda conseguia enviar emails...
POR QUE? como faço para autenticar meus usuarios?