Archive for December 2009


Configurando el llavero de claves de Ubuntu 9.10

December 30th, 2009 — 4:17pm

Introducción.

El llavero de claves (keyring) es la aplicación centralizada de contraseñas que incluye Ubuntu para administrarlas.  En ella se almacenan las claves que cada usuario asigna a sus diferentes recursos como por ejemplo, la conexión de red inalámbrica.

Este llavero puede ser configurado con una clave para su encriptación protegiendo las contraseñas almacenadas en él, con la desventaja que el sistema operativo solicita esta clave la primera vez que se va a acceder al llavero en cada sesión.  Su contraparte, utilizar el llavero sin clave, hace que este almacena las contaseñas de manera plana así que cualquiera que tenga acceso a los archivos conocerá las claves del usuario.  Es de hacer notar que entre estas claves no se incluye la contraseña de acceso del usuario o del administrador (root) al sistema operativo.

A continuación se detallan los procedimientos para limpiar un llavero de claves, cambiar su contraseña de encriptación y asociarlo a la contraseña del inicio de sesión.

Limpiar el llavero de claves.

Este procedimiento se puede utilizar cuando se olvida la clave del llavero o este ha sido corrupto.  Se debe tener muy en cuenta que si se realiza este procedimiento se perderán todas las claves almacenadas en él.

En una ventana de terminal ejecute los siguientes comandos.

$ cd ~/.gnome2/keyrings

$ rm default default.keyring

Configurar la contraseña del llavero de claves.

Cada vez que se intenta acceder al llavero de claves y este no encuentra archivos de configuración, ya sea porque es la primera vez que se ejecuta o porque ha sido limpiado (ver apartado anterior), este solicita la contraseña para la aplicación.

Si se presiona el botón de crear el llavero sin contraseña se creará este sin ningún tipo de encriptación y las claves almacenadas en él serán almacenadas planas y visibles ante quien tenga acceso a los archivos.

Las claves quedan almacenadas por defecto en ~/.gnome2/keyrings/default.keyring.

Modificar la contraseña del llavero de claves.

Después de que el llavero ya ha sido creado es posible modificar su contraseña utilizando la aplicación seahorse.  Para hacer esto realice los siguientes pasos.

Ejecute Applications > Accessories > Passwords and encryption keys.

Seleccione el elemento Passwords: login y haga clic derecho sobre él.  Del menú contextual desplegado elija la opción Change Password.

Cambiar la contraseña del llavero de claves desde el Seahorse

En el diálogo emergente ingrese su contraseña actual y la contraseña que desea asignar.

Asociar la contraseña del llavero con la de la sesión.

Si se crea el llavero sin contraseña se tiene la desventaja en términos de seguridad que cualquiera puede acceder a las claves almacenadas.  Por el contrario, si se crea el llavero con una contraseña se tiene la desventaja que esta es solicitada al menos una vez durante el primer acceso al llavero siendo un tanto molesto para el usuario diario.

Existe una opción adicional que permite asociar la contraseña del usuario en sesión con la de su propio llavero haciendo que el llavero esté disponible desde el mismo inicio de la sesión.  Creo que la versión de escritorio de Ubuntu ya incluye esta opción, sin embargo la versión de servidor no lo hace por defecto. Para instalarla se deben seguir estos pasos.

Instalar la librería PAM asociada al llavero.

$ sudo aptitude install gnome-keyring libpam-gnome-keyring

Configurar las reglas de autenticación PAM del GDM agregando las siguientes líneas al final del archivo original.

$ sudo vi /etc/pam.d/gdm

auth     optional  pam_gnome_keyring.so
session  optional  pam_gnome_keyring.so  auto_start

Después de esta modificación la información de las claves del llavero se almacena bajo ~/.gnome2/keyrings/login.keyring.

Probablemente después de esta configuración deba modificar la contraseña del llavero para que coincida con la de la sesión del usuario en el sistema operativo.  Para hacer esto utilice alguno de los métodos descritos anteriormente.

Solución de problemas.

