{"id":714,"date":"2012-09-21T13:29:02","date_gmt":"2012-09-21T11:29:02","guid":{"rendered":"http:\/\/intervia.com\/doc\/?p=714"},"modified":"2015-11-26T11:27:04","modified_gmt":"2015-11-26T10:27:04","slug":"anadir-ip-dinamica-a-mynetworks-en-postfix","status":"publish","type":"post","link":"https:\/\/intervia.com\/doc\/anadir-ip-dinamica-a-mynetworks-en-postfix\/","title":{"rendered":"A\u00f1adir IP din\u00e1mica a $mynetworks en Postfix"},"content":{"rendered":"<p class=\"lead\">Autorizar una IP din\u00e1mica para enviar desde Postfix por la IP, sin necesidad de enviar credenciales, puede ser \u00fatil en ocasiones, pero no hay una forma sencilla de especificar que un nombre de host est\u00e9 en $mynetworks.<\/p>\n<p><!--more--><\/p>\n<p>&nbsp;<\/p>\n<p>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.<\/p>\n<p>&nbsp;<\/p>\n<p>Primero, activa un dominio en DynDNS o servicios similares para IPs din\u00e1micas de las IPs que quieras autorizar en Postfix<\/p>\n<p>&nbsp;<\/p>\n<p>Segundo, crea un archivo para extraer la IP del dominio (cambia <em>mi-dns-dinamico1.dyndns.org <\/em>por el dominio de tu IP din\u00e1mica).<\/p>\n<p>&nbsp;<\/p>\n<p>Por ejemplo crea,\u00a0 con vi o cualquier otro editor de texto, un archivo:<\/p>\n<pre><code class=\"language-bash\">vi \/usr\/bin\/dinamicas<\/code><\/pre>\n<p>&nbsp;<\/p>\n<p>Y pon esto dentro (a\u00f1ade una linea por cada IP que quieras autorizar):<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/sh\r\ndig +short mi-dns-dinamico1.dyndns.org | awk '{print $1 \" OK\"}' &gt; \/etc\/postfix\/dinamicas\r\ndig +short mi-dns-dinamico2.dyndns.org | awk '{print $1 \" OK\"}' &gt;&gt; \/etc\/postfix\/dinamicas\r\npostmap \/etc\/postfix\/dinamicas<\/code><\/pre>\n<p>&nbsp;<\/p>\n<p>F\u00edjate que la primera l\u00ednea lleva &gt; en vez de &gt;&gt;, es para crear el archivo vac\u00edo cada vez que se actualiza y que no se dupliquen las IPs.<\/p>\n<p>&nbsp;<\/p>\n<p>Dale permisos de ejecuci\u00f3n al archivo:<\/p>\n<pre><code class=\"language-bash\">chmod 755 \/etc\/postfix\/dinamicas<\/code><\/pre>\n<p>&nbsp;<\/p>\n<p>A\u00f1ade el archivo al cron, para que actualice las IPs din\u00e1micas, si lo quieres en el cron general:<\/p>\n<pre><code class=\"language-bash\">vi \/etc\/crontab<\/code><\/pre>\n<p>&nbsp;<\/p>\n<p>Y a\u00f1ade para que se actualice cada minuto:<\/p>\n<pre><code class=\"language-bash\">#Actualiza las IPs din\u00e1micas para incluir en $mynetworks del Postfix\r\n *\/1 * * * *    root    \/usr\/bin\/dinamicas &gt;\/dev\/null 2&gt;&amp;1<\/code><\/pre>\n<p>&nbsp;<\/p>\n<p>Opcionalmente puedes usar el cron del usuario root:<\/p>\n<pre><code class=\"language-bash\">crontab -e<\/code><\/pre>\n<p>&nbsp;<\/p>\n<p>En ese caso no se especifica el nombre de usuario:<\/p>\n<pre><code class=\"language-bash\">#Actualiza las IPs din\u00e1micas para incluir en $mynetworks del Postfix\r\n *\/1  * * * *    \/usr\/bin\/dinamicas &gt;\/dev\/null 2&gt;&amp;1<\/code><\/pre>\n<p>&nbsp;<\/p>\n<p>Por \u00faltimo, edita \/etc\/postfix\/main.cf y a\u00f1ade el hash para acceder a la base de datos en formato Berkeley que genera el postmap con tu lista de IPs:<\/p>\n<pre><code class=\"language-bash\">mynetworks = 127.0.0.1, hash:\/etc\/postfix\/dinamicas<\/code><\/pre>\n<p>&nbsp;<\/p>\n<p>Con esto, tu servidor Postfix aceptar\u00e1 como locales las IPs din\u00e1micas de los dominios que tengas configurados en DynDNS o similares.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Autorizar una IP din\u00e1mica para enviar desde Postfix por la IP, sin necesidad de enviar credenciales, puede ser \u00fatil en ocasiones, pero no hay una forma sencilla de especificar que un nombre de host est\u00e9 en $mynetworks.<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[94],"tags":[],"class_list":["post-714","post","type-post","status-publish","format-standard","hentry","category-postfix"],"_links":{"self":[{"href":"https:\/\/intervia.com\/doc\/wp-json\/wp\/v2\/posts\/714","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/intervia.com\/doc\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/intervia.com\/doc\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/intervia.com\/doc\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/intervia.com\/doc\/wp-json\/wp\/v2\/comments?post=714"}],"version-history":[{"count":0,"href":"https:\/\/intervia.com\/doc\/wp-json\/wp\/v2\/posts\/714\/revisions"}],"wp:attachment":[{"href":"https:\/\/intervia.com\/doc\/wp-json\/wp\/v2\/media?parent=714"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/intervia.com\/doc\/wp-json\/wp\/v2\/categories?post=714"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/intervia.com\/doc\/wp-json\/wp\/v2\/tags?post=714"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}