Página 1 de 1
Problema al autenticar SMTP del Postfix con Dovecot
Publicado: Mar, 15 Oct 2013, 09:39
por abdielalej
Hola a todos...soy nuevo en el foro, espero me puean ayudar..
Uso Debian 6 squeeze
Estoy tratando de autenticar el SMTP del postfix con dovecot...
--Ya active al daemon en dovecot.conf en auth default:
Código: Seleccionar todo
client {
# The client socket is generally safe to export to everyone. Typical use
# is to export it to your SMTP server so it can do SMTP AUTH lookups
# using it.
path = /var/spool/postfix/private/auth
mode = 0660
user = postfix
group = postfix
}
---Tambien puse lo parámetros SASL en el main del postfix:
Código: Seleccionar todo
#SASL parameters
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_authenticated_header = yes
broken_sasl_auth_clients = yes
--- Puse las restricciones del recipient:
Código: Seleccionar todo
smtpd_recipient_restrictions =
check_policy_service inet:127.0.0.1:10040
permit_mynetworks
permit_sasl_authenticated
reject_unauth_destination
---Hasta aquí todo bien...pero si lo dejo así...postfix no me obliga a mis clientes locales a autenticarse cuando van a enviar un email. Si le quito a mis clientes (outlook es el que utilizo en mi red) la pestaña "Mi servidor de salida (SMTP) requiere autenticación"...envían sin autenticarse...Si se la dejo marcada...verdad que tira contra dovecot perfecto, pero un listo puede desmarcar esa opción y envía sin permiso. Lo que quiero es que obligado tenga que marcar esa opción para poder enviar...
---Entonces puse esta sentencia:
Código: Seleccionar todo
smtpd_client_restrictions = permit_mynetworks,
permit_sasl_authenticated,
reject
Ahora lo hace perfecto...pero también lo hace para los correos que me quieren entrar a mi servidor desde fuera. Y obviamente no me entran porque tendrían que autenticarse...ya he probado de todo...necesito de la ayuda de ustedes..
Cómo hago para cuando el destino final sea mi servidor no pida contraseña y cuando algún correo quiera hacer relay entonces pida la contraseña...
Ayudaaaaa...gracias...
Re: Problema al autenticar SMTP del Postfix con Dovecot
Publicado: Vie, 18 Oct 2013, 13:13
por abdielalej
Gracias a todos ya resolví...
Re: Problema al autenticar SMTP del Postfix con Dovecot
Publicado: Jue, 31 Oct 2013, 07:55
por abdielalej
Bueno al final la solución que implementé no está del todo bien...porque entonces hay algo en la configuración que no deja que me entren bien los correos de gmail...de todos los otros dominios me entran perfecto (eso me preocupa)....pues bien en vez de utilizar:
Utilicé :
Código: Seleccionar todo
smtpd_relay_restrictions =
permit_sasl_authenticated
reject_unauth_destination
Ya con esto...cuando el correo intenta hacer relay pide contraseña...mientras si la finalidad es tu dominio no la pide..
O sea es la solución perfecta para cuando nuestros clientes quieran mandar correos externos exigirle contraseña...y sin embargo cuando un servidor smtp externo quiera conectarse con nosotros para mandarnos un correo...como el destino final es nuestro dominio...nuestro servidor no exigirá contraseña...que era el dolor de cabeza con: smtpd_client_restrictions
Si te das cuenta cual sería el error con gmail...te agradecería me lo hicieras saber. Ahora mismo tengo un quebradero de cabeza con eso..desde yahoo, hotmail, navistar, los dominios nacionales...en fin de todos me llegan bien...excepto gmail...
Espero te sirva...Saludos
Re: Problema al autenticar SMTP del Postfix con Dovecot
Publicado: Vie, 15 Nov 2013, 00:42
por Eddy Leonid
mira en smtpd_client_restrictions no le pusiste que no te permitiera auteticaciones planas en mi caso lo tengo asi y me funciona bien
Código: Seleccionar todo
smtpd_client_restrictions =
permit_mynetworks,
reject_plaintext_session,
permit_sasl_authenticated,
reject
cualquier cosa me dices
Saludos
Re: Problema al autenticar SMTP del Postfix con Dovecot
Publicado: Vie, 15 Nov 2013, 15:21
por abdielalej
Osea cuando pones eso...se pueden conectar desde fuera con tu servidor....porque ese es el problema..
Otra cosa:
Tienes implementado restricciones nacionales e internacionales, si es así ¿cómo?
Porque yo lo tengo controlado utilizando unas reglas en el postfwd.cf....pero no me gusta eso...hace su trabajo..pero es una de las cosas que me impiden exigir la autentificación...porque ya le doy permiso a determinados usuarios a enviar o a recibir y ya se mabraca todo..sale sin pedir contraseña...
quiero quitarlo...pero necvesito configurar bien esas restricciones...si las tienes ayúdame con eso..
Gracias..
Re: Problema al autenticar SMTP del Postfix con Dovecot
Publicado: Sab, 16 Nov 2013, 10:27
por Eddy Leonid
mira para el caso de las restricciones nacionales e internacionales en mi caso lo uso contra ldap, es mas cómodo a mi modo de ver, en main.cf te muestro +- como lo tengo
Código: Seleccionar todo
smtpd_restriction_classes =
nacional-in,
nacional-out,
internac-in,
internac-out
en mi caso lo tengo dividido asi porque puede que me convenga que un determinado usuario por ejemplo pueda recibir correos internacional pero a la vez no pueda enviarlos.
luego
Código: Seleccionar todo
nacional-in =
check_sender_access regexp:/etc/postfix/filters/nacional-in,
reject
nacional-out =
check_recipient_access regexp:/etc/postfix/filters/nacional-out,
reject
internac-in =
check_sender_access regexp:/etc/postfix/filters/internac-in,
reject
internac-out =
check_recipient_access regexp:/etc/postfix/filters/internac-out,
reject
donde por ejemplo en nacional-out pongo esto:
Código: Seleccionar todo
/\@*\.cu$/ RELAY
/\@*/ REJECT Su mensaje no pudo ser entregado: Acceso nacional.
luego le añades esto a las restricciones
Código: Seleccionar todo
smtpd_sender_restrictions =
check_sender_access ldap:/etc/postfix/ldap/access-out.cf,
.........
le pongo ..... para que le pongas el resto de las restricciones que tienes especificadas
Código: Seleccionar todo
smtpd_recipient_restrictions =
check_recipient_access ldap:/etc/postfix/ldap/access-in.cf,
...........
en access-in.cf:
Código: Seleccionar todo
server_host = ldap.an.ho.rimed.cu
search_base = dc=an,dc=ho,dc=rimed,dc=cu
query_filter = mail=%s
result_attribute = mailAccessIn
cache = no
bind = yes
en access-out.cf
Código: Seleccionar todo
server_host = ldap.an.ho.rimed.cu
search_base = dc=an,dc=ho,dc=rimed,dc=cu
query_filter = mail=%s
result_attribute = mailAccessOut
cache = no
bind = yes
claro esta que en ldap tienes que especificarle los atributos al usuario mailAccessIn y mailAccessOut
donde si quieres que el usuario solo tenga acceso nacional le espcificas: nacional-in y nacional-out, respectivamente, puedes añadirle otras restricciones como por ejemplo acceso limitado, etc.
Para lo que me comentas de que se te conecten directamente con tu servidor tienes que verificar aqui:
Cualquier duda me comentas.
Saludos
Re: Problema al autenticar SMTP del Postfix con Dovecot
Publicado: Sab, 16 Nov 2013, 10:46
por abdielalej
Edy gracias por contestar..
precisamente el problema mio es que no uso LDAP...entoces no se cómo decirle a cada usuario...tú eres nacional-in por ejemplo...
estoy rompiéndome la cabeza a ver...si me pudieras dar un norte...una sitaxis que yo pueda decirle al postfix..eres tal cosa..
Gracias...
Re: Problema al autenticar SMTP del Postfix con Dovecot
Publicado: Dom, 17 Nov 2013, 10:47
por Eddy Leonid
Mira en este caso puedes apoyarte en este script que utilizaba antes de usar ldap
Código: Seleccionar todo
#!/bin/bash
#####################################################################
#####################
# Funcion: 0xDF06 #
#####################
Upgrade_db()
{
cat /etc/postfix/users/in/*.i > /etc/postfix/_usuarios_in
cat /etc/postfix/users/out/*.o > /etc/postfix/_usuarios_out
postalias /etc/aliases
postmap /etc/postfix/_filtro_nac
postmap /etc/postfix/_usuarios_in
postmap /etc/postfix/_usuarios_out
postmap /etc/postfix/transport
postmap /etc/postfix/adjuntos
newaliases
/etc/init.d/postfix reload
}
#####################
# Funcion: 0xDF0A #
#####################
Update_db()
{
case $2 in
-i) echo -ne "Cuenta Internacional\n"
Del_User_db $1
;;
*) echo -ne "Cuenta Nacional\n"
echo -ne "$1@an.ho.rimed.cu\t\t\tnac_in\n" > /etc/postfix/users/in/$1.i
echo -ne "$1@an.ho.rimed.cu\t\t\tnac_out\n" > /etc/postfix/users/out/$1.o
Upgrade_db
;;
esac
}
######################
# Funcion: 0xDF1B #
######################
Del_User_db()
{
if [ -f /etc/postfix/users/in/$1.i ]; then
rm /etc/postfix/users/in/$1.i
fi
if [ -f /etc/postfix/users/out/$1.o ]; then
rm /etc/postfix/users/out/$1.o
fi
Upgrade_db
}
######################
# Funcion: 0xDF3D #
######################
Info()
{
echo -ne "Argumento no valido...\n"
echo -ne "Sintaxis: mail_user [User] [Opcion] [Access]\n"
echo -ne "Opcion:\n"
echo -ne "[-c] - Crear usuario\n"
echo -ne "[-e] - Eliminar usuario\n"
echo -ne "[-p] - Cambiar password\n"
echo -ne "Access:\n"
echo -ne "[-i] - Internacional\n"
echo -ne "[Sin argumento] - Nacional\n"
}
######################
# Funcion: 0xDF5C #
######################
Verify_Home_Maildir_User()
{
if [ ! -d /home/$1/Maildir ]; then
mkdir -p /home/$1/Maildir/new /home/$1/Maildir/cur /home/$1/Maildir/tmp
if [ ! -f /home/$1/.procmailrc ]; then
echo -ne "TATH=/usr/bin:/bin:/usr/local/bin:.\nMAILDIR=\$HOME/Maildir\nDEFAULT=\$MAILDIR/" > /home/$1/.procmailrc
fi
fi
chown $1 -R /home/$1
Update_db $1 $2
}
######################
# Funcion: 0xDF2E #
######################
Verify_Dirs_Files_Postfix()
{
if [ ! -d /etc/postfix/users/in ]; then
mkdir -p /etc/postfix/users/in
fi
if [ ! -d /etc/postfix/users/out ]; then
mkdir -p /etc/postfix/users/out
fi
if [ ! -f /etc/postfix/transport ]; then
echo –ne "an.ho.rimed.cu\tlocal:\nlocalhost\tlocal:" > /etc/postfix/transport
fi
if [ ! -f /etc/postfix/adjuntos ]; then
echo –ne "/filename=.*\.(rar|tar.gz|zip)/ OK\n/filename=.*\.*/ REJECT Adjuntos permitidos (rar, zip, tar.gz)\n" > /etc/postfix/adjuntos
fi
if [ ! -f /etc/postfix/_filtro_nac ]; then
echo -ne "/\@*\.cu/\t\t\tRELAY\n/^\@/\t\t\tREJECT 550 Formato no valido.\n/[!%\@].*\@/\t\t\tREJECT 550 Error Sintaxis\n/\@*/\t\t\tREJECT Correo Internacional no autorizado.\n" > /etc/postfix/_filtro_nac
fi
Main $1 $2 $3
}
######################
# Funcion: 0xDFF1 #
######################
Main()
{
exist=`grep "^$1:" /etc/passwd`
case $2 in
-c) if [ -n "$exist" ] ; then
echo "El usuario ya existe"
Verify_Home_Maildir_User $1 $3
else
adduser --home /home/$1 --shell /bin/false $1
Verify_Home_Maildir_User $1 $3
fi
;;
-e) if [ -n "$exist" ] ; then
deluser --remove-home --remove-all-files $1
Del_User_db $1
else
echo "El usuario no existe"
fi
;;
-p) passwd $1
;;
*) Info
;;
esac
}
Verify_Dirs_Files_Postfix $1 $2 $3
########## Fin del script
Comandos del script:
Sintaxis:
mail_user [user] [Opción] [Access]
Opciones:
-c Crear usuario
-e Eliminar usuario
-p Cambiar Password del usuario
Access:
-i Internacional
[Sin argumento] Nacional
mail_user user1 -c -i # Crea la cuenta user1 con acceso Internacional.
mail_user user2 -c # Crea la cuenta user2 con acceso Nacional.
mail_user user1 -c # Le cambia el acceso al usuario user1 de Internacional a
Nacional.
mail_user user1 -p # Cambiar Password del usuario user1.
mail_user user2 -e # Eliminar Cuenta del usuario user2.
y en postfix
Código: Seleccionar todo
smtpd_restriction_classes =
nac_in,
nac_out
nac_out =
check_recipient_access regexp:/etc/postfix/_filtro_nac,
reject
nac_in =
check_sender_access regexp:/etc/postfix/_filtro_nac,
reject
smtpd_sender_restrictions =
check_sender_access hash:/etc/postfix/_usuarios_out,
...........
smtpd_recipient_restrictions =
check_recipient_access hash:/etc/postfix/_usuarios_in,
..........
Cualquier duda puedes contactarme.
Saludos
Re: Problema al autenticar SMTP del Postfix con Dovecot
Publicado: Dom, 17 Nov 2013, 20:17
por hugo
Eddy, es bueno que ayudes, pero no seas holgazán y utiliza la etiqueta [code] cuando vayas a pegar un bloque de código.
Mira que tengo cosas mejores que hacer con mi tiempo que andar legibilizando posts innecesariamente.
Re: Problema al autenticar SMTP del Postfix con Dovecot
Publicado: Lun, 18 Nov 2013, 09:54
por Eddy Leonid
Disculpa hugo, aún me estoy familiarizando con las etiquetas pues soy nuevo en un foro, ya copié para la próxima.
Saludos