Si encuentra algún problema con la configuración y el sistema no le permite acceder a su cuenta a través de GNOME, recuerde que las modificaciones realizadas se efectúan sobre GDM únicamente así que deberá poder acceder a su cuenta del sistema operativo a través de las consolas virtuales (CTRL+ALT+Fx desde F1 hasta F6 comúnmente) para determinar lo sucedido y realizar los ajustes necesarios.

VN:F [1.8.4_1055]
Rating: +1 (from 1 vote)

Comment » | Linux/Solaris/BSD, Software

Configurar temporalmente la red inalámbrica de Linux Ubuntu 9.10 desde línea de comando

December 30th, 2009 — 1:23pm

Introducción.

Después de instalar el Linux Ubuntu Server 9.10 en el equipo que actuaría como servidor la idea era actualizar sus paquetes e instalarle GNOME como administrador de ventanas y escritorio que como mencioné anteriormente, para esta edición no se incluye por defecto.

La conexión a la red del equipo designado como servidor es inalámbrica y la tarjeta fue exitosamente detectada, sin embargo la interfaz no fue configurada automáticamente por Ubuntu.

El procedimiento descrito a continuación fue el seguido para configurar temporalmente la interfaz de red a través de la línea de comando para tener acceso a la red inalámbrica e instalar GNOME y su aplicación de configuración de redes desde la cual fue finalmente configurada la red.

Procedimiento.

Verificar las interfaces de red disponibles.

$ sudo lshw -C network

*-network
description: Wireless interface
product: RTL-8185 IEEE 802.11a/b/g Wireless LAN Controller
vendor: Realtek Semiconductor Co., Ltd.
physical id: a
bus info: pci@0000:01:0a.0
logical name: wmaster0
version: 20
serial: 00:08:54:ab:83:2d
width: 32 bits
clock: 33MHz
capabilities: pm bus_master cap_list logical ethernet physical wireless
configuration: broadcast=yes driver=rtl8180 latency=64 maxlatency=64 mingnt=32 multicast=yes wireless=IEEE 802.11bg
resources: irq:19 ioport:ef00(size=256) memory:dffffc00-dfffffff

$ sudo iwconfig

lo        no wireless extensions.

eth0      no wireless extensions.

wmaster0  no wireless extensions.

wlan0 IEEE 802.11bg  ESSID:”"

Mode:Managed  Frequency:2.412 GHz  Access Point: Not-Associated
Tx-Power=20 dBm
Retry  long limit:7   RTS thr:off   Fragment thr:off
Encryption key:off
Power Management:off
Link Quality:0  Signal level:0  Noise level:0
Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
Tx excessive retries:0
Invalid misc:0   Missed beacon:0

virbr0    no wireless extensions.

Listar las redes inalámbricas disponibles.

$ iwlist scan

lo        Interface doesn’t support scanning.

eth0      Interface doesn’t support scanning.

wmaster0  Interface doesn’t support scanning.

wlan0 Scan completed :

Cell 01 – Address: 00:1B:2F:4D:0F:5C
Channel:6
Frequency:2.437 GHz (Channel 6)
Quality=30/100  Signal level=30/100
Encryption key:on
ESSID:”jimezam_wifi
Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
12 Mb/s; 24 Mb/s; 36 Mb/s
Bit Rates:9 Mb/s; 18 Mb/s; 48 Mb/s; 54 Mb/s
Mode:Master
Extra:tsf=000000c20f362282
Extra: Last beacon: 200ms ago
IE: Unknown: 000C6A296D657A612D5F77626669
IE: Unknown: 010822848B960C183248
IE: Unknown: 030206
IE: Unknown: 052200012000
IE: Unknown: 2A0200
IE: Unknown: 320222246062
IE: WPA Version 1
Group Cipher : TKIP
Pairwise Ciphers (1) : TKIP
Authentication Suites (1) : PSK

IE: Unknown: DD0910227F0101020CFF2F
IE: Unknown: DD0C22037F020101740222A31200
IE: Unknown: DD1A00227F0301000000001B124D0F5C021B214D0F5C64022C010101

virbr0    Interface doesn’t support scanning.

Activar la interfaz de red inalámbrica (de ser necesario).

