FreeBSD Update

28.sep 2005 Envía un trackback

Hace unos días estoy intentando retomar mis conocimientos de BSD, centrados concretamente -en esta ocasión- en FreeBSD y considero que hay un par de consejos que conviene dejar escritos para futuras revisiones :D.

Cualquier sistema operativo tiene fallos de seguridad y FreeBSD no iba a ser una excepción. Quiero aclarar que cuando hablo del sistema operativo y centrándome de nuevo en este sabor de BSD me refiero al sistema base, como todos sabeis FreeBSD se compone de un sistema base y las aplicaciones (userland) instalables vía ports o packages.

Para corregir bugs de ports o packages debemos esperar a que salga una nueva versión y actualizar o aplicar el correspondiente parche recompilando de nuevo la aplicación.

Si los fallos corresponden con la base del sistema las cosas no cambian demasiado, podemos bajarnos las nuevas fuentes y recompilarlo todo -buen método para quien tenga paciencia y ganas de experimentar- o por el contrario actualizar los binarios directamente.

La actualización de binarios tiene otros riesgos evidentes porque te la pueden clavar si, por desgracia o mal externo, te 'equivocas' de binarios -nótese el entrecomillado-. Teniendo en cuenta ese factor y asumiendo dicho riesgo contamos con un programa específico para semejante tarea: freebsd-update:
[myhost]/usr/ports# make search name=freebsd-update
Port:   freebsd-update-1.6_1
Path:   /usr/ports/security/freebsd-update
Info:   Fetches and installs binary updates to FreeBSD
Maint:  cperciva@daemonology.net
B-deps:
R-deps: bsdiff-4.2
WWW:    http://www.daemonology.net/freebsd-update/
Una vez acabada la instalación del sistema vamos a intentar hacer nuestra primera actualización de binarios 'corruptos':
[myhost]/usr/ports# portinstall -prfv /usr/ports/security/freebsd-update
--->  Session started at: Wed, 28 Sep 2005 11:12:51 +0200
[Updating the pkgdb  in /var/db/pkg ... - 41 packages found (-0 +1) . done]
--->  Fresh installation of security/freebsd-update started at: Wed, 28 Sep 2005 11:12:55 +0200
--->  Installing 'freebsd-update-1.6_1' from a port (security/freebsd-update)
--->  Build of security/freebsd-update started at: Wed, 28 Sep 2005 11:12:56 +0200
--->  Building '/usr/ports/security/freebsd-update'
===>  Cleaning for bsdiff-4.2
===>  Cleaning for freebsd-update-1.6_1
...
[myhost]/usr/ports# cp /usr/local/etc/freebsd-update.conf.sample /usr/local/etc/freebsd-update.conf

[myhost]/usr/ports# grep URL /usr/local/etc/freebsd-update.conf
#  Specifies the base URL from which updates will be fetched
URL=http://update.daemonology.net/

[myhost]~# rehash
[myhost]~# freebsd-update fetch
Fetching public key...
Fetching updates signature...
Fetching updates...
Fetching hash list signature...
Fetching hash list...
Examining local system...
Fetching updates...
/boot/kernel/kernel...
/boot/loader...
/boot/pxeboot...
...
/lib/libz.so.2...
/usr/bin/bunzip2...
/usr/bin/bzcat...
/usr/bin/bzip2...
...
Updates fetched

To install these updates, run: '/usr/local/sbin/freebsd-update install'

Don't forget to rebuild any statically linked ports
to use the updated libraries after you install them.

[myhost]~#freebsd-update install
Backing up /boot/kernel/kernel...
Installing new /boot/kernel/kernel...
Backing up /boot/loader...
Installing new /boot/loader...
Backing up /boot/pxeboot...
Installing new /boot/pxeboot...
Backing up /lib/libz.so.2...
Installing new /lib/libz.so.2...
Backing up /usr/bin/bunzip2...
...
[myhost]~#
En pocas palabras primero instalamos freebsd-update, creamos el archivo propio de configuración, miramos que la URL de ese archivo sea correcta para evitar futuras sorpresas, bajamos los nuevos binarios e instalamos los mismos. Rápido, sencillo y eficaz.

