Tuesday, November 27, 2012

Reloj de sistema en VPS con WHM/cPanel no está sincronizado

Este post va relacionado con:


  • NTP (Network Time Protocol) y su demonio NTPD
  • WHM y cPanel Time
  • Dovecot error "time just moved backwards"
  • Tiempo del servidor fuera de sincronización
  • Servidor VPS Linux (CentOS, WHM) con error de tiempo
  • Problema Time Drift, Time Skew, Clock Drift o Clock Skew


Hace unos días que me conseguí un VPS corriendo CentOS con WHM. Desde el principio noté que el IMAP (Dovecot) se reiniciaba con el mensaje de error "Time just moved backwards". Esto pasaba siempre después de realizar una sincronización de tiempo o cambiar la zona horaria.

Resulta que hay un efecto llamado "Time Skew" o "Time Drift" que ocurre en algunos sistemas (sobretodo VPS) que hace que el tiempo vaya más rápido de lo normal. Día tras día encontraba que el reloj del servidor VPS estaba adelantado unos 25 minutos. Esto es un problema crítico.

Después de bastante búsqueda, encontré dos posibles soluciones:

1) Instalar NTP
NTP (Network Time Protocol) es un servicio que nos permite sincronizar el reloj del sistema con internet. Al instalarlo, se instala también el demonio NTPD que ajusta  el reloj automaticamente y lo acelera o desacelera según sea necesario.

Para instalarlo basta con entrar como root vía SSH al VPS y ejecutar

yum install ntp

seguido de

/sbin/chkconfig ntpd on

(este último para que se inicie automaticamente el demonio al reiniciar el servidor).

Después tenemos que modificar el archivo /etc/ntp.conf con un editor como nano o vi. Lo que vamos a hacer es añadir la siguiente línea:

restrict default kod nomodify notrap

y comentar las siguientes (poniendo un gato # al inicio de cada una):

server 127.127.1.0
fudge 127.127.1.0 stratum 10

Guardamos el archivo de configuración. Reiniciamos NTPD y lo configuramos para que se inicie al rebootear el sistema:

service ntpd restart
/scripts/chkconfig ntpd on

Adicionalmente, si tenemos firewall hay que abrir el puerto 123 en UDP. Si tienes WHM con CSF+LDF, ingresa a WHM y ve a la opción "ConfigServer Security & Firewall", da click en el botón "Firewall configuration" y en la opción "UDP_OUT" añade el puerto 123.


2) Modificar el booteo (arranque)
Esta solución es la mejor (combinada con NTP) para un servidor VPS Linux que corre en Hyper-V sobre Windows Server 2008. Para esto, hay que entrar como root vía SSH al servidor VPS, y modificar el archivo /boot/grub/grub.conf.

En ese archivo encontraremos varios Kernels. En el Kernel predeterminado (generalmente el primero) hay que modificar la línea que inicia con "kernel /vmlinuz", agregandole al final "divider=10 clocksource=acpi_pm" (para 32 bits) o "notsc divider=10" (para 64 bits). Nuestro archivo debe quedar algo así:

#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00
#          initrd /initrd-version.img
#boot=/dev/hda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-164.6.1.el5)
 root (hd0,0)
 kernel /vmlinuz-2.6.18-164.6.1.el5 ro root=/dev/VolGroup00/LogVol00 hda=noprobe db=noprobe notsc divider=10
 initrd /initrd-2.6.18-164.6.1.el5.img
title CentOS (2.6.18-164.el5)
 root (hd0,0)
 kernel /vmlinuz-2.6.18-164.el5 ro root=/dev/VolGroup00/LogVol00
 initrd /initrd-2.6.18-164.el5.img

Después de modificar y guardar grub.conf, debemos ejecutar una sincronización manual del reloj y reiniciar el servidor usando los siguientes comandos:

service stop ntpd
ntpdate 0.pool.ntp.org
hwclock --systohc
reboot

3) Configurar el WallClock
Si NTP y la modificación de arranque no te funcionan, hay que desvincular el reloj del VPS de su nodo. Generalmente la vinculación del nodo VPS causa el Time Skew. Para hacerlo, hay que ingresar como root via SSH al VPS y ejecutar lo siguiente:

echo 1 > /proc/sys/xen/independent_wallclock

Si queremos que la configuración sea persistente después de un reinicio, debemos modificar el archivo "/etc/sysctl.conf" con un editor como nano o vi, y añadir la siguiente linea:

xen.independent_wallclock = 1

