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:
En caso de que no se tenga autorización, el MTA devolverá, algo así como:
554 < user@remote >: Access denied
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
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_onlyinsiders_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