$ sudo ifconfig wlan0 up

Conectarse a la red con el ESSID elegido.

$ sudo iwconfig wlan0 essid “jimezam_wifi

Especificar la información de conexión WPA.

$ wpa_passphrase jimezam_wifi > /tmp/wpa.conf
<ESCRIBIR LA CLAVE DE LA RED + ENTER>

$ cat /tmp/wpa.conf

network={
ssid=”jimezam_wifi
#psk=”asdf1234″
psk=8547559596f0441d0dab4f960b00bd278927905fc8b2ee3c5d06f8d3b9d22a45
}

Realizar la negociación de la WPA.

$ sudo wpa_supplicant -Dwext -iwlan0 -c/tmp/wpa.conf

CTRL-EVENT-SCAN-RESULTS
Trying to associate with 00:1b:2f:4d:0f:5c (SSID=’jimezam_wifi‘ freq=2437 MHz)
Association request to the driver failed
Associated with 00:1b:2f:4d:0f:5c
WPA: Key negotiation completed with 00:1b:2f:4d:0f:5c [PTK=TKIP GTK=TKIP]
CTRL-EVENT-CONNECTED – Connection to 00:1b:2f:4d:0f:5c completed (auth) [id=0 id_str=]

Liberar cualquier dirección IP asociada a la interfaz.

$ sudo dhclient -r wlan0

Internet Systems Consortium DHCP Client V3.1.2
Copyright 2004-2008 Internet Systems Consortium.
All rights reserved.
For info, please visit http://www.isc.org/sw/dhcp/

Listening on LPF/wlan0/00:08:54:ab:83:2d
Sending on   LPF/wlan0/00:08:54:ab:83:2d
Sending on   Socket/fallback
DHCPRELEASE on wlan0 to 192.168.1.1 port 67
send_packet: Network is unreachable
send_packet: please consult README file regarding broadcast address.

Solicitar una nueva dirección al servidor de DHCP.

$ sudo dhclient wlan0

Internet Systems Consortium DHCP Client V3.1.2
Copyright 2004-2008 Internet Systems Consortium.
All rights reserved.
For info, please visit http://www.isc.org/sw/dhcp/

Listening on LPF/wlan0/00:08:54:ab:83:2d
Sending on   LPF/wlan0/00:08:54:ab:83:2d
Sending on   Socket/fallback
DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 7
DHCPOFFER of 192.168.1.5 from 192.168.1.1
DHCPREQUEST of 192.168.1.5 on wlan0 to 255.255.255.255 port 67
DHCPACK of 192.168.1.5 from 192.168.1.1
bound to 192.168.1.5 — renewal in 35008 seconds.

Probar la conexión.

$ ping www.google.com

PING www.l.google.com (74.125.157.103) 56(84) bytes of data.
64 bytes from gy-in-f103.1e100.net (74.125.157.103): icmp_seq=1 ttl=53 time=72.6 ms
64 bytes from 74.125.157.103: icmp_seq=3 ttl=53 time=74.8 ms
64 bytes from gy-in-f103.1e100.net (74.125.157.103): icmp_seq=4 ttl=53 time=80.6 ms

A posteriori.

Como mencioné anteriormente, la intención era lograr el acceso a Internet a través de la red inalámbrica disponible, sin embargo esta configuración es tenporal y al reiniciar el servidor se tendrían que repetir los pasos finales nuevamente.

En mi caso instalé el ambiente gráfico de Ubuntu (escritorio GNOME) y su herramienta de administración de redes (descrita a continuación) para realizar la configuración permanente de la conexión a la red inalámbrica.

Por motivos de seguridad es muy conveniente remover o ubicar en un sitio seguro al archivo con la información de WPA (/tmp/wpa.conf en este caso).

Acerca del administrador de redes de Ubuntu.

Si se realizó la instalación básica de Ubuntu, es decir, con la opción –without-recommends es probable no se cuente con la herramienta para configurar fácilmente las interfaces de red del servidor.  Para instalarla es necesario ejecutar el siguiente comando.

$ sudo aptitude install network-manager

