<?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>{ :ivan =&#62; :hq } &#187; Assl</title>
	<atom:link href="http://ivanhq.net/category/assl/feed/" rel="self" type="application/rss+xml" />
	<link>http://ivanhq.net</link>
	<description>Unix, tecnología y algunas cosas sobre mí</description>
	<lastBuildDate>Tue, 27 Dec 2011 00:37:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Al final Amavisd</title>
		<link>http://ivanhq.net/2006/10/26/al-final-amavisd/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=al-final-amavisd</link>
		<comments>http://ivanhq.net/2006/10/26/al-final-amavisd/#comments</comments>
		<pubDate>Thu, 26 Oct 2006 16:22:18 +0000</pubDate>
		<dc:creator>ivan</dc:creator>
				<category><![CDATA[Assl]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Networking]]></category>

		<guid isPermaLink="false">http://ivanhq.net/2006/10/26/al-final-amavisd/</guid>
		<description><![CDATA[Bueno pues la solución que posteé ayer era buena, pero tenía un pequeño fallo de funcionamiento en el que no había caído&#8230; comprobé durante las pruebas que los mensajes que enviaba llegaban a su destino correctamente, de lo que no me dí cuenta es de que también se enviaban al remitente :D La explicación es [...]]]></description>
			<content:encoded><![CDATA[<p><img width="190" height="145" align="left" alt="spam.jpg" id="image83" src="http://ivanhq.net/wp-content/uploads/2006/10/spam.jpg" />Bueno pues la solución que posteé ayer era buena, pero tenía un pequeño fallo de funcionamiento en el que no había caído&#8230; comprobé durante las pruebas que los mensajes que enviaba llegaban a su destino correctamente, de lo que no me dí cuenta es de que también se enviaban al remitente :D</p>
<p>La explicación es fácil: se invoca a procmail con los parámetros <strong>${sender} ${recipient}</strong> y luego ejecutar el envío desde el filtro usando <strong>&#8220;$@&#8221;</strong> como destino, se pasa entre los argumentos el primer parámetro, el sender, y por tanto también a él le llega copia del mensaje.</p>
<p>Obsesionado, he buscado durante horas y horas la manera de recortar la lista de argumentos desde dentro del <strong>procmailrc</strong>, pero no he sido capaz, ni dentro de los filtros ni de forma global. Si alguien lo consigue, aunque sea ya por mero desafío, que lo diga heheh</p>
<p>Finalmente, mi amigo <a href="http://fr3nd.net">fr3nd</a> me ha hablado de <a href="http://www.ijs.si/software/amavisd/">Amavisd</a>, y acostumbrado a <a href="http://www.mimedefang.org/">MIMEDefang</a> no me ha sido difícil de implementar. La verdad es que lleva en producción todo el día y de momento va bastante bien.</p>
<p>Las instrucciones mínimas son las siguientes:</p>
<p>1) Instalar amavisd</p>
<p>2) Editar el fichero de configuración (<strong>/etc/amavisd.conf</strong>)</p>
<p>3) Modificar el contenido de las siguientes líneas para personalizarlo con el dominio principal de la máquina:</p>
<pre>$mydomain = 'somesite.net'
$myhostname = 'boxname.somesite.net'</pre>
<p>4) Leer el resto de la configuración para acabar de ajustar los parámetros deseados (tamaño máximo de correos enviados, política por defecto ante virus y spam, sistemas de filtrado antivirus&#8230;)</p>
<p>5) Modificar el <strong>master.cf</strong> para añadir un transport con el filtro:</p>
<pre># Amavisd
smtp-amavis unix -      -       y       -       2  smtp
-o smtp_data_done_timeout=1200
-o smtp_send_xforward_command=yes
-o disable_dns_lookups=yes
-o max_use=20

