Publicado por & archivado en Postfix.

Autorizar una IP dinámica para enviar desde Postfix por la IP, sin necesidad de enviar credenciales, puede ser útil en ocasiones, pero no hay una forma sencilla de especificar que un nombre de host esté en $mynetworks.

 

Para hacerlo, se puede sacar la IP a un archivo con grep y awk de un dig, para luego compilarlo con postmap y usarlo en $mynetworks con un hash.

 

Primero, activa un dominio en DynDNS o servicios similares para IPs dinámicas de las IPs que quieras autorizar en Postfix

 

Segundo, crea un archivo para extraer la IP del dominio (cambia mi-dns-dinamico1.dyndns.org por el dominio de tu IP dinámica).

 

Por ejemplo crea,  con vi o cualquier otro editor de texto, un archivo:

vi /usr/bin/dinamicas

 

Y pon esto dentro (añade una linea por cada IP que quieras autorizar):

#!/bin/sh
dig +short mi-dns-dinamico1.dyndns.org | awk '{print $1 " OK"}' > /etc/postfix/dinamicas
dig +short mi-dns-dinamico2.dyndns.org | awk '{print $1 " OK"}' >> /etc/postfix/dinamicas
postmap /etc/postfix/dinamicas

 

Fíjate que la primera línea lleva > en vez de >>, es para crear el archivo vacío cada vez que se actualiza y que no se dupliquen las IPs.

 

Dale permisos de ejecución al archivo:

chmod 755 /etc/postfix/dinamicas

 

Añade el archivo al cron, para que actualice las IPs dinámicas, si lo quieres en el cron general:

vi /etc/crontab

 

Y añade para que se actualice cada minuto:

#Actualiza las IPs dinámicas para incluir en $mynetworks del Postfix
 */1 * * * *    root    /usr/bin/dinamicas >/dev/null 2>&1

 

Opcionalmente puedes usar el cron del usuario root:

crontab -e

 

En ese caso no se especifica el nombre de usuario:

#Actualiza las IPs dinámicas para incluir en $mynetworks del Postfix
 */1  * * * *    /usr/bin/dinamicas >/dev/null 2>&1

 

Por último, edita /etc/postfix/main.cf y añade el hash para acceder a la base de datos en formato Berkeley que genera el postmap con tu lista de IPs:

mynetworks = 127.0.0.1, hash:/etc/postfix/dinamicas

 

Con esto, tu servidor Postfix aceptará como locales las IPs dinámicas de los dominios que tengas configurados en DynDNS o similares.

 

 

Deja un comentario

Tu dirección de correo electrónico no será publicada.