Proteger destinatarios y comprobar remitentes en Postfix

publicado por Carlos Torres el 10/02/2012 17:09

Postfix implementa las clases de restrincción (Postfix restriction classes), con las que se puede implementar control de acceso por dirección, se puede controlar entre otras cosas:

  • 1. Qué remitentes pueden enviar a qué destinatarios.
  • 2. Qué destinatarios pueden recibir correo desde qué remitentes.

En caso de que no se tenga autorización, el MTA devolverá, algo así como:

554 < user@remote >: Access denied


Restringiendo remitentes

En este caso queremos que cuando llegue (se envíe) un mensaje desde un determinado remitente, comprobemos previamente qué dominios o usuarios destinatarios están autorizados para ello.

Crear en main.cf una clase "local_only" para comprobar los dominios a los que se entragarán por esta clase, y hacer la comprobación de los remitentes en el smtpd_recipient_restrictions:

/etc/postfix/main.cf:

smtpd_recipient_restrictions =
  check_sender_access hash:/etc/postfix/remitentes_restringidos
  ...otras comprobaciones...

smtpd_restriction_classes = local_only
  local_only =
    check_recipient_access hash:/etc/postfix/dominios_locales, reject

En el fichero de los remitentes restringidos a comprobar indicar que pertenecen a esa clase (local_only).

/etc/postfix/remitentes_restringidos:

usuario1@dominio.tld    local_only
usuario2@dominio.tld    local_only
...

En el fichero de los dominios locales (podrán ser destinatarios) indicar los que permiten el envio porque que pertenecen a esa clase (local_only).

/etc/postfix/dominios_locales:

dominio.tld   OK   #coincide con dominio.tld y sus subdominios
dominio2.tld  OK  #coincide con dominio2.tld y sus subdominios
...

Como son ficheros hash, si se manipulan, hay que recargarlos:

$ postmap /etc/postfix/nombre_fichero && postfix reload


Protegiendo destinatarios

En este caso queremos que cuando llegue (se envíe) un mensaje desde a un determinado usuario o dominio, comprobemos previamente qué dominios (o usuarios) remitentes están autorizados para ello.

Crear en main.cf una clase "insiders_only" para comprobar los dominios a los que se entragarán por esta clase, y hacer la comprobación de los destinatarios en el smtpd_recipient_restrictions:

/etc/postfix/main.cf:

smtpd_recipient_restrictions =
  check_recipient_access hash:/etc/postfix/destinos_protegidos
  ...otras comprobaciones...

smtpd_restriction_classes = insiders_only

insiders_only = check_sender_access hash:/etc/postfix/remitentes, reject

En el fichero de los destinos /destinatarios restringidos a comprobar, indicar que pertenecen a esa clase (insiders_only).

/etc/postfix/destinos_protegidos:

usuario1@dominio.tld    insiders_only
usuario2@dominio.tld    insiders_only
...

En el fichero de los dominios remitentes (podrán ser direcciones) indicar los que permiten el envio porque que pertenecen a esa clase (insiders_only).

/etc/postfix/remitentes:

dominio.tld   OK  #coincide con dominio.tld y sus subdominios
dominio2.tld  OK  #coincide con dominio2.tld y sus subdominios
...

Como son ficheros hash, si se manipulan, hay que recargarlos:

$ postmap /etc/postfix/nombre_fichero && postfix reload


Añadir un comentario:

Nombre:

E-Mail:

Comentario: :

Enviar >>