127.0.0.1:10025 inet n  -       n       -       -  smtpd
-o content_filter=
-o local_recipient_maps=
-o relay_recipient_maps=
-o smtpd_restriction_classes=
-o smtpd_delay_reject=no
-o smtpd_client_restrictions=permit_mynetworks,reject
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o smtpd_data_restrictions=reject_unauth_pipelining
-o smtpd_end_of_data_restrictions=
-o mynetworks=127.0.0.0/8
-o smtpd_error_sleep_time=0
-o smtpd_soft_error_limit=1001
-o smtpd_hard_error_limit=1000
-o smtpd_client_connection_count_limit=0
-o smtpd_client_connection_rate_limit=0</pre>
<p>6) Modificar el <strong>main.cf</strong> para añadir el socket de comunicación con Amavis:</p>
<pre># Amavisd
content_filter = smtp-amavis:[127.0.0.1]:10024</pre>
<p>7) Lanzar amavis (<strong>avamisd start</strong>) y reiniciar postfix</p>
]]></content:encoded>
			<wfw:commentRss>http://ivanhq.net/2006/10/26/al-final-amavisd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Spamassassin, procmail y Postfix</title>
		<link>http://ivanhq.net/2006/10/25/spamassassin-procmail-y-postfix/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=spamassassin-procmail-y-postfix</link>
		<comments>http://ivanhq.net/2006/10/25/spamassassin-procmail-y-postfix/#comments</comments>
		<pubDate>Wed, 25 Oct 2006 22:55:06 +0000</pubDate>
		<dc:creator>ivan</dc:creator>
				<category><![CDATA[Assl]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Networking]]></category>

		<guid isPermaLink="false">http://ivanhq.net/2006/10/25/spamassassin-procmail-y-postfix/</guid>
		<description><![CDATA[Bueno pues esto ya me traía de caeza. Se trata de filtrar el correo con procmail (adorado Procmail) en un sistema de correo Postfix con usuarios virtuales. Cabe decir que a mí personalmente no me gusta la idea de eliminar el spam antes de entregarlo, pero es cuestión de ahorro de ancho de banda, uno [...]]]></description>
			<content:encoded><![CDATA[<p><img width="190" height="145" align="left" id="image82" alt="spam.jpg" src="http://ivanhq.net/wp-content/uploads/2006/10/spam.jpg" />Bueno pues esto ya me traía de caeza. Se trata de filtrar el correo con procmail (adorado Procmail) en un sistema de correo Postfix con usuarios virtuales.</p>
<p>Cabe decir que a mí personalmente no me gusta la idea de eliminar el spam antes de entregarlo, pero es cuestión de ahorro de ancho de banda, uno de los bienes más preciados a nivel mundial, y de los más altamente cotizados en el <a href="http://en.wikipedia.org/wiki/Web_hosting">mercado del hosting</a> español (y nos quejamos de la gasolina&#8230;)</p>
<p>EL roblema radica en que, siendo usuarios físicos basta con poner un fichero <span style="font-weight: bold">.procmailrc</span> en cada home, que compruebe si el mensaje está tageado como spam, y entonces lo borre. Ahora bien, siendo usuarios virtuales (mapeados en mysql) la cosa cambia y el fichero de filtrado se lee por defecto de <span style="font-weight: bold">/etc/procmailrc</span> (en FreeBSD como es el caso, <span style="font-weight: bold">/usr/local/etc/procmailrc</span>).</p>
<p>No es que eso suponga un problema, pero el caso es que no he sabido encontrar por ahí la manera de pasar el filtro primero a Spamassassin, luego dejar caer el mensaje en procmail (<span style="font-weight: bold">spamc -e</span>, prueba superada) para que siga la ejecución del transport, y finalmente de procmail pasarlo al binario sendmail de postfix. Este último paso es el que me mataba.</p>
<p>Bien, pues he encontrado la solución, y la dejo aquí por si a alguien le sirve. Seguro que a muchos usuarios de <a href="http://www.vhcs.net">VHCS</a> les será útil :-)</p>
<p>En el transport he incorporado el filtro de procmail en el lugar del binario de sendmail, que invoco después desde el procmailrc. Queda así (<span style="font-weight: bold">master.cf</span>):</p>
<pre>spamassassin unix -     n       n       -       -       pipe
user=nobody argv=/usr/local/bin/spamc -f -e
/bin/procmail -m /usr/local/etc/procmailrc ${sender} ${recipient}</pre>
<p>Después, el procmailrc que dejo por defecto es este:</p>
<pre>FROM="<$1>"

:0
* ^X-Spam-Status: Yes
/dev/null

:0
! -f $FROM "$@"</pre>
<p>Recogiendo las direcciones de orígen y destino del entorno, todo el problema se resuelve. Ahora bien&#8230; la sintaxis no es muy deducible, y en el site oficial de procmail la documentación no brilla precisamente por su abundancia.</p>
<p>Por otro lado, en los ejemplos de Spamassassin <a href="http://wiki.apache.org/spamassassin/DeletingAllMailsMarkedSpam">recomiendan filtrar por la cabecera X-Spam-Level</a>, pero eso significa que para aumentar o disminuir el nivel a partir del que hay que borrar, es necesario editar el procmailrc y añadir o quitar asteriscos a la puntuación. Filtrando por status sólo hay que poner la puntuación en el <span style="font-weight: bold">local.cf</span> de Spamassassin y relanzar el demonio.</p>
<p>Y eso es todo :-)</p>
]]></content:encoded>
			<wfw:commentRss>http://ivanhq.net/2006/10/25/spamassassin-procmail-y-postfix/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>DNS dinámica con Linux</title>
		<link>http://ivanhq.net/2006/10/17/dns-dinamica-con-linux/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=dns-dinamica-con-linux</link>
		<comments>http://ivanhq.net/2006/10/17/dns-dinamica-con-linux/#comments</comments>
		<pubDate>Tue, 17 Oct 2006 10:26:19 +0000</pubDate>
		<dc:creator>ivan</dc:creator>
				<category><![CDATA[Assl]]></category>
		<category><![CDATA[Networking]]></category>

		<guid isPermaLink="false">http://ivanhq.net/2006/10/17/dns-dinamica-con-linux/</guid>
		<description><![CDATA[Hoy, cansado de entrar por ssh al server del curro para buscar en los logs la IP de mi casa entre los accesos POP3, he decidido gastar 5 minutitos en montarme un dns update para la IP dinámica que me da Jazztel. Así podré acceder a mi casa por nombre en lugar de comerme el [...]]]></description>
			<content:encoded><![CDATA[<p>Hoy, cansado de entrar por ssh al server del curro para buscar en los logs la IP de mi casa entre los accesos POP3, he decidido gastar 5 minutitos en montarme un dns update para la IP dinámica que me da Jazztel. Así podré acceder a mi casa por nombre en lugar de comerme el coco cada vez.</p>
<p>Bueno, en realidad es algo muy muy sencillito de hacer, pero por si acaso a alguien le interesa lo explico aquí.</p>
<p>Primero hay que instalar el software de <span style="font-weight: bold">Bind en la máquina cliente</span>, que tiene las herramientas necesarias para generar las claves de actualización de zonas. Una vez instalado hay que crear una clave para la zona que se quiere actualizar (una para cada zona, eso es obvio):</p>
<pre>dnssec-keygen -a HMAC-MD5 -b 128 -n HOST ivanhq</pre>
<p>&#8220;ivanhq&#8221; es el nombre de la clave que yo voy a crear, lo llamo así para saber qué zona actualiza, pero podría llamarse &#8220;dnskey&#8221; sin ningún problema. Esto genera dos ficheros, un <em>.private</em> y un <em>.key</em>, ni que decir tiene cuál es el público y cual el privado&#8230; el público servirá para ponerlo en la configuración del servidor, el privado no debe moverse del cliente.</p>
<p>Es conveniente guardar los ficheros de las claves en algún directorio que guarde relación con Bind. Yo los he puesto aquí:</p>
<pre>mkdir /var/bind/tsig
mv Kivanhq* /var/bind/tsig/
chown -R 0066 /var/bind/tsig</pre>
<p>Después debe modificarse el fichero de configuración de <span style="font-weight: bold">named en el servidor (named.conf)</span>. Debe incorporarse la key pública del cliente, para decirle al servidor que acepte sus <span style="font-style: italic">updates</span>.</p>
<pre>key ivanhq {
algorithm HMAC-MD5.SIG-ALG.REG.INT;
secret "agCr8JkmLKsgFuSw==";
};</pre>
<p>El contenido de &#8220;secret&#8221; es la clave pública, que está contenida en el fichero <span style="font-style: italic">.key</span> y se puede ver con un simple &#8220;cat&#8221;. Esto se puede poner al principio del archivo, antes de la declaración de zonas.</p>
<p>Después debe modificarse la declaración de la zona que se va a actualizar, para permitir la actualización desde la &#8220;key ivanhq&#8221;:</p>
<pre>zone "ivanhq.net" {
type master;
allow-update{
key ivanhq;
};
file "/etc/namedb/ivanhq.net.db";
};</pre>
<p>Una vez hecho esto debe reiniciarse el servidor named, y ya se puede actualizar el nombre desde el cliente, por línea de comandos:</p>
<pre>nsupdate -k /var/bind/tsig/Kivanhq.+157+25718.key</pre>
<p>Esto lee de la entrada de consola, y ahora debemos especificar lo que debe hacer en la zona:</p>
<pre>update delete micasa.ivanhq.net
update add micasa.ivanhq.net 60 IN A 111.222.333.444</pre>
<p>Es necesario pulsar Enter 2 veces al final para que el servidor reciba la señal de EOF y haga efectivos los cambios en la zona. La dirección IP dinámica va en el lugar de &#8220;111.222.333.444&#8243;. Y ya está.</p>
<p>Yo he hecho un pequeño script que saca mi dirección IP pública, y lo ejecuto desde el cron una vez por minuto. También he encontrado problemas en la actualización si el cliente y el servidor están descompasados en tiempo&#8230; de modo que es bueno pensar en sincronizar las máquinas con ntp contra algún servidor de time (hora.rediris.es, por ejemplo).</p>
<p><strong>EDICIÓN:</strong> vaya&#8230; este post es prácticamente un duplicado del que ya escribí en su día explicando <a href="http://ivanhq.net/2006/03/23/dns-dinamico-con-freebsd/">cómo hacerlo en FreeBSD</a>. No me había dado cuenta :(</p>
]]></content:encoded>
			<wfw:commentRss>http://ivanhq.net/2006/10/17/dns-dinamica-con-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

