[postfix-es] Open Relay

José Luis Tallón jltallon en adv-solutions.net
Mar Feb 3 19:37:21 CET 2004


At 17:49 03/02/2004, you wrote:
> > > > >smtpd_recipient_restrictions = reject_non_fqdn_sender,
> > > > >         reject_non_fqdn_recipient,
> > > >          check_sender_access hash:/etc/postfix/restricted_senders,
> > > >          permit_mynetworks,
> > > > >         reject_unauth_destination
> > > >
> > > > Contenido de "/etc/postfix/restricted_senders" ???
> > >
> > >------------
> > >usuario1 en ensi.com.ar      local_only
> > >usuario2 en ensi.com.ar      local_only
> > >ensi.com.ar               may_use_external_mail
> > >------------
> > >
> > > > En concreto, *no debe* contener ningún OK, sino como mucho
> > > > 'reject_unauth_destination'
> >
> > Entonces, el problema debe estar en estas "restricciones".
> > Por favor, envía
> > el contenido de las restricciones "local_only" y
> > "may_use_external_mail". Probablemente necesites mover el
> > 'check_sender_access' asociado a este
> > 'mapa' *después* de reject_unauth_destination.
>
>Estas son las restricciones:
>local_only = check_recipient_access
>hash:/etc/postfix/local_destinations,
>    reject
>
>may_use_external_mail = permit

TADA!!! Open Relay al instante !!

Una de dos, o lo pones después de "reject_unauth_destination", o cambias 
ese "permit" por "reject_unauth_destination", o ... (mira más abajo)

> > La idea de esta extraña config. Es que algunos usuarios
> > puedan enviar mails "solo internos", es decir solo a los destinos 
> autorizados en
> > >/etc/postfix/local_destinations que de momento solo contiene un
> > >dominio:
> > >------------
> > >ensi.com.ar             OK
> > >------------
> >
> > Si tienes un check_sender_access con estos datos, eres un
> > open relay para cualquiera que diga que procede de tu dominio :-O
> > Coloca esta restricción *después* de reject_unauth_destination.
>
>Ok, el cambio está hecho.
>
>[snip]

Veamos... Si no me dejo nada, tus smtpd_*_restrictions deberían tener esta 
pinta:

smtpd_restriction_classes = local_only

smtpd_client_restrictions = check_client_access hash:/etc/postfix/infectados

/etc/postfix/infectados
192.168.2.5     REJECT

smtpd_recipient_restrictions =
         reject_non_fqdn_sender,
         reject_non_fqdn_recipient,
         check_sender_access hash:/etc/postfix/restricted_senders,
         permit_mynetworks,
         reject_unauth_destination

/etc/postfix/restricted_senders
usuario1 en ensi.com.ar    local_only
usuario2 en ensi.com.ar    local_only

local_only = check_recipient_access hash:/etc/postfix/mi_dominio, reject

/etc/postfix/mi_dominio
ensi.com.ar     reject_unauth_destination


Fíjate que desaparece la línea de "may_use_external_mail"; Esto es, todo 
usuario que envíe desde $mynetworks y no esté en la lista de usuarios 
restringidos podrá enviar a donde quiera ( como debe ser ).
Puedes "desconectar" máquinas individuales que estén en tu subred ( y 
también de fuera, para pararle los pies a algunos /spammers/ cabezones ! )

Recuerda usar "postmap" para regenerar las bases de datos cada vez que 
hagas un cambio: 'postmap hash:/etc/postfix/infectados' por ejemplo.
( así los archivos de la lista guardan la "receta" :-)

>Ah, yo preguntaba porque tengo:
>smtpd_sender_restrictions = hash:/etc/postfix/access

Observa que eso está *mal*. Sería
smtpd_sender_restrictions = check_sender_access hash:/etc/postfix/access
( esto funciona porque hay un "DUNNO" implícito al final )

>Y la verdad que a esta altura no me queda claro porqué existen
>smtp_sender_restrictions y smtpd_recipient_restrictions si por ejemplo
>en recipient_restrictions puedo especificar algo como:
>check_sender_access ...

Cada una de las restricciones se aplica en una fase de la conversación 
SMTP, de forma que se pueda rechazar/aceptar la conexión en cuanto se 
tengan datos suficientes ( esto último no se aplica si 'smtpd_delay_reject 
= yes'  ).

>(si hay preguntas muy tontas o básicas, no tengo problema en que me lo
>digan y en todo caso que me indiquen qué leer :-/)

Para más información, la propia web de Postfix y las páginas de manual.
"My Understanding of How UCE restrictions actually work" es una lectura muy 
recomendable ...

> > en concreto, hay bastantes parámetros especificados que simplemente 
> copian el valor por defecto ...
> >
> > Para empezar, elimina todos los parámetros que cumplan
>'postconf -d parametro' == 'postconf -n parametro'
>
>Listo, esto lo estoy haciendo.

Espero que te sirva el resultado :)



Taluego...

         José Luis Tallón



-
Para ENVIAR mensajes a esta lista tienes que estar SUSCRITO 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