Category Archives: Linux

IPv6 en mi red local

Bueno, ayer el router que usaba para mis experimentos decidió no arrancar, y cometí un error que me tomará tiempo arreglar y fue que le puse una flash incorrecta..

De todas formas hoy opté por seguir trabajando en ipv6, pues es mi objetivo ipv6 de ahora en adelante. Y la verdad es que he notado que es fácil.

1- Desde hace varios años tengo la posibilidad de usar IPv6 en los servidores nuestros en Canadá y le uso en varios de ellos.
2- Ya todos los servicios de nuestro servidor de EcuaLinux.com están trabajando dual stack, IPv6 e IPv4. Y llevan tiempo así y funciona de maravillas.
3- En la casa en mi estación de trababajo tengo IPv6 de forma permanente desde hace varios días. Pues sólo le activaba para probar mis servicios, pero me parece que es hora de ya tenerle permanentemente.
4- Ayer en el router monté IPv6, pero alguna burrada fuera del tema de ipv6 me ha hecho tener un bonito ladrillo blanco..

hoy me senté, tomé una motherboard mini-itx Via C3, de hace VARIOS años, con 512MB de RAM y un disco duro de estado sólido de 2GB. Y le monté debian como ruteador. En sustitución del router que tengo que arreglar.

A este debian entonces le implementé IPv6 y le configuré para que sirviera IPv6 en toda mi red local. Y en este momento todas las máquinas de mi red local obtienen una IPv6 y pueden navegar transparentemente vía IPv6 a toda la internet.

Es una maravilla, realmente super transparente, pero lógico, la labor que me ha tocado no ha sido de 3 minutos, vamos, que tengo un enojo conmigo mismo.. las IPv6 son bien feas, algo así:
2001:470:bf07:2c2:ee55:f9ff:feb0:368f

en qué se diferencia de esta?:
2001:470:df07:2c2:ee55:f9ff:feb0:368f

Bueno, pues es que no sólo son dos, se trabajan con varias máscaras, redes y el chorro de cosas, y entre tantas letras y números para mi ambas eran iguales, cuando eran dos prefijos y por tanto dos redes diferentes y perdí miserablemente muchas horas (y no miento, posiblemente 4 ó 5 horas) por esta tontera.

Oh sí, por si no le viste la diferencia, Bf07 no es lo mismo que Df07 (mira el 3er grupo de ambas IPs).

Este post, al igual que todos los de los últimos días, lo estoy haciendo por IPv6, porque ya www.ecualinux.com resuelve a ambas IPs, y el browser prioriza ipv6:

[eperez@eperez ~]$ host www.ecualinux.com
www.ecualinux.com has address 174.142.111.28
www.ecualinux.com has IPv6 address 2607:f748:1200:ff00::11

Mira cómo hago ping6 (el 6 es que el ping irá por ipv6):

[eperez@eperez ~]$ ping6 www.ecualinux.com
PING www.ecualinux.com(2607:f748:1200:ff00::11) 56 data bytes
64 bytes from 2607:f748:1200:ff00::11: icmp_seq=1 ttl=53 time=141 ms
64 bytes from 2607:f748:1200:ff00::11: icmp_seq=2 ttl=53 time=147 ms
64 bytes from 2607:f748:1200:ff00::11: icmp_seq=3 ttl=53 time=144 ms
64 bytes from 2607:f748:1200:ff00::11: icmp_seq=4 ttl=53 time=166 ms
64 bytes from 2607:f748:1200:ff00::11: icmp_seq=5 ttl=53 time=158 ms
64 bytes from 2607:f748:1200:ff00::11: icmp_seq=6 ttl=53 time=140 ms
^C
— www.ecualinux.com ping statistics —
6 packets transmitted, 6 received, 0% packet loss, time 5006ms
rtt min/avg/max/mdev = 140.020/149.719/166.651/9.736 ms

Qué raras las IPs eh? feísimas, es que están en hexadecimal, porque si lo pusieran en binario o en decimal serían números un poco…. laaaaaaaargos.

Habrán 2^128 IPs, es decir, algo así como:
340,282,366,920,938,000,000,000,000,000,000 direcciones IPs, no caben en tu mente, en serio, puede que lo veas y reconozcas los números separados, pero este numero no te cabe en el coco.

son Trescientos cuarenta trillones doscientos ochenta y dos mil billones novecientos veinte millones novecientos treinta y ocho mil trillones de billones de millones… o no? no sé el número, luego le busco.

