FreeBSD Update

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.

sysadmin freebsd

About the author

Óscar
has doubledaddy super powers, father of Hugo and Nico, husband of Marta, *nix user, Djangonaut and open source passionate.