[postfix-es] Dominio virtual (Mysql) de procedencia

Simon J Mudd sjmudd en pobox.com
Lun Ene 13 08:51:37 CET 2003


alberto en bersol.fadlan.com (Alberto) writes:

> 12 Jan 2003 12:21:43 +0100:
> "Simon J Mudd" <sjmudd en pobox.com> escribio:
> ....
> > 
> > ?Como puede distinguir Postfix entre los dos dominios?  No tengo tan
> > claro si son usuarios locales o "virtual", pero me parece por lo que
> > dices que son usuarios lcoales con cuentas shell.
> 
> exacto, los locales son cuentas con shell propio en el linux, los
> virtuales son cuentas creadas en base de datos MySQL.

Sigues sin explicarte bien (o simplemente no me entero).  ¿Las cuentas
virtuales con MySQL también son cuentas shell o son buzones que son
independiente de las cuentas unix "normales"?

Si es el primero (cuentas shell) _tu_ tendrás que decirle a Postfix
que aplica un dominio distinto que las cuentas normales porque de ser
todos cuentas shell Postfix no puede distinguir.

Si es el segundo caso entonces supongo que los usuarios conectan y
mandan correo vía SMTP.  en este caso tendrán que haber puesto su
dominio bien en su configuración, y siempre se podría verificar que la
cuenta es correcta antes de permitir la entrada del correo.  A nivel
smtp asegurarte de tener reject_non_fqdn_sender.

> > De ser asi pues creo que lo que podrias hacer es unos sender_canonical
> > que convierten los usuario a usuario en dominio1 o usuario2 a
> > usuarios2 en dominio2.
> 
> Si, ya habia pensado en ello, seria factible en este caso porque son
> pocos usuarios, pero querria poder aplicarlo a algun caso con unos
> cuantos cientos o quizas miles y obviamente no seria factible (o
> bien habria que currarse un script para generar un sender_canonical
> enorme que supongo qeu no es factible en ningun caso.

Como se te han comentado en otro mensaje, puedes usar la misma base de
datos para tener los sender_canonical_maps para así convertir
direcciones "incorrectas" a las correctas, y hacer esto en MySQL.

> > > El tema es como decirle a POSTFIX que el dominio para los usuarios
> > > virtuales no es "dominio.principal.com".
> > 
> > Si son usuarios virtuales (segun virtual(8)) entonces no tienen
> > cuentas unix reales. Creo estas usando virtual_maps y realmente estos
> > usuarios se "mapean" a usuarios locales en tu maquina.  De ser asi
> > _tu_ tienes que decirle a Postfix como distinguir.
> > 
> EXACTO, pero como le digo a postfix como distinguir las virtuales de
> las "normales"?. El problema es claramente que le aplica el
> parametro mydestination y le reescribe el nombre de dominio, pero si
> no incluyo el dominio virtual en mydestination (a pesar de los
> comentarios en mayusculas del main.cf) no funciona (o al menos no
> conozco otra forma de que lo haga).

Postfix aplica myorigin a direcciones email que no llevan un dominio
incluido.  Los usuarios deben incluir su dominio en la
configuración. Lo que sigues sin aclararme es _cómo_ estos usuarios (los
dos grupos) reciben y envian su correo. Esto realmente es la clave y
no lo estás explicando.

> > > Creo que fue Fernando Limon quien sugirio eliminar la directiva
> > > myorigin, pero no funciona.
> > 
> > IMO el cambio de myorigin NO es la solucion.
> 
> yo creo que mientras "dominio.virtual.com" este incluido en
> mydestination me va a hacer la puñeta SIEMPRE.

Como has comentado en un mensaje anterior, Postfix recibe los mensajes
correctamente.  Así que la recepeción parece estar bien. El problema
parece ser el envío de mensajes (sigo sin tener claro su origin:
/usr/sbin/sendmail o SMTP) y como asegurarte que se añade el dominio
correcto.

> FICHEROS DE CONFIGURACION IMPLICADOS
> ====================================
> 
> ===== POSTCONF -N =====
> alias_database = hash:/etc/aliases
> alias_maps = hash:/etc/aliases
> command_directory = /usr/sbin
> config_directory = /etc/postfix
> content_filter = smtp:127.0.0.1:10024
> daemon_directory = /usr/lib/postfix
> debug_peer_level = 2
> default_destination_concurrency_limit = 10
> default_privs = nobody
> inet_interfaces = all
> local_destination_concurrency_limit = 2
> local_recipient_maps = $alias_maps unix:passwd.byname
> mail_owner = postfix
> mailbox_command = /usr/bin/procmail -t
> mydestination = $myhostname, localhost.$mydomain $mydomain tomate.fadlan.com
> mydomain = bersol.fadlan.com
> myhostname = 227.Red-80-34-69.pooles.rima-tde.net
> mynetworks = 127.0.0.0/8, 192.168.1.0/24, 192.168.55.0/24
> myorigin = /etc/mailname
> notify_classes = bounce, delay, policy, protocol, software, resource
> program_directory = /usr/lib/postfix
> queue_directory = /var/spool/postfix
> relay_domains = $mydestination
> sender_canonical_maps = hash:/etc/postfix/sender_canonical
> smtp_sasl_password_maps = hash:/etc/postfix/saslpass
> smtp_sasl_security_options = noplaintext
> smtpd_banner = $myhostname ESMTP $mail_name ($mail_version)
> smtpd_recipient_restrictions = permit_mynetworks    check_client_access hash:/etc/postfix/ips_invalidas    check_sender_access hash:/etc/postfix/remitentes_invalidos    check_relay_domains
> transport_maps = hash:/etc/postfix/transport
> virtual_gid_maps = mysql:/etc/postfix/ids.cf
> virtual_mailbox_base = /
> virtual_mailbox_maps = mysql:/etc/postfix/mysql-aliases.cf
> virtual_maps = hash:/etc/postfix/virtual
> virtual_uid_maps = mysql:/etc/postfix/ids.cf
> 
> ===== VIRTUAL =====
> tomate.fadlan.com	dominiovirtual
> 
> ===== TRANSPORT =====
> tomate.fadlan.com	virtual
> 
> ===== MYSQL-ALIASES.CF =====
> user = postfix
> password = postfix
> dbname = mail
> table = mxaliases
> select_field = maildir
> where_field = id
> hosts = datac

Mirando tu configuración estás usando virtual(8) para los dominios
virtuales. ¿Cierto?

ok. Ahora bien entonces yo entiendo que el problema es de recepción de
los mensajes de tus usuarios (vía SMTP) ya que los usuarios con
cuentas unix siempre (y correctamente tendrán como dominio
bersol.fadlan.com (supongo que esto es lo que está en /etc/mailname
(debe ser _un_ dominio).

En smtpd_recipient_restrictions, empieza añadiendo:

        reject_non_fqdn_sender
        reject_non_fqdn_recipient

Así que la gente _tiene_ que configurar bien sus dominios.

Simon
-- 
Simon J Mudd, Postfix RPM Packager, Amsterdam, The Netherlands.
email: sjmudd en pobox.com, Tel: +31-627-592 627
-
Para ENVIAR mensajes a esta lista tienes que estar SUSCRITA a ella.
.
Envía la linea "unsubscribe postfix-es" en el cuerpo de un mensaje
a majordomo en WL0.org para quitarte de la lista.



Más información sobre la lista de distribución Postfix-es