Vamos a ver… otra forma de medir cuántas IPv6 habrán es darte una comparación:
– Somos casi 7mil millones de personas, a cada uno nos tocaría algo así como 2^95 IPs (ya 2^95 es difícil de concebir)
– Podríamos asignarle una IPv6 a CADA ÁTOMO de la tierra y todavía quedarían IPv6 para asignarle IPv6 a átomos de 100 tierras más.

Ahora, nadie quita que son números más complejos que los que antes usábamos con ipv4 eh? Quizá sea problema de acostumbrarnos, pero yo persiento ciertas dificultades con estos números, a no ser que se invente algo para poder manejarlos mejor.
Antes cuando querías hacer un ping a un equipo de la red decías:
“hazle ping a 192.168.2.46”, en palabras sería: “hazle ping a ciento noventa y dos punto ciento sesenta y ocho punto dos punto cuarenta y seis”

Fácil eh? ahora, hazle ping a:
2001:470:df07:2c2:ee55:f9ff:feb0:368f

ahhh no, pero dilo en palabras, y luego escríbelo, a ver si no te equivocas.

Comencemos a disfrutar IPv6!

Ya puse IPv6 en mi red local

Bueno, hoy me llegó un equipo que soportaba IPv6 y me pasé toda la tarde echándolo a andar.
Obtuve un rango de IPv6 (un /64 que es más que suficiente para dar ips a cuanta cosa se te ocurra en tu LAN) y al momento sólo había usado una IP de ese /64, pero bueno, aprendiendo y leyendo pude ponerle IPv6 a todos los equipos de mi LAN!

Sí!
Bueno, hay peligros, ahora me toca ver, cómo asegurar toda la red? porque ahora todas y cada una de las máquinas de mi red tendrán IPv6, ya no es como antes que todos los equipos quedaban detrás de un firewall, ahora estarán públicos. Y si antes habían problemas, ahora cuántos no habrán?

Bueno, la idea es que ya puedo echar a andar IPv6 en las LAN y eso me contenta.

Pero algo malo pasó, pero sé que tendrá solución, y es que el router se negó a arrancar luego de que le mandé a reiniciar, para mí que se bloqueó, porque no hice nada del otro mundo y estaba funcionando.

Ya es tarde, mañana o pasado seguiré viendo este tema, pero ya le tengo una total confianza a IPv6.

Seguimos en IPv6

Bueno, en nuestra empresa www.ecualinux.com desde el año que pasó hemos soportado varios sitios con ipv6 y le seguimos soportando continuamente, si tuvieras ipv6, puedes acceder a estos sitios por ipv6, sino, por la vieja ipv4… llama a tu proveedor y pregúntale cuándo te pondrán ipv6?

www.ecualinux.com
www.ecualug.org
www.easyteck.com
www.ernestoperez.com

lighttpd falla cuando activo apc

Bueno, hoy instalé un servidor con lighttpd, y al activarle el apc (php-pecl-apc) el lighttpd no arrancaba, daba un error así:

2012-05-07 14:17:10: (mod_fastcgi.c.1103) the fastcgi-backend /usr/bin/php-cgi failed to start:
2012-05-07 14:17:10: (mod_fastcgi.c.1114) terminated by signal: 11
2012-05-07 14:17:10: (mod_fastcgi.c.1119) to be exact: it segfaulted, crashed, died, … you get the idea.
2012-05-07 14:17:10: (mod_fastcgi.c.1121) If this is PHP, try removing the bytecode caches for now and try again.
2012-05-07 14:17:10: (mod_fastcgi.c.1397) [ERROR]: spawning fcgi failed.
2012-05-07 14:17:10: (server.c.945) Configuration of plugins failed. Going down.

Luego de muuuucho tiempo, en que con ayuda de Paul probamos varias cosas, nada de nada… se me alumbró, el apc escribe hacia /tmp.. y por alguna razón, el directorio /tmp tenía permisos incorrectos, le arreglé los permisos y listo! Todo ok!!

/tmp debe estar: rwxrwxrwt si no tiene estos permisos, fallará al escribir el apc y por tanto no arrancará el lighttpd

Presentación realizada por Ernesto Pérez en FLISOL Riobamba – 2012

Esta breve presentación la realicé para alertar, o ayudar a mejorar la seguridad en los sistemas Linux que corren bajo CentOS (otros linux igual aplica).

