Initrd (reloaded)

Los ficheros initrd(initial ramdisk) contienen un pequeño sistema con los ficheros básicos que permitan iniciar un kernel de Linux en memoria RAM al arrancar nuestro sistema. A partir de él, ya se puede montar el directorio raíz e ir cargando el resto de módulos del núcleo que configuran nuestro hardware.

Aunque ya hemos hablado aquí sobre cómo examinar el contenido de uno de estos ficheros, quería mejorar la entrada, porque no suelo usar aquel procedimiento, sino este otro que quiero contar hoy que me resulta menos litúrgico, y que he tenido que usar demasiado a menudo en los últimos meses, porque ando editando el arranque de distribuciones LiveCD como Clonezilla, Trinity Rescue, y otras tantas que finalmente no cuajan porque no me sirven.
Como ya comentamos en aquella entrada encontramos dos tipos de ficheros initrd:

  • Initrd, en kernel anteriores a 2.6.13, almacena la imagen de un sistema de ficheros (que podía venir comprimido), habitualmente ext2 (el driver ext2 debía estar incluído en el kernel y no como módulo), aunque otros como Debian usaban cramfs.Este sistema de archivos se ponía disponible al montarlo sobre un dispositivo /dev/ram, como sistema raíz inicial, para justo después ejecutar /linuxrc . Cuando este programa finalizaba, se ejecutaba /sbin/init que ya se encargaría de iniciar el espacio de usuario.Para examinar su contenido, podemos ejecuar...
    cp initrd.original  initrd.paramodificar.gz

    mkdir contenido-initrd
    gunzip initrd.paramodificar.gz
    mount -o loop initrd.paramodificar contenido-initrd
  • Initramfs, aparece a partir del kernel 2.6.13 y mejora sustancialmente a su predecesor, ya que no se tiene que montar sobre un disco virtual, y tampoco es necesario parchear el kernel para incluir el soporte básico que permite descomprimir y montar el propio initrd. En definitiva, se consigue mayor flexibilidad y facilidad para la administración.Para examinar su contenido, podemos ejecuar...
    mkdir contenido-initrd

    cd contenido-initrd
    gzip -S img -dc ../initrd | cpio -id

En cualquier caso, si ejecutamos estos comandos tendremos su contenido en el subdirectorio contenido-initrd, y podremos modificar los archivos que necesitemos con nuestro editor faVorIto. Luego podremos volver a su forma natural ejecutando...
 cd contenido-initrd
find ./ | cpio -H newc -o | gzip -c > ../initrd

si se trata de un fichero initramfs, y si fuera un initrd, tendremos que desmontar y volver a comprimir...
cd
umount contenido-initrd
cat initrd.paramodificar | gzip -c > initrd

Despedida de LinEX

La semana pasada supimos que la Junta de Extramdura había decidido no renovar los contratos al personal del Centro de Excelencia de Software José de Espronceda, organismo encargado del desarrollo de LinEX. En el foro oficial podemos escribir nuestras condolencias. Según el propio gobierno autonómico, la decisión se fundamenta en la insostenibilidad del proyecto y la necesidad de ahorrar en estos tiempos de crisis económica.
Este anuncio llena de incertidumbre el futuro de la apuesta más importante de una administración pública española por el uso de software libre, que además fue un referente a nivel mundial y nacional, y sentó las bases para el nacimiento del resto de distribuciones autonómicas: Guadalinex, Molinux, Lliurex, Max, y otras cuantas más.
A mi juicio el experimento ha sido un éxito rotundo, pero no dejan de preocuparme las causas reales que se esconden tras esta decisión:

  1. ¿se está tratando de borrar el rastro de una gestión exisitosa del anterior gobierno autonómico de signo político contrario al actual?
  2. ¿se quiere apostar ahora por software privativo, que no impute coste de desarrollo e implantación a corto plazo?
  3. ¿existe presión por parte de alguna de las grandes compañías de software, dispuestas a regalar licencias a la administración pública regional, a cambio de desprestigiar diez años de éxito del software libre?
La comunidad española del software libre, tenemos muchísimo que agradecer al proyecto LinEX, por las numerosas contribuciones a la comunidad, la formación y difusión que han realizado del Software Libre en foros técnicos y no técnicos, y la experiencia del contacto con la política: Nos han mostrado un camino de cómo pueden relacionarse Software Libre y Política y con ello,
  • generar riqueza local con la aparición de nuevas empresas que ofrezcan soporte y formación
  • tener software compatible e interoperable que se ajusta a nuestras necesidades y realidad local
  • lograr independencia tecnológica de compañías multinacionales extranjeras
  • garantizar el acceso universal a la información y la no discriminación
