BSD HomeBox (IX): Copias de seguridad del servidor
Para realizar las copias de seguridad de los datos almacenados en el servidor utilizo un disco SATA en una caja externa con conexión e-SATA, y una controladora PCI Conceptronic en el servidor, con puerto e-SATA.
Conecto el disco externo y ejecuto el siguiente comando para que se le asigne un dispositivo:
atacontrol attach ata4 Creo el filesystem en el disco, en un slice creado anteriormente desde sysinstall:
newfs -U /dev/ad8s1c Creo el usuario que utilizaré para realizar las copias de seguridad, y que sólo tendrá permisos de lectura sobre los datos a copiar:
BSD HomeBox (VIII): P2P
Como cliente de P2P instalo transmission-daemon, y su correspondiente complemento para gestionar las descargas a través de web (desmarco las opciones de IPV6 y PROXY a la hora de compilar):
cd /usr/ports/net-p2p/transmission-daemon
make install clean
cd /usr/ports/www/transmission-web
make install clean Creo el usuario con el que se ejecutará el demonio:
pw useradd -n torrent -m -h 0 Creo el directorio donde se almacenarán las descargas y le aplico permisos de modificación para todos los usuarios:
FreeBSD: Parchear el kernel
Aprovecho una actualización de seguridad publicada esta semana (http://security.freebsd.org/advisories/FreeBSD-SA-09:14.devfs.asc) para exponer cómo la he instalado. En cuanto a la verificación con GNUPG me he guiado por este artículo.
En primer lugar instalo la utilidad que me permitirá verificar la veracidad del parche descargado:
cd /usr/ports/security/gnupg
make install clean
cd /usr/ports/security/pinentry
make install clean Genero mi clave:
gpg –gen-key Importo las claves de FreeBSD:
fetch http://www.freebsd.org/doc/pgpkeyring.txt && gpg –import pgpkeyring.txt Descargo el parche y la firma:
BSD HomeBox (VII): Repositorio de copias de seguridad
El objetivo es que el servidor actúe como respositorio de datos, donde poder depositar una copia de seguridad desde los clientes mediante rsync.
En este caso me ha orientado la siguiente guía:
http://www.freebsddiary.org/rsync.php
Instalo el port y me aseguro de seleccionar la opción ICONV en la configuración del mismo:
cd /usr/ports/net/rsync
make config
make install clean Configuraré una conexión para realizar la copia de seguridad de mi pendrive desde el cliente Debian, editando el archivo /usr/local/etc/rsyncd.
BSD HomeBox (VI): Servidor de impresión
Mi referencia para este apartado ha sido la siguiente guía:
http://www.freebsd.org/doc/en/articles/cups/index.html
Instalo el port correspondiente
cd /usr/ports/print/cups
make install clean Creo las reglas para la asignación automática de los permisos a los dispositivos USB correspondientes a mi impresora, en el archivo /etc/devfs.rules:
[localrules=5]
add path ‘unlpt0’ mode 0660 group cups
add path ‘ulpt0’ mode 0660 group cups Añado al archivo /etc/rc.conf la referencia a la nueva directiva:
devfs_system_ruleset=“localrules” Reinicio el proceso devfs:
BSD HomeBox (V): Sirviendo archivos
En primer lugar creo el usuario que será propietario de los datos ubicados en la partición que utilizaré para ello:
pw useradd -n datos -m -h 0 Edito el archivo /home/datos/.shrc estableciendo en él un “umask” que me permitirá que todos los archivos creados por el usuario “datos” queden con permisos de lectura y escritura para él mismo y sólo lectura para los pertenecientes al grupo, además de no permitir el acceso al resto de usuarios:
BSD HomeBox (IV): Habilitando el acceso remoto
Voy a habilitar el acceso a la máquina vía SSH, ya que no dispondré de teclado ni monitor para acceder directamente.
Añado el usuario “remoto” que será el único con privilegios para la conexión, otorgándole permisos para hacer “su” a root:
pw useradd -n remoto -G wheel -m -h 0 Edito el fichero /etc/rc.conf añadiendo la siguiente entrada:
sshd_enable=“YES” Edito el fichero /etc/ssh/sshd_config añadiendo la siguiente línea:
AllowUsers remoto Inicio el servicio:
BSD HomeBox (III): Recompilando el sistema
Hago una copia de la configuración del kernel genérico y creo un enlace a la ruta donde se ubican normalmente estos archivos:
cd /usr/src/sys/i386/conf
mkdir /root/kernels
cp GENERIC /root/kernels/BSDBOX
ln -s /root/kernels/BSDBOX Edito mi copia de configuración del kernel con el objetivo de optimizarlo un poco, eliminando entradas que no vaya a necesitar. En mi caso el contenido final del archivo es el siguiente:
cpu I686_CPU
ident BSDBOX
options SCHED_ULE # ULE scheduler
options PREEMPTION # Enable kernel thread preemption
options INET # InterNETworking
options SCTP # Stream Control Transmission Protocol
options FFS # Berkeley Fast Filesystem
options SOFTUPDATES # Enable FFS soft updates support
options UFS_ACL # Support for access control lists
options UFS_DIRHASH # Improve performance on big directories
options UFS_GJOURNAL # Enable gjournal-based UFS journaling
options GEOM_PART_GPT # GUID Partition Tables.
BSD HomeBox (II): Configuraciones iniciales
A partir de ahora, y para toda la configuración del sistema, utilizaré el usuario “root” a menos que indique lo contrario.
En primer lugar establezco la configuración del compilador:
cp /usr/share/examples/etc/make.conf /etc
edit /etc/make.conf Me aseguro de que quedan descomentadas las siguientes opciones, y añado la última ya que no aparece:
CPUTYPE?=pentium4
CFLAGS= -O2 -fno-strict-aliasing -pipe
CXXFLAGS+= -fconserve-space
NO_PROFILE=true Instalo la colección de ports actualizada:
portsnap fetch
portsnap extract Instalo el port que me permitirá actualizar la base de “sources” que tengo en el sistema:
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.
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.
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.
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: