Por El tío Emilio, el 15 de Noviembre de 2009
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:
pw useradd -n backup -G datos,operator -m -h 0
Añado la siguiente línea al fichero /etc/devfs.rules, en el apartado [localrules=5] que habíamos creado anteriormente, para que se asignen los permisos necesarios al dispositivo cada vez que se conecte el disco:
add path 'ad8*' mode 0660 group operator
En el archivo /etc/rc.conf ya debemos tener de antes la siguiente línea:
devfs_system_ruleset="localrules"
Reinicio el proceso devfs:
/etc/rc.d/devfs restart
Creo el directorio donde se montará el filesystem y le cambio el propietario al usuario backup:
mkdir /mnt/backup
chown backup:backup /mnt/backup
Creo un script para lanzar el backup desde el usuario root, con el siguiente contenido:
atacontrol attach ata4
mount /dev/ad8s1c /mnt/backup
su -m backup -c "rsync -rlti --delete /datos/ /mnt/backup --exclude '.snap' --exclude 'download' --exclude 'lost+found'"
sleep 5
umount /mnt/backup
atacontrol detach ata4
Hay información interesante sobre el manejo de discos externos aquí:
http://www.freebsd.org/doc/en/books/handbook/usb-disks.html
Por El tío Emilio, el 15 de Noviembre de 2009
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:
mkdir /datos/download
chmod 777 /datos/download
Edito el archivo /etc/rc.conf, añadiendo las siguientes entradas para que arranque automáticamente el demonio y la configuración de algunos parámetros:
transmission_enable="YES"
transmission_user="torrent"
transmission_conf_dir="/usr/home/torrent/.config/transmission-daemon"
transmission_download_dir="/datos/download"
Ahora puedo arrancar el demonio manualmente ejecutando:
/usr/local/etc/rc.d/transmission start
Con esto ya tengo el archivo de configuración para poder personalizar en /usr/home/torrent/.config/transmission-daemon/settings.json. Para modificar este archivo es necesario tener el demonio parado, de lo contrario al reiniciarse el demonio, el archivo de configuración volverá a su estado anterior. Para que los archivos sean creados con permisos totales para todos los usuarios, especifico el siguiente parámetro en el settings.json:
"umask": 0
Por El tío Emilio, el 27 de Septiembre de 2009
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.conf, quedando de la siguiente manera:
pid file = /var/run/rsyncd.pid
pid = datos
gid = datos
use chroot = no
max connections = 1
[USB_Emilio]
path = /datos/USB Emilio
read only = no
charset = iso8859-15
auth users = rbackup
secrets file = /usr/local/etc/rsyncd.secrets
Con el usuario datos, creo la carpeta destino de la información:
mkdir "/datos/USB Emilio"
Creo el archivo /usr/local/etc/rsyncd.secrets, que contiene los datos de autenticación, con el siguiente contenido:
usuariorsync:passwordrsync
Aseguro el archivo para que sólo pueda ser leído por root:
chmod 600 /usr/local/etc/rsyncd.secrets
Incluyo la siguiente línea en el archivo /etc/rc.conf:
rsyncd_enable="YES"
Por último inicio el demonio:
/usr/local/etc/rc.d/rsyncd start
Ahora ya puedo ejecutar la copia de seguridad desde el cliente con el siguiente script:
#!/bin/bash
rsync -rlti --delete --iconv=. --chmod=Du=rwx,Dg=rx,Do=,Fu=rw,Fg=r,Fo= /media/KINGSTON/ usuariorsync@ip_del_servidor::USB_Emilio
read -p "Pulsa [Intro] para terminar"
Por El tío Emilio, el 27 de Septiembre de 2009
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:
/etc/rc.d/devfs restart
Incluyo la siguiente línea en el archivo /etc/rc.conf, para el inicio automática del demonio CUPS:
cupsd_enable="YES"
Descomento la siguiente línea en el archivo /usr/local/etc/cups/mime.convs, para evitar problemas con los clientes Windows:
application/octet-stream application/vnd.cups-raw 0 -
Edito el archivo /usr/local/etc/cups/cupsd.conf:
Cambio la siguiente línea
Listen localhost:631
Por esta otra, para permitir conectarme a la web de configuración de CUPS desde otros equipos de la red
Port 631
Autorizo a los equipos de la red, mediante los siguientes apartados
# Restrict access to the server...
<Location />
Order allow,deny
Allow 192.168.1.*
</Location>
# Restrict access to the admin pages...
<Location /admin>
Order allow,deny
Allow 192.168.1.*
</Location>
# Restrict access to configuration files...
<Location /admin/conf>
AuthType Default
Require user @SYSTEM
Order allow,deny
Allow 192.168.1.*
</Location>
Finalmente, inicio el servidor:
/usr/local/etc/rc.d/cupsd start
Ahora me conecto vía web al puerto 631 del servidor para configurar la impresora y compartirla.
No instalo en este servidor ningún tipo de controlador adicional para la impresora, dejando que sean los clientes los que dispongan de estos controladores.
Por El tío Emilio, el 17 de Agosto de 2009
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:
umask 027
Creo la carpeta para el punto de montaje del filesystem y establezco los permisos oportunos:
mkdir /datos
chown datos:datos /datos
chmod 751 /datos
Formateo la partición del segundo slice, con el sistema de archivos UFS y habilitando los "soft-updates":
newfs -U /dev/ad4s2a
Añado la partición al fichero /etc/fstab:
/dev/ad4s2a /datos ufs rw 2 2
Monto el filesystem:
mount -a
Ahora instalo el servidor SAMBA, desmarcando en las opciones de compilación las entradas LDAP y WINBIND:
cd /usr/ports/net/samba33
make install clean
Edito el fichero /usr/local/etc/smb.conf, comentando completamente las secciones [homes] y [printers], y estableciendo las siguiente opciones (dejando el resto como está):
security = user
passdb backend = tdbsam
display charset = ISO8859-15
unix charset = ISO8859-15
dos charset = 850
En el mismo fichero anterior añado la siguiente sección, que representará el recurso compartido con los archivos que serviré:
[datos]
comment = Datos
path = /datos
valid users = datos
public = no
browseable = yes
writable = yes
printable = no
create mask = 0640
directory mask = 0750
Añado el usuario "datos" a la base de datos de SAMBA:
pdbedit -a -u datos
Añado al archivo /etc/rc.conf la siguiente línea para que el sistema inicie automáticamente el servidor SAMBA:
samba_enable="YES"
Reinicio el equipo y ya debería ser accesible el recurso desde la red.
Por El tío Emilio, el 14 de Agosto de 2009
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:
/etc/rc.d/sshd start
Por El tío Emilio, el 26 de Julio de 2009
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.
options GEOM_LABEL # Provides labelization
options COMPAT_43TTY # BSD 4.3 TTY compat [KEEP THIS!]
options STACK # stack(9) support
options SYSVSHM # SYSV-style shared memory
options SYSVMSG # SYSV-style message queues
options SYSVSEM # SYSV-style semaphores
options P1003_1B_SEMAPHORES # POSIX-style semaphores
options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extension
options KBD_INSTALL_CDEV # install a CDEV entry in /dev
options STOP_NMI # Stop CPUS using NMI instead of IPI
options AUDIT # Security event auditing
# To make an SMP kernel, the next two lines are needed
options SMP # Symmetric MultiProcessor Kernel
device apic # I/O APIC
# CPU frequency control
device cpufreq
# Bus support.
device pci
# ATA and ATAPI devices
device ata
device atadisk # ATA disk drives
device atapicd # ATAPI CDROM drives
options ATA_STATIC_ID # Static device numbering
# SCSI peripherals
device scbus
device da
device pass
# atkbdc0 controls both the keyboard and the PS/2 mouse
device atkbdc # AT keyboard controller
device atkbd # AT keyboard
device vga # VGA video card driver
# syscons is the default console driver, resembling an SCO console
device sc
device agp # support several AGP chipsets
# Power management support (see NOTES for more options)
# Add suspend/resume support for the i8254.
device pmtimer
# PCI Ethernet NICs that use the common MII bus controller code.
# NOTE: Be sure to keep the 'device miibus' line in order to use these NICs!
device miibus # MII bus support
device rl # RealTek 8129/8139
# Pseudo devices.
device loop # Network loopback
device random # Entropy device
device ether # Ethernet support
device pty # Pseudo-ttys (telnet etc)
# USB support
device uhci # UHCI PCI->USB interface
device ohci # OHCI PCI->USB interface
device ehci # EHCI PCI->USB interface (USB 2.0)
device usb # USB Bus (required)
device ugen # Generic
device ukbd # Keyboard
device ulpt # Printer
device umass # Disks/Mass storage - Requires scbus and da
Es importante, siempre que se actualizan los sources, recompilar todo el sistema, tanto el kernel como el resto de binarios.
En primer lugar elimino restos de compilaciones anteriores, aunque en este caso no sería necesario por tratarse de la primera vez:
cd /usr/obj
chflags -R noschg *
rm -rf *
Recompilamos e instalamos todo de nuevo:
cd /usr/src
make buildworld
make buildkernel KERNCONF=BSDBOX
make installkernel KERNCONF=BSDBOX
shutdown now
cd /usr/src
mergemaster -p
make installworld
mergemaster
reboot
Por El tío Emilio, el 26 de Julio de 2009
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:
cd /usr/ports/net/cvsup
make install clean
Al compilar el port le digo que no soporte X11.
Establezco un fichero de configuración para cvsup:
cp /usr/share/examples/cvsup/stable-supfile /root
edit /root/stable-supfile
Ahora modifico la línea del host por defecto al que se conectará cvsup estableciéndola así:
*default host=cvsup.es.FreeBSD.org
Actualizo todos los sources:
cvsup -g -L 2 /root/stable-supfile
Establezco los siguientes parámetros en el archivo /etc/rc.conf, para asegurar un correcto chequeo (desatendido) de los filesystems en caso de reinicio "inesperado":
fsck_y_enable="YES"
background_fsck="NO"
Por El tío Emilio, el 26 de Julio de 2009
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.
|
|