martes, 30 de abril de 2013

Envios de correos y spam

Hoy un par de apuntes rapidos para todos aquellos con un server y con problemas a la hora de enviar correos.

Hay varias razones que hacen que nuestro correo sea tomado como spam. La primera de ellas, y la mas importante, es que estemos listados en alguna blacklist. Podemos acabar ahí de diversas formas, bien porque realmente hemos mandado spam a traves de una cuenta hackeada, o bien porque hemos hecho un mailing (spam legal) y o bien hemos mandado muchos correos de golpe o bien varios destinatarios nos han marcado el correo como spam (aunque lo hubiesen solicitado). En este caso, despues de solucionar el problema que hubiese, vamos a http://www.mxtoolbox.com y buscamos la ip desde la que sale nuestro correo. Nos mostrara una lista de sitios en los que estamos listados, es ir uno a uno deslistandolos. Esto que a priori parece sencillo puede no serlo tanto ya que hay sitios que te pueden exigir que les pagues o esperes un mes a que se desliste automaticamente. Lo mas rapido es, si se puede, cambiar la ip desde la que se envia el correo y ajustar un par de detalles que comento ahora mismo ya que son otros de los motivos por los que se nos puede tomar como spam.

Otro motivo por el que nos pueden tomar como spam es por no tener bien configuradas las DNS en lo referente al correo. Puede que tengas creado el MX para recibir el correo y las entradas A correspondientes, pero te faltan entradas por crear, al menos tres. Dos de ellas son criticas, y la otra depende del sistema que usen, pero por ejemplo terra lo pide.

Lo primero de todo es crear um PTR, esto lo tendreis que hacer en el DNS donde esten declaradas las ips de vuetro ISP, generalmente el suyo. Un ptr es simplemente la entrada opuesta a una A: es darle a una IP un nombre de dominio. Este nombre en teoria puede ser cualquiera y no tiene porque existir, podeis llamarle miserverpeludito.es por ejemplo, pero no es lo recomendable ya que son los sistemas antispam los que ponen las reglas. Y cada uno tiene las suyas. Para contentar a todos lo que tenemos que poner es el hostname de la maquina, y aqui la tercera entrada, ese hostname tiene que resolver a la ip que manda el correo, por lo que hay que crear una entrada de tipo A en nuestro dominio que sea el hostname. Resumen: ptr, registro A y hostname, todod iguales y resolviendo.

El segundo registro DNS critico que hay que crear se llama SPF, basicamente hay que poner desde que ip enviamos el correo y decir que si no llega desde ahi, es spam. Es un tema complejo para crearlo bien, pero uno que no fallara es: "v=spf1 a mx ip4: ~all". Como es complejo y si no esta bien creado puede dar mucho por saco, cuandi tenga un hueco hare un post explicandolo mas detenidamente.

Hay otros registros que se pueden crear, como el DKIM, inscribirse en whitelists, o comprobar la reputacion de la IP, pero con estas tres entradas en el DNS y comprobando que no estes listado podras mandar correo sin problemas. Una vez explicado el SPF si me acuerdo explico esto ultimo, pero eso si lo tengo mas cogido por los pelos.

¡Saludos!

sábado, 27 de abril de 2013

Cluster Beowulf

Hace unas semanas en una tarde tranquila en el trabajo me dio por mirar formas de clusters que habia por ahi. Un cluster viene a ser un grupo de maquinas que trabajan conjuntamente para ofrecer una solucion a un problema, ultimamente abundan los de virtualizacion para los clouds o los de almacenamiento.

Una de las cosas que mas me gustan es ver (y hacer) que varias maquinas fisicas se vean a efectos practicos como una. En el caso del cloud, puede evitar un corte del servicio haciendo que cuando una maquina fisica se cae, los servicios pasen a ejecutarse en otra sin que nos enteremos. Otro caso es el del almacenamiento, unir varios discos duros de distintas maquinas y que funcione como si fuese uno solo.

Otro uso de los clusters es para la computacion distribuida, en este caso el Beowulf es un ejemplo. Lo que conseguimos con esto es que varias maquinas compartan procesador y memoria para ejecutar una tarea, generalmente aquellas que requieren mucha capacidad de calculo. Para el programa que se ejecute en ese cluster, es como si hubiese una maquina con todas las cpus y la ram y lo tiene a su disposicion.

La bondad de este tipo de cluster es que no necesitas hardware dedicado y carisimo, con maquinas normales puedes hacerlo sin problemas, reduciendo costes en comparacion con otras soluciones. El problema es que para aprovechar esto necesitas que el programa en cuestion este diseñado para este tipo de clusters por lo que las aplicaciones que he encontrado son para calculos en universidades o renderizado 3D.