Enlaces.

VN:F [1.8.4_1055]
Rating: 0 (from 0 votes)

Comment » | Linux/Solaris/BSD, Software

Evitando el reemplazo de los guiones dobles en Wordpress 2.9

December 30th, 2009 — 2:10am

Introducción.

Algo que extrañamente no había notado hasta el día de hoy es que Wordpress reemplaza, a manera de característica y en total contra de mi voluntad, los guíones dobles () por simples (-) en el momento de generar la presentación de los artículos.  Esto es altamente incoveniente ya que ciertos comandos, especialmente de UNIX, requieren de opciones que inician con doble guión, como por ejemplo –help.

El método que encontré para evitar este problema no es probablemente el mas elegante de todos, sin embargo funciona muy bien.  Debe tenerse muy en cuenta en el momento de actualizar el núcleo de Wordpress ya que, al modificar un archivo de la distribución, probablmente deba aplicarse la modificación cada vez que se instale una nueva versión.

Procedimiento.

Edite el archivo responsable del formateo de los artículos.

$ vi wp-includes/formatting.php

Ubique las variables $static_characters y $static_replacements que se encuentran en las líneas 56 y 57 de la versión 2.9 de Wordpress (pueden variar en otras versiones).

$static_characters = array_merge(array('---', ' -- ', '--', ' - ', 'xn&#8211;', '...', '``', '\'s', '\'\'', ' (tm)'), $cockney);
$static_replacements = array_merge(array('&#8212;', ' &#8212; ', '&#8211;', ' &#8211; ', 'xn--', '&#8230;', $opening_quote, '&#8217;s', $closing_quote, ' &#8482;'), $cockneyreplace);

Remueva o comente (mucho mejor) los primeros cinco elementos de cada uno de los arreglos.

$static_characters = array_merge(array(/* '---', ' -- ', '--', ' - ', 'xn&#8211;', */ '...', '``', '\'s', '\'\'', ' (tm)'), $cockney);
$static_replacements = array_merge(array(/* '&#8212;', ' &#8212; ', '&#8211;', ' &#8211; ', 'xn--', */ '&#8230;', $opening_quote, '&#8217;s', $closing_quote, ' &#8482;'), $cockneyreplace);

Grabe el archivo.

Listo!

VN:F [1.8.4_1055]
Rating: 0 (from 0 votes)

1 comment » | Software, Web

Como instalar los paquetes del escritorio en Linux Ubuntu Server 9.10

December 30th, 2009 — 1:49am

Introducción.

Como es muy bien conocido, la instalación de la distribución de Linux Ubuntu Server no incluye por defecto al servidor de ventanas ni a un manejador de ventanas (GNOME por ejemplo), esto debido a que como servidor, por razones de seguridad y desempeño, supuestamente no necesita este tipo de interfaz gráfica.

Algunas veces, como en mi caso, quisiera disponer de una interfaz gráfica en mi “servidor” para admnistrarlo fácilmente, trabajar en él como estación de trabajo también (no recomendado en un servidor real) y para implementar posteriormente registros de usuarios remotos.

Para Ubuntu el proceso de instalación es prácticamente una instrucción.

Procedimiento.

Actualizar la información de los repositorios.

$ sudo aptitude update

Instalar el administrador de ventajas deseado.  Ejecute uno de los siguientes comandos según desee instalar GNOME, KDE o XFCE.

$ sudo aptitude install ubuntu-desktop

$ sudo aptitude install kubuntu-desktop

$ sudo aptitude install xubuntu-desktop

Este procedimiento instala además del administrador de ventanas y escritorio, software adicional (como Evolution, OpenOffice y similares) que posiblemente no desee que se instale automáticamente en su servidor.  Si desea evitar este comportamiento por defecto agregue el modificador –without-recommends a la línea de comando de la siguiente manera.

$ sudo aptitude install –without-recommends ubuntu-desktop

VN:F [1.8.4_1055]
Rating: +1 (from 1 vote)

2 comments » | Linux/Solaris/BSD, Software

Probando Atomic Authoring Tool en Linux Ubuntu 9.10