El énfasis, si te fijas, está en que hay que entrenar al usuario que trabaja con el equipo, pues lamentablemente hay muchos aspectos tan simples de tratar pero tan continuamente olvidados que se me hace obligado el hablar de esto.

Disfruten aquí del adjunto. Y como siempre, aquí estoy a su disposición por si requieren de una ayudita en flisol.

PD: la perra que aparece en la presentación es July, la perra de mi esposa.

Curiosidades de KVM: KSM

bueno: este tema es buenísimo, me ha encantado de kvm… todo con mesura, pero es una excelente idea.

KSM viene de Kernel Samepage Merging (mezcla de las mismas páginas del kernel).

La idea es que cuando virtualizamos, muy posiblemente las máquinas virtuales que corremos, corren bajo el mismo sistema operativo, por lo tanto la posibilidad de que las memoria de estas máquinas estén manteniendo una copia similar de ciertas páginas de memoria es altísima.

Dicho de otra forma: supongamos que tenemos dos máquinas virtuales: centos1 y centos2, ambos corriendo centos-6.2 por ejemplo. La posibilidad de que ciertas partes de memoria de la máquina “centos1” tengan la misma información que la máquina “centos2” es alta, porque posiblemente corren el mismo kernel, quizá procesos similares (mysql, dovecot, sendmail, postfix, apache, etc)..

¿Qué ventajas nos permite esto? Correr varias máquinas virtuales aprovechando al máximo la memoria, pues no se repetirá la misma información que se almacena en la memoria, sino que solamente se mantiene una copia.

Hoy realicé una pequeña prueba, que fue crear 10 máquinas virtuales de CentOS-6, clonándolas por supuesto para hacer el proceso rápido, y luego arrancarlas.

Primero verifiqué que mi kernel del hospedero tuviera kvm activado (el de los invitados deberían tenerle también):

egrep -i ksm /boot/config-2.6.32-220.4.1.el6.x86_64
CONFIG_KSM=y

Entonces a cada máquina virtual le asigné 900MB de RAM, por probar, podría haber usado otro valor. Y luego las arranqué.

Mi sistema hospedero tiene 3GB de RAM solamente, no más. En Xen para CentOS-5 no hubiera podido usar más que 3GB para asignar por máquina por ejemplo hubiera podido correr 2 máquinas de 1gb cada uno y una de 512mb (porque al hospedero en xen hay que dejarle un poco de memoria).

Ahora, en kvm, acabo de arrancar las 10 máquinas virtuales, cada una de 900MB de RAM. Esto sumaría 900MB*10maquinas= 9GB verdad? Pues las máquinas arrancadas consumen menos de 2GB en total!!! No lo crees? mira:

Esto fue antes de arrancar todas las máquinas:

[root@dom0 ~]# free -m
total used free shared buffers cached
Mem: 2982 2908 74 0 2584 32
-/+ buffers/cache: 290 2691
Swap: 511 6 505

En suma, el hospedero está usando aproximadamente 290MB de ram nada más.

Esto es luego de arrancadas las 10 máquinas de 900MB de RAM cada una!!:

[root@dom0 ~]# free -m
total used free shared buffers cached
Mem: 2982 2261 720 0 0 21
-/+ buffers/cache: 2239 742
Swap: 511 64 447

En suma, el hospedero ahora usa 2.2G

por tanto el incremento en el uso de la ram entre el primer escenario (sin máquinas virtuales arrancadas) y el segundo (con las 10 máquinas virtuales arrancadas) es de menos de 2GB.

si miras dentro de una máquina virtual, esta reporta que está usando 900MB.. no menos…

una forma de verificar que el ksm está en efecto haciendo su función es ver la cantidad de páginas ksmeadas:

[root@dom0 ~]# cat /sys/kernel/mm/ksm/pages_sharing
362484

Ahi está, 362mil484 páginas ksmeadas.

Estoy impresionado, pero hay que ser cauteloso, por qué tan bajo consumo? Porque todas las máquinas son iguales y están haciendo exactamente las mismas funciones, en este caso todas las máquinas están simplemente encendidas, realizando NADA .. esperando a que yo me conecte por ssh y nada más.

No hay que ser abusador como en este escenario en el cual arranqué tantas máquinas, leí en algún lugar, luego lo documento, que redhat sugería no se sobrevendiera la memoria por más de un 10% porque a la final las máquinas pueden comenzar a realizar labores diversas y no se pueda hacer uso del KSM al no haber muchas páginas similares.

Aquí las 10 máquinas corriendo:

Aquí las 10 máquinas virtuales corriendo
Aquí las 10 máquinas virtuales corriendo

Un comentario adicional, ahora acabo de verificar la ram y no supera los 875mb de uso!

[root@dom0 ~]# free -m
total used free shared buffers cached
Mem: 2982 949 2032 0 15 58
-/+ buffers/cache: 875 2106
Swap: 511 61 450

No lo sé, pero la idea es que puede decrecer, pero fíjate.. puede crecer también su uso, así que cautela ok?

Activarlo es medio raro. Yo realmente lo que hago es editar esta variable:

vi /etc/sysconfig/ksm

KSM_MAX_KERNEL_PAGES=0

luego reinicio el servicio ksm y en teoría debe funcionar.

arreglar apf en centos-6

Hace un tiempo noté un problema en algunos centos-6 que el apf no funcionaba, le configurabas y todo y no salían reglas del iptables. Pero como estaba en otras urgencias, no tuve tiempo de analizarle.

A la final hoy tuve que instalar 4 veces el apf en 4 centos-6 diferentes y falló en todos ahi sí ya me preocupé. Así que encontré el problema, es fácil!

Cuando instalo CentOS-6 hago una instalación mínima, y resulta que las instalaciones mínimas ya vienen sin el comando “wget” lo que impide que el apf funcione correctamente. Ok, el apf debería detectar esto y usar quizá curl, pero no lo hace.

así que de momento, simplemente instalé wget, y volví a ejecutar el apf, y funcionó!

yum install wget

Método fácil para instalar MailScanner

esta es una forma facilísima de instalar MailScanner en CentOS-6. Primero que todo, debes tener instalado el repositorio de EPEL.

bajamos el tar.gz de CentOS (el primero de la lista) del mailscanner desde

http://www.mailscanner.info/downloads.html

Entonces ejecutamos los siguientes pasos:

yum install perl-Archive-Zip perl-DBI perl-DBD-SQLite perl-Filesys-Df perl-Net-CIDR perl-OLE-Storage_Lite perl-Sys-Hostname-Long perl-Sys-SigAction perl-MIME-tools spamassassin clamav
 

Abrimos el mailscanner que bajamos de la URL inicial y entramos al dierctorio que nos crea:

tar zxf MailScanner*.tar.gz
cd MailScanner*
 

Entonces procedemos a instalar el rpm de tnef y de mailscanner, atención que el número de versión de ambos puede cambiar:

32bits: rpm -Uvh tnef-1.4.5-1.i386.rpm mailscanner-*.noarch.rpm
64bits: rpm -Uvh tnef-1.4.5-1.x86_64.rpm mailscanner-*.noarch.rpm
 

Y listo, al finalizar la instalación me dirá el siguiente paso ahí mismo, pero te lo pongo por si acaso te pierdes:

service sendmail stop
chkconfig sendmail off
service MailScanner start
chkconfig MailScanner on

Instalando correctamente dovecot en CentOS-6

Ya me ha sucedido varias veces y ya voy a escribir un peque howto sobre esto.

Resulta que en CentOS-6 se ha hecho un poquito más complejo el instlar correctamente el dovecot, anteriormente era simplemente instalarle y arrancar el servicio y ya funcionaba, ahora igualmente debemos hacer:

yum install dovecot

sin embargo ahora me he topado con dos curiosidades que hacen que no solamente debamos instalarle y arrancarls… ok podrían tomarse como características si le vemos así:

La primera es que ya no acepta autenticación en texto claro. Esto definitivamente es una ventaja, una mejora.. supuestamente todo lector de correos que se conecte a través de POP3 o IMAP4 debe usar algún tipo de sistema que no envíe las claves en texto claro. Lamentablemente muchos sistemas de correos actualmente no tienen o no es trivial el que usen esos métodos para encriptar el envío de información.

Repito, es positivísimo y esto debe convertirse en algo natural, estándar.. sin embargo mucha gente al momento se confunde por esto. Una variante es investigar y lograr la autenticación encriptada, la otra, facilista es cierto!, es pedirle que siga aceptando autenticación en texto claro.

Para volver a poner autenticación en texto claro, una vez instalado dovecot como hicimos arriba, simplemente editamos este archivo:

/etc/dovecot/conf.d/10-auth.conf

y descomentamos una línea que está casi arriba arriba y le ponemos con no, así:

disable_plaintext_auth = no

y listo, si reiniciáramos el dovecot, ya estaría aceptando autenticación en texto claro.