En cuanto tenga la oportunidad me voy a montar uno, because yes xD y ya investigare que usos se le pueden dar a este tipo de cluster mas allá de lo que he encontrado por ahora (tengo una idea loca en mente que si se pudiese hacer voy a dar saltos de alegría y ya contare para que nadie me copie :P).

Como es mi intencion, una vez montado intentare poner el howto en la wiki.

¡Saludos!

martes, 23 de abril de 2013

Ese gran enemigo: las actualizaciones

Uy, este es un tema que se toma muy a cachondeo por todos, pero realmente es critico. Todos nos quejamos de las actualizaciones: "joer que pesaitos los de M$, hay 10 actualizaciones pendientes... ¿pues sabes que? Otro dia si eso...".

Muchos hemos estado ahí, no nos engañemos. Pero ¿realmente hacemos bien? Sabemos que no.

En las actualizaciones, no solo de Windows, podemos encontrarnos con que han cambiado cosas para mejorar la estabilidad del sistema (o joderlo, mirad una de las ultimas actualizaciones de Windows 7) pero lo importate es que nos meten parches de seguirdad corrigiendo bugs que pueden comprometernos y mucho. Mirar Java si no... Que lleva una racha fina, fina.

Esto es importante en equipos domesticos, pero mas aun en equipos corporativos y servidores. ¿Porque arriesgarnos a que comprometan nuestra red por no actualizar? Si hay algo que intento inculcar a la gente es la ley del minimo esfuerzo y eso, en estas situaciones, implica actualizar cuanto antes incluso reiniciando equipos las veces que haga falta para que luego no te jodan con mas trabajo. "¿Comoor?"

Os pongo un ejemplo, sois webmasters de renombre y teneis un superwordpress como este. Como teneis un super theme incompatible con la vida con nuevas versiones, decidis que es mejor no actualizar ya que, uf, hay que apañar luego el theme y es un curro de pelotas... Lo entiendo, nos gusta llevarnos las pelas y currar poco, yo tambien lo intento. Asi que, como no queremos currar de mas, lo dejamos asi... Una semana, un mes... Oye, que no ha pasado nada, soy un genio.

Lo siguiente que te puede pasar, mes y medio despues, es que tu cliente a media noche te llame porque al entrar a leer ve que en los comentarios le estan ofreciendo viagras. "Que yo soy mu macho y no necesito eso!" te espeta cabreado, y con razon. A la 1 de la mañana, despues de los gritos y con los ojos con legañas, enciendes tu mac air y vas a ver la web. La revisas, vas a esa donde has metido en programita en java pa quedar bien y... Hostia, te acabas de comer un virus en tu mac...

Ya exasperado y tratando de desconectar para pensar que puedes hacer viendo un correo de gatetes con gafas que te han mandado, descubres un aviso de tu ISP de que desde tu servidor se esta mandando spam. "Uffff..." revisas el correo y ves que lo mandan desde una cuenta llamada prueba. "¿Como puede ser eso?... Aaaanda... Si le puse prueba de contraseña y me olvide..." Pero el aviso no acaba ahi, te dicen que tienes archivos en tu wordpress que tambien mandan spam... En este punto, el superwebmaster de wordpress decide que debio hacerse emo, hubiese tendio menos sufrimiento.

¿Y todo esto porque? Por no actualizar a tiempo para no trabajar de mas. ¿Es exagerado lo que pongo aqui? Creerme que no, yo soy de los que envian el aviso de spam al pobre webmaster. Al final lo que toca hacer es borrar todo, instalar un wordpress actualizado teniendo que adaptar el theme (lo que se tenia que haber hecho desde el principio), comerse la oleada de correos devueltos, los gritos del cliente durante la noche sin pegar ojo y el desprestigio por haber dejado que todo esto pasase. Si hubiese actualizado cuando tocaba, hubiese podido apañar el theme con tranquilidad diciendole simplemente al cliente "Oye, que hemos actualizado y se ha dejado de ver la web. Estamos en ello y tardaremos un poco, pero HABIA que hacerlo por seguridad."

¿Moraleja? Haz lo que tienes que hacer bien o trabajaras el doble y jodido. El cuando aplicar las actualizaciones ya depende, pero con un aviso de que se va a hacer pocos se quejan, a fin de cuentas si estan avisados de que no funciona el servicio se van al bar de cañas tranquilos en vez de gritarte.

¡Saludos!

PD: Pongo el ejemplo del webmaster a modo ilustrativo, pero es extensible a todos los que por pereza pasan de actualizar. Si algun webmaster o sysadmin se siente ofendido por el ejemplo al sentirse identificado, te jodes (ya me pasara a mi y me jodere). Para el resto de webmasters y sysadmis por ahi que si hacen su trabajo y para aquellos que han estado ahi y entienden a que me refiero sin molestarse, para todos ellos un cordial saludo y seguid asi.