... pero también nos han enseñado, como la política puede estropearlo todo:
  1. ... fomentando los localismos que ayudan a resaltar nuestras diferencias, en vez de nuestras semejanzas,
  2. ... multiplicando los costes por hacer lo mismo desde diferentes lugares, y coaccionando la cooperación para justificar la inversión,
  3. ... bloqueando acomplejadamente la participación y el retorno a la comunidad para proteger la inversión
  4. ... manchando de color político algo incoloro como la tecnología, para que los ciudadanos sean capaces se asociarles un partido político y canalizar sus disconformidades como una forma mediática de oposición
No debemos dejar de reconocer el importantísimo papel de las administraciones públicas y de la política, como catalizador para que las empresas locales, empiecen a generar riqueza en torno al software libre: Europa ya no puede competir con EEUU en cuanto software. Dependemos de Novell, Google, Oracle, Microsoft, IBM... Somos tecnológicamente dependientes de EEUU. La única forma de alcanzar independencia tecnológica en informática y ser competitivos, es a través del software libre.... pero ... ¿cómo pueden las administraciones públicas contribuir a ello, ante noticias como la que estamos comentando?
  • Legislar para conseguir la independencia tecnológica. Obligar que las soluciones al ciudadano no les obliguen a tener determinado software de acceso restringido.
  • Pagar por implantaciones basadas en software libre y formación, sin contratar nuevos funcionarios ni la constitución de más entes públicos que se encarguen de ello, es labor de las empresas locales.
  • Obligar que las empresan que ganan los concursos públicos realicen trabajos basados en software libre, lo liberaren y contribuyan con la comunidad.
La mejor de las suertes para el equipo de LinEX y mis más sinceros agradecimientos.

FreeSSHd: Un servidor SSH para Windows

A menudo nos encontramos con la necesidad de poder conectar con un servidor Windows, desde otro equipo, en las mismas condiciones que cuando lo hacemos entre servidores Linux usando SSH.

