Regenerar configuración QMAIL en PLESK

En ocasiones se produce algún tipo de corrupción en la configuración de qmail, para rehacer la configuración que hace plesk de qmail disponemos de una aplicación muy interesante:

# /usr/local/psa/admin/bin/mchk
Synopsis:
mchk [OPTION]
–without-spam – restore all settings except for SpamAssassin configuration
–with-spam – restore all settings
–spam-only – restore only SpamAssassin settings

Esta utilidad regenera los ficheros de los directorios /var/qmail/control, /var/qmail/users y ademas retoca los propietarios y permisos de todos los archivos de /var/qmail/mailnames. Esto resulta interesante despues de copiar a “pelo” archivos de correo, practica poco recomendable pero que en ocasiones puedes verte obligado a realizar, sobretodo cuando hay alguna catastrofe y estamos reconstruyendo a partir de deshechos.

Hay que tener en cuenta que si el volumen es alto puede tomarse su tiempo, asi que si lo ejecutas en un servidor en producción tomatelo con calma.

Posted in plesk | Tagged , | 1 Comment

Mover un BBDD de dominio en un Plesk

En ocasiones podemos necesitar los usuarios activados en una BBDD con sus password para hacer esto nos conetcaremos contra la BBDD psa y haremos un:

select * from db_users,accounts where accounts.id=db_users.account_id and db_id=—id_database–;

aqui vemos la lista de usuarios y sus pass.

Sin embargo mas interesante es el hechoq ue en ocasiones podemos encontrarnos con la necesidad de mover una BBDD de un dominio a otro, he visto soluciones por hay que proponen hacer un backup y un restore, pero esto implica bastante tiempo y ademas tenemos que crear los usuarios etc, aunque con lo indicado arriba no es muy complicado es mas interesante lo siguiente:

select dom_id,domains.name,data_bases.id,data_bases.name from data_bases,domains where domains.id=data_bases.dom_id;
select * from db_users,accounts where accounts.id=db_users.account_id and db_id=1;
select * from domains;
update data_bases set dom_id=–id_dominiodestino– where id=–id_basededatos–

Con el primer select vemos la lista de BBDD y a que dominio pertenecen, con el segundo vemos los dominios y sus IDs, construimos un update inicando el ID_DOMINIO_DESTINO e ID_BASEDEDATOS

Posted in plesk | Tagged , , | Leave a comment

SMTP alternativo

Ocasionalmente algún cliente no podia conectar con su servidor SMTP debido a problemas locales suyos, ocasionalmente levantaba otro SMTP en otro puerto para que lo pudiese alcanzar durante el tiempo que tardaba en resolver la incidencia.

Resulta que esta practica esta recogida en la RFC 2476

Los tipos nos proponen que levantemos otro puerto escuchando SMTP, concretamente el 587 lalmandole submission y que solo aceptemos conexiones de nuestros usuarios autentificados.

Asi que ya uqe esta el standar definido vamos a usarlos y asi podremos limitar por separado los recursos dedicados a atender a nuestros usuarios y los dedicados a atender el SPAM.

Si tienes plesk puedes leerte un par de notas al respecto:

http://kb.parallels.com/en/3477

http://kb.parallels.com/en/5568

Te vas a Server->Mail y activa el checkbox Enable message submission

a continuación para verificar si esta en orden puedes hacer un simple telnet mail.loquesea 587 y si te responde ya esta y en caso contrario debes ir al directorio del server /etc/xinet.d y hacer un:

mv submission.psa submission_psa
service xinetd restart

I. Force authentication on SMTP service
RFC 2476 describes message submission service as SMTP server that sits on port 587 and has SMTP AUTH required. That way we are sure that our user is trying to submit email message and no RBL checks are required. Also, as usual, remind users to use STARTTLS.

Posted in plesk | Tagged , , , | Leave a comment

Instalar yum en Centos

En ocasiones queremos instalar yum, esto parece trivial, pero resulta que tiene gran cantidad de dependencias y como yum es la herramientas que nos permite no preocuparnos de estas dependencias, nos encontramos con la tipica cuestión, sin yum como se instala con yum 🙂