December 25th, 2009 — 11:47pm

Introducción.

Atomic Authoring Tool es una aplicación de realidad aumentada desarrollada por Sológico Libre desarrollando Processing y la librería ARToolKit.  En su estado actual, versión 0.7, permite asociar el patrón de una imagen a un objeto tridimensional de forma que cuando el primero se muestre en la cámara se reemplace por el segundo.

Según lo mencionó José David, se encuentran próximos a liberar una nueva versión y leyendo en el FAQ del sitio del proyecto me entero que su plataforma objetivo son los OLPC.  Esta aplicación promete ser muy interesante en su área a medida que vaya siendo complementada.  Por ahora es una forma rápida y simple de experimentar con la realidad aumentada.

Su proceso de instalación fue un poco truculento, sin embargo después de superar un par de baches y siguiendo los pasos descritos a continuación no debe haber problemas para quienes quieran ensayarla.

Instalación.

Como precondición es necesario tener instalado al entorno de ejecución de aplicaciones Java o JRE.

Descargar e instalar las librerías necesarias (aqui se describen las utilizadas por la versión 0.7 de la aplicación).

$ wget http://www.sologicolibre.org/downloads/dependencias/904/libopenvrml4_0.14.3-3_i386.deb

$ wget http://www.sologicolibre.org/downloads/dependencias/904/libstdc++5_13a3.3.6-17ubuntu1_i386.deb

$ sudo dpkg -i libstdc++5_13a3.3.6-17ubuntu1_i386.deb libopenvrml4_0.14.3-3_i386.deb

$ sudo aptitude install freeglut3

Descargar la distribución mas reciente desde la siguiente ubicación.  En este caso se utilizará la versión 0.7 sin embargo se recomienda visitar el sitio para obtener la última distribución disponible.

http://www.sologicolibre.org/projects/atomic/es/index.php?page=Descargas

$ wget http://www.sologicolibre.org/downloads/ATOMICbeta07/linux/atomic07linuxen.zip

Descomprimir el archivo.

$ unzip atomic07linuxen.zip

Ejecutar la aplicación.

$ cd atomic07linux/

$ ./ATOMICbeta07linux_i

Solución a problemas.

Cuando instalé la aplicación encontré algunos problemas para ejecutarla en mi equipo, siempre arrojaba el siguiente mensaje.

Using config string from environment [v4l2src device=/dev/video0 ! video/x-raw-yuv,width=640,height=480,framerate=30/1 ! ffmpegcolorspace ! capsfilter caps=video/x-raw-rgb,bpp=24 ! identity name=artoolkit ! fakesink].
libARvideo: GStreamer 0.10.25

** ERROR **: libARvideo: failed to put GStreamer into PAUSE state!

aborting…
./atk.sh: line 3: 11616 Aborted                 ./simpleVRML

Aparentemente tiene que ver con la resolución que acepta la cámara.  Todo se solucionó después de que instalé Cheese, verifiqué cuales eran las resoluciones que efectivamente soportaba mi cámara (Editar > Preferencias) y actualicé con estos valores las variables width y height del script atk.sh en el directorio raíz de la aplicación.

Uso.

El sitio cuenta con un video explícito en el cual se explica su modo de operación, sin embargo a continuación mencionaré brevemente algunos elementos que es necesario tener en cuenta.

Al hacer clic con el ratón sobre cualquier lugar de la ventana se obtiene el menú desde el cual se podrán seleccionar las opciones que se mencionarán a continuación.

El primer paso consiste en la selección del marcador que va a ser reconocido por la aplicación.  Para hacer esto se debe elegir el ícono y seleccionar el archivo que contiene el patrón.  Para la selección del marcadores es necesario tener en cuenta que estos archivos (patt.calib, patt.hiro, patt.kanji, patt.sample1 y patt.sample2)  se encuentran bajo el directorio Data/ mientras que los archivos PDF ubicados bajo el directorio patterns/ corresponden a versiones de estos mismos marcadores pero para imprimir.

