<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>PiPo e2H - Soluciones TIC Avanzadas &#187; Correo</title>
	<atom:link href="http://blog.e2h.net/category/correo/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.e2h.net</link>
	<description>Jose Luis Gomez Ferrer de Couto - vExpert&#039;11, CCNA, VCP 4&#38;5, CCA, EMCVSE, ACE</description>
	<lastBuildDate>Mon, 06 Feb 2012 08:35:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Construyendo un Anti-SPAM Gateway. Parte 7 (Whitelist)</title>
		<link>http://blog.e2h.net/2011/03/02/construyendo-un-anti-spam-gateway-parte-7-whitelist/</link>
		<comments>http://blog.e2h.net/2011/03/02/construyendo-un-anti-spam-gateway-parte-7-whitelist/#comments</comments>
		<pubDate>Wed, 02 Mar 2011 22:13:21 +0000</pubDate>
		<dc:creator>José Luis Gómez Ferrer de Couto</dc:creator>
				<category><![CDATA[Postfix]]></category>
		<category><![CDATA[anti-spam]]></category>
		<category><![CDATA[antispam]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[gateway]]></category>
		<category><![CDATA[lista blanca]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[mta]]></category>
		<category><![CDATA[postfix]]></category>
		<category><![CDATA[spam]]></category>
		<category><![CDATA[whitelist]]></category>

		<guid isPermaLink="false">http://blog.e2h.net/?p=2412</guid>
		<description><![CDATA[Hola amig@s: Desde la última parte en el mes de noviembre he tenido un poco abandonada la serie de artículos que completan la solución integral de nuestro Anti-SPAM Gateway. Este artículo será breve, pero servirá para volver a retomar el ritmo de estas entregas. En esta entrega vamos a ver como con la lista blanca vamos [...]]]></description>
			<content:encoded><![CDATA[<p>Hola amig@s:</p>
<p>Desde la última parte en el mes de noviembre he tenido un poco abandonada la serie de artículos que completan la solución integral de nuestro Anti-SPAM Gateway. Este artículo será breve, pero servirá para volver a retomar el ritmo de estas entregas.</p>
<p>En esta entrega vamos a ver como con la lista blanca vamos a permitir recibir correos de ciertos dominios o direcciones IPs sin que tengan que pasar los diferentes filtros de nuestra solución.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-1958" title="mailgw" src="http://blog.e2h.net/wp-content/uploads/2010/07/mailgw.png" alt="" width="540" height="339" /></p>
<p style="text-align: center;"><span id="more-2412"></span></p>
<p style="text-align: center;">&nbsp;</p>
<p style="text-align: left;">Hay ocasiones en las que "tenemos problemas" para recibir correos de ciertos dominios, pero el mayor número de veces no es NUESTRO PROBLEMA.</p>
<p style="text-align: left;">Consultamos nuestros logs y vemos que por ejemplo la persona remitente está siendo rechazada por nuestro filtro SPF, el cual manda al remitente un correo informándole del problema que se ha encontrado. Estos correos casi el 99% de las veces no es leído por el usuario y se lo remite a su mantenimiento informático, el cual en un alto porcentaje antes de solucionar SU problema dirá que es problema del destinatario.</p>
<p style="text-align: left;">Igual que hemos hablado de SPF nos puede pasar con empresas que tienen sus servidores SMTP en direcciones públicas dinámicas, en continuo cambio lo que es muy probable que lo agreguen como spammers en las diferentes listas negras (también es problema nuestro por PROTEGERNOS).</p>
<p style="text-align: left;">Es un proceso fácil, sólo necesitamos crear un nuevo fichero donde declararemos <em>dominios, direcciones, redes o clientes</em> y después será referenciado en el fichero <strong>main.cf</strong> en el apartado <strong>smtpd_recipient_restrictions</strong>.</p>
<p style="text-align: left;">Lo primero que vamos a hacer es crear el fichero donde declarar los datos descritos anteriormente y después compilarlo para que sea legible por Postfix. Para ello ejecutamos los siguientes comandos como usuario root:</p>
<blockquote>
<p style="text-align: left;"><strong>cd /etc/postfix</strong></p>
<p style="text-align: left;"><strong>echo '<span style="color: #ff0000;"><em>X.X.X.X</em></span> OK # <span style="color: #ff0000;"><em>Descripcion</em></span>' &gt;&gt; whitelist</strong></p>
<p style="text-align: left;"><strong>postmap whitelist</strong></p>
</blockquote>
<p style="text-align: left;">El primer comando nos sitúa en el directorio de Postfix. En el siguiente comando hay que sustituir X.X.X.X por la dirección IP o dominio del remitente y agregar una descripción. El último comando compila el fichero para ser legible por Postfix.</p>
<p style="text-align: left;">El último paso es agregar un parámetro en el fichero <strong>main.cf</strong> para que consulte la lista blanca cuando llegue un correo. Para ello como root ejecutamos los siguientes comandos:</p>
<blockquote>
<p style="text-align: left;"><strong>vi main.cf</strong></p>
<p style="text-align: left;"><em>smtpd_recipient_restrictions =</em></p>
<p style="text-align: left; padding-left: 30px;"><em>[...]</em></p>
<p style="text-align: left; padding-left: 30px;"><em>reject_unauth_destination,</em></p>
<p style="text-align: left; padding-left: 30px;"><strong>check_client_access hash:/etc/postfix/whitelist,</strong></p>
<p style="text-align: left; padding-left: 30px;"><em>[...]</em></p>
<p style="text-align: left;"><strong>/etc/init.d/postfix reload</strong></p>
</blockquote>
<p style="text-align: left;">En el primer comando editamos el fichero <strong>main.cf</strong>. A continuación en el apartado <em>smtpd_recipient_restrictions</em> después del parámetro <em>reject_unauth_destination</em> agregamos la sentencia que comprueba el fichero de lista blanca. Para terminar una vez salvados los cambios en <strong>main.cf</strong> se recarga la configuración en Postfix.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.e2h.net/2011/03/02/construyendo-un-anti-spam-gateway-parte-7-whitelist/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Construyendo un Anti-SPAM Gateway. Parte 6 (Mailgraph)</title>
		<link>http://blog.e2h.net/2010/11/07/construyendo-un-anti-spam-gateway-parte-6-mailgraph/</link>
		<comments>http://blog.e2h.net/2010/11/07/construyendo-un-anti-spam-gateway-parte-6-mailgraph/#comments</comments>
		<pubDate>Sun, 07 Nov 2010 00:21:03 +0000</pubDate>
		<dc:creator>José Luis Gómez Ferrer de Couto</dc:creator>
				<category><![CDATA[Postfix]]></category>
		<category><![CDATA[anti-spam]]></category>
		<category><![CDATA[antispam]]></category>
		<category><![CDATA[gateway]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[mailgraph]]></category>
		<category><![CDATA[postfix]]></category>

		<guid isPermaLink="false">http://blog.e2h.net/?p=2162</guid>
		<description><![CDATA[Hola lectores, tras un tiempo de inactividad a nivel de artículos pero si por los foros, os traigo una nueva entrega de nuestro Anti-SPAM Gateway. En esta entrega vamos a centrarnos en si nuestro servidor está siendo efectivo a través de gráficas. Para nuestro objetivo vamos a usar Mailgraph, una aplicación sencilla pero potente y [...]]]></description>
			<content:encoded><![CDATA[<p>Hola lectores, tras un tiempo de inactividad a nivel de artículos pero si por los foros, os traigo una nueva entrega de nuestro Anti-SPAM Gateway.</p>
<p>En esta entrega vamos a centrarnos en si nuestro servidor está siendo efectivo a través de gráficas. Para nuestro objetivo vamos a usar Mailgraph, una aplicación sencilla pero potente y que cumple nuestras expectativas.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-1958" title="mailgw" src="http://blog.e2h.net/wp-content/uploads/2010/07/mailgw.png" alt="" width="540" height="339" /></p>
<p style="text-align: left;"><span id="more-2162"></span>Para poder consultar Mailgraph es necesario disponer de un servidor Web, ya que esta aplicación muestra los valores recolectados a través de un CGI.</p>
<p style="text-align: left;">Las etapas a seguir para la puesta en marcha de Mailgraph son las siguientes:</p>
<ol>
<li>Requisitos previos.</li>
<li>Mailgraph.
<ol>
<li>Descarga.</li>
<li>Instalación.</li>
<li>Configuración.</li>
</ol>
</li>
<li>Pruebas.</li>
</ol>
<p><strong>Requisitos previos</strong></p>
<p>Mailgraph necesita de RRD para poder realizar las gráficas, además de su módulo perl y también File::Tail. Para instalar estos requisitos ejecutamos los siguientes comandos como root aceptando todos los mensajes:</p>
<blockquote><p><strong>apt-get install rrdtool librrds-perl</strong></p>
<p><strong>perl -MCPAN -e shell</strong></p>
<p style="padding-left: 30px;"><strong>install File::Tail</strong></p>
<p style="padding-left: 30px;"><strong>exit</strong></p>
</blockquote>
<p style="text-align: center;"><a href="http://farm5.static.flickr.com/4058/5152224562_31d9a8bf3a_b.jpg" rel="lightbox[2162]"><img class="aligncenter" title="mailgraph1" src="http://farm5.static.flickr.com/4058/5152224562_31d9a8bf3a_b.jpg" alt="" width="472" height="297" /></a></p>
<p style="text-align: left;">Ahora vamos a poner en marcha el servicio Web, el cual vamos a proporcionarlo con Apache2. Para ello ejecutamos el siguiente comando como root y aceptamos los mensajes que aparezcan:</p>
<blockquote>
<p style="text-align: left;"><strong>apt-get install apache2</strong></p>
</blockquote>
<p style="text-align: center;"><a href="http://farm2.static.flickr.com/1384/5151640653_36b2b2b12a_b.jpg" rel="lightbox[2162]"><img class="aligncenter" title="mailgraph2" src="http://farm2.static.flickr.com/1384/5151640653_36b2b2b12a_b.jpg" alt="" width="472" height="297" /></a></p>
<p style="text-align: left;"><strong>Mailgraph</strong></p>
<p style="text-align: left;">Con Mailgraph podremos observar los correos recibidos y enviados, además de los bloqueados como SPAM (cuando existe SpamAssassin o Amavisd), los rechazados y bloqueados. Todas estas opciones está disponibles con la versión oficial de Mailgraph. Adicionalmente podemos optar por usar una versión modificada que también grafica el Greylisting, en nuestro caso también bastante interesante.</p>
<p style="text-align: left;">El método de instalación para cualquiera de las dos aplicaciones es el mismo, nosotros vamos a usar el que tiene soporte para Greylisting, así matamos dos pájaros de un solo tiro.</p>
<p style="text-align: left;"><em><span style="text-decoration: underline;">Descarga</span></em></p>
<p style="text-align: left;">El paquete que vamos a usar lo vamos a descargar desde <a href="http://www.bakarasse.de/pages/en/linux/mailgraph.php?lang=EN">http://www.bakarasse.de/pages/en/linux/mailgraph.php?lang=EN</a>. Si deseamos el paquete original de Mailgraph sin la opción de Greylisting podemos obtenerlo de <a href="http://mailgraph.schweikert.ch/">http://mailgraph.schweikert.ch/</a>. Ejecutamos los siguientes comando como usuario root:</p>
<blockquote>
<p style="text-align: left;"><strong>cd /usr/local/src</strong></p>
<p style="text-align: left;"><strong>wget 'http://www.bakarasse.de/modules/download_gallery/dlc.php?file=10&amp;id=1253923327' -O mailgraph-1.14g3.tar.gz</strong></p>
</blockquote>
<p style="text-align: center;"><a href="http://farm5.static.flickr.com/4036/5152481654_8668eefbb5_b.jpg" rel="lightbox[2162]"><img class="aligncenter" title="mailgraph3" src="http://farm5.static.flickr.com/4036/5152481654_8668eefbb5_b.jpg" alt="" width="472" height="297" /></a></p>
<p style="text-align: left;"><em><span style="text-decoration: underline;">Instalación</span></em></p>
<p style="text-align: left;">Ya con el paquete descargado es hora de descomprimirlo para realizar su instalación. Como usuario root ejecutamos el siguiente comando para su descompresión:</p>
<blockquote>
<p style="text-align: left;"><strong>tar xzf mailgraph-1.14g3.tar.gz</strong></p>
</blockquote>
<p style="text-align: center;"><a href="http://farm2.static.flickr.com/1179/5152522120_c9ae5ac24e_b.jpg" rel="lightbox[2162]"><img class="aligncenter" title="mailgraph4" src="http://farm2.static.flickr.com/1179/5152522120_c9ae5ac24e_b.jpg" alt="" width="472" height="297" /></a></p>
<p style="text-align: left;">Ahora vamos a acceder al directorio y copiar los diferentes ficheros en las ubicaciones correspondientes. Ejecutamos los siguientes comandos como usuario root:</p>
<blockquote>
<p style="text-align: left;"><strong>cd mailgraph-1.14g3</strong></p>
<p style="text-align: left;"><strong>cp mailgraph-init /etc/init.d/mailgraph</strong> #Script de inicio</p>
<p style="text-align: left;"><strong>cp mailgraph.cgi /usr/lib/cgi-bin</strong> #Aplicación Web CGI</p>
<p style="text-align: left;"><strong>cp mailgraph.pl /usr/local/bin</strong> #Aplicación que realiza las estadísticas</p>
</blockquote>
<p style="text-align: center;"><a href="http://farm2.static.flickr.com/1192/5152565012_1d218c8892_b.jpg" rel="lightbox[2162]"><img class="aligncenter" title="mailgraph5" src="http://farm2.static.flickr.com/1192/5152565012_1d218c8892_b.jpg" alt="" width="472" height="297" /></a></p>
<p style="text-align: left;"><em><span style="text-decoration: underline;">Configuración</span></em></p>
<p style="text-align: left;">Ahora vamos a crear el directorio donde se almacenarán las bases de datos que se crean. Para ello ejecutamos como root el comando:</p>
<blockquote>
<p style="text-align: left;"><strong>mkdir /var/lib/mailgraph</strong></p>
<p style="text-align: left;"><strong>chown -R www-data:www-data /var/lib/mailgraph</strong></p>
</blockquote>
<p style="text-align: center;"><a href="http://farm5.static.flickr.com/4042/5152005673_1de8ccbfa4_b.jpg" rel="lightbox[2162]"><img class="aligncenter" title="mailgraph6" src="http://farm5.static.flickr.com/4042/5152005673_1de8ccbfa4_b.jpg" alt="" width="472" height="297" /></a></p>
<p style="text-align: left;">Ahora vamos a editar el script de inicio, donde vamos a modificar los valores del fichero de logs de nuestro servidor de correos y donde se almacenan las bases de datos generadas por Mailgraph. Además, adicionalmente asignamos permisos de ejecución al script, todo ello ejecutando los siguientes comandos como root:</p>
<blockquote>
<p style="text-align: left;"><strong>chmod 755 /etc/init.d/mailgraph</strong></p>
<p style="text-align: left;"><strong>vi /etc/init.d/mailgraph</strong></p>
<p style="text-align: left; padding-left: 30px;"><strong>MAIL_LOG=/var/log/mail.log</strong></p>
<p style="text-align: left; padding-left: 30px;"><strong>RRD_DIR=/var/lib/mailgraph</strong></p>
</blockquote>
<p style="text-align: center;"><a href="http://farm5.static.flickr.com/4091/5152627708_6f18c7601e_b.jpg" rel="lightbox[2162]"><img class="aligncenter" title="mailgraph7" src="http://farm5.static.flickr.com/4091/5152627708_6f18c7601e_b.jpg" alt="" width="472" height="297" /></a></p>
<p style="text-align: left;">Ahora sólo nos falta configurar nuestro Mailgraph para que arranque al iniciar el sistema. Ejecutamos como root el siguiente comando:</p>
<blockquote>
<p style="text-align: left;"><strong>chkconfig mailgraph on</strong></p>
</blockquote>
<p style="text-align: center;"><a href="http://farm2.static.flickr.com/1053/5152169229_6743936f02_b.jpg" rel="lightbox[2162]"><img class="aligncenter" title="mailgraph8" src="http://farm2.static.flickr.com/1053/5152169229_6743936f02_b.jpg" alt="" width="472" height="297" /></a></p>
<p style="text-align: left;">Por último vas a iniciar nuestro Mailgraph para que comienza a recopilar datos, como root ejecutamos:</p>
<blockquote>
<p style="text-align: left;"><strong>/etc/init.d/mailgraph start</strong></p>
</blockquote>
<p style="text-align: center;"><a href="http://farm2.static.flickr.com/1195/5152783156_a9d33791a2_b.jpg" rel="lightbox[2162]"><img class="aligncenter" title="mailgraph9" src="http://farm2.static.flickr.com/1195/5152783156_a9d33791a2_b.jpg" alt="" width="472" height="297" /></a></p>
<p style="text-align: left;"><strong>Pruebas</strong></p>
<p style="text-align: left;">Para comprobar que Mailgraph está funcionando accedemos a través de nuestro explorador a la dirección http://IP_SERVIDOR/cgi-bin/mailgraph.cgi</p>
<p style="text-align: center;"><a href="http://farm2.static.flickr.com/1335/5152243063_815a55ba33_b.jpg" rel="lightbox[2162]"><img class="aligncenter" title="mailgraph10" src="http://farm2.static.flickr.com/1335/5152243063_815a55ba33_b.jpg" alt="" width="465" height="422" /></a></p>
<p style="text-align: left;">Espero que os haya resultado de utilidad esta nueva herramienta, pronto iremos mejorando nuestro Anti-SPAM Gateway con más mejoras.</p>
<p style="text-align: left;">
]]></content:encoded>
			<wfw:commentRss>http://blog.e2h.net/2010/11/07/construyendo-un-anti-spam-gateway-parte-6-mailgraph/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Construyendo un Anti-SPAM Gateway. Parte 5 (Greylisting)</title>
		<link>http://blog.e2h.net/2010/09/14/construyendo-un-anti-spam-gateway-parte-5-greylisting/</link>
		<comments>http://blog.e2h.net/2010/09/14/construyendo-un-anti-spam-gateway-parte-5-greylisting/#comments</comments>
		<pubDate>Tue, 14 Sep 2010 18:56:55 +0000</pubDate>
		<dc:creator>José Luis Gómez Ferrer de Couto</dc:creator>
				<category><![CDATA[Postfix]]></category>
		<category><![CDATA[amavisd-new]]></category>
		<category><![CDATA[anti-spam]]></category>
		<category><![CDATA[antispam]]></category>
		<category><![CDATA[best practices]]></category>
		<category><![CDATA[gateway]]></category>
		<category><![CDATA[greylisting]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[postfix]]></category>
		<category><![CDATA[rbl]]></category>
		<category><![CDATA[spamassassin]]></category>
		<category><![CDATA[spamhaus]]></category>
		<category><![CDATA[zen]]></category>

		<guid isPermaLink="false">http://blog.e2h.net/?p=2100</guid>
		<description><![CDATA[Hola una vez más, perdonad la tardanza pero NO he estado de vacaciones , sino he estado estudiando para obtener el VCP410 de VMware y actualmente estoy estudiando para sacar el CCNA... así que hasta pasado el mes de octubre, los artículos irán a cuenta gotas. También quiero compartir con vosotros, que tomaré tan merecidas [...]]]></description>
			<content:encoded><![CDATA[<p>Hola una vez más, perdonad la tardanza pero NO he estado de vacaciones <img src='http://blog.e2h.net/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> , sino he estado estudiando para obtener el VCP410 de VMware y actualmente estoy estudiando para sacar el CCNA... así que hasta pasado el mes de octubre, los artículos irán a cuenta gotas. También quiero compartir con vosotros, que tomaré tan merecidas vacaciones el próximo día 11 de octubre, donde viajaré con mi pareja a la costa este de USA hasta el 1 de noviembre (tremendas ganas que tenemos).</p>
<p>Bueno, voy a dejarme de rollos que sino nos liamos. En este nuevo artículo, donde seguimos con el objetivo de construir un Anti-SPAM Gateway eficiente y sin grandes esfuerzos, nos vamos a centrar en el <a href="http://es.wikipedia.org/wiki/Greylisting" target="_blank">Greylisting</a>. Esta técnica desde un punto de vista general, se encarga en realizar una demora de 5 minutos al menos antes de recibir el correo electrónico. Se basa en dirección IP del remitente, dirección de correo electrónico del remitente y dirección de correo electrónico del destinatario; informando al servidor origen con el <strong>error 450</strong> (<em>No puedo atender tu petición ahora, por favor inténtalo más tarde</em>).</p>
<p>Esta técnica resulta útil porque los spammers normalmente no reenvían los correos que han fallado, ya que eso generaría la necesidad de tener grandes líneas y servidores para procesar todos los reenvíos de los correos fallidos. De este modo, si el correo NO es spam, SEGURO que intentará ser enviado una, dos, tres, hasta un periodo de caducidad configurado por el servidor origen.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-1958" title="postgrey" src="http://blog.e2h.net/wp-content/uploads/2010/07/mailgw.png" alt="" width="472" height="297" /></p>
<p><span id="more-2100"></span>Como anteriormente hemos mencionado, la técnica de Greylisting se basa en tres parámetros como la IP del remitente y su dirección de correo electrónico, y la dirección de correo del receptor. A partir de ahí, cuando un correo llega por primera vez a nuestro Anti-SPAM Gateway, éste consultará si dispone alguna información en su base de datos, de no ser así él la agregará incluyendo la hora y fecha de la recepción. Desde ese momento, hasta cinco minutos más tarde (tiempo predeterminado), todo reintento no será aceptado.</p>
<p>Una vez hayan pasado los cinco minutos, cuando el servidor origen vuelva a reintentar el envío, nuestro Anti-SPAM Gateway permitirá dicho correo y dejará almacenado durante 35 días (tiempo predeterminado) los datos requeridos para comprobar el correo electrónico, es decir, IP del remitente, dirección de correo electrónico del remitente y dirección de correo electrónico del receptor. De esto modo, dentro de esos 35 días, todo correo que cumpla esa regla almacenada será directamente aceptado por nuestro Greylisting.</p>
<p>Para conseguir este valor añadido en nuestro Anti-SPAM Gateway, vamos a utilizar la herramienta más extendida que se encuentra para esta técnica, la cual se llama <a href="http://postgrey.schweikert.ch/" target="_blank">Postgrey</a>. Se da por hecho, que ya contamos con nuestro Anti-SPAM Gateway instalado habiendo seguido los <a href="http://blog.e2h.net/category/correo/postfix-correo/" target="_blank">artículos previos</a>.</p>
<p>Los pasos que vamos a seguir para esta instalación son los siguientes:</p>
<ol>
<li>Instalar requisitos previos.</li>
<li>Crear grupo, usuario y directorio para Postgrey.</li>
<li>Descargar, instalar y configurar Postgrey.</li>
<li>Configurar Postfix.</li>
<li>Probar Postgrey.</li>
</ol>
<p><strong>Instalar requisitos previos</strong></p>
<p>Postgrey requiere Perl &gt;= 5.6.0, Net::Server, IO::Multiplex y BerkeleyDB. Para ello vamos a ejecutar los siguientes comandos como usuario root (aceptando todos los mensajes con yes o y):</p>
<blockquote><p><strong>perl -MCPAN -e shell</strong></p>
<p><strong>install Net::Server IO::Multiplex BerkeleyDB</strong></p>
<p><strong>exit</strong></p></blockquote>
<p style="text-align: center;"><a href="http://farm5.static.flickr.com/4091/4990474345_52481fa4af_b.jpg" rel="lightbox[2100]"><img class="aligncenter" title="postgrey2" src="http://farm5.static.flickr.com/4091/4990474345_52481fa4af_b.jpg" alt="" width="472" height="297" /></a></p>
<p style="text-align: left;"><strong>Crear grupo, usuario y directorio para Postgrey</strong></p>
<p style="text-align: left;">Vamos a crear estos objetos ya que son necesarios para que Postgrey pueda correr como servicio y almacene los datos en su base de datos. Para ello como usuario root ejecutamos los siguientes comandos:</p>
<blockquote>
<p style="text-align: left;"><strong>groupadd -g 1982 postgrey</strong></p>
<p style="text-align: left;"><strong>useradd -m -u 1982 -g postgrey -s /bin/false -d /var/spool/postfix/postgrey postgrey</strong></p>
</blockquote>
<p style="text-align: center;"><a href="http://farm5.static.flickr.com/4124/4990495103_0ac3901213_b.jpg" rel="lightbox[2100]"><img class="aligncenter" title="postgrey3" src="http://farm5.static.flickr.com/4124/4990495103_0ac3901213_b.jpg" alt="" width="472" height="297" /></a></p>
<p style="text-align: left;"><strong>Descargar, instalar y configurar Postgrey</strong></p>
<p style="text-align: left;">Para realizar la instalación nos vamos a descargar las <a href="http://postgrey.schweikert.ch/pub/" target="_blank">últimas fuentes de la aplicación</a>, para ello como siempre copiaremos la URL del paquete para posteriormente descargarlo en nuestro servidor. Como usuario root ejecutamos los siguientes comandos:</p>
<blockquote>
<p style="text-align: left;"><strong>cd /usr/local/src</strong></p>
<p style="text-align: left;"><strong>wget http://postgrey.schweikert.ch/pub/postgrey-1.33.tar.gz</strong></p>
</blockquote>
<p style="text-align: center;"><a href="http://farm5.static.flickr.com/4127/4991109684_8b19628ee7_b.jpg" rel="lightbox[2100]"><img class="aligncenter" title="postgrey4" src="http://farm5.static.flickr.com/4127/4991109684_8b19628ee7_b.jpg" alt="" width="472" height="297" /></a></p>
<p style="text-align: left;">Ahora vamos a instalar Postgrey, es un paso muy sencillo, ya que únicamente tenemos que copiar unos ficheros. Para ello vamos a ejecutar los siguientes comandos como root:</p>
<blockquote>
<p style="text-align: left;"><strong>tar xzf postgrey-1.33.tar.gz</strong></p>
<p style="text-align: left;"><strong>cd postgrey-1.33.tar.gz</strong></p>
<p style="text-align: left;"><strong>cp postgrey /usr/sbin</strong></p>
<p style="text-align: left;"><strong>cp postgrey_whitelist_* /etc/postfix</strong></p>
</blockquote>
<p style="text-align: center;"><a href="http://farm5.static.flickr.com/4113/4991128278_05e89c46a1_b.jpg" rel="lightbox[2100]"><img class="aligncenter" title="postgrey5" src="http://farm5.static.flickr.com/4113/4991128278_05e89c46a1_b.jpg" alt="" width="472" height="297" /></a></p>
<p style="text-align: left;">Ahora vamos a configurar nuestro Postgrey, para que pueda ser arrancado como servicio. Para conseguirlo, vamos a copiar un script de ejemplo que viene en el directorio <em>contrib</em> del paquete descomprimido y vamos a crear un fichero en <em>/etc/default</em> para que lea de ahí los parámetros adicionales. Como root vamos a ejecutar los siguientes comandos:</p>
<blockquote>
<p style="text-align: left;"><strong>cp contrib/postgrey.init /etc/init.d/postgrey</strong></p>
<p style="text-align: left;"><strong>chmod 755 /etc/init.d/postgrey</strong></p>
<p style="text-align: left;"><strong>chkconfig postgrey on</strong></p>
<p style="text-align: left;"><strong>vi /etc/default/postgrey</strong></p>
<p style="text-align: left; padding-left: 30px;"><strong>POSTGREY_OPTS="--inet=10023"</strong></p>
</blockquote>
<p style="text-align: center;"><a href="http://farm5.static.flickr.com/4086/4990549751_aca7676949_b.jpg" rel="lightbox[2100]"><img class="aligncenter" title="postgrey6" src="http://farm5.static.flickr.com/4086/4990549751_aca7676949_b.jpg" alt="" width="472" height="297" /></a></p>
<p style="text-align: center;"><a href="http://farm5.static.flickr.com/4091/4990549855_e2dc895689_b.jpg" rel="lightbox[2100]"><img class="aligncenter" title="postgrey7" src="http://farm5.static.flickr.com/4091/4990549855_e2dc895689_b.jpg" alt="" width="472" height="297" /></a></p>
<p style="text-align: left;">Si deseamos arrancar Postgrey con otros parámetros, como en vez de cinco minutos poner diez; o en vez de 35 días poner más o menos, podemos consultar su documentación ejecutando el siguiente comando:</p>
<blockquote>
<p style="text-align: left;"><strong>perldoc postgrey</strong></p>
</blockquote>
<p style="text-align: center;"><a href="http://farm5.static.flickr.com/4152/4990563843_f7bafa845d_b.jpg" rel="lightbox[2100]"><img class="aligncenter" title="postgrey8" src="http://farm5.static.flickr.com/4152/4990563843_f7bafa845d_b.jpg" alt="" width="472" height="297" /></a></p>
<p style="text-align: left;">Ahora vamos a dejar arrancado Postgrey, para ello ejecutamos el siguiente comando como root:</p>
<blockquote>
<p style="text-align: left;"><strong>/etc/init.d/postgrey start</strong></p>
</blockquote>
<p style="text-align: center;"><a href="http://farm5.static.flickr.com/4110/4991174480_5d1dece430_b.jpg" rel="lightbox[2100]"><img class="aligncenter" title="postgrey9" src="http://farm5.static.flickr.com/4110/4991174480_5d1dece430_b.jpg" alt="" width="472" height="297" /></a></p>
<p style="text-align: left;"><strong>Configurar Postfix</strong></p>
<p style="text-align: left;">Para que Postfix remita los correo a Postgrey debemos agregar una línea en el fichero <em>main.cf</em> después de la línea<em> reject_unauth_destination</em>. Para ello ejecutamos los siguientes comandos como root:</p>
<blockquote>
<p style="text-align: left;"><strong>vi /etc/postfix/main.cf</strong></p>
<p style="text-align: left; padding-left: 30px;"><em>smtpd_recipient_restrictions =</em></p>
<p style="text-align: left; padding-left: 30px;"><em>...</em></p>
<p style="text-align: left; padding-left: 30px;"><em>reject_unauth_destination</em></p>
<p style="text-align: left; padding-left: 30px;"><strong>check_policy_service inet:127.0.0.1:10023</strong></p>
</blockquote>
<blockquote>
<p style="text-align: left;"><strong>postfix reload</strong></p>
</blockquote>
<p style="text-align: center;"><a href="http://farm5.static.flickr.com/4103/4991192608_0a1d6da24e_b.jpg" rel="lightbox[2100]"><img class="aligncenter" title="postgrey10" src="http://farm5.static.flickr.com/4103/4991192608_0a1d6da24e_b.jpg" alt="" width="472" height="297" /></a></p>
<p style="text-align: left;">Si ejecutamos el comando <strong>tail -f /var/log/mail.log</strong> podremos observar que postgrey ha sido reconocido satisfactoriamente.</p>
<p style="text-align: center;"><a href="http://farm5.static.flickr.com/4152/4990597627_b46cd4bcfd_b.jpg" rel="lightbox[2100]"><img class="aligncenter" title="postgrey11" src="http://farm5.static.flickr.com/4152/4990597627_b46cd4bcfd_b.jpg" alt="" width="472" height="297" /></a></p>
<p style="text-align: left;"><strong>Probar Postgrey</strong></p>
<p style="text-align: left;">Para probar nuestro Postgrey vamos a realizar cuatro envíos de correo desde la misma IP y con las mismas direcciones de correo. Ell segundo será enviado un minuto después del primero, el tercero será enviado cuatro minutos después del segundo y el cuarto será enviado inmediatamente después del tercero.</p>
<p style="text-align: left;">Para monitorizar nuestro Postfix, dejamos ejecutado el comando <strong>tail -f /var/log/mail.log</strong>, donde irá apareciendo todo lo que suceda en el servidor en referencia al servicio MTA.</p>
<p style="text-align: left;">Con el primer envío lo que hacemos es que Postgrey esté en ALERTA por si se produce sucesivos intentos permitir su entrega. Para ello vamos a ejecutar los siguientes comandos (los mismos para todas las pruebas) con un cliente telnet atacando a nuestro Anti-SPAM Gateway.</p>
<ul>
<li>Prueba primera</li>
</ul>
<p style="text-align: center;"><a href="http://farm5.static.flickr.com/4085/4990667295_4b9c653965_b.jpg" rel="lightbox[2100]"><img class="aligncenter" title="postgrey12" src="http://farm5.static.flickr.com/4085/4990667295_4b9c653965_b.jpg" alt="" width="447" height="226" /></a></p>
<p style="text-align: center;"><a href="http://farm5.static.flickr.com/4106/4990667187_46952541c0_b.jpg" rel="lightbox[2100]"><img class="aligncenter" title="postgrey13" src="http://farm5.static.flickr.com/4106/4990667187_46952541c0_b.jpg" alt="" width="472" height="297" /></a></p>
<ul>
<li>Prueba segunda. Casi dos minutos después del primer intento, se puede comprobar que aparece el tiempo en la segunda captura.</li>
</ul>
<p style="text-align: center;"><a href="http://farm5.static.flickr.com/4124/4990667409_6002711556_b.jpg" rel="lightbox[2100]"><img class="aligncenter" title="postgrey14" src="http://farm5.static.flickr.com/4124/4990667409_6002711556_b.jpg" alt="" width="472" height="297" /></a></p>
<p style="text-align: center;"><a href="http://farm5.static.flickr.com/4151/4990667689_1e71accf20_b.jpg" rel="lightbox[2100]"><img class="aligncenter" title="postgrey15" src="http://farm5.static.flickr.com/4151/4990667689_1e71accf20_b.jpg" alt="" width="472" height="297" /></a></p>
<ul>
<li>Prueba tercera. El correo es aceptado y aparece cuanto tiempo ha pasado desde el primer envío en la segunda captura.</li>
</ul>
<p style="text-align: center;"><a href="http://farm5.static.flickr.com/4091/4990667851_7f7eebc7fc_b.jpg" rel="lightbox[2100]"><img class="aligncenter" title="postgrey16" src="http://farm5.static.flickr.com/4091/4990667851_7f7eebc7fc_b.jpg" alt="" width="474" height="239" /></a></p>
<p style="text-align: center;"><a href="http://farm5.static.flickr.com/4124/4990668019_d639e6839b_b.jpg" rel="lightbox[2100]"><img class="aligncenter" title="postgrey17" src="http://farm5.static.flickr.com/4124/4990668019_d639e6839b_b.jpg" alt="" width="472" height="297" /></a></p>
<ul>
<li>Prueba cuarta. Se comprueba que ya no aparece cuanto tiempo ha pasado, pero si aparece que cumple la triple condición como se observa en la segunda captura.</li>
</ul>
<p style="text-align: center;"><a href="http://farm5.static.flickr.com/4154/4991273732_8c4f662fa8_b.jpg" rel="lightbox[2100]"><img class="aligncenter" title="postgrey18" src="http://farm5.static.flickr.com/4154/4991273732_8c4f662fa8_b.jpg" alt="" width="474" height="239" /></a></p>
<p style="text-align: center;"><a href="http://farm5.static.flickr.com/4131/4991273872_db5d2be329_b.jpg" rel="lightbox[2100]"><img class="aligncenter" title="postgrey19" src="http://farm5.static.flickr.com/4131/4991273872_db5d2be329_b.jpg" alt="" width="474" height="239" /></a></p>
<p style="text-align: left;">Espero que este artículo os resulte de ayuda y dentro de poco tengamos nuestro Anti-SPAM Gateway ideal.</p>
<p style="text-align: left;">
<blockquote>
<p style="text-align: left; padding-left: 30px;">
</blockquote>
<p style="text-align: left;">
]]></content:encoded>
			<wfw:commentRss>http://blog.e2h.net/2010/09/14/construyendo-un-anti-spam-gateway-parte-5-greylisting/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Construyendo un Anti-SPAM Gateway. Parte 4 (RBL)</title>
		<link>http://blog.e2h.net/2010/08/17/construyendo-un-anti-spam-gateway-parte-4-rbl/</link>
		<comments>http://blog.e2h.net/2010/08/17/construyendo-un-anti-spam-gateway-parte-4-rbl/#comments</comments>
		<pubDate>Tue, 17 Aug 2010 21:16:18 +0000</pubDate>
		<dc:creator>José Luis Gómez Ferrer de Couto</dc:creator>
				<category><![CDATA[Postfix]]></category>
		<category><![CDATA[amavisd-new]]></category>
		<category><![CDATA[anti-spam]]></category>
		<category><![CDATA[antispam]]></category>
		<category><![CDATA[best practices]]></category>
		<category><![CDATA[gateway]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[postfix]]></category>
		<category><![CDATA[rbl]]></category>
		<category><![CDATA[spamassassin]]></category>
		<category><![CDATA[spamhaus]]></category>
		<category><![CDATA[zen]]></category>

		<guid isPermaLink="false">http://blog.e2h.net/?p=2066</guid>
		<description><![CDATA[Estamos aquí nuevamente en nuestra cuarta entrega donde seguiremos protegiéndonos del correo no deseado que llega día a día a nuestros buzones. En la tercera entrega vimos como identificar los correos legítimos gracias a SPF, en esta entrega vamos a usar RBL (Realtime Blackhole List) para bloquear un gran número de correos que llegan de [...]]]></description>
			<content:encoded><![CDATA[<p>Estamos aquí nuevamente en nuestra cuarta entrega donde seguiremos protegiéndonos del correo no deseado que llega día a día a nuestros buzones. En la <a href="http://blog.e2h.net/2010/08/03/construyendo-un-anti-spam-gateway-parte-3-spf/" target="_blank">tercera entrega</a> vimos como identificar los correos legítimos gracias a SPF, en esta entrega vamos a usar RBL (Realtime Blackhole List) para bloquear un gran número de correos que llegan de servidores <a id="aptureLink_8Zl5Ek3Gdj" href="http://es.wikipedia.org/wiki/Open%20Relay">open relay</a> entre otros.</p>
<p>Como base de datos RBL vamos a usar la proporcionada de forma gratuita por Spamhaus, la cual se mantiene ya desde hace unos años mientras que otras han sido cerradas y no continuado su mantenimiento.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-1958" title="mailgw" src="http://blog.e2h.net/wp-content/uploads/2010/07/mailgw.png" alt="" width="472" height="297" /></p>
<p style="text-align: left;"><span id="more-2066"></span><a id="aptureLink_Xtk58IfqcH" href="http://www.spamhaus.org/">Spamhaus</a> cuenta con varias listas para usarla como RBL, pero aconsejan usar la lista ZEN. La configuración es bastante simple, por lo que no vamos a extender mucho el artículo ya que únicamente es incluir una línea en nuestro fichero <em>main.cf</em>.</p>
<p style="text-align: left;">Vamos a editar nuestro fichero main.cf y en el apartado smtpd_recipient_restrictions añadiremos la línea que va a controlar RBL. Esta línea deberá estar la última antes del <em>permit</em>, para ello ejecutamos los siguientes comandos como usuario root:</p>
<blockquote>
<p style="text-align: left;"><strong>vi /etc/postfix/main.cf</strong></p>
<p style="text-align: left; padding-left: 30px;">smtpd_recipient_restrictions</p>
<p style="text-align: left; padding-left: 30px;">...</p>
<p style="text-align: left; padding-left: 30px;"><strong>reject_rbl_client zen.spamhaus.org</strong></p>
<p style="text-align: left; padding-left: 30px;">permit</p>
<p style="text-align: left;"><strong>postfix reload</strong></p>
</blockquote>
<p style="text-align: center;"><strong><a href="http://farm5.static.flickr.com/4117/4902041041_329a49e392_b.jpg" rel="lightbox[2066]"><img class="aligncenter" title="rbl" src="http://farm5.static.flickr.com/4117/4902041041_329a49e392_b.jpg" alt="" width="472" height="297" /></a></strong></p>
<p style="text-align: left;">Una vez introducida la línea mostrada, recargamos la configuración de Postfix con el comando mostrado arriba. Si dejamos monitorizando el fichero de logs <em>/var/logs/mail.log</em> veremos que comenzará a funcionar el bloqueo de correos mostrando líneas donde se diferencian las consultas a <em>zen.spamhaus.org</em>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.e2h.net/2010/08/17/construyendo-un-anti-spam-gateway-parte-4-rbl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Construyendo un Anti-SPAM Gateway. Parte 3 (SPF)</title>
		<link>http://blog.e2h.net/2010/08/03/construyendo-un-anti-spam-gateway-parte-3-spf/</link>
		<comments>http://blog.e2h.net/2010/08/03/construyendo-un-anti-spam-gateway-parte-3-spf/#comments</comments>
		<pubDate>Tue, 03 Aug 2010 20:09:19 +0000</pubDate>
		<dc:creator>José Luis Gómez Ferrer de Couto</dc:creator>
				<category><![CDATA[Postfix]]></category>
		<category><![CDATA[amavisd-new]]></category>
		<category><![CDATA[anti-spam]]></category>
		<category><![CDATA[antispam]]></category>
		<category><![CDATA[gateway]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[postfix]]></category>
		<category><![CDATA[spamassassin]]></category>
		<category><![CDATA[spf]]></category>

		<guid isPermaLink="false">http://blog.e2h.net/?p=2032</guid>
		<description><![CDATA[En nuestra segunda entrega se proporcionaban ciertos parámetros como buenas prácticas para mejorar el rendimiento y seguridad de nuestro Anti-SPAM Gateway. En esta nueva entrega vamos a mostrar como identificar los servidores SMTP válidos para nuestro dominio en Internet, además de detectar si los correos recibidos de un dominio vienen de un servidor SMTP válido. [...]]]></description>
			<content:encoded><![CDATA[<p>En nuestra <a href="http://blog.e2h.net/2010/07/07/construyendo-un-anti-spam-gateway-parte-2-buenas-practicas/" target="_blank">segunda entrega</a> se proporcionaban ciertos parámetros como buenas prácticas para mejorar el rendimiento y seguridad de nuestro Anti-SPAM Gateway. En esta nueva entrega vamos a mostrar como identificar los servidores SMTP válidos para nuestro dominio en Internet, además de detectar si los correos recibidos de un dominio vienen de un servidor SMTP válido.</p>
<p>Para esta funcionalidad vamos a usar <a id="aptureLink_GF0B4J6Xx7" href="http://es.wikipedia.org/wiki/Sender%20Policy%20Framework">SPF</a> (Sender Policy Framework), que integraremos a nuestro Postfix para conseguir el objetivo buscado.</p>
<p style="text-align: left;"><img class="aligncenter size-full wp-image-1958" title="mailgw" src="http://blog.e2h.net/wp-content/uploads/2010/07/mailgw.png" alt="" width="472" height="297" /><span id="more-2032"></span>Hemos de diferenciar SPF desde dos puntos de vista, proteger nuestro dominio para poder ser usado con SPF y protegernos de dominios falsos gracias a SPF. Explicándolo de un modo más sencillo, tenemos que registrar nuestro MX del dominio con una IP válida en los DNS (como si se tratase de una guía de teléfonos con el nombre de una persona y su teléfono) y para protegernos de los dominios falsos tenemos que tener un complemento que nos permita consultar esa "guía".</p>
<p style="text-align: left;">Partimos de que ya tenemos nuestro servidor montado y funcionando como se ha explicado en los artículos anteriores. Los pasos que vamos a seguir durante este artículo son los siguientes:</p>
<ol>
<li>Configurar SPF en nuestro DNS.</li>
<li>Configurar SPF en Postfix.
<ol>
<li>Instalar componentes requeridos.</li>
<li>Descargar SPF.</li>
<li>Instalar SPF.</li>
<li>Configurar SPF.</li>
</ol>
</li>
<li>Probar SPF.</li>
</ol>
<p><strong>Configurar SPF en nuestro DNS</strong></p>
<p>SPF se apoya en nuestro DNS, es decir, se declara con un registro del tipo TXT. La sintaxis de este registro la vamos a explicar a continuación.</p>
<p>Existen cuatro calificadores que se usan en la sintaxis, "+" Pass, "-" Fail, "~" SoftFail y "?" Neutral.</p>
<ul>
<li><em>"+" Pass</em> --&gt; El registro SPF designa que ese host tiene permiso para enviar. Este calificador es el usado de forma predeterminado si no se declara ninguno. Acción mostrada --&gt; <span style="text-decoration: underline;">accept</span>.</li>
<li><em>"-" Fail</em> --&gt; El registro SPF ha designado que ese host no tiene permiso para enviar. Acción mostrada --&gt; <span style="text-decoration: underline;">reject</span>.</li>
<li><em>"~" SoftFail</em> --&gt; El registro SPF ha designado que ese host no tiene permiso para enviar pero lo deja pasar. Acción mostrada --&gt; <span style="text-decoration: underline;">accept but mark</span>.</li>
<li><em>"?" Neutral</em> --&gt; El registro SPF especifica que nada puede decirse sobre su validez. Acción mostrada --&gt; <span style="text-decoration: underline;">accept</span>.</li>
</ul>
<p>Si una sintaxis resulta coincidente, su calificador se usa. Como hemos dicho de modo predeterminado el calificador es "+" Pass. Por ejemplo:</p>
<blockquote><p><strong>"v=spf1 -all"</strong></p>
<p><strong>"v=spf1 a -all"</strong></p>
<p><strong>"v=spf1 a mx -all"</strong></p>
<p><strong>"v=spf1 +a +mx -all"</strong></p></blockquote>
<p>Las sintaxis son evaluadas en orden, si no existen coincidencias el resultado es "<span style="text-decoration: underline;">Neutral</span>". Si el dominio no dispone de un registro SPF el resultado es "<span style="text-decoration: underline;">None</span>", por lo que su acción es <span style="text-decoration: underline;">accept</span>.</p>
<p>El mecanismo "<span style="text-decoration: underline;">all</span>" siempre coincide. Normalmente es usado siempre al final de la sintaxis. A continuación mostramos unos ejemplos:</p>
<blockquote><p><strong>"v=spf1 mx -all"</strong> Permite todos los registros MX del dominio a enviar email y todos los demás se rechazan.</p>
<p><strong>"v=spf1 -all"</strong> Se rechazan todos los envíos.</p>
<p><strong>"v=spf1 +all"</strong> Se aceptan todos los envíos, no usar nunca o hacerlo con cuidado.</p></blockquote>
<p>El mecanismo "<span style="text-decoration: underline;">ip4</span>" se refiere a una dirección de red, si no se establece una máscara se entiende que es /32 (un equipo individual). A continuación unos ejemplos de su uso:</p>
<blockquote><p><strong>"v=spf1 ip4:192.168.0.1/16 -all"</strong> Permite el envío desde cualquier IP entre 192.168.0.1 y 192.168.255.255.</p></blockquote>
<p>Existen otros mecanismos como "mx", "a", "ptr", .... Puedes encontrar más información sobre las sintaxis en la web de <a id="aptureLink_1aAbtm6USO" href="http://www.openspf.org/SPF_Record_Syntax">openspf</a>.</p>
<p>Vamos a mostrar un ejemplo real con el dominio <em>e2h.net</em>. Para esta prueba vamos a usar nslookup, consultando el registro TXT declarado. Ejecutamos los siguientes comandos bien en Windows o Linux.</p>
<blockquote><p><strong>nslookup</strong></p>
<p><strong>set type=txt</strong></p>
<p><strong>e2h.net</strong></p></blockquote>
<p style="text-align: center;"><a href="http://farm5.static.flickr.com/4120/4857784852_9dc41496bb_b.jpg" rel="lightbox[2032]"><img class="aligncenter" title="spf1" src="http://farm5.static.flickr.com/4120/4857784852_9dc41496bb_b.jpg" alt="" width="474" height="239" /></a></p>
<p style="text-align: left;">Podemos ver en este ejemplo que se aceptan envíos desde cualquier registro declarado en nuestro DNS como A, MX y desde la dirección IP 94.23.229.13; todo lo demás es rechazado.</p>
<p style="text-align: left;">En definitiva, todo esto nos sirve para ayudar a servidores de correos que disponen de consulta SPF informarles quien tiene permiso a realizar envíos EN NUESTRO NOMBRE (dominio). El servidor realizará una consulta SPF, comprobará que desde el dominio e2h.net sólo tienen derecho a enviar los registros A, MX y la IP mostrada, si resulta que están enviando desde cualquier otro sitio que no está declarado, el servidor de correo lo rechazará.</p>
<p style="text-align: left;">Es aconsejable no usar "-all", ya que no es totalmente funcional cuando por medio existen reenviadores a nivel de buzón o servidores MX de respaldo. Si enviamos un correo a un usuario y este tiene hecha una redirección a otro buzón y tiene activado SPF dará como envío no permitido, ya que aparece como remitente la IP desde el servidor que se reenvía asociado al dominio registrado con SPF. Lo mismo ocurre con un servidor MX de backup, cuando este devuelva todos los correos al primario aparecerá su IP como el remitente, asociada al dominio registrado con SPF.</p>
<p style="text-align: left;">Por lo tanto, su mejor uso es con "~all". Nos avisará, dejando pasar el correo y con otros mecanismos como Spamassassin ya controlaremos si es válido o no.</p>
<p style="text-align: left;"><strong>Configurar SPF en Postfix</strong></p>
<p style="text-align: left;">Una vez registrado nuestro SPF y permitiendo así que servidores de correos puedan comprobar la autenticidad de nuestro dominio en los envíos recibidos, ahora le toca el turno a nuestro servidor. Vamos a preparar nuestro Postfix para que él también pueda consultar si los correos que reciben son legítimos gracias a los registros SPF que deberán haber declarado los dominios desde los cuales recibimos correo.</p>
<p style="text-align: left;"><em><span style="text-decoration: underline;">Instalar componentes requeridos</span></em></p>
<p style="text-align: left;">El primer paso es preparar nuestro servidor para que pueda ser instalado SPF. Para ello necesitamos instalar el componente <em>Mail::SPF</em>. Como root ejecutamos los siguientes comandos:</p>
<blockquote>
<p style="text-align: left;"><strong>perl -MCPAN -e shell</strong></p>
<p style="text-align: left;"><strong>Yes</strong> (si es la primera vez que ejecutamos CPAN)</p>
<p style="text-align: left;"><strong>install Mail::SPF</strong> (responder a todas las preguntas que nos haga con yes o y)</p>
<p style="text-align: left; padding-left: 30px;">Cuando se muestre las siguientes líneas el proceso habrá terminado</p>
<p style="text-align: left; padding-left: 30px;"><em>JMEHNLE/mail-spf/Mail-SPF-v2.007.tar.gz</em></p>
<p style="text-align: left; padding-left: 30px;"><em>./Build install  -- OK</em></p>
</blockquote>
<blockquote>
<p style="text-align: left;"><strong>quit</strong></p>
</blockquote>
<p style="text-align: center;"><a href="http://farm5.static.flickr.com/4114/4857225067_fe34467aac_b.jpg" rel="lightbox[2032]"><img class="aligncenter" title="spf3" src="http://farm5.static.flickr.com/4114/4857225067_fe34467aac_b.jpg" alt="" width="474" height="297" /></a></p>
<p style="text-align: center;"><a href="http://farm5.static.flickr.com/4114/4857846258_e216b4413f_b.jpg" rel="lightbox[2032]"><img class="aligncenter" title="spf4" src="http://farm5.static.flickr.com/4114/4857846258_e216b4413f_b.jpg" alt="" width="474" height="297" /></a></p>
<p style="text-align: center;"><a href="http://farm5.static.flickr.com/4117/4857232069_e5cbf9538a_b.jpg" rel="lightbox[2032]"><img class="aligncenter" title="spf5" src="http://farm5.static.flickr.com/4117/4857232069_e5cbf9538a_b.jpg" alt="" width="474" height="297" /></a></p>
<p style="text-align: center;"><a href="http://farm5.static.flickr.com/4100/4857240881_ab966c5c1c_b.jpg" rel="lightbox[2032]"><img class="aligncenter" title="spf6" src="http://farm5.static.flickr.com/4100/4857240881_ab966c5c1c_b.jpg" alt="" width="474" height="297" /></a></p>
<p style="text-align: left;"><em><span style="text-decoration: underline;">Descargar SPF</span></em></p>
<p style="text-align: left;">Existen <a id="aptureLink_YMe84IXhr4" href="http://www.openspf.org/Software">dos aplicaciones</a> para realizar las comprobaciones SPF, una escrita en Perl (para servidores sin altas exigencias) y otra en Python (para servidores con altas exigencias). A nosotros nos vale con el escrito en Perl, en su <a href="https://launchpad.net/postfix-policyd-spf-perl/" target="_blank">página web</a> copiamos el enlace para posteriormente descargarlo en nuestro servidor.</p>
<p style="text-align: center;"><a href="http://farm5.static.flickr.com/4101/4857296917_d2736759a4_b.jpg" rel="lightbox[2032]"><img class="aligncenter" title="spf7" src="http://farm5.static.flickr.com/4101/4857296917_d2736759a4_b.jpg" alt="" width="473" height="197" /></a></p>
<p style="text-align: left;">Una vez hemos copiado el enlace del fichero ejecutamos los siguientes comandos como root en nuestro servidor:</p>
<blockquote>
<p style="text-align: left;"><strong>cd /usr/local/src</strong></p>
<p style="text-align: left;"><strong>wget </strong><a href="http://launchpad.net/postfix-policyd-spf-perl/trunk/2.007/+download/postfix-policyd-spf-perl-2.007.tar.gz"><strong>http://launchpad.net/postfix-policyd-spf-perl/trunk/2.007/+download/postfix-policyd-spf-perl-2.007.tar.gz</strong></a></p>
</blockquote>
<p style="text-align: center;"><a href="http://farm5.static.flickr.com/4122/4857305835_04d443e99b_b.jpg" rel="lightbox[2032]"><img class="aligncenter" title="spf8" src="http://farm5.static.flickr.com/4122/4857305835_04d443e99b_b.jpg" alt="" width="472" height="297" /></a></p>
<p style="text-align: left;"><em><span style="text-decoration: underline;">Instalar SPF</span></em></p>
<p style="text-align: left;">Una vez hemos descargado el paquete, lo vamos a descomprimir y copiar su contenido. Para ello ejecutamos los siguientes comandos como root:</p>
<blockquote>
<p style="text-align: left;"><strong>tar xzf postfix-policyd-spf-perl-2.007.tar.gz</strong></p>
<p style="text-align: left;"><strong>cd postfix-policyd-spf-perl-2.007</strong></p>
<p style="text-align: left;"><strong>cp postfix-policyd-spf-perl /usr/libexec/postfix/policyd-spf-perl</strong></p>
</blockquote>
<p style="text-align: center;"><a href="http://farm5.static.flickr.com/4094/4857939052_86147741a6_b.jpg" rel="lightbox[2032]"><img class="aligncenter" title="spf9" src="http://farm5.static.flickr.com/4094/4857939052_86147741a6_b.jpg" alt="" width="472" height="297" /></a></p>
<p style="text-align: left;"><em><span style="text-decoration: underline;">Configurar SPF</span></em></p>
<p style="text-align: left;">Para que SPF sea lanzado cuando llegue un correo elecrónico es necesario crear un servicio en el fichero <em>master.cf</em> de nuestro Postfix. Este servicio lo que hará es lanzar el script que hemos instalado y comprobar el dominio del remitente con su dirección IP de conexión. Para crear este servicio en el fichero <em>master.cf</em> vamos a agregar unas líneas al final, ejecutamos los siguientes comandos como root:</p>
<blockquote>
<p style="text-align: left;"><strong>vi /etc/postfix/master.cf</strong></p>
<p style="text-align: left;"><strong>policy unix - n n - - spawn</strong></p>
<p style="text-align: left; padding-left: 30px;"><strong>user=nobody argv=/usr/bin/perl /usr/libexec/postfix/policyd-spf-perl</strong></p>
</blockquote>
<p style="text-align: center;"><a href="http://farm5.static.flickr.com/4096/4857370361_27d92e1b2c_b.jpg" rel="lightbox[2032]"><img class="aligncenter" title="spf10" src="http://farm5.static.flickr.com/4096/4857370361_27d92e1b2c_b.jpg" alt="" width="472" height="297" /></a></p>
<p style="text-align: left;">Ahora vamos a configurar nuestro <em>main.cf</em> para que lance el servicio cuando llegue un correo y pase por todo el proceso de comprobación. Esta línea ha de colocarse siempre después de <strong>reject_unauth_destination</strong>. Ejecutamos los siguientes comandos como root:</p>
<blockquote>
<p style="text-align: left;"><strong>vi /etc/postfix/main.cf</strong></p>
<p style="text-align: left;"><strong>check_policy_service unix:private/policy</strong></p>
</blockquote>
<p style="text-align: center;"><a href="http://farm5.static.flickr.com/4076/4857384587_5b0a900eeb_b.jpg" rel="lightbox[2032]"><img class="aligncenter" title="spf11" src="http://farm5.static.flickr.com/4076/4857384587_5b0a900eeb_b.jpg" alt="" width="472" height="297" /></a></p>
<p style="text-align: left;">Para que los cambios surtan efecto, necesitamos recargar la configuración Postfix. Ejecutamos el siguiente comando como root:</p>
<blockquote>
<p style="text-align: left;"><strong>postfix reload</strong></p>
</blockquote>
<p style="text-align: left;"><strong>Probar SPF</strong></p>
<p style="text-align: left;">El método más rápido de probar nuestro SPF es realizando una conexión local a nuestro AntiSPAM Gateway. Mientras hacemos la prueba vamos a monitorizar el fichero de logs de nuestro AntiSPAM. Primero vamos a dejar monitorizando nuestro fichero de logs, para ello ejecutamos el siguiente comando como root:</p>
<blockquote>
<p style="text-align: left;"><strong>tail -f /var/log/mail.log</strong></p>
</blockquote>
<p style="text-align: left;">Ahora vamos a conectar desde nuestro cliente al servidor, ejecutamos los siguientes comandos:</p>
<blockquote>
<p style="text-align: left;"><strong>telnet IP_AntiSPAM 25</strong></p>
<p style="text-align: left;"><strong>ehlo &lt;dominio&gt;</strong></p>
<p style="text-align: left;"><strong>mail from:usuario@dominio.com</strong></p>
<p style="text-align: left;"><strong>rcpt to:usuario@example.com</strong></p>
</blockquote>
<p style="text-align: center;"><a href="http://farm5.static.flickr.com/4122/4857465159_f2570404c3_b.jpg" rel="lightbox[2032]"><img class="aligncenter" title="spf12" src="http://farm5.static.flickr.com/4122/4857465159_f2570404c3_b.jpg" alt="" width="472" height="297" /></a></p>
<p style="text-align: center;"><a href="http://farm5.static.flickr.com/4096/4858084712_934de60aac_b.jpg" rel="lightbox[2032]"><img class="aligncenter" title="spf13" src="http://farm5.static.flickr.com/4096/4858084712_934de60aac_b.jpg" alt="" width="474" height="239" /></a></p>
<p style="text-align: left;">Podemos observar en las imágenes superiores primero el log de nuestro AntiSPAM, detectando el intento de envío inválido que estamos realizando desde el cliente (captura inferior). Se puede observar que aparece una dirección Web la cual podemos visitar y nos informará el porque ha fallado el envío. Esta dirección sirve de ayuda para el cliente, así sabrá porque no ha podido enviar el correo.</p>
<p style="text-align: center;"><a href="http://farm5.static.flickr.com/4121/4858103692_834df624ec_b.jpg" rel="lightbox[2032]"><img class="aligncenter" title="spf14" src="http://farm5.static.flickr.com/4121/4858103692_834df624ec_b.jpg" alt="" width="491" height="182" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.e2h.net/2010/08/03/construyendo-un-anti-spam-gateway-parte-3-spf/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

