Ya que hemos preparado el acceso por red es hora de ponernos manos a la obra con los servicios que nuestro pequeño servidor ofrecerá. Pero antes de nada, sería conveniente crear un puñado de usuarios y grupo en el sistema. En concreto, yo crearé un usuario para mi pareja, que tendrá el mismo nombre y contraseña que ella tiene en su equipo con windows para que acceda de forma transparente (windows manda de forma automática las credenciales de usuario. Además está creados mi usuario (desde la instalación) y será creado un usuario invitado (para que pueda acceder al ssh y algunos recursos compartidos). En cuestión de grupos, crearé un grupo llamado “descargadores” que contendrá usuarios y demonios, un grupo llamado “habitantes” que contendrá los usuarios correspondientes a mi pareja y a mí, y uno de invitados (toda la sección de invitados no será incluida en este tutorial).
sudo useradd lucerita
sudo passwd lucerita
(salida por pantalla del proceso)
sudo groupadd descargadores
sudo groupadd habitantes
sudo usermod -G descargadores,habitantes yo
sudo usermod -G descargadores,habitantes lucerita
Es imprescindible asignar una password a los nuevos usuarios, ya que hasta que no se haga el usuario permanecerá desactivado y no podremos hacer nada con él.
Ya que hemos creado los usuarios y grupos, sería buena idea crear los directorios temporales y de descarga completa que utilizarán aMule y rTorrent, y darle permisos.
cd /var/downloads
sudo mkdir temporal
sudo mkdir descargado
sudo chmown yo:descargadores temporal descargado
sudo chmod 775 temporal descargado
sudo chmod g+s descargado
Ambos demonios lo incluiremos posteriormente en el grupo “descargadores” al que le acabamos de dar permisos de lectura, escritura y ejecución en estos direcotrios, y de esta forma tenemos controlado el acceso de aplicaciones y usuarios al tiempo que no comprometemos el sistema. De estos directorios sólo compartiremos, en principio y como es lógico, descargado.
Pasamos pues a instalar samba. Para facilitar la tarea de administración de recursos compartidos podemos utilizar swat, que es un pequeño servicio web para configurar samba de una forma un poco más visual y agradable.
sudo aptitude install samba swat
Durante el proceso de instalación nos pedirá el grupo de trabajo. Por comodidad podemos especificarlo, aunque posteriormente también se puede cambiar de una forma fácil y cómoda. También mientras instalamos, samba leerá todo nuestro listado de usuarios, contraseñas y grupos y los inluirá para que puedan hacer login. Si posteriormente queremos agregar un nuevo usuario podemos utilizar el siguiente comando:
sudo smbpasswd -a <nombre_usuario_unix>
Cuando terminemos de instalar tendremos swat disponible, con lo que podríamos abrir un navegador apuntar a http://<ip_de_la_maquina>:901. Nos pedirá el nombre de usuario y password, y para dentro!
Como se puede apreciar las opciones de configuración son muy numerosas y nos podemos perder fácilmente. Esto es debido a que samba no sólo está pensado para ofrecer recursos simples, sino que permite sincronizar con directorio activo de windows y dominios, de tal forma que todo esto se vuelve muy complejo. Así pues, un poquito de ayuda no viene mal.
En el apartado global, pondremos la opción preferred master a True. ¿Qué significa esto? Veámoslo.
Las versiones de escritorio de windows son capaces de funcionar de forma descentralizada, esto quiero decir, sin servidor, o al menos sin ningún ordenador especialmente configurado para tal efecto. El problema de no utilizar un servidor central es que los ordenadores tienen que estar contínuamente enviando y recibiendo información para saber qué otro ordenadores están conectados a la red y qué cosas tienen, y posteriormente si siguien ahí o hay otros nuevos.
Esto genera un tráfico de red desmesuradamente alto, por lo que hay montada una solución intermedia, y es que la máquinas puedan funcionar como servidor pero con un sistema de autoconfiguración que sea complemente transparente para el usuario. Además este sistema tiene que ser capaz de tolerar las contínuas idas y venidas de equipos de la red. Así pues se ha creado un sistema de votación, en el que cuando se solicita, todos los equipos aportan una puntuación basada en varios criterios y eligen a un servidor central, que se encargará de memorizar el estado de todas las máquinas de la red y al que todo el mundo preguntará.
Esta opción permite que se lanze el proceso de votación cada vez que nuestra máquina samba se conecta a la red. Como samba posee una puntuación alta suele proclamarse ganador y se convierte en maestro. Esto nos viene de perlas, porque como el equipo estará siempre encendido podrá controlar perfectamente los ordenadores que se conectan y desconectan de la red y mantendrá el broadcast de nuestra red un poco más saneado (para lo que suele ser entornos Windows).
Tras esto nos vamos al apartado shares y añadimos recursos compartidos. Os dejo una plantilla de cómo he configurado yo los recursos:
[musica]
path = /mnt/musica
valid users = +habitantes
read only = No
create mask = 0774
directory mask = 0775
Quiere decir, creo que recurso que se llama música, con path en /mnt/musica. Restrinjo los usuarios válids a los pertenecientes al grupo habitantes (el + indica que es un grupo de UNIX, quiere decir, un grupo existente en nuestro linux). Permito que el propietario y el grupo de usuarios tengan acceso completo a los archivos y directorios contenidos en este.
NOTA: La cláusula valid user implica que ningún usuario que no se haya autenticado como miembre de habitantes podrá acceder a este recurso.
Queda por resolver el tema del montaje de las unidades desde sistemas linux. Para ello es necesario utenticarse como el usuario que hemos elegido, pero si añadimos una línea en fstab para que el sistema se monte al iniciar el equipo el usuario que monta es root. Tampoco deseamos incluir a root en el montaje para evitar problemas de seguridad, además de que necesitamos encontrar un método seguro para no poner el password como texto plano el dicho archivo. esto lo solucionaremos creando un archivo de credenciales. Iniciamos una shell de de root y cremos un archivo (por ejemplo /root/montaje) con el siguiente contenido:
username=<usuario>
password=<mi_password>
Lo guardamos y cambiamos los permisos para que sólo root pueda acceder a él:
chmod 600 /root/montaje
A continuación añadimos el recurso en /etc/fstab:
//192.168.0.254/musica /mnt/musica smbfs credentials=/root/montaje,uid=1000,iocharset=utf8 0 0