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.