En el segundo paso se selecciona el objeto 3D que se mostrará cuando la aplicación detecte la aparición del marcador previamente configuarado.  Para hacer esto se debe elegir el ícono y seleccionar el archivo correspondiente de manera similar al paso anterior.  En este caso los archivos se ubican bajo el directorio /Wrl y deberán tener la extensión wrl.

El tercer paso es grabar la configuración elegida.  Para hacer esto se debe elegir el ícono .  Es muy importante recordar este paso porque de lo contrario se utilizará la configuración anterior.

El paso final consiste en ejecutar la aplicación con el marcador y el objeto 3D seleccionados haciendo clic sobre el ícono .

Screenshots.

Mi cabeza aumentada con una flor y una abeja

Mi cabeza aumentada con una flor y una abeja

Un muñeco de nieve sobre el marcador Hiro

Un muñeco de nieve sobre el marcador Hiro

Enlaces.

VN:F [1.8.4_1055]
Rating: +1 (from 1 vote)

1 comment » | Linux/Solaris/BSD, Software

Activar las tarjetas WiFi Broadcom en Linux Ubuntu 9.10

December 14th, 2009 — 10:31am

Introducción.

Según sufrí constaté este fin de semana, hay un cierto tipo de conflicto entre las tarjetas WiFi Broadcom (como las incluídas por algunos equipos Dell Inspiron) y Linux Ubuntu 9.10.  En realidad el problema lo tuve mientras probaba el actual Ubuntu Moblin Remix el cual a su vez, es hijo de Ubuntu 9.10.

Problema.

Al iniciar el Ubuntu Moblin Remix, tanto desde el LiveCD/USB como desde la instalación en el disco duro la información de la tarjeta WiFi aparece como “no encontrada”.

Este problema no lo tuve cuando instalé Ubuntu 9.10 directamente, sin embargo encontré en los foros que varias personas si habían tenido el problema con esta versión, posiblemente con versiones release candidate.

Solución.

Conecte el equipo a la red alámbrica para acceder a Internet.

Instale, si aún no cuenta con ellas, las fuentes del Kernel actual.

$ sudo aptitude install linux-headers-$(uname -r)

Instale, si aún no cuenta con él, el controlador Broadcom 802.11 Linux STA.

$ sudo aptitude install bcmwl-kernel-source

Reconfigure de ser necesario el controlador Broadcom 802.11 Linux STA.

$ sudo dpkg-reconfigure bcmwl-kernel-source

Verifique que se ha activado exitosamente el controlador de la tarjeta wireless en la sección de controladores propietarios.

System > Administration > Hardware Drivers.

Reinicie el equipo.

VN:F [1.8.4_1055]
Rating: +2 (from 2 votes)

1 comment » | Linux/Solaris/BSD, Software

Redefinir una función en Javascript

December 11th, 2009 — 1:14pm

Introducción.

Estaba reutilizando un formulario complejo en un nuevo módulo de mi aplicación.  Todo iba bien hasta que descubrí que uno de los códigos Javascript que actualiza parte del formulario a través de AJAX no me era útil ya que debía mostrar una vista diferente a la estándar.   Como el código estaba escrito en funciones procedimentales no podía acceder a la sobreescritura de la orientación a objetos, sin embargo encontré un par de detalles interesantes de Javascript que me permitieron hacer algo similar.

Determinar existencia de funciones.

if(typeof miFuncion == 'function')
    // Si existe la función
else
    // No existe la función

El código anterior determina si la función miFuncion ha sido definida o no en el espacio de ejecución de la aplicación Javascript.

Redefinir una función.

window['miFuncion'] = function()
{
    // Nueva implementación de la función
};

El código anterior permite redefinir la implementación de la función miFuncion la cual obviamente fue especificada anteriormente.  Lo interesante de esta sintáxis de Javascript es que esta redefinición puede realizarse de manera dinámica, es decir, en un segundo archivo *.js que se cargue después del original o inclusive dentro de un condicional.

VN:F [1.8.4_1055]
Rating: 0 (from 0 votes)

Comment » | Desarrollo de software, Web

Instalar Chromium Browser en Linux Ubuntu 9.10

December 6th, 2009 — 6:33pm

