This entry is part 4 of 5 in the series HOW-TO: homeserver linux

AVISO: este tema se encuentra en proceso de reconstrucción. Este fin de semana estará completamente reformado. Te recomiendo que esperes hasta entonces.

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.

Gestión de permisos: Listas de control de acceso (ACL)

Ante un sistema al que van a acceder varios usuarios surge un problema: la gestión de los permisos que dichos usuarios van a tener a los recursos compartidos. En el caso que estamos ilustrando, tenemos un grupo de usuarios (habitantes) que van a tener acceso total (lectura, modificación y ejecución) a una serie de recursos compartidos, y otro grupo (descargadores) a los que hay que aplicarles el mismo criterio para otros recursos.

Linux, Como buen sistema basado en UNIX, contaba inicialmente con el sistema estándar de estos entornos para controlar quién puede hacer qué dóne, el llamado UGO (user, group, others). Sin embargo en muchos casos este sistema es insuficiente, y para solventar esto aparecieron las listas de control de acceso. En nuestro home server su necesidad se hace patente, así que vamos a ver como se monta y configura. Si quieres ampliar tu conocimiento sobre este tema, te recomiendo que leas este completo HOWTO.

Vamos a ilustrar este ejemplo con el directorio de descargas del home server. Lo primero es crear el directorio que contenga los archivos descargados por programas que tengamos residentes en el sistema


sudo mkdir descargado
sudo chown yo:descargadores descargado
sudo chmod 775 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

Series Navigation<< Configuración de DebianInstalación y configuración del entorno LAMP >>