Normalmente esta necesidad podíamos cubrirla usando CygWin, pero nunca me ha terminado de convencer porque al final terminábamos convirtiendo nuestro servidor Windows en un servidor Linux al que le faltaban bastantes cosas, además del inconveniente de la doble gestión de cuentas de usuario, el lío con las barras separadoras de directorios ("/" y "\") según el comando que ejecutáramos, y por supuesto, el hecho de que muchos comandos no están al nivel de implementación de Linux y les faltan opciones... todo esto siempre me causó la impresión de que no estaba usando ni un Linux, ni un Windows, sino un refrito que funciona a medias. Nunca consideré CygWin como una opción seria para servidores en producción.

Afortunadamente, disponemos de alternativas libres para ello como FreeSSHd. Este es un simple servidor SSH y Telnet para equipos Windows, y permite hacer esto que reclamo: Instalarnos un servicio que escucha conexiones por el puerto 22 y/o 23 y al autenticarnos nos abre una consola del intérprete de comandos de Windows. Luego usaremos los mismos comandos que usaríamos frente a una ventana.

La instalación es bastante sencilla, y no ofrece ninguna complicación. Una vez lo hayamos instalado, tendremos que editar la configuración del servidor, y configurar qué puertos queremos escuchar: SSH y/o Telnet.


Además, debemos indicarle qué usuarios del equipo Windows le permitimos la conexión y con qué opciones.

Una vez realizada esta configuración básica, reiniciaremos el servicio, y ya podremos conectar mediante SSH como si se tratara de un servidor Linux. Observar que al conectar la consola no se limpia y el prompt de Windows se nos va al inicio del terminal sobreescribiendo lo que tuviéramos.

Para crear confianzas SSH mediante clave pública, tendremos que añadir las claves públicas, igual que hacemos con el fichero authorized_keys en Linux, pero al fichero %PROGRAMFILES%\FreeSSHd\LOGIN_USUARIO. El servicio va escribiendo un log en %PROGRAMFILES%\FreeSSHd\freesshd.log.

Una maravilla la verdad, simple y directo. El único inconveniente que le veo a este programa es que tendremos que usar SFTP desde Linux para poder copiar ficheros al equipo Windows: El comando SCP no nos funcionará :(.

¡Feliz 0x7DC!

Feliz y próspero año nuevo a todos los que pacientemente habíais esperado ver si se actualizaba este humilde blog, y a los que no … ¡también!.

Este año es el año de las olimpiadas de Londres (¿cuántas medallas conseguiremos?) , el de la Eurocopa (¿volverá España a caer en cuartos? ¿Raúl selección?), será nuestro primer año Mariano (por aquello de nuestro nuevo presidente Mariano Rajoy), volveremos a sufrir una nueva campaña electoral antes del Verano y, aunque los días no tengan más horas, Febrero sí que tendrá un día más, al contrario que las semanas laborales, que tendrán algún puente menos. Viendo esta perspectiva, da la impresión que será un año de ajustes...

Este año 2012 que acabamos de estrenar, es el año en el que acaba el calendario Maya, y empiezan los augurios proféticos sobre el advenimiento del fin del mundo, aunque … parece que este fin del mundo empieza por la destrucción de nuestro estado de bienestar, del Euro, y de Europa... quizás los Mayas simplemente fueran prácticos, y pensaran: “¿quién de nosotros va a estar aquí para el 2012? … ya actualizaremos el calendario cuando toque, intentemos vivir nuestro presente” ... y desde entonces hasta la llegada de los españoles al nuevo mundo, hubieran estado procrastinando ... ¿quién sabe lo que pasó entonces, y lo que nos sucederá ahora?, pero con mis mejores deseos, un poco de suerte y otro poco de paciencia espero que podamos comprobarlo juntos en unos cuantos meses.

La foto la he sacado del album de Dee_m en flickr

Proxy SNMP

A menudo tenemos el agente SNMP configurado en nuestro servidor Linux para escuchar peticiones SNMP por el puerto UDP/161. El agente responderá a las consultas habituales como carga del equipo, uso de la red, uso de memoria, software instalado, etc. El problema aparece cuando tenemos algún servicio instalado que también es capaz de escuchar peticiones SNMP, como el caso de Oracle o Squid: Para seguir teniendo la monitorización del sistema y sacar partido a la monitorización del servicio, tendremos que configurar los agentes en puertos UDP diferentes, y configurar nuestra herramienta de monitorización para que realice consultas a los diferentes puertos.

Otra posibilidad es configurar un OID de proxy en nuestro servicio SNMPD, editando el fichero para /etc/snmp/snmpd.conf, añadiendo las siguientes líneas:

# Proxy hacia SQUID
# proxy -p 1161 -v 1 -c public 127.0.0.1 .1.3.6.1.4.1.3495.1.3.2
proxy -v 1 -c public localhost:1161 .1.3.6.1.4.1.3495.1

y configurar el agente SNMP del servicio, para que permita las consultas desde nuestra red y desde el propio localhost. Para el caso de Squid, añadiríamos al fichero /etc/squid/squid.conf las siguientes líneas:
#------------------------------------------------
# MONITORIZACION SNMP DEL SERVIDOR
#
snmp_port 1161
acl Snmppublic snmp_community public
acl Adminhost src 192.168.0.0/16
acl thishost dst 127.0.0.0/8
acl localhost src 127.0.0.0/8
snmp_access allow Adminhost Snmppublic
snmp_access allow thishost Snmppublic
snmp_access allow localhost Snmppublic
snmp_access deny all

Reiniciar los servicios involucrados:
squid -k reconfigure
/etc/init.d/snmpd restart

y comprobar...
  • Directamente consultando el agente...
    snmpwalk -v 1 -c public 127.0.0.1:1161  .1.3.6.1.4.1.3495.1.3.2
  • ... y a través del proxy...
    snmpwalk -v 1 -c public 127.0.0.1 .1.3.6.1.4.1.3495.1.3.2

Con esta configuración no tendremos que contemplar ninguna excepción en nuestro software de monitorización, y podremos monitorizar los distintos servicios usando el mismo puerto.

El final de los departamentos de IT

Esta semana he estado viendo soluciones en la nube para nuevos proyectos que tenemos que realizar, y casualmente encontré este artículo en 37signals llamado The end of the IT department, que me he animado a traducir, de un forma un tanto libre.

Cuando la gente habla de sus departamentos de informática, siempre suele hacerlo para quejarse las cosas que no les permite hacer, las aplicaciones que pueden ejecutar, y el tiempo que se pierde para no hacer nada. Políticas rígidas e inflexibles llenas de buenas intenciones para favorecer la convivencia entre los departamentos de la empresa, sin mencionar la frustración que supone hablar lenguajes diferentes. Nada de esto ayuda a construir unas relaciones sólidas entre los departamentos de las organizaciones.

Si aquellas organizaciones que tanto se quejan hubieran externalizado estos servicios, hace tiempo que habrían cerrado. Los departamentos de informática se han sufrido como un mal necesario. Pero ahora, estos días están llegando a su final.

El problema con los departamentos de informática es que se han creado como un proveedor interno obligatorio. Desde el principio, tienen el monopolio sobre el "problema informático", y tienen a ofrecer el mismo servicio a sus clientes que ofrece cualquier servicio postal. El departamento de TI tiene todo el poder, y iremos a ninguna parte (al menos no, a corto plazo), si sus clientes son vistos como meros peones. No se favorece un circuito de retroalimentación que favorezca la mejora continua.

Obviamente, también se puede mirar desde el otro lado de la valla. Los departamentos de TI suelen ser tratados como un centro de coste, justo por encima del servicio paquetería y del servicio de katering corporativo, que no ganará nada cuando todo simplemente funciona, pero que se convierte en el centro de ira de todo el mundo cuando algo falla.

Al mismo tiempo, trabajar en la seguridad de la información a menudo requiere hacer cosas difíciles, lentas y complejas. Si para administrar nuestro servidor de correo se necesitan dos personas dedicadas durante todo el día por turnos, ello significaría que estas personas nunca podrían ser amigos fuera del trabajo. Por supuesto alojar nuestro correo en Gmail es una muy mala idea. Es la misma mecánica que llevó a los sindicatos a luchar contra la fuerza del progreso (¡condiciones de trabajo adecuadas para todos!) y del estancamiento (sólo Jack puede mover las sillas de rueda, Joe es el único que puede conectar el micrófono).

Pero el cambio se acerca. Tratar con la tecnología ha pasado de ser cosa de frikis de la tecnología para convertirse en algo más. Las generaciones más jóvenes lo saben. Ya no se necesita de un equipo de frikis expertos en Informática.

Ya no se necesita de un técnico en la oficina como hombre "de la sala de servidores." La responsabilidad de mantener arriba los servidores se ha alejado de nuestros departamentos de tecnología. Ya podemos conseguir en la Web, casi todos los servicios que antes requerían contratar a un experto.

La transición no va a ocurrir de un día para otro, pero ya comenzó hace mucho tiempo. Las empresas que consideren que pueden prescindir de un técnico del departamento de TI están creciendo en número y tamaño. Es posible tener una oficina de 20 personas sin siquiera considerar la necesidad de adquirir un sólo servidor.

La buena noticia para los operadores de los departamentos de TI es que sus habilidades pueden ser utilizadas para otros usos. La mayoría de los trabajadores del sector del automóvil y del textil envidiarían su situación y estarían dispuestos a cambiarse por ellos.

A mi juicio, hemos llegado a la situación que este artículo, que suscribo totalmente, describe por los siguientes detonantes:
  • Efectivamente, el problema de comunicación bidireccional que existe entre los diferentes departamentos: Nadie entiende a Informática, pero informática tampoco consigue hacerse entender ni entender las necesidades del resto de departamentos. ¿Cuántas veces han venido a pedirnos un desarrollo que debe estar acabado en dos semanas, o en un mes, hemos dicho que eso no se podía conseguir, lo han subcontratado fuera, han tardado el doble, ha costado 10 veces más, y al final no se ha terminado?
  • El efecto Mar Muerto en los departamentos de tecnología del que hablaba Enrique Dans, ha vaciado los departamentos de talento y los ha llenado de gente acomodada que apenas aportan innovación, ajenos a las nuevas soluciones que permiten abaratar costes y justificar la inversión que la organización realiza con el pago de su nómina. ¿Cuántas veces hemos calculado la disponibilidad de nuestros servicios, y cuántas veces nos hemos conformado con el 98% (29 minutos al día de caída), evitando responder las comparaciones que nos hacían diciendo "Google nunca se cae"?
  • Es una consecuencia de la evolución: Primero se externalizaron los trabajos de desarollo, ahora toca externalizar los servicios de administración sistemas. El personal de los departamentos de tecnología evoluciona a gestores de proyectos, y pasa a controlar nuevas métricas relacionadas con la calidad y el coste de los servicios que subcontratan. ¿Cuántas veces nos han dicho que debemos aplicar las buenas prácticas de ITIL o LeanIT, ISO27000 e ISO9001 en nuestros departamentos?¿Qué buscan la implantación de estas normativas, si no es la definición de métricas que valoren la calidad de los servicios que ofrecemos, y una vez que se conocen, poder decidir si el coste lo justifica o es más rentable externizarlos?
  • La crisis económica acelera estos cambios de mentalidad: Ante los recortes de presupuesto, los primeros en ver recortada la inversión son aquellos departamentos de dudosa rentabilidad. Cada vez hay menos dinero, pero las necesidades siguen existiendo y ello nos obliga a buscar nuevas fórmulas para poder cubrir al menos las más básicas.
Es tiempo de cambios, y como reza el dicho popular a rio revuelto, ganancia de pescadores, y por ello debemos estar atentos a las nuevas ofertas que nos vamos a encontrar y examinar si realmente ofrecen alguna ventaja frente al trabajo que nosotros somos capaces de realizar.

WikiLeaks

He pensado estrenar el primer post del año (casi en primavera), reflexionando sobre el fenómeno Wikileaks, que tanto espacio está ocupando en nuestros ya castigados espacios informativos, a causa de la crisis, y precisamente hoy, cuando el pueblo de Egipto ha conseguido recuperar el rumbo de su destino, a pesar de la indiferencia de David Bisbal, y el destacado papel que ha jugado Internet en el proceso de liberación.

Realmente, ¿qué es WikiLeaks para alguien de a pie como podemos ser tú o yo?. WikiLeaks es un fenómeno que ha surgido en Internet, que se dice amenaza la seguridad de las naciones, porque publica documentos supersecretos en pro de la libertad de los pueblos. Esos documentos que nos van ofreciendo con cuentagotas, no son más que simples cotilleos de pasillo o de Camera Café, entre gente con cierto interés por la política. Así, de sencillo: No dejan de ser cotilleos típicos de prensa rosa donde los protagonistas son personajes políticos. Están vacíos de contenido y además la mayoría son obvios: ¿Quién puede discrepar a estas alturas de la descripción que hacen de nuestro presidente Zapatero?. No hay nada interesante que no sea un secreto a voces para gente medianamente informada y con un mínimo espíritu crítico, nada más. ¿Qué esperaba yo que fuera material reservado?. Esperaba que la desclasificación nos hubiera explicado a los españoles, por qué nuestro presidente decidió apostar por energias alternativas, cuando ninguna es economicamente rentable sin una importante inversión en I+D que abarate los costes de producción, y se decidiera a cerrar las pocas centrales nucleares que abaratan el coste energético del país. Así consigue hipotecarnos un poco más, porque nos ha inflado la tarifa de la luz para pagar el despilfarro de subvenciones y terminar comprando kilovatios a Francia y petróleo y gas a Argelia que quemar, para transformar en más kilovatios, permitiendo la consiguiente fluctuación del precio, a causa de la inestabilidad política del norte de áfrica que irremediablemente contribuyen a subir el precio del crudo. No me creo, que la decisión radique en motivaciones ideológicas, a pesar de que el personaje se ofrece a ello, sencillamente no me trago que entre todos los asesores que pueda tener, ninguno le previniera. ¿Por qué tenemos que seguir comprando a terceros la energía, y no hemos apostado por ser autosuficientes pero como lo son Francia, Alemania o Estados Unidos, no como son los gnomos en la montaña mágica?

¿Y por qué nos machacan los medios informativos con WikiLeaks?. Sencillamente porque pienso que están intentando crear un estado de opinión generalizado y mundial, para instalar en nuestras mentes la necesidad de controlar la información que se publica en Internet, así de simple. Están preparándonos para que puedan robarnos parte de nuestra libertad en pro de la seguridad, igual que hizo Bush hijo con la guerra preventiva tras el ataque a las torres gemelas. Quizás alguien se sienta amenazado con el potencial movilizador que ofrece Internet a un pueblo aborregado y dirigido, y haya decidido poner remedio antes de que esto pase a mayores. Este tipo de manipulaciones siempre necesita de un sujeto sobre el que representar la maldad absoluta, como se hizo con Ossama BinLaden, Julian Assange no es más que la cara que se le ha puesto a la amenaza de nuestra seguridaden Internet, para que el pueblo llano no tenga que pensar ni imaginar mucho, sólo debe sentir la amenaza.