Introducción.

Chromium Browser (Chrome) es el navegador web de Google que desde hace un tiempo puede ser descargado y utilizado en la plataforma Windows.  Desafortunadamente aún no hay una versión (release) oficial para la plataforma Linux, sin embargo es posible instalarlo en Ubuntu mediante un PPA de frecuente actualización.

Instalación.

Agregar el repositorio.

$ sudo add-apt-repository ppa:chromium-daily/ppa

Instalar los paquetes.

$ sudo aptitude update

$ sudo aptitude install chromium-browser chromium-codecs-ffmpeg

Ejecución.

screenshot_007

Ejecutar la aplicación desde el menú de programas a través de la siguiente ruta.

Applications > Internet > Chromium Web Browser.

O desde la línea de comando como se muestra a continuación.

$ /usr/bin/chromium-browser &

Enlaces.

VN:F [1.8.4_1055]
Rating: 0 (from 0 votes)

Comment » | Internet, Linux/Solaris/BSD, Software, Web

Actualizando FreeBSD 8.0 para solucionar la vulnerabilidad del rtld (noviembre 30 de 2009)

December 5th, 2009 — 9:29pm

Introducción.

Después de reparar manualmente la vulnerabilidad del rtld, se me ocurrió investigar un poco acerca de como actualizar FreeBSD (ojalá a través de sus canales estándar) de manera que se solucione el problema y de paso mantener al día el sistema operativo de otras vulnerabilidades que uno no necesariamente se de por enterado, es decir, algo similar al apt-get/aptitude safe-upgrade de Debian/Ubuntu y similares.

Actualización de seguridad.

Este método descarga e instala los últimos parches de seguridad existentes para la distribución.

# freebsd-update fetch

# freebsd-update install

En términos de la vulnerabilidad que nos ocupa el resultado es el mismo del procedimiento anterior: el exploit ya no es funcional porque la vulnerabilidad ha sido reparada, además de algunas otras adicionales.

Enlaces.

VN:F [1.8.4_1055]
Rating: 0 (from 0 votes)

Comment » | Linux/Solaris/BSD, Software

Parchando FreeBSD 8.0 contra la vulnerabilidad del rtld (noviembre 30 de 2009)

December 5th, 2009 — 8:49pm

Introducción.

Hace un par de días instalé un FreeBSD 8.0 para probar el exploit de día cero que se aprovechaba de una vulnerabilidad del rtld con el cual un usuario local obtiene fácilmente los privilegios de administrador o root.

Un ataque o amenaza de día cero o zero day significa que se aprovecha de una vulnerabilidad del sistema que ha sido descubierta en lo salvaje pero que aún no ha sido conocida por el desarrollador o aún no se ha publicado una solución para la misma, haciendo a este tipo de exploits muy graves para los usuarios.

Hoy volví a revisar el tema buscando que soluciones se le habían dado y encontré que se ha liberado un parche para solucionar este problema.  A continuación describo los pasos que seguí para la instalación del parche.

Instalación del parche.

Requerimientos.

Es necesario contar con las fuentes de los paquetes libexec y lib.  Estas se pueden instalar fácilmente desde el CDROM de la instalación base utilizando la aplicación sysinstall.  Para mayor información consultar este artículo.

Procedimiento.

# mkdir /root/parche && cd /root/parche

# fetch http://security.FreeBSD.org/patches/SA-09:16/rtld.patch

# fetch http://security.FreeBSD.org/patches/SA-09:16/rtld.patch.asc

# cd /usr/src

# patch < /root/parche

# cd /usr/src/libexec/rtld-elf

# make obj && make depend && make && make install

# reboot

Prueba.

Después de reiniciar el servidor, ingresé nuevamente como un usuario sin privilegios e intenté ejecutar el exploit de la misma manera como se hizo anteriormente.  La ejecución falló y obtuve un resultado completamente distinto después de la instalación del parche.

screenshot_004

Enlaces.

VN:F [1.8.4_1055]
Rating: 0 (from 0 votes)

1 comment » | Linux/Solaris/BSD, Software

Back to top