CentOS 4

rpm -Uvh http://mirror.centos.org/centos-4/4/os/i386/CentOS/RPMS/gmp-4.1.4-3.i386.rpm rpm-Uvh http://mirror.centos.org/centos-4/4/os/i386/CentOS/RPMS/gmp-4.1.4-3.i386.rpm
rpm -Uvh http://mirror.centos.org/centos-4/4/os/i386/CentOS/RPMS/readline-4.3-13.i386.rpm rpm-Uvh http://mirror.centos.org/centos-4/4/os/i386/CentOS/RPMS/readline-4.3-13.i386.rpm
rpm -Uvh http://mirror.centos.org/centos-4/4/os/i386/CentOS/RPMS/python-2.3.4-14.4.i386.rpm rpm-Uvh http://mirror.centos.org/centos-4/4/os/i386/CentOS/RPMS/python-2.3.4-14.4.i386.rpm
rpm -Uvh http://mirror.centos.org/centos-4/4/os/i386/CentOS/RPMS/libxml2-2.6.16-10.i386.rpm rpm-Uvh http://mirror.centos.org/centos-4/4/os/i386/CentOS/RPMS/libxml2-2.6.16-10.i386.rpm
rpm -Uvh http://mirror.centos.org/centos-4/4/os/i386/CentOS/RPMS/libxml2-python-2.6.16-10.i386.rpm rpm-Uvh http://mirror.centos.org/centos-4/4/os/i386/CentOS/RPMS/libxml2-python-2.6.16-10.i386.rpm
rpm -Uvh http://mirror.centos.org/centos-4/4/os/i386/CentOS/RPMS/expat-1.95.7-4.i386.rpm rpm-Uvh http://mirror.centos.org/centos-4/4/os/i386/CentOS/RPMS/expat-1.95.7-4.i386.rpm
rpm -Uvh http://mirror.centos.org/centos-4/4/os/i386/CentOS/RPMS/python-elementtree-1.2.6-5.el4.centos.i386.rpm rpm-Uvh http://mirror.centos.org/centos-4/4/os/i386/CentOS/RPMS/python-elementtree-1.2.6-5.el4.centos.i386.rpm
rpm -Uvh http://mirror.centos.org/centos-4/4/os/i386/CentOS/RPMS/sqlite-3.3.6-2.i386.rpm rpm-Uvh http://mirror.centos.org/centos-4/4/os/i386/CentOS/RPMS/sqlite-3.3.6-2.i386.rpm
rpm -Uvh http://mirror.centos.org/centos-4/4/os/i386/CentOS/RPMS/python-sqlite-1.1.7-1.2.1.i386.rpm rpm-Uvh http://mirror.centos.org/centos-4/4/os/i386/CentOS/RPMS/python-sqlite-1.1.7-1.2.1.i386.rpm
rpm -Uvh http://mirror.centos.org/centos-4/4/os/i386/CentOS/RPMS/elfutils-libelf-0.97.1-5.i386.rpm rpm-Uvh http://mirror.centos.org/centos-4/4/os/i386/CentOS/RPMS/elfutils-libelf-0.97.1-5.i386.rpm
rpm -Uvh http://mirror.centos.org/centos-4/4/os/i386/CentOS/RPMS/elfutils-0.97.1-5.i386.rpm rpm-Uvh http://mirror.centos.org/centos-4/4/os/i386/CentOS/RPMS/elfutils-0.97.1-5.i386.rpm
rpm -Uvh http://mirror.centos.org/centos-4/4/os/i386/CentOS/RPMS/rpm-4.3.3-23_nonptl.i386.rpm rpm-Uvh http://mirror.centos.org/centos-4/4/os/i386/CentOS/RPMS/rpm-4.3.3-23_nonptl.i386.rpm
rpm -Uvh http://mirror.centos.org/centos-4/4/os/i386/CentOS/RPMS/rpm-python-4.3.3-23_nonptl.i386.rpm rpm-Uvh http://mirror.centos.org/centos-4/4/os/i386/CentOS/RPMS/rpm-python-4.3.3-23_nonptl.i386.rpm
rpm -Uvh http://mirror.centos.org/centos-4/4/os/i386/CentOS/RPMS/python-urlgrabber-2.9.8-2.noarch.rpm rpm-Uvh http://mirror.centos.org/centos-4/4/os/i386/CentOS/RPMS/python-urlgrabber-2.9.8-2.noarch.rpm
rpm -Uvh ftp://ftp.nluug.nl/pub/os/Linux/distr/CentOS/4.6/os/s390/CentOS/RPMS/centos-yumconf-4-4.5.noarch.rpm rpm-Uvh ftp://ftp.nluug.nl/pub/os/Linux/distr/CentOS/4.6/os/s390/CentOS/RPMS/centos-yumconf-4-4.5.noarch.rpm
rpm -Uvh http://mirror.centos.org/centos-4/4/os/i386/CentOS/RPMS/yum-metadata-parser-1.0-8.el4.centos.i386.rpm rpm-Uvh http://mirror.centos.org/centos-4/4/os/i386/CentOS/RPMS/yum-metadata-parser-1.0-8.el4.centos.i386.rpm
rpm -Uvh http://mirror.centos.org/centos-4/4/os/i386/CentOS/RPMS/yum-2.4.3-4.el4.centos.noarch.rpm rpm-Uvh http://mirror.centos.org/centos-4/4/os/i386/CentOS/RPMS/yum-2.4.3-4.el4.centos.noarch.rpm
yum -y update