Pero aguanta, no reinicies todavía, ahora viene lo más engorroso. Luego que me pongo a verificar, me daba error al autenticar en POP3, algo así salía:

Oct 22 14:01:10 curso dovecot: pop3(prueba): Error: user prueba: Initialization failed: mail_location not set and autodetection failed: Mail storage autodetection failed with home=/home/prueba

Molesto, muy molestoso el encontrar la solución, inmediatamente me puse a cambiar variables, quitar y poner y me pasé, literalmente, una hora con el mismo problema.

En resumen es que dovecot trata de detectar el mail_location automáticamente, el directorio donde estarán los mails de los buzones de IMAP4, pero falla miserablemente… lo único que hay que hacer es no dejarle detección automática sino definirle directamente el mail_location, esto se hace editando:

/etc/dovecot/conf.d/10-mail.conf

entonces descomento una línea que dice así (no dejen espacios delante del comentario:

mail_location = mbox:~/mail:INBOX=/var/mail/%u

Esta línea está por la segunda página, y está comentada, repito: quítale los espacios de alante, la m de mail_location debe quedar en la primera columna.

También en el mismo archivo descomento y cambio las dos siguientes líneas:

mail_privileged_group = mail
mail_access_group = mail

Y reinicio dovecot! Listo!

Ahora viene un tema simple, al conectarte nuevamente con un usuario, la primera vez que lo hagas fallará nuevamente, pero sólo la primera vez, te conectas de nuevo y ya  no falla.

Esto lo veo feo, pero así es como está configurado ahora.. falla, pero crea el directorio ~/mail y ya no vuelve a fallar.

Si sigues este howto al pie de la letra, ya te funcionará el dovecot con esta excepción del fallo a la primera autenticación.

Cualquier duda, me avisas a ver cómo se te puede ayudar.

 

Más sobre la beca del senescyt

El otro día publiqué que había recibido una de las 1070 becas del Senescyt del año 2011, en ese momento sólo publicaron una lista alfabética de los adjudicados, y recuerdo que comenté

No sé ni me interesa la posición que obtuve, pero el orden en que se entregaron los resultados fue alfabéticamente por apellidos, por eso estoy en el 747, como el avión.

Y nada, es verdad, pero bueno hoy mientras conversaba con una amiga, me dijo que yo obtuve buen ranking, le indiqué que ese número no era el ranking sino el orden alfabético que nada tenía que ver con la posición… ahí ella me hizo saber que luego sacaron un listado con la posición y bueno.. al acabar de conversar busqué ese listado y en efecto existe. Debo aclarar y repetir que los 1070 logramos la beca, no importa la posición! Pero igual me honra saber que fui el 162 en la evaluación presentada.

Esto significa que de haber habido 200 becas hubiera salido también! y que de haber habido 150 no hubiera salido! Wow, tremendas deducciones eh? Sigo cantinfleando: que hay 161 compañeros de becas que obtuvieron mejores posiciones y estoy ciertamente muy orgulloso de ellos pues nunca he sido envidioso, que 162 es el 15% de 1070, wow, tremendas deducciones (de nuevo).

Las notas se sacaron no solamente del exámen, sino siguiendo ciertos parámetros pre-establecidos que dan un amplio margen a la discrecionalidad:

  1. El 60% de la nota es por el puntaje que obtienes en el examen EXADEP
  2. El 30% de la nota es por la calificación dada al ensayo que escribes (aquí es algo que no es 1/0, verdadero/falso, sino que definitivamente interviene mucho la opinión que se pueda forjar el evaluador)
  3. El 10% de la nota es por la calificación a las cartas de recomendación que presentas. Igual al punto 2, no todo es yin/yang sino que el que evalúa estos documentos tomará su decisión.

Vamos a seguir en la batalla! A ver si me decido a tomar la beca.

Gracias a mis padres por haberme parido en ese lindo país, gracias por haberme podido educar y haber sido motivado a siempre estar aprendiendo. Gracias a Ecuador por haberme aguantado tantos años (y los que faltan!) y a mi esposa por apoyarme en todas mis ideas locas. Gracias a mis niños que ni cuenta se dan todavía de lo que intento, pero te miran como el único papá que tienen, de momento como un héroe panzón. Gracias a todos los amigos que me ayudaron, me ayudan y seguro que me seguirán  ayudando. Y nada, para alante, con la certeza de que si cometemos errores o decimos cosas incorrectas, es precisamente por ser humanos.