Es una buena forma de mantener presumiblemente limpio el sistema y actualizado de fallos.
update

Comentarios
Gravatar Juanjo@28.09.2005, 'Re: FreeBSD Update'

El problema de estos temas es que nunca son fuentes oficiales, es decir, tienes que confiar en el que te proporciona los parches... que en este caso ¿es FreeBSD?

Recientemente ojee para OpenBSD, que te permite hacer lo mismo... instalar parches binarios, y con la misma pega: ¿me bajo los parches para mi sistema de casa de estos señores? No sé.

Quizás con granjas de servidores iguales, pues sí. Te haces los parches tu en una máquina y los instalas en el resto. Pero vamos, nada que no puedas conseguir con un:


# env DESTDIR=~/fake_root make install
# cd ~/fake_root && tar cvfz . bin-patch.tar.gz
...en otra máquina muy lejana - la misma versión del OS...
# cd / && tar xvfzp ~/patches/bin-patch.tar.gz


Hombre, cosas como SPMS te permiten saber qué parches has aplicado y tal... pero eso ya se puede arreglar siendo un poco organizado y llevando un registro más o menos a mano :D

Si es una máquina... pues no sé si merece la pena la confianza...

Gravatar THroLL@28.09.2005, 'Re: FreeBSD Update'

Hombre, no sé si es exactamente lo que buscas, pero portupgrade te da la opción de actualizar tus ports por medio de binarios o eso creo recordar.

Échale un ojo en el manual a:
-P
--use-packages

-PP
--use-packages-only

Mi experiencia personal es que no todos los ports tienen un binario, pero supongo que la mayoría o al menos los más comunes si lo tendrán, la verdad es que no lo he usado practicamente.

Gravatar Juanjo@28.09.2005, 'Re: FreeBSD Update'

ports != sistema base

Los ports se actualizan por el sistema de ports, el sistema base no. En los sistemas BSD el sistema base no está integrado en el sistema de gestión de paquetes (aka ports).

Gravatar Wu@29.09.2005, 'Re: FreeBSD Update'

Opino lo mismo que Juanjo, el unico medio en el que compensa utilizar binarios es en el caso de tener que upgradear muchas maquinas iguales, donde puedes crear los binarios en una, y luego actualizar las demas, pero...

Que pasa cuando tienes (sobre todo hablando de openbsd), firewalls con muy (repito, muy) poco espacio de almacenaje? (se me vienen a la cabeza firewalls tipo soekris con una flash card en lugar de un hd, o con hds de muy pocos gb). Ahi no tienes sitio para bajar src y compilar... Existe una opcion, que es montar /usr/src via nfs, de hecho hay buena documentacion al respecto... aunque quizas ahi si compense upgrade por binarios...

Gravatar THroLL@29.09.2005, 'Re: FreeBSD Update'

Uhmm, no sabía que freebsd-update era para actualizar el sistema, es más, desconocía su existencia, y al leer paquetes lo primero que se me vino a la cabeza fueron los ports y esa es la razón de mi comentario, fallo mío.

Gravatar javiVF@30.09.2005, 'Re: FreeBSD Update'

Bonito descubrimiento esto del freebsd-update, ahora cuando me corra prisa actualizar alguna maquina sin muchos recursos tirare de el ( espero acordarme :P ).

Saliendome un poco del tema... ¿ conoceis portaudit ? Me imagino que muchos de vosotros si, para los que no http://www.freebsd.org/cgi/url.cgi?ports/security/portaudit/pkg-descr


Escribe tu comentario
 
 
Guardar datos
Escribe tu comentario:
captcha


Intenta que tu comentario sea interesante y con información relevante al tema de la entrada. BBCodes disponibles: [url=http://direccion]texto[/url], negrita: [b]texto[/b], itálica: [i]texto[/i], subrayada: [u]texto[/u]. Para mencionar o citar a alguien (quote): [cita]texto[/cita]