Suscríbete al feed RSS de los Artículos

Monthly ArchiveMarch 2007



BSD admin on 28 Mar 2007

Compilando el kernel de FreeBSD

Esta semana he instalado FreeBSD en el portátil y llevo algunos dias configurándolo todo, actualizando el sistema, instalando aplicaciones des de los ports, etc. Antes sólo habia usado FreeBSD como servidor y me he decidido a probarlo mas a fondo como sistema de escritorio. Una de las cosas que nunca antes habia hecho en FreeBSD es compilar el kernel. En Linux sólo lo hice un par de veces para añadir algo en concreto en la época en que usaba Slackware.

FreeBSD

Básicamente he añadido:

  • Soporte para la tarjeta de sonido sin tener que cargar el driver en /etc/rc.conf
  • Soporte para altas resoluciones en la consola
  • Especificar que la CPU es i686

Cosas que he quitado de hardware que no tengo (o no uso):

  • Soporte para CDROM
  • Soporte para Disquetera
  • Soporte para SCSI
  • Soporte para cintas
  • Soporte para alto número de particiones en el disco
  • Soporte para RAID
  • Soporte para puertos COM, LPT, etc

También he quitado el soporte para:

  • NFS
  • IPV6
  • Drivers Ethernet o Wireless que no necesito

¿Cómo compilar el kernel en FreeBSD?

El proceso de compilación del kernel en FreeBSD es muy simple. En /usr/src/sys se encuentra el código fuente del kernel. Si tenemos bien configurado el cvsup podemos actualizar el código a la última versión de esta forma:

# cd /usr/src

# make update

Con esto hemos actualizado el código fuente de todo el sistema base, ahora entramos en /usr/src/sys/i386/conf y hacemos una copia del fichero de configuración del kernel que viene por defecto:

# cd /usr/src/sys/i386/conf

# cp GENERIC NUEVOKERNEL

NUEVOKERNEL es un fichero de texto plano al que sólo tenemos que comentar (#) o descomentar las lineas adecuadas dependiendo de lo que estemos buscando. Para esto nos será extremadamente útil leer The Configuration File en el Handbook de FreeBSD. Lo editamos con ee (”easy editor”, viene por defecto en la instalación base) o con vi (lo prefiero pero a veces uso ee por pereza), y hacemos las modificaciones:

# ee NUEVOKERNEL

Ahora ya podemos compilar el nuevo kernel:

# cd /usr/src

# make buildkernel KERNCONF=NUEVOKERNEL

Instalamos:

# make installkernel KERNCONF=NUEVOKERNEL

Ahora el nuevo kernel se ha instalado en /boot/kernel/kernel y el antiguo se ha movido a /boot/kernel.old/kernel

Reiniciamos:

# reboot

Y si lo hemos hecho todo bien ya podemos disfrutar de un kernel a medida en nuestro sistema FreeBSD.

KDE admin on 20 Mar 2007

Encuesta para mejorar Konsole en KDE4

Robert Knight, el maintainer del emulador de terminal Konsole para KDE, ha hecho un llamamiento en su blog para la participación en el Konsole Usage Survey, una encuesta via-web pensada para mejorar la configuración de Konsole para KDE4.

La encuesta es a base de formularios HTML y es completamente libre. No requiere darse de alta en la web ni nada por el estilo. Consta de 28 preguntas específicas (no hace falta responderlas todas para participar) sobre los usos comunes de Konsole, shells, sistemas operativos, estética, configuraciones por defecto, tamaño, fuentes, pestañas y un largo etcétera.

Enlace: Konsole Usage Survey

Utilidades admin on 16 Mar 2007

Copias de seguridad del MBR y la tabla de particiones en GNU/Linux

En primer lugar tenemos que plantearnos si realmente necesitamos guardar en un fichero el contenido de nuestro Master Boot Record y de nuestra Tabla de Particiones, posiblemente no. Se me ocurren dos casos, a modo de ejemplo, en que puede ser muy útil.

El primero estaria destinado a la clonación de discos, puedes guardar una imagen de cada partición junto con una imagen del sector de arranque. Luego ir al disco destino y volcar esa información sin problemas, consiguiendo un perfecto clon (los dos discos tienen que ser iguales). A mi la clonación de discos no me interesa especialmente, pero ahí queda eso.

El segundo caso es cuando se trata de una copia de seguridad, simplemente. Si eres un fanático de tu distribución favorita y llevas con la misma instalación desde hace 4 años (subsistiendo como un héroe a base de actualizaciones), supongo que no debes tocar a menudo el MBR y mucho menos crear y eliminar particiones. Pero si eres como yo y te dedicas a instalar todo lo que te cae en las manos (físicamente, sin usar virtualización), tendrás el disco bien partido y repartido (Linux permite instalarse en particiones lógicas, por lo que podrías instalar decenas de distribuciones en un sólo disco duro). En este caso es recomendable hacer copias de seguridad del sector de arranque por lo que pueda pasar.

Creando copia de seguridad del MBR:

# dd if=/dev/sda of=/root/backups/mbr bs=512 count=1

Recuperando el MBR a partir de la copia de seguridad:

# dd if=/root/backups/mbr of=/dev/sda bs=512 count=1

dd es una utilidad que, simplemente, copia el contenido de la entrada estándar if en la salida estándar of. En mi caso el disco duro /dev/sda es la entrada y el fichero /root/backups/mbr es la salida (y viceversa para la recuperación). bs es un parámetro que contiene el número de bytes que se van a copiar (el MBR está situado en la pista zero del disco duro, los primeros 512 bytes) y count es un parámetro que contiene el número de bloques que se van a copiar (los bloques son de 512 bytes, por lo que vamos a copiar solo uno, el primero).

Creando copia de seguridad de la Tabla de Particiones:

# sfdisk -d /dev/sda > /root/backups/tabla_part

Recuperando la Tabla de Particiones a partir de la copia de seguridad:

# sdfisk /dev/sda < /root/backups/tabla_part

sfdisk sirve para manipular tablas de particiones en Linux. En la creación de la copia de seguridad usamos el parámetro [-d] para que nos dé una salida en texto plano que pueda ser usada luego para regenerar la tabla. Pasamos esta salida al fichero /root/backups/tabla_part mediante el redireccionador de STDOUT [>]. Para recuperar la tabla sólo hay que usar ese fichero pasándolo por el redireccionador de STDIN [<] hacia el comando sfdisk.

En los ejemplos he usado /dev/sda como disco duro porque es así en mi caso, pero esto puede ser diferente dependiendo de si el disco es IDE, SATA, SCSI o USB. Hay varias formas de saber a qué disco nos estamos refiriendo. una es usar el comando mount para ver las particiones montadas, otra seria leyendo el fichero /etc/fstab donde están las instrucciones de montaje de discos para el arranque. Pero estas opciones no funcionarian por ejemplo des de un Live CD. La solución mas útil para ver todos los discos y particiones (aunque no estén montadas) es:

# fdisk -l

Este comando nos listará todas las particiones (muy útil para detectar un pendrive por ejemplo). Hasta aquí este mini manual, espero que a alguien le pueda ser útil.

GNU/Linux admin on 06 Mar 2007

Damn Vulnerable Linux: inseguro por defecto

Me entero via Kriptópolis de la existencia de esta genial distribución. Basada en Damn Small Linux (DSL), esta nueva distribución (que podríamos meter en el saco de distribuciones especializadas en seguridad) está destinada tanto a expertos en seguridad como a novatos con ganas de aprender, ya que tiene finalidades claramente pedagógicas. Se llama Damn Vulnerable Linux (DVL), en un principio era solo para material de prácticas del IITAC parece que la cosa crece y promete, además está integrada en el proyecto crackmes.de.

¿Qué tiene de especial? Muy fácil, elementos sin actualizar y vulnerables corriendo sobre un kernel 2.4.26, tales como versiones antiguas e inseguras de Apache, MySQL, PHP, FTP u OpenSSH… configuraciones poco recomendables, etc. En la web oficial (que por cierto es realmente completa) hay incluso lecciones online para ir probando con la distribución en funcionamiento. Además es un Live CD de sólo 150MB pensado para virtualizarse. Yo aún no la he probado, porque comentan en la web que en 2 semanas sale ya la próxima versión y que incluirá muchas novedades respecto a esta.