Activar SpamAssassin para todos los emails en Plesk

Os digo los pasos para activar el filtro Spamassassin para todos los emails creados en un servidor con panel de control Plesk.

  1. Entramos como root via ssh
  2. Entramos como root al servidor mysql con:  mysql -u(usuarioroot) -p(password)
  3. Elegimos la base de datos psa que es la que usa el panel de control Plesk : use psa;
  4. A continuación tipeamos esta query/update para activar spamassassin en todos los emails creados en Plesk: UPDATE mail SET spamfilter = 'true' WHERE postbox = 'true';
  5. Finalmente nos salimos del entorno del servidor mysql tipeando exit
  6. Y ya para terminar de activar el filtro spamassasin en todos los emails en plesk reescribimos los archivos de configuración del email con :
    /usr/local/psa/admin/bin/mchk --with-spam

    NOTA: si el archivo mchk nos dice que no se encuentra en esa ruta hacemos un locate mchk y vemos donde se encuentra

Lista de errores producidos por los servidores de correo

451 timeout (#4.4.2)

Este error se genera cuando la comunicación entre el servidor del remitente y el servidor del destinatario ha tardado demasiado.

421 out of memory (#4.3.0)

Este error significa que el servidor del destinatario se ha quedado sin memoria para poder procesar el mensaje enviado.

452 4.4.5 Insufficient disk space; try again later

Este error significa que el servidor del destinatario se ha quedado sin espacio de almacenamiento en disco duro para poder procesar el mensaje enviado. Suele ser un error temporal, ya que el espacio en disco duro es un recurso variable.

553 sorry, your envelope sender is in my badmailfrom list (#5.7.1)

Este error significa que la casilla o el dominio del remitente ha sido bloqueado en el servidor del destinatario. Esta configuración se realiza manualmente, lo cual implica que el bloqueo se realizó por alguna razón específica.

553 sorry, that domain isn’t in my list of allowed rcpthosts (#5.7.1)

Este error significa que el remitente no está autenticando contra su servidor para poder enviar su mensaje. Normalmente se soluciona revisando la casilla «Mi servidor requiere autenticación» en el programa de correo y reiniciando el mismo.

550 5.7.1 Relaying denied. Proper authentication required.

Este error es similar al anterior y tiene la misma solución.

553 Requested action not taken: address blocked

Este error significa que la casilla del remitente está siendo bloqueada. Las razones pueden ser varias, pero normalmente se debe a que el servidor del remitente está en una «lista negra», y por lo tanto, todo mensaje proveniente del mismo será rechazado por el servidor del destinatario.

550 Mailbox is full

Este error indica que la casilla del destinatario está llena.

451 qqt failure (#4.3.0)

451 qq temporary problem (#4.3.0)

451 Temporary local problem (#4.3.0)

Estos son errores generados en el servidor, los cuales indican que hay un problema en el sistema de manejo de la cola de mensajes o en el procesamiento de los mismos a la entrada. Normalmente suele suceder a causa de un error en la configuración, una falla de software o un problema de falta de recursos. Este error puede generarse tanto en el servidor del remitente como en el servidor del destinatario.

Solucion para este problema logearse como root ingresar las siguientes lineas y reiniciar qmailtoaster

/var/qmail/bin/simscanmk

/var/qmail/bin/simscanmk -g


Sorry, no mailbox here by that name. vpopmail (#5.1.1)

Este error significa que la casilla de correo del destinatario no existe. Si ha enviado correo a esa dirección anteriormente, revise el último mensaje que envió, ya que seguramente fué un error de tipeo.

CNAME lookup failed temporarily. (#4.4.3)

Este error significa que el servidor del remitente no pudo encontrar un registro de DNS asociado al dominio o al servidor del destinatario. Normalmente es a causa de que el remitente indicó una dirección de correo errónea o que el servidor no pudo encontrar el dominio o servidor del destinatario. Suele ser un problema temporal, aunque a veces es permanente.

DNS temporary failure (#4.3.0)

Este error, al igual que el anterior, significa que el servidor del remitente no pudo encontrar un registro de DNS asociado al dominio o al servidor del destinatario. Normalmente es a causa de que el remitente indicó una dirección de correo errónea o que el servidor no pudo encontrar el dominio o servidor del destinatario. Suele ser un problema temporal, aunque a veces es permanente, como en el caso de que el remitente tenga mal ingresado el dominio y no lo solucione.

Sorry, I couldn’t find any host by that name. (#4.1.2)

Este error es parecido al anterior, y significa que el servidor no pudo encontrar el dominio o el servidor del destinatario. Normalmente se debe a que el remitente ingresó una dirección de destinatario inválida o errónea.

Sorry, I couldn’t find any host named XXXXXXXX. (#5.1.2)

Este error es similar al anterior, solo que se provee el nombre ingresado por el remitente. También se debe a un error en la dirección ingresada por el remitente.

Sorry, I wasn’t able to establish an SMTP connection. (#4.4.1)

Este error significa que el servidor del remitente no fué capaz de conectarse con el servidor del destinatario. Normalmente se debe a que el servidor del destinatario no funciona correctamente, está bloqueando el acceso al puerto 25 desde el exterior o que es un servidor «bogus» (falso). Es frecuente este tipo de errores cuando se intenta contestar o enviar un rebote por un mensaje de SPAM recibido, ya que normalmente los servidores que hacen SPAM son falsos.

Sorry, address must include host name. (#5.1.3)

Este error se debe a que el remitente ingresó la dirección del destinatario incorrectamente. Verifique que la dirección ingresada no termine en «@», o le falte el dominio.

Sorry, that message size exceeds my databytes limit (#5.3.4)

Este error se debe a que el mensaje que el remitente intenta enviar excede el tamaño máximo de mensaje permitido por el servidor.

XXXXXXXXXX does not like recipient.
Remote host said: 550 Requested action not taken: mailbox unavailable or not local

XXXXXXXXXX does not like recipient.
Remote host said: 550 Recipient Rejected: No account by that name here

XXXXXXXXXX does not like recipient.

Remote host said: 550 5.1.1

Estas variantes del mismo error significan que el destinatario no existe en el servidor destino. Normalmente se debe a un error del remitente al ingresarlo o que la casilla ha sido eliminada, ya sea porque el usuario canceló el servicio, o porque la cuenta de dió de baja por haber recibido una queja de Spam.

554 : Recipient address rejected: Address locked or deactivated; see http://mail.messagingengine.com/docs/locked.html

Este error indica que la dirección del destinatario ha sido desactivada, probablemente por mal uso de la misma (SPAM).

501 bogus mail from

Este error indica que la dirección del remitente es falsa o está mal definida. Esto significa que hay que revisar la cuenta para ver si fué mal ingresada.

554-{mx086} Your address is listed as dynamic on SORBS (dul.dnsbl.sorbs.net)

554 We are not accepting connections from such hosts. ( http://www.gmx.net/serverrules )

Este error indica que la dirección del servidor del remitente está en una lista negra, lo cual evita que los servidores que utilicen estas listas reciban correo desde el mismo. Las listas negras se crearon con la idea de proveer un método de lucha contra el spam, pero ultimamente los criterios de listado de algunas de ellas son definitivamente demasiado ámplios, así que su utilización no está recomendada.

XXXXXXXXXXXX does not like recipient.

Remote host said: 550 Mail from YYYYYYYYYYYYYY refused.

Please refer to http://www.dnsbl.us.sorbs.net/faq/ for an explanation.

Este error es similar al anterior y tiene las mismas causas. En este caso en particular, se brinda una dirección URL para visitar y obtener más detalles sobre el problema.

501 5.7.1 Sender refused by the DNSBL spammers.v6net.org//

Este error es similar al anterior y tiene las mismas causas. En este caso en particular, también se brinda una dirección URL para visitar y obtener más detalles sobre el problema.

451 Dynamic IP Addresses See: http://www.sorbs.net/lookup.shtml?XXX.XXX.XXX.XXX

553 sorry, your mailserver [XXX.XXX.XXX.XXX] is rejected by See http://www.dnsbl.us.sorbs.net/ (dul)

550 Mail from XXX.XXX.XXX.XXX refused. Please refer to http://www.dnsbl.us.sorbs.net/faq/ for an explanation.

Estos errores son similares al anterior y tienen las mismas causas. En estos casos en particular, también se brinda una dirección URL para visitar y obtener más detalles sobre el problema. Normalmente es necesario un trámite para poder salir de estas listas, lo cual lleva unos cuantos días en hacerse.

554 The message was rejected because it contains prohibited virus or spam content

Este error significa que el mensaje fué rechazado porque aparentemente contenía un virus o es considerado SPAM. Puede suceder que el mensaje haya sido enviado desde un equipo infectado por un virus que toma la libreta de direcciones de la víctima y utiliza esas direcciones como remitentes de sus propios mensajes, generando confusión entre los usuarios. Algunos antivirus ya poseen contramedidas para evitar que se propague este tipo de mensajes de error en los casos en que el virus es conocido y se sabe que tiene este comportamiento, aunque de todas maneras, siempre es bueno estar preparado y prevenir, avisándole al remitente del virus que su equipo puede estar infectado.

This message is looping: it already has my Delivered-To line

Este error se debe a un problema en el redireccionamiento de la casilla. Suele suceder cuando se crea en una casilla «A» un redireccionamiento hacia una casilla «B», y luego se hace lo mismo en la casilla «B», redireccionando el mensaje hacia la casilla «A». Esto genera que el mensaje entre en «loop» (bucle) y no llegue nunca a destino. A la décima vez que rebota (el servidor reintenta el delivery diez veces, aunque el error sea evidente), se devuelve al remitente con este mensaje de error.

553 sorry, your HELO host name has been denied

Este error se debe a un filtro que tienen incorporados los servidores de correo, de los cuales revisan que la cadena de identificación de los servidores que se conectan con el mismo sean válidas. Lo normal es que dicha cadena de identificación sea el nombre completo del equipo que se conecta. En algunos casos, se rechaza dicha cadena, ya que si no es un nombre de host válido, lo más probable es que no se trate de un servidor de correo real, y por lo tanto, se trata de un spammer.

Encontrar shells r57 y c99 oculta en el servidor

Aqui os dejo estas pequeñas lineas de comandos en linux para encontrar las shells r57 y c99 en nuestro servidor.

Estos comandos lo que hace es buscar con el comando find en el directory que le digamos y en el tipo de extension que querramos, y con xargs busca dentro del contenido del archivo la palabra r57 o c99 segun le indiquemos, y con awk nos muestra la ruta completa del archivo que contiene r57 y c99, en estos casos nos muestra rm -rf que es el comando para borrar cualquier archivo o carpeta sin preguntar, no recomiendo usar rm -rf sin antes examinar el contenido de los archivos personalmente, vaya a ser que la caguemos.

Para buscar la shell r57 en php

find /var/www/  -name "*".php  -type f -print0  | xargs -0 grep r57 | uniq -c  | sort -u  | cut -d":" -f1  | awk '{print "rm -rf " $2}' | uniq

Para buscar la shell r57 en txt

find /var/www/  -name "*".txt  -type f -print0  | xargs -0 grep r57 | uniq -c  | sort -u  | cut -d":" -f1  | awk '{print "rm -rf " $2}' | uniq

Para buscar la shell r57 en gif

find /var/www/  -name "*".gif  -type f -print0  | xargs -0 grep r57 | uniq -c  | sort -u  | cut -d":" -f1  | awk '{print "rm -rf " $2}' | uniq

Para buscar la shell c99 en php

find /var/www/  -name "*".php  -type f -print0  | xargs -0 grep c99 | uniq -c  | sort -u  | cut -d":" -f1  | awk '{print "rm -rf " $2}' | uniq

Para buscar la shell c99 en jpg

find /var/www/  -name "*".jpg  -type f -print0  | xargs -0 grep c99 | uniq -c  | sort -u  | cut -d":" -f1  | awk '{print "rm -rf " $2}' | uniq

Para buscar la shell c99 en gif

find /var/www/  -name "*".gif  -type f -print0  | xargs -0 grep c99 | uniq -c  | sort -u  | cut -d":" -f1  | awk '{print "rm -rf " $2}' | uniq

Si teneis alguna pregunta hacerla¡¡¡¡¡ no os calleis, que callarse y quedarse con dudas es de tontos¡¡¡

Restablecer los permisos predeterminados en el directorio del virtualhost en Plesk

Síntomas

Algunos archivos y directorios del dominio han perdido sus permisos. Varios de ellos son propiedad del usuario “apache” o “root” de Apache.

Por ejemplo:

# ls -l /var/www/vhosts/blogofsysadmins.com/
total 48
drwx------ 5 apache     apache 4096 Mar 16 20:07 anon_ftp
drwx------ 2 root       psaserv 4096 Mar 16 20:07 bin
drwx------ 3 apache     apache 4096 Mar 16 20:07 cgi-bin
drwx------ 2 root       psaserv 4096 Aug  4 12:56 conf
drwx------ 2 root       psaserv 4096 Mar 16 20:07 error_docs
drwx------ 7 apache     apache 4096 Mar 16 20:07 httpdocs
drwx------ 7 apache     apache 4096 Mar 16 20:07 httpsdocs
drwx------ 2 root       psaserv 4096 Aug  4 12:56 pd
drwx------ 2 root       root    4096 Mar 16 20:07 private
dr-x------ 7 root       psaserv 4096 Mar 16 20:07 statistics
drwx------ 2 root       psaserv 4096 Mar 16 20:07 subdomains
drwx------ 2 root       psaserv 4096 Mar 16 20:07 web_users
~#

Cuando intento cargar archivos a través del Administrador de Archivos o de un cliente FTP, obtengo los errores «Permiso denegado» o «Acceso denegado«.

Resolución

Use la utilidad «vhostmng» para restablecer los permisos. El comando a ejecutar es el siguiente:

~# /usr/local/psa/admin/sbin/vhostmng --install-vhost --vhost-name=<domain name> --user-name=<username> --set-content-permissions

Donde <domain name> es el dominio donde deben restaurarse los permisos y <username> es el usuario FTP del dominio configurado en Parallels Plesk Panel en la página Dominios -> <domain name> -> Opciones de Alojamiento Web (versión 9.x) o Dominios -> <domain name> -> Configuración (versión 8.x).

El comando restaurará los permisos predeterminados en el directorio del virtualhost:

drwxr-x--- 5 ftp_user   psaserv 4096 Mar 16 20:07 anon_ftp
drwxr-xr-x 2 root       psaserv 4096 Mar 16 20:07 bin
drwxr-x--- 3 ftp_user   psaserv 4096 Mar 16 20:07 cgi-bin
drwxr-x--- 2 root       psaserv 4096 Aug  4 12:56 conf
drwxr-xr-x 2 root       psaserv 4096 Mar 16 20:07 error_docs
drwxr-x--- 7 ftp_user   psaserv 4096 Mar 16 20:07 httpdocs
drwxr-x--- 7 ftp_user   psaserv 4096 Mar 16 20:07 httpsdocs
drwxr-x--- 2 root       psaserv 4096 Aug  4 12:56 pd
drwx------ 2 ftp_user   root    4096 Mar 16 20:07 private
dr-xr-x--- 7 root       psaserv 4096 Mar 16 20:07 statistics
drwxr-xr-x 2 root       psaserv 4096 Mar 16 20:07 subdomains
drwxr-xr-x 2 root       psaserv 4096 Mar 16 20:07 web_users

Convertir un servidor slave en master en MySQL

A veces ocurre… que el servidor maestro MySQL se nos ha corrompido o por X motivos, ya no se puede utilizar, y la única opción que nos queda es enviar el curriculum a otra empresa, o bien si hicimos los deberes correctamente, deberíamos de tener un servidor slave dónde hay una réplica más o menos reciente de los datos del antiguo maestro, apartir de ahí, estamos de suerte, ya que en algún caso en concreto, nos interesará poder convertir esa base de datos esclava en maestra para que nuestras aplicaciones la puedan utilizar y volver a crear slaves apartir de esta.

Para convertir un servidor slave a master en MySQL, solo tendremos que realizar estos sencillos pasos.

(Todos estos pasos los realizamos en nuestro slave)

# mysql> STOP slave;
# mysql> RESET slave;

# Borramos en el fichero my.cf toda la configuración que teniamos de nuestro slave y añadimos log-bin para que actue como maestro
# Reiniciamos MySQL
# Indicamos a nuestras aplicaciones la nueva ubicación del nuevo maestro, y apartir de ahora, ya se podrían crear esclavos apartir de este nuevo maestro

Y voila¡¡¡¡¡¡¡¡ ya hemos convertido el servidor mysql slave en servidor master¡¡¡