Con esto queda configurado nuestro servidor y ya no debemos de tener problemas con el tiempo. Si los problemas con la sincronización siguen, tal vez se deba a un problema de Kernel y debemos solicitar a nuestro proveedor del VPS que haga una actualización de Kernel.


Tuesday, August 28, 2012

Configurar Google Apps con WHM/cPanel

¿Cómo configurar Google Apps (Gmail, Calendar, Drive, etc.) en un hospedaje con WHM/cPanel?

Desde hace tiempo que tengo Google Apps configurado para mi dominio (gururojo.com) y me está funcionando de lujo. La sincronización del calendario y GMail con mi celular Android es espectacular, además de muy seguro.

He estado recientemente recomendando a mis clientes de Hosting que usen Google Apps para sus dominios. Algunos de ellos han aceptado, otros no. Hoy configuré Google Apps para 3 dominios, y después de hacerlo decidí escribir este post sobre esa configuración (Google Apps en cPanel/WHM) para que sea una información de ayuda para todos.

La configuración es muy sencilla, y va como sigue (suponiendo que ya cuentas con un dominio y cPanel/WHM). También asumo que ya tienes conocimientos básicos del manejo de dominios web con cPanel/WHM y nociones generales de lo que es el DNS.

1 - Registrarse en Google Apps para Empresas
Ingresa a http://www.google.com/a/cpanel/domain/new donde podrás registrar una cuenta gratuita. Te va a pedir el dominio, lo escribes y le picas al botón "Enviar" (Submit). Después rellenas la demás información que te pide, y picas en "Acepto, Crear mi cuenta".

Selecciona el asistente de la derecha. Te va a pedir que verifiques la propiedad del dominio subiendo un archivo .html a la raíz del dominio. Descargas el archivo, lo subes a tu dominio y le das "Verificar". Después de eso, seguirá el asistente de Google Apps. Puedes Saltarte los pasos si quieres, ya que la mayoría de las cosas las haremos manualmente, aunque antes de cualquier cosa te recomiendo agregar a todos los usuarios que tendrás en Google Apps (Gmail, Drive, etc.). Este proceso es muy sencillo y Google te guiará facilmente.

2 - Configurar los registros MX para Google Apps en WHM
Primero vamos a dar click en el menú "Setup" de Google Apps. A la izquierda vamos a seleccionar "Set up your apps", le damos Siguiente y Siguiente hasta que pregunte "Cómo deseas enrutar tu correo?" (How do you want to route your mail?), seleccionamos Google Servers y  le damos Next.

Ahora, nos vamos al panel de control WHM en nuestro hosting. Vamos a seleccionar "Edit MX Entry", seleccionamos el dominio para el que estamos configurando Google Apps y damos siguiente. Vamos a borrar todas las entradas MX que existan, y vamos a añadir las siguientes:



Priority (Prioridad) MX Destination (Destino MX)
1ASPMX.L.GOOGLE.COM.
5ALT1.ASPMX.L.GOOGLE.COM.
5ALT2.ASPMX.L.GOOGLE.COM.
10ASPMX2.GOOGLEMAIL.COM.
10ASPMX3.GOOGLEMAIL.COM.


Le damos click en "Save". Ahora regresamos a nuestro Dashboard de Google Apps y le damos "Next". Alomejor nos aparece que debemos esperar a que se propague la información. Propagar los registros MX para Google Apps no lleva más de 2 horas en la vida real, aunque teóricamente podría tardar hasta 48 horas, así que si no podemos enviar o recibir correo de inmediato, no te preocupes, va a llegar un momento donde funcione.

3 - Habilitar autenticación DKIM y SPF para el correo (Gmail) de Google Apps
Ahora en el Dashboard le vamos a dar en "Advanced Tools". Bajamos hasta donde dice "Authenticate email" y le damos en "Set up email authentication (DKIM)". Le vamos a dar en "Generate New Record". Nos va a preguntar el prefijo, le dejamos "google" y aceptamos. En el recuadro gris aparecerá el nombre del registro DNS TXT que debe ser "google._domainkey" y el valor del TXT que debe empezar con "v=DKIM1; k=rsa.......". Vamos a copiar todo ese valir desde "v=" hasta donde termine (generalmente termina con "AB").