CentOS 5

rpm -Uvh http://mirror.centos.org/centos-5/5/os/i386/CentOS/elfutils-libs-0.125-3.el5.i386.rpm rpm-Uvh http://mirror.centos.org/centos-5/5/os/i386/CentOS/elfutils-libs-0.125-3.el5.i386.rpm
rpm -Uvh http://mirror.centos.org/centos-5/5/os/i386/CentOS/gmp-4.1.4-10.el5.i386.rpm rpm-Uvh http://mirror.centos.org/centos-5/5/os/i386/CentOS/gmp-4.1.4-10.el5.i386.rpm
rpm -Uvh http://mirror.centos.org/centos-5/5/os/i386/CentOS/readline-5.1-1.1.i386.rpm rpm-Uvh http://mirror.centos.org/centos-5/5/os/i386/CentOS/readline-5.1-1.1.i386.rpm
rpm -Uvh http://mirror.centos.org/centos-5/5/os/i386/CentOS/python-2.4.3-21.el5.i386.rpm rpm-Uvh http://mirror.centos.org/centos-5/5/os/i386/CentOS/python-2.4.3-21.el5.i386.rpm
rpm -Uvh http://mirror.centos.org/centos-5/5/os/i386/CentOS/python-iniparse-0.2.3-4.el5.noarch.rpm rpm-Uvh http://mirror.centos.org/centos-5/5/os/i386/CentOS/python-iniparse-0.2.3-4.el5.noarch.rpm
rpm -Uvh http://mirror.centos.org/centos-5/5/os/i386/CentOS/libxml2-2.6.26-2.1.2.1.i386.rpm rpm-Uvh http://mirror.centos.org/centos-5/5/os/i386/CentOS/libxml2-2.6.26-2.1.2.1.i386.rpm
rpm -Uvh http://mirror.centos.org/centos-5/5/os/i386/CentOS/libxml2-python-2.6.26-2.1.2.1.i386.rpm rpm-Uvh http://mirror.centos.org/centos-5/5/os/i386/CentOS/libxml2-python-2.6.26-2.1.2.1.i386.rpm
rpm -Uvh http://mirror.centos.org/centos-5/5/os/i386/CentOS/expat-1.95.8-8.2.1.i386.rpm rpm-Uvh http://mirror.centos.org/centos-5/5/os/i386/CentOS/expat-1.95.8-8.2.1.i386.rpm
rpm -Uvh http://mirror.centos.org/centos-5/5/os/i386/CentOS/python-elementtree-1.2.6-5.i386.rpm rpm-Uvh http://mirror.centos.org/centos-5/5/os/i386/CentOS/python-elementtree-1.2.6-5.i386.rpm
rpm -Uvh http://mirror.centos.org/centos-5/5/os/i386/CentOS/sqlite-3.3.6-2.i386.rpm rpm-Uvh http://mirror.centos.org/centos-5/5/os/i386/CentOS/sqlite-3.3.6-2.i386.rpm
rpm -Uvh http://mirror.centos.org/centos-5/5/os/i386/CentOS/python-sqlite-1.1.7-1.2.1.i386.rpm rpm-Uvh http://mirror.centos.org/centos-5/5/os/i386/CentOS/python-sqlite-1.1.7-1.2.1.i386.rpm
rpm -Uvh http://mirror.centos.org/centos-5/5/os/i386/CentOS/elfutils-0.125-3.el5.i386.rpm rpm-Uvh http://mirror.centos.org/centos-5/5/os/i386/CentOS/elfutils-0.125-3.el5.i386.rpm
rpm -Uvh http://mirror.centos.org/centos-5/5/os/i386/CentOS/rpm-python-4.4.2-48.el5.i386.rpm rpm-Uvh http://mirror.centos.org/centos-5/5/os/i386/CentOS/rpm-python-4.4.2-48.el5.i386.rpm
rpm -Uvh http://mirror.centos.org/centos-5/5/os/i386/CentOS/m2crypto-0.16-6.el5.2.i386.rpm rpm-Uvh http://mirror.centos.org/centos-5/5/os/i386/CentOS/m2crypto-0.16-6.el5.2.i386.rpm
rpm -Uvh http://mirror.centos.org/centos-5/5/os/i386/CentOS/python-urlgrabber-3.1.0-2.noarch.rpm rpm-Uvh http://mirror.centos.org/centos-5/5/os/i386/CentOS/python-urlgrabber-3.1.0-2.noarch.rpm
rpm -Uvh http://mirror.centos.org/centos-5/5/os/i386/CentOS/yum-metadata-parser-1.1.2-2.el5.i386.rpm rpm-Uvh http://mirror.centos.org/centos-5/5/os/i386/CentOS/yum-metadata-parser-1.1.2-2.el5.i386.rpm
rpm -Uvh http://mirror.centos.org/centos-5/5/os/i386/CentOS/yum-3.2.8-9.el5.centos.1.noarch.rpm rpm-Uvh http://mirror.centos.org/centos-5/5/os/i386/CentOS/yum-3.2.8-9.el5.centos.1.noarch.rpm
yum -y update

