BSD HomeBox (I): Comenzamos

Con éste, comienzo una serie de artículos a través de los cuáles documentaré la configuración de un equipo que realizará las típicas funciones de “servidor” doméstico.

El sistema operativo elegido es FreeBSD 7.2, y el sistema estará dedicado a los típicos servicios de servidor de archivos, copias de seguridad de los mismos, impresión en red, descargas P2P, y lo que vaya surgiendo.

El hardware sobre el que instalarlo todo, en este caso, es un barebone Asus Pundit P1-PH1, con procesador Intel Pentium 4 MT a 3 GHz, 2 GB de RAM y disco duro Seagate de 1 TB.

Comenzamos con la instalación del sistema operativo, arrancando desde el CD FreeBSD 7.2-RELEASE i386 disc1:

  • Inicio una “Standard installation”.
  • Creo un slice de 20480MB, del tipo por defecto 165, para el sistema operativo.
  • Creo un segundo slice en el resto de espacio del disco, también del tipo 165, para los datos.
  • Instalo el boot manager de FreeBSD.
  • Dejo que defina las particiones automáticamente con la opción “Auto defaults”.
  • Elijo la distribución “6 Kern-Developer”.
  • No instalo la colección de ports.
  • Configuro el adaptador ethernet sin IPv6 y sin DHCP (configurando manualmente la IP).
  • Activo el interfaz “rl0” que se ha configurado.
  • Contesto “No” a todas las opciones siguientes: network gateway, configure inetd, enable SSH login, anonymous FTP access, NFS server, NFS client, customize console settings, enable Linux binary compatibility, mouse, create additional user accounts.

Con esto ya tengo FreeBSD instalado, iniciando perfectamente y con conectividad a Internet.

FreeBSD 7 en VirtualBox sobre Ubuntu 8.10

Por lo visto a FreeBSD no le gusta mucho la configuración NAT de los adaptadores de red que crea VirtualBox, con lo que me ha sido imposible hacer funcionar la red de esa manera.

La solución la he encontrado en este artículo, utilizando el siguiente script, que crea un adaptador de red virtual en Ubuntu y lo “puentea” con el físico:

#!/bin/bash
echo "Usar así: 'crea_bridge_para_virtual_box tap2'"
sudo tunctl -t $1 -u juanmi
sudo brctl addbr br0
sudo ifconfig eth0 0.0.0.0 promisc
sudo brctl addif br0 eth0
sudo dhclient br0
sudo brctl addif br0 $1
sudo ifconfig $1 up
sudo chmod 0666 /dev/net/tun

Sólo una cosa más, el tipo de adaptador de red en la máquina virtual de VirtualBox hay que cambiarlo también a PCnet-PCI II (An79C970A), con el tipo PCnet-FAST III (An79C973) tampoco me ha funcionado.

FreeBSD tras un proxy

Para utilizar FreeBSD tras un proxy HTTP tenemos dos aspectos principales por configurar. En primer lugar una variable de entorno que servirá para la mayoría de aplicaciones, incluído el comando pkg_add. Para establecer esta variable de entorno ejecutaremos lo siguiente:

setenv HTTP_PROXY http://usuario:contraseña@host_proxy:puerto

Para hacer permanente esta variable la podríamos añadir a la línea :setenv del archivo /etc/login.conf, y ejecutar después el correspondiente cap_mkdb /etc/login.conf.

Por otro lado tenemos el compilador. Para que el compilador sea capaz de bajar todo lo que necesita al instalar los ports, editaremos el archivo /etc/make.conf y añadiremos/estableceremos la siguiente línea:

FETCH_ENV= HTTP_PROXY=http://usuario:contraseña@host_proxy:puerto

Hay que tener en cuenta el espacio en blanco justo antes del HTTP_PROXY.

Para adaptar todo esto a un proxy FTP sería suficiente con reemplazar HTTP_PROXY por FTP_PROXY.

Compartir una carpeta con Samba y FreeBSD

En primer lugar instalaremos Samba, en este caso los binarios directamente:

pkg_add -r samba3

Luego copiamos el archivo de configuración de ejemplo, para tener una base de donde partir:

cp /usr/local/share/examples/samba/smb.conf.default /usr/local/etc/smb.conf

Editamos el nuevo smb.conf para especificar el tipo de autenticación y base de datos a utilizar, asegurándonos de que quedan dos líneas de la siguiente manera:

security = user
passdb backend = tdbsam

Ahora ya podemos iniciar el servicio ejecutando:

/usr/local/etc/rc.d/samba start

Creamos un nuevo usuario con el comando adduser, que luego utilizaremos para darle permisos a los recursos SMB. En este caso el usuario se llamará smbtest.

Añadimos el nuevo usuario a la base de datos que utiliza Samba con el siguiente comando:

pdbedit -a -u smbtest

Ahora modificaremos de nuevo el archivo smb.conf. En primer lugar para evitar que se cree un recurso compartido del tipo HOME para cada usuario, eliminando (o comentando) toda la sección [homes]. En segundo lugar añadiremos la carpeta que queremos compartir, con las siguientes líneas:

[compartida]
comment = Compartida
path = /usr/compartida
valid users = smbtest
public = no
writable = yes
printable = no

Reiniciamos el servicio para que coja la nueva configuración:

/usr/local/etc/rc.d/samba stop
/usr/local/etc/rc.d/samba start

Con esto, y siempre que tengamos creada la carpeta /usr/compartida, ya nos aparecerá el nuevo recurso al “explorar la red” desde cualquier Windows u otra máquina con soporte para Samba.

Por último habilitamos el inicio del servicio al arrancar el equipo, añadiendo la siguiente línea al archivo /etc/rc.conf:

samba_enable="YES"

Más información en el FreeBSD Handbook.

Arrancar FreeBSD desde GRUB

Antes de que, accidentalmente, machaque el contenido del menu.lst de mi GRUB, copio a continuación las líneas que añadí para arrancar FreeBSD:

title           FreeBSD 7.0
root            (hd0,3)
chainloader     +1

Lo que supone tener FreeBSD en la cuarta partición del primer disco duro.