Siempre empieza igual. O bien alguno de los monitores de sistema que tienes montado te avisa o lo hace el más rápido de ellos: Tus clientes. Y en este caso han sido ambos. Estoy acabando de desayunar cuando aprovecho para quitar el modo avión del móvil. Empiezan a entrar whatsapps y emails. En los emails, notificaciones de que la web del cliente no está accesible. Al rato vuelve a estarlo y al rato a no estarlo. No pinta bien. En el Whatsapp, el cliente comentando que algo anda mal. Primera prueba, navegar el site. Efectivamente el tiempo de carga es lento. Te logueas en el servidor y te encuentras con un montón de procesos Apache2 lanzados y bastante sobrecarga en el demonio Mysql. A priori parece un ataque. Se necesita más visibilidad para saber que está pasando así que si no lo tienes ya mejor instalar el Módulo mod_status de Apache, el cual nos va a permitir ver, entre otras cosas, que URLs se están pidiendo. Pasos: Activar el módulo con sudo a2enmod … [Read more...] about Como proteger el WordPress de un ataque DDOS mediante xmlrpc.php
Sistemas
Eliminar el correo spam de la cola del mail (Parte IV)
En el post anterior analizábamos los logs del servicio de mail buscando comprobar los orígenes del spam. En este punto ya hemos tomado medidas y ahora sólo nos queda eliminar el spam residual que aún tenemos en la cola de mensajes. Recordemos que el puerto 25 ha sido bloqueado por mi proveedor de hosting a modo preventivo hasta que se solucione el problema del spam. A meterse en harina, pues!!! Como ya hemos comentado en el primer post, para visualizar la cola utilizamos el script de John Simpson que sustituye al qmail-qread. Para eliminar los correosno deseados de la misma utilizamos qmail-remove. Listando los emails pendientes vemos que el spam aparece siempre marcado como bouncing. Vamos a utilizar esa peculiaridad para filtrar los emails y por tanto eliminarlos. Esto nos elimina una buena parte del spam. for i in `./qmail-qread | grep bouncing | awk {'print $8'}` ; do qmail-remove -p $i -r; done Volviendo a listar podemos ver el patrón que nos ofrece el spam. 6 Feb … [Read more...] about Eliminar el correo spam de la cola del mail (Parte IV)
Como analizar el log de mails buscando el origen del spam (parte III)
En el post anterior identificábamos cual era el dominio que está generando el spam. Vamos a contrastarlo con el log del servidor de mail. En Plesk, los logs, los podemos encontrar en /usr/local/psa/var/log/ En concreto este comando nos permitirá verlo en tiempo real. tail -f /usr/local/psa/var/log/maillog Aquí os dejo un bloque de ejemplo de una operación de envío completa: Oct 3 16:50:19 dv qmail: 1223077819.930048 new msg 163786382 Oct 3 16:50:19 dv qmail: 1223077819.930096 info msg 163786382: bytes 860 from <> qp 24106 uid 2522 Oct 3 16:50:19 dv qmail: 1223077819.937789 starting delivery 2: msg 163786382 to local 2-user@example.com Oct 3 16:50:19 dv qmail: 1223077819.937835 status: local 1/10 remote 0/20 Oct 3 16:50:19 dv qmail-local-handlers[24107]: Handlers Filter before-local for qmail started ... Oct 3 16:50:19 dv qmail-local-handlers[24107]: from= Oct 3 16:50:19 dv qmail-local-handlers[24107]: to=user@example.com Oct 3 16:50:20 dv qmail: … [Read more...] about Como analizar el log de mails buscando el origen del spam (parte III)
Buscando el origen del spam en las notificaciones (parte II)
En el post anterior hemos llegado a ver la cola de correo de nuestro servidor y con ella hemos confirmado que tenemos un problema. Hay spam en ella y no deberíamos permitir que el email saliera del servidor hasta que la limpiemos. Pero no adelantemos acontecimientos. Vamos a analizar lo que nos dicen los emails que nos ha enviado el servidor. Hi. This is the qmail-send program at programadorphp.ovh.net. I tried to deliver a bounce message to this address, but the bounce bounced! <ana.tucovic@yahoo.com>:66.196.118.34 failed after I sent the message.Remote host said: 554 Message not allowed - [299] --- Below this line is the original bounce. Si analizamos el principio del email que nos envía nuestro servidor podremos leer que no es capaz de hacer llegar los mensajes de error a la dirección de origen ana.tucovic@yahoo.com, y no es de extrañar. No existe. Además no tiene sentido que nuestro servidor envíe con ese from. A continuación sigue la parte que se corresponde … [Read more...] about Buscando el origen del spam en las notificaciones (parte II)
Cómo desbloquear un servidor que envía spam (parte I)
Como administrador de un servidor de cuando en cuando te llegan emails del servicio de mail indicándote que algunos mails no han podido ser entregados. Puede ser lo más normal. Un usuario ha escrito una dirección incorrecta y tu servidor recibe una notificación del servidor destino donde se le indica que esa cuenta no existe y que no puede entregar el email. Hasta ahí, nada nuevo bajo el Sol. A veces ese email de sistema no llega sólo, lo acompañan varios emails del mismo estilo o simplemente te fijas en el detalle de los emails enviados y ves que la dirección de origen no pertenece a tu servidor. Lo primero que te viene a la cabeza en ese caso es una palabro malsonante que pronuncias para tus adentros. Spam, señores. Tu servidor ha estado enviando emails de spam. Realmente sigue sin haber nada nuevo bajo el Sol. Pasa todos los días e Internet ha sobrevivido a pesar de ese lastre. Forma parte del tráfico natural de la red y de sus células, nuestros queridos servidores. Un … [Read more...] about Cómo desbloquear un servidor que envía spam (parte I)
Como ajustar el lifetime de la cola de correo de Qmail
Revisando mi servidor dedicado, después de un problema con el spam, he visto que el lifetime de los emails en la cola de salida del Qmail no está definido. El queuelifetime se define como el número de segundos que un mensaje se mantendrá en la cola de salida antes de ser descartado. Cuando un mensaje no puede recepcionarse por el destino, el servidor se lo guarda en la cola para volver a intentar el envío más tarde. Los reintentos de envío se repiten varias veces hasta que este consigue ser enviado o se produce un timeout definido por el queuelifetime. Parece ser que el valor por defecto es de 7 días, lo cual es bastante tiempo, y puede ser un problema en situaciones extraordinarias. Algunas consideraciones al respecto de cual puede ser un buen valor. Si los DNS de nuestro destinatario han sido modificados, técnicamente la propagación puede llegar a tardar 48 horas. En la práctica estos tiempos suelen ser bastante menores pero conviene tenerlo en cuenta. Otro caso. Si se … [Read more...] about Como ajustar el lifetime de la cola de correo de Qmail
Mysql – Deshabilitar las restricciones de claves ajenas en InnoDB
InnoDB, en MySQL, aportó en su día lo que muchos esperábamos: cumplir, entre otras cosas, con aquel concepto tan académico de integridad referencial que nos permitía estar seguros de que los datos estaban bien ligados entre ellos (siempre y cuando nuestro diseño fuera acertado, claro está ;-) ) Esto es bastante útil pero da algunas pegas en el día a día del programador. En concreto nos puede pasar que intentemos importar una copia de base de datos sobre una existente y nos encontremos con este error: Cannot delete or update a parent row: a foreign key constraint fails. Lógico, si lo pensamos. Tenemos las relaciones monitorizadas y ya no se puede eliminar al tun tun. ¿Solución? Como estamos restaurando una base de datos entera no queremos mantener ninguno de los datos anteriores por lo que la restricción puede ser obviada sin ningún problema. ¿Forma de hacerlo? Decirle a MySQL que desactive temporalmente la comprobación de la integridad con la siguiente orden: SET … [Read more...] about Mysql – Deshabilitar las restricciones de claves ajenas en InnoDB
Migrar un proyecto web entre servidores Plesk
Estamos migrando la casa. Comparto servidor con un colega. Teníamos un VPS que hasta no hace mucho cubría nuestras necesidades pero que poco a poco se ha ido quedando corto así que nos decidimos por un dedicado. Lo hemos configurado con una Ubuntu Server 10.04 LTS 64bit con un panel Plesk 10. Podíamos elegir entre Cpanel y Plesk y de hecho dudamos pero el anterior servidor tenía un Plesk 8, el cual no me resultaba incómodo, y además nos aseguraba la compatibilidad... y efectivamente ha sido una buena elección. El Plesk 10 modifica un poco la forma en que refleja los planes de alojamiento en el sistema de ficheros pero aún sigue la linea de su predecesor, lo cual tiene sus ventajas. Para probar el rendimiento del nuevo servidor he movido un subdominio, pongamos test.example.com, de una tienda virtual, en concreto un Prestashop, que utilizo para que el cliente valide los cambios de desarrollo antes de subirlos a producción. El dominio principal (example.com) sigue alojado … [Read more...] about Migrar un proyecto web entre servidores Plesk
Limitar la velocidad de una descarga con wget
Salgo a comer y desde hace un tiempo he migrado mi oficina a un vivero de empresas en Xàtiva. El espacio es genial. Disfruto de un despacho compartido con un asesor financiero, el cual ya conocía anteriormente y con el que me llevo genial. El cambio fue casi imperativo con la llegada del segundo hijo. Imposible continuar trabajando en casa. Por otro lado, dejando a parte la mejora de al productividad que implica tener un espacio exclusivo para el trabajo, la 'salud mental' también mejora cuando te obligas a salir de casa todas las mañanas para dirigirte al trabajo. Vivir en el campo, junto a un pequeño pueblo de 4000 habitantes, tiene sus ventajas, pero el ajetreo de la ciudad que me vio crecer me contagia de un dinamismo que de alguna forma influye en mi trabajo. Todo un lujo para un programador freelance. Sirva esta pequeña explicación para entender lo que sigue... Como decía al principio, salgo a comer y estoy recuperando en local una copia de una tienda virtual que tengo … [Read more...] about Limitar la velocidad de una descarga con wget
Corregir el LOCALE en un servidor de OVH
Tengo un servidor local de Subversion el cual he dedcido mover a unos de mis servidores en Internet para evitar problemas de conectividad y mejorar los tiempos de acceso desde el exterior. El servidor en concreto es una distribución Ubuntu 10 contratado a OVH, la cual, al encargarla pedimos que viniera configurada en español. No es nada grave pero reconozco que me siento más cómodo con el sistema en inglés. Como el servidor local también era una Ubuntu (le tengo amor), coger el SVN y moverlo al nuevo servidor ha sido tan sencillo como comprimirlo todo en un tgz y descomprimirlo luego en el destino. Cuatro apt-gets para instalar el servicio y a funcionar. Bueno, a medias. El caso es que a cada llamada del cliente svn en consola, el sistema me devuelve esto. svnadmin: warning: cannot set LC_CTYPE locale svnadmin: warning: environment variable LANG is es_ES.UTF-8 svnadmin: warning: please check that your locale name is correct Argh, con lo bien que iba todo. Bueno, … [Read more...] about Corregir el LOCALE en un servidor de OVH