Posted in centos | Tagged , | 2 Comments

Nuevas templeates para OpenVZ

Desde hace años que no tenemos templates oficiales para OpenVZ, raro resulta que algo tan importante como las templates este obsoletas de forma tan exagerada. Afortudamente es algo relativamente facild e resolver y no es menso cierto que hacerme mi propia template de centos 5 me enseño algunas cosas muy interesante sobre los entresijos de OpenVZ, sin embargo ya sabeis los qu eme leeis que me gusta hacerlo en 2 clicks si es posible.

Teniendo en cuenta que esta beta ya tiene 1 mes, diria que deben estar apunto de oficializar el tema.

Concretamente han publicaod betas de un buen puñado de distribuciones:

  • centos-4-x86_64.tar.gz
  • centos-4-x86.tar.gz
  • centos-5-x86_64.tar.gz
  • centos-5-x86.tar.gz
  • debian-3.1-x86.tar.gz
  • debian-4.0-x86_64.tar.gz
  • debian-4.0-x86.tar.gz
  • fedora-7-x86_64.tar.gz
  • fedora-7-x86.tar.gz
  • fedora-8-x86_64.tar.gz
  • fedora-8-x86.tar.gz
  • fedora-9-x86_64.tar.gz
  • fedora-9-x86.tar.gz
  • suse-10.3-x86_64.tar.gz
  • suse-10.3-x86.tar.gz
  • ubuntu-7.10-x86_64.tar.gz
  • ubuntu-7.10-x86.tar.gz
  • ubuntu-8.04-x86_64.tar.gz
  • ubuntu-8.04-x86.tar.gz

Destacaria los siguientes puntos, sin seguir ningún orden concreto:

  1. templates para x86_64
  2. vzdummy-kernel-EL5, vzdummy-jre-CF6, vzdummy-glibc
  3. vzdev pone los archivos en / etc / udev / devices / en lugar de / dev
  4. vzdummy-apache
  5. Centos5 se levanta ocupando solo 14Megas
  6. inclusión de yum de forma standar, que sacualidad que en entornos 64bits no tira el vzyum jeje

Realmente estoy tentado a hacer un experimento, dedicar una maquina y levantar una cantidad irracional de containers y regalarlos, a ver como evoluciona la maquina en los proximos meses.

Quiza madure la idea y os lo cuente 🙂 a ver que pasa cuando 100 tios experimentando individualmente en un mismo anfitrión 🙂 jejeje

La noticia la teneis en: http://community.livejournal.com/openvz/24027.html

Posted in OpenVZ | Tagged , | Leave a comment

El coste de la electricidad no es despreciable ni de coña

¿Cuanto nos cuenta la electricidad consumida por un equipo?

  • Dell PE 2950III-Xeon X5460=45,62euros/mes

Aqui solo hablo de coste electrico directo, a eso hay que sumarle el co-location y otros costes asociados, pero suele ser un dato que muchas personas desprecian, claro esta que un PC en casa encendido 24horas/7dias a la semana sale por menos de 10 euros, pero en un DataCenter donde se contabiliza todo de forma mas exaustiva la cosa cambia.

Un dia os hare los números pero hay queda eso.

Posted in datacenter | Tagged , , | Leave a comment

No me funciona el correo, ¿que hago?

Debo decir que en general no atiendo incidencias en primera instancia y me llegan filtradas, sin embargo debo adminitir que en ocasionas una frase del tipo:

¿no me funciona el correo? ¿teneis algo mal? yo no he cambiado nada y ayer iba.

resultan un tanto desesperante, las personas que las resultas lo hacen desde la voluntad de recibir ayuda, pero con tanta información en ocasiones resulta dificil es por ello que voy a intentar relatar que cosas deberia evaluar un usuario, para que al menos, sino soluciona el problema, al menos ocntribuya en la medida de lo posible a realziar un diagnostico certero en el menor tiempo posible.

Es por ello que antes de solicitar soporte deberias verificar que tu configuración es correcta:

  • servidor pop: mail.sudominio.com ó sudomino.com (según el servicio que hayas contratado)
  • servidor smtp: mail.sudominio.com ó sudominio.com
  • nombre de usuario: usuario@sudominio.com (igual que tu dirección)
  • contraseña: vericique que es la correcta

Si una vez verificado, sigues sin poder recibir correo con el outlook (o similar):

  • acceda vía webmail a su buzón y verifique si puede acceder al mismo
  • pruebe a conectarse desde otro equipo

Cuando solicites soporte debes indicar claramente:

  • su nombre de dominio y las direcciones de correo afectadas
  • si el problema lo experimenta al enviar o al recibir
  • si lo experimenta al recibir, qué error le reporta el programa cliente de correo que utiliza
  • si lo experimenta al enviar, qué error le reporta el cliente de correo que utiliza
  • si ha probado vía webmail, qué errores ha experimentado
  • si lo que le ocurre es que no recibe un correo determinado que le ha enviado una persona determinada. En caso afirmativo, indiquenos la direccion de email del remitente y cuando le ha enviado ese correo
  • si lo que ocurre es que no puede enviar correo a un destinatario determinado (p.ej. que no le llegan los correos que Ud. le envia), indiquenos la direccion de email del destinatario. Necesitaremos tambien que nos indique nombre de usuario y contraseña de su buzon de correo para poder realizar las pruebas pertinentes

Es importante que detalle el problema que está experimentando lo más detalladamente posible.

Ten en cuenta que no es lo mismo:

  • “no puedo conectarme a mi buzón desde el outllok”
  • “no recibo correo”
  • “no me llega correo de una cuenta determinada”
  • “me envían correos desde …. y no me llegan”

En el 90% de los casos el cliente describe su problema como “no me funciona el correo”, pero eso no es suficiente para que nosotros podamos ayudarle.

Posted in basico | Tagged , | 3 Comments

Mysql en entornos con poca RAM

Los containers son sistemas que pueden tener los recursos limitados. MySQL por defecto utiliza bastante memoria RAM. Si va a hacer un uso medio de mysql, para un container con poca RAM, del orden de 256 ó 512 de RAM mínima garantizada os recomiendoq ue aligereis el mysql con unos parametros del estilo a lo sindicados, en vuestro my.cnf

[mysqld]
max_connections = 400
key_buffer = 16M
myisam_sort_buffer_size = 32M
join_buffer_size = 1M
read_buffer_size = 1M
sort_buffer_size = 2M
table_cache = 1024
thread_cache_size = 286
interactive_timeout = 25
wait_timeout = 1000
connect_timeout = 10
max_allowed_packet = 16M
max_connect_errors = 10
query_cache_limit = 1M
query_cache_size = 16M
query_cache_type = 1
tmp_table_size = 16M
skip-innodb

[mysqld_safe]
open_files_limit = 8192

[mysqldump]
quick
max_allowed_packet = 16M

[myisamchk]
key_buffer = 32M
sort_buffer = 32M
read_buffer = 16M
write_buffer = 16M

Posted in mysql | Tagged , , | Leave a comment

Cambiar la contraseña del root de mysql

En ocasiones por alguna razón perdemos el control de un servidor de mysql del que somos root, si esto ocurre, podemos actualizarla con el siguiente procedimiento:

/etc/rc.d/init.d/mysql stop
/usr/bin/safe_mysqld –skip-grant-tables &
mysql
use mysql;
UPDATE user SET Password=PASSWORD(‘nueva_contraseña’) WHERE User=\”root\”;
flush privileges;
exit
/etc/rc.d/init.d/mysql stop
/etc/rc.d/init.d/mysql start

Posted in mysql | Tagged , | Leave a comment

Sobrecarga en sistemas plesk por culpa del correo

En ocasiones en algunas versiones de plesk LINUX a partir de la 8.0.1 nos encontramos con maquinas con la siguiente problematica:

1. La carga sube sin causa aparente hasta niveles muy exagerados llegando a colapsar el sistema. Se utiliza el 100% de la CPU. Se llega a mediciones de “load average” superiores a 100
2.- En el análisis del maillog se detectan muchos procesos “relaylock”
3.- Observamos procesos com el siguiente:

/var/qmail/bin/qmail-smtpd /var/qmail/bin/smtp_auth /var/qmail/bin/true /var/qmail/Bin/cmd5checkpw /var/qmail/bin/true

Haremos lo siguiente:

cd /var/qmail/control

ls -la

si aparecen los archivos dhparam512.pem y dhparam1024.pem, proceder así:

cp dhparam512.pem dhparam512.pem.copia (lo copiamos por si acaso)
mv dhparam512.pem dh512.pem (lo renombramos)

cp dhparam1024.pem dhparam1024.pem.copia (lo copiamos por si acaso)
mv dhparam1024.pem dh1024.pem (lo renombramos)

Reinicamos xinetd y luego qmail:

service xinetd restart
service qmail restart

Una vez arrancado correctamente, verificar en el maillog (/usr/local/psa/var/log/mailllog) que el correo funciona correctamente. Observaremos que la carga del sistema se ha reducido de forma considerable.

¿Por qué pasa esto?
———–
los archivos .pem son los certificados que utiliza qmail-smtpd para las sesiones TLS. Qmail intenta abrirlos para cada una de las conexiones entrantes. Si no están disponibles, los genera “on the fly”, generando una carga muy alta de CPU (de hecho puede llegar a consumir toda la CPU incluso en sistemas con 8 cores y varios GB de RAM).

Originalmente los archivos de los certificados son “dh512.pem” y “dh1024.pem”, pero en algunas versiones de plesk han sido substituidos por “dhparam512.pem” y “dhparam1024.pem”, que no son identificados por qmail como archivos de certificado. Cambiándoles el nombre y rearrancando el qmail solucionamos el problema.

Posted in plesk | Tagged , | Leave a comment