Regresamos a nuestro panel de control WHM y seleccionamos la opción "Edit DNS Zone". Si ya tenemos un registro que comienza con "default._domainkey" le vamos a cambiar el nombre a "google._domainkey" (sin comillas) y le pegamos el valor que copiamos anteriormente. IMPORTANTE: el valor debe ir entrecomillado. Si no tenemos un registro "default._domainkey" vamos a generar uno nuevo que tenga de nombre "google._domainkey" (sin comillas), TTL 14400, IN TXT y  le pegamos el valor que copiamos.

Aprovechando que estamos en el editor de zona DNS, vamos a añadir dos nuevos registros:

a. Registro SPF: Debe de llevar por nombre tu dominio, sin "www" y con punto final, por ejemplo "midominio.com." (sin comillas). TTL 14400, IN TXT y de valor le ponemos "v=spf1 include:_spf.google.com ~all" CON comillas.

b. Registro CNAME para ingresar al correo desde nuestro dominio: Para facilitar las cosas seguro querrás entrar por ejemplo a "correo.midominio.com" en vez de a "www.google.com/a/bla.bla.bla". El nuevo registro debe llevar como nombre "correo" así solo, TTL 14400, IN CNAME y de valor "ghs.googlehosted.com." (sin comillas y con el punto final). No olvides dar click en el botón "SAVE".

Como recordatorio, nuestros registros DNS para Google Apps en WHM (editor de zona DNS) deben de quedar algo así (además de los MX que añadimos previamente):


Nombre TTL IN Value
google._domainkey 14400 IN TXT "v=DKIM1; k=rsa; p=MIG... ..."
midominio.com. 14400 IN TXT "v=spf1 include:_spf.google.com ~all"
correo 14400 IN CNAME ghs.googlehosted.com.

Ahora vamos a regresar a Google Apps y le vamos a dar click en "Start Authentication", y listo, con esto ya configuramos la autenticación DKIM y SPF para Gmail de Apps en nuesto dominio.


4 - Configurar el subdominio "correo.midominio.com" para ingresar a nuestro correo de Google Apps
Estando en el Dashboard, vamos a ir a Settings y seleccionamos Email en la parte izquierda. En Web Address vamos a darle en Change URL. Seleccionamos "custom" que empieza con http://, sigue un cuadro de texto y después nuestro dominio. En ese cuadro de texto vamos a meter la palabra "correo". Damos click en Continue. Si nos pregunta que si ya realizamos el registro del CNAME, le decimos que sí (esto lo hicimos en el paso anterior aprovechando que estabamos en el editor de zona DNS).

5 - No hay paso 5! Ya está todo configurado para utilizar Google Apps en nuestro servidor con cPanel/WHM. Simplemente debemos esperar a que toda la información nueva se propague por internet y con eso estamos listos.

En este post/tutorial aprendimos a:

1 - Registrarse en Google Apps para Empresas
2 - Configurar registros MX para usar el correo de Google
3 - Habilitar autenticación DKIM y SPF para el correo
4 - Configurar el subdominio "correo.midominio.com"

Espero les haya servido. Saludos!

Monday, June 11, 2012

Segundo Debate 2012 México


Sobre el Segundo Debate para las Elecciones de 2012 en México:


Ojalá la gente se haya dado cuenta que en el debate de anoche se demostró que JVM, EPN y AMLO no saben debatir. No respondían preguntas, sólo ataques. Como lo mencioné varias veces en twitter, el debate debería haber sido sobre propuestas y no sobre personas o personajes.


Noté a Josefina atancando más y repitiendo el mismo choro de siempre con una sonrisa algo hipócrita y nuevamente, aprovechándose de su género (amo y respeto a las mujeres, pero JVM se pasa al mencionar que es mujer para todo) y queriendo parecer la persona que más comprende a los mexicanos. Por cierto, el tono de su voz me aburre y cansa.


A Peña lo vi minimizando y esquivando problemas como otras veces. Mostró buenas ideas y propuestas, pero algunas no tan viables o que sólo suenan bonito pero sabemos que no van a pasar. Ahora no hubo tantas aclaraciones sobre lo que dice de él, y evitó el tema de la Ibero.


Vi a un AMLO más tranquilo, no tan atacante como siempre. Ahora propuso y explicó más sus estrategias; sin embargo considero que muchas de sus ideas carecen de bases reales. A veces las cifras que menciona parecen irreales (habría que estudiarlas bien) y no muestra bien sus fuentes. Me recordó a Tercer Grado, donde nomás no mostró al público los "estudios" que llevaba consigo.


Así esta vez noté a un Gabriel Quadri nervioso al principio pero que se fue destensando. Quadri fue el único que estaba debatiendo, el único que hacía preguntas para realmente debatir sobre los temas. Lo considero una persona preparada e inteligente. Sus propuestas (que son MUCHAS) tienen bases realmente tanto financieras como ecológicas y sociales. Desafortunadamente evitó contestar directamente sobre el cuestionamiento de su relación con Elba Esther Gordillo, aunque hizo el importante señalamiento sobre cómo llamó alguna vez JVM "querida amiga" a Gordillo.


Creo que la relación de Quadri con Gordillo es algo que pesa, pero que podríamos dejar de lado. Todos los candidatos se han relacionado con personajes que le han hecho daño al país de una forma u otra y por supuesto de forma más directa que Quadri con Gordillo.


Pongámoslo de esta manera: Se supone que los ultimos presidentes del PRI, así como Fox y Calderón (sobretodo éste último) han tenido algún tipo de pacto o relación con Gordillo que le permite de alguna manera influir. Quadri es un tipo mucho más astuto, preparado, inteligente y letrado que los presidentes anteriores. Un tipo así, no se dejaría mangonear tanto como dicen de los demás. Un tipo así llevará a cabo las excelentes propuestas de educación que ha hecho, porque inclusive si fuera cuestión de la maestra, ahora le conviene y necesita quedar mucho mejor que la CNTE con los paros que está haciendo, y eso sólo se lograría mediante una amplia mejora a la educación en México.


Por otro lado, a quienes piensan que votar por Quadri es inutil por que no tiene chance de ganar, les pongo un ejemplo que puse anoche en Twitter: El no votar por Quadri por que no tiene chance, es como no probar los nuevos tacos mejor preparados por que la competencia es entre los de siempre. Esto es democracia, señores. Esto es México, señores. En México no hay un sistema bipartidista como en EEUU; aquí tenemos 4 opciones. Nosotros podemos sin temor hacer que Quadri sea nuestro representante y presidente los próximos 6 años. ¿Qué pensamiento tan conformista es ese de no votar por alguien "por que no tiene chance"? Vamos, si Quadri no tiene chance, con nuestro voto podemos dárselo.


Si consideras que Gabriel Quadri es la mejor opción, VOTA por él. Haz que tu voz, tu opinión y tu elección sean escuchadas. Yo ya me decidí por él, ¿y tú?.

Friday, September 30, 2011

Rooteando Android.

This post reads about: Android Root, Superuser, Superuser update failed, Rooting problems, No root privileges granted, no root permissions, sudo, su, sh, bin, SuperOneClick, AceGingerRoot, failed root installation, Android 2.3.4 Gingerbread, Samsung Galaxy Ace, Rooted Android.

Hello there,

This post is for you all that are having problems after rooting an Android device, specifically talking about version 2.3.4 on a Samsung Galaxy Ace.

As you may already know, there is no known way of rooting an Android device with a version >= 2.3 using the classic root utilities (like SuperOneClick). To root the device, you need to boot it in recovery mode and apply an update using the "AceGingerRoot.zip" file. This file contains the necessary binaries to use the device as root (SU, Busybox, SH, SQLite3 and Superuser.apk). If you want more information on this process, visit this link.

After I rooted my phone, everything went OK and I applied Juwe's RAM Script for memory optimization. No problem there. I removed some stock apps that I never use to free up a little bit of internal storage, again, no problem there.

I opened the Superuser app just for being curious. It said that a newer version of the SU binary was available and that I could use the auto-update feature. Just after hitting "update" a toast poped up: "Automatic Update Failed"," An error occured and su was not updated. A zip file(su-2.3.1-bin-signed.zip) has been placed on your sdcard, Please reboot into recovery mode and flash it to update your su binary". I went to check that file and it was a 0 bytes file... I guessed it wouldnt be a problem since the update was not applied and it was working well. Suddenly when I was using my favorite file manager (File Expert) to move some other files, it didn't have root permissions.

I won't make a bible of this story. I looked for an answer and used Android ADB for about 6 hours until I found the answer, so if you are stuck in the same problem I was, here it is.

For a strange reason, the SU binary located in the /system/bin folder was the "locked" binary, so when an app was asking for root privileges it was asking for them to the /system/bin/su file (since that folder goes before the /system/xbin folder in the PATH variable. The "unlocked" version of SU is installed in /system/xbin). What I had to do to get my root working again (and undo everything I did so I could get my guarranty back) was to temporarily rename the /system/bin/su to /system/bin/su-old so that when an app was trying to query for root privileges, the system would not find the /system/bin/su file, thus running the /system/xbin/su modified file.

You can do that by typing "/system/xbin/su" via an ADB console. You phone will need to have the screen on and unlocked. A popup will appear asking you to grant Root privileges to the ADB client. Of course, you need to have the root binaries from the AceGingerRoot.zip installed.

After doing that, I was able once again to gain root privileges for my apps. Immediatly after that I changed the su-old name back to "su", rebooted and used the "unroot.zip" update to remove the root modded files.

EASY STEPS TO GET THIS "SUPERUSER UPDATE FAILED" ISSUE SOLVED:
  • Reinstall "AceGingerRoot.zip" as usual (check link above)
  • Install Android's SDK and tools so you can get ADB
  • Boot your phone in normal mode
  • Fire up an ADB console window in your computer
  • Mount your filesystem as Read/Write with the following command: mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system
  • Type in "mv /system/bin/sh /system/bin/sh-old"
  • Run any root app you need to run on your phone. May be you will be asked once again to give that app enough privileges.
  • Do what you need to do as root
  • Once done, close any root app
  • Back to ADB, type "mv /system/bin/sh-old /system/bin/sh" (may be you will need to remount as read/write)
  • Close ADB, Reboot your phone in recovery mode, and run the "unroot.zip" file.


Hope this helps you if you find yourself stuck in this problems.

Cheers! =)

Wednesday, September 28, 2011

Sobre el Avatar de @CdSatelite

Saludos a todos los que leen esto!

Bueno, este post es sencillo y corto para tocar el tema sobre el nuevo Avatar para la cuenta de @CdSatelite en Twitter que diseñé el día de ayer (27/09/2011).

Algunos usuarios han comentado que se parece a otras imagenes. Para ser totalmente sincero, el avatar es de mi autoría (leer siguiente párrafo) y se me ocurrió ya que al buscar "ciudad satelite" en imagenes de Google, lo primero que sale es una de las simbólicas losetas con flecha que indican el nombre de la calle y su sentido en Ciudad Satélite.

La imagen de fondo es una fotografía que encontré al buscar "torres de satelite" en imagenes de Google, y salió de este sitio: http://www.geolocation.ws/v/P/57102914/torres-de-satelite/en. Ahora sabemos que fue liberada por @protoplasmakid bajo una licencia Creative Commons Attribuciones - No derivadas 3.0 Unported. El arte digital (la loseta y el pasto) son de mi autoría y se usó la fuente PT Sans que está liberada bajo la licencia SIL Open Font Licence 1.1 (más información aquí)

Siendo diseñador ya desde hace varios años, de ninguna forma haría un plagio o faltaría a los derechos de autor (propiedad intelectual). Sabiendo que se usa una fuente libre así como una fotografía también liberada, y el arte digital siendo mio, cualquier similitud con otras imágenes es mera coincidencia y sin afán de usurpar artes.

Sin más por ahora, pueden comentarme aquí o en twitter sus observaciones.

Saludos!! =D

Thursday, April 7, 2011

MKV / MP4 en Televisor LG (32)LE5300

Otro post cortito y sólo para recordarlo:

Para reproducir MKV y/o MP4 en un televisor LG *LE5300, si no lo reproduce, será necesario demultiplexar el audio y video y multiplexarlo con MKVmerge versión 3.3 o 3.4 con sólo una pista de video y una pista de audio, ambas marcadas como default. Esto para formato AVC/H.264 con audio AAC. El multiplexado con versiones de MKVmerge superiores a la 3.4 evitará que el video pueda ser reproducido en el televisor.

Saludos!

ETIQUETAS: MKV, MP4, MKVMerge, AAC, H.264, AVC, AVC1, Video, LG, Televisor, 32LE5300, LE5300, HD, FullHD, Matroska, Reproducir, Error

Sunday, December 12, 2010

Windows 7 64 bits (x64) se traba constantemente

Esta entrada es simple, y no hay mucho que decir.

Me acabo de instalar Windows 7 x64 (64 bits) Ultimate. Desde el principio, me mandó algunas pantallas azules y se trababa constantemente. Después de actualizar drivers, quitar programas, y demás jaladas sin resultado, me decidí a flashear la bios para ver si eso ayudaba.

Al volver a meterme a la bios para checar si todo era correcto después del flasheo, me percaté de una tontería. La opción HPET (Tabla de Eventos de Alta Precisión) estaba configurada para correr a 32 bits. La reconfiguré a 64 bits.

Problema resuelto. Jaja.