Configuración de Secciones y Usuarios en SAMBA¶
Secciones¶
Dentro del fichero de configuración /etc/samba/smb.conf
encontramos diversas secciones, entre las que se destacan tres:
[global]
: Es la sección principal que nos permite configurar los parámetros generales del servicio. Las opciones especificadas aquí afectan a cualquier recurso compartido.
Advertencia
A tener en cuenta, si una misma opción se declara en la sección global y en otra sección, por ejemplo una carpeta compartida con el nombre ejercicio1
, tendrá mayor peso la de la sección más específica, es decir, la especificada en la sección llamada ejercicio1
.
[homes]
: Esta sección permite compartir las carpetas home de cada usuario, para que cada usuario pueda acceder a su carpeta home por la red.
consejo
Se puede indicar las opciones para el /home
de los usuarios existentes en el servidor. De tal forma que podríamos acceder a nuestro /home
desde cualquier máquina del grupo de trabajo de la siguiente forma: \\IP_SERVIDOR\usuario
→ (file://IP_SERVIDOR/usuario)
[printers]
: Permite compartir impresoras en red.
Parámetros¶
Puesto que editando el archivo smb.conf
se pueden configurar más de 300 parámetros, dando lugar a miles de configuraciones, esta guía se limitará a analizar los parámetros más relevantes
- En la sección
[global]
se especifican las siguientes opciones generales:
Variable | Descripción |
---|---|
workgroup | Esta variable ha de almacenar el nombre del grupo de trabajo o dominio que usamos en nuestra red. |
server string | Permite reconocer el equipo dentro del dominio. Por defecto tiene como valor el nombre del servidor. |
hosts allow | Especifica desde qué direcciones IP se podrá acceder al servicio. Si se especifica 192.168. todas las direcciones que empiecen de ese modo tendrán acceso al recurso. Se puede establecer direcciones IP completas. |
hosts deny | Especifica los rangos no permitidos, del mismo modo que host allow. |
security, | Especifica el nivel de seguridad con el que se puede acceder. |
Ejemplo [global]
[global]
# Seguridad por usuarios
security = user
# Grupo de trabajo 'Aula5'
workgroup = Aula5
# Las contraseñas se deberán enviar encriptadas
encrypt passwords = yes
# Samba será servidor wins
wins support = yes
# Nivel y longitud máxima del archivo de registro
log level = 1
max log size = 1000
# Por defecto, lectura y escritura
read only = no
# Se comparten también las impresoras
load printers = yes
- Más ejemplos:
hosts allow/deny
: Permite restringir el acceso por IP:
Ejemplo1
Permitir Redes
hosts allow = 192.168.2.0/24 192.168.3.0/24
Ejemplo2
Permitir IP específica
hosts allow = 192.168.2.5 192.168.3.100 192.168.3.200
Ejemplo1
Permitir acceso a todos los hosts que comiencen por 192.168.
hosts allow = 192.168.
Ejemplo1
Deniega acceso a todos los hosts que comiencen por 10.
hosts deny = 10.
- Su funcionamiento es de arriba abajo, como las listas de acceso. Es decir, si tenemos:
hosts allow = 127.0.0.1 192.168.2.0/24 192.168.3.0/24
hosts deny = 127.0.0.1 192.168.2.0/24 192.168.3.0/24
El que cuenta es el primero que coincida, por tanto sí permitiría el acceso.
- En la sección
[homes]
se muestra el siguiente ejemplo:
Ejemplo
[homes]
# Comentario
comment = Carpetas home
# No explorables
browsable = no
# Máscara de creación de archivos (rxw------)
create mask = 0700
# Máscara de creación de carpetas
directory mask = 0700
- En la sección
[printers]
se muestra el siguiente ejemplo:
Ejemplo
[printers]
path = /var/tmp
printable = yes
min print space = 2000
Usuarios¶
-
Para que esa administración sea posible, Samba dispone de su propia base de datos de
usuarios samba
pero como los usuarios utilizan otros recursos del servidor como carpetas e impresoras, es necesario que estén creados en el sistema Unix. -
Resumiendo, podemos decir que para poder ser usuario de samba, es necesario disponer de una cuenta de usuario en Unix y de una cuenta de usuario en samba.
Gestión usuarios
- La gestión de usuarios de samba se puede realizar de dos formas:
- con el comando
smbpasswd
. Con dicho comando, entre otras cosas podremos crear y eliminar usuarios, cambiar su contraseña, etc. - A través de los comandos samba-tool user y samba-tool group.
- Inicialmente se van a realizar con la primera opción.
Creación de un usuario de samba con smbpasswd¶
Para crear un usuario de samba se puede utilizar el comando smbpasswd
, pero antes debemos haber creado el usuario en Unix.
Ejemplo
# Creación del usuario pepe
sudo useradd pepe
# Si se desea que pepe pueda disfrutar de los servicios samba, debemos crear a pepe como usuario de samba ejecutando el siguiente comando:
sudo smbpasswd -a pepe
# Con la opción -a indicamos que añada al usuario.
# Acto seguido nos preguntará dos veces la contraseña que deseamos poner al usuario. Lo razonable es que sea la misma contraseña que tiene el usuario en Unix.
Eliminar un usuario de samba¶
Para eliminar un usuario de samba debemos ejecutar smbpasswd
con la opción -x
,
Ejemplo
# Eliminar un usuario de samba
sudo smbpasswd -x pepe
# Inmediatamente el usuario habrá desaparecido de la base de datos de 'usuarios samba' aunque seguirá siendo un usuario de Unix.
- Otras opciones de
smbpasswd
-d
: Deshabilitar un usuario-e
: Habilitar un usuario.-m
: Indica que es una cuenta de máquina (equipo)-n
: Usuario sin password.
Note
La última opción Necesita parámetro null passwords = yes en sección 'global' del archivo de configuración de samba
El usuario Invitado¶
Cuando accedemos como “invitado” (guest ok) por defecto accedemos como el usuario nobody:nogroup
. Esto se puede modificar usando el siguiente parámetro:
force user = javi
force group = alumnos
Opción
De esta forma cuando accedamos al sistema como invitado accederemos como el usuario javi que tiene el grupo principal alumnos.
Restricción por usuarios¶
En caso de que no permitamos el acceso de invitados (guest ok = no) el servidor nos solicitará nuestras credenciales:
- Por otra parte se puede restringir los usuarios que pueden tener acceso a un recurso:
valid users = javi pepe jorge
invalid users = root @profesores @root
Nota
El “@”
indica que se hace referencia a un grupo. Por tanto ningún usuario perteneciente al grupo root o de profesores puede acceder.
- Además se pueden crear usuarios administradores.
admin users = javi
NOTA:
Los usuarios dentro de esta lista actuarán como root
.
NOTA:
Si un usuario está en el listado de “valid users” y en el de “invalid users” se le deniega el acceso.
Autentificación en Samba a través de usuarios¶
Para autentificarse en Samba
a través de usuarios se deben cumplir 2 requisitos:
- El usuario debe existir en el sistema
/etc/passwd
sudo useradd -s /bin/true “usuario”
Nota
De esta forma no se crea el /home
del usuario y no se permite el acceso al sistema si no es a través de Samba. Es decir, el usuario no se podría conectar a través de ssh
o localmente.
- El usuario debe existir en el servicio de samba. Para listar los usuarios se utiliza el comando
pbedit -L
.
sudo smbpasswd –a “usuario”
NOTA:
La contraseña es recomendable que sea diferente a la usada en el sistema.
- Listar usuarios dados de alta en SAMBA:
pdbedit -L
Actividades de clase (AEA)¶
AC63. Creación de secciones y usuarios en Samba.¶
Secciones SAMBA¶
NOTA:
- Recuerda reiniciar el servicio de samba tras modificar el fichero smb.conf.
- Estate atento para eliminar las líneas comentadas, las cuales comienzan por
“#”
y“;”
- Haz que todos los
/homes
de los usuarios sean navegables, que cualquiera pueda acceder sin credenciales y que solo tengan permisos de lectura. Recuerda que también deberás tener en cuenta los permisos dentro del servidor Linux. Haz captura de la configuración realizada ensmb.conf
y del explorador de Windows accediendo a tu/home
de Ubuntu. - Cambia en el servidor, en la sección [homes], la opción read only a no. Haz una captura de los permisos de tu carpeta
/home
. Prueba a crear un fichero desde Windows. ¿Qué sucede y por qué? - Indica la configuración del servicio más adecuada si quisiera permitir únicamente los equipos de la red 10.0.0.0/8 ¿Sigues teniendo acceso desde el cliente? ¿Por qué?
- Ahora cambia la restricción para permitir acceso únicamente a los hosts de la red en la que te encuentres.
Usuarios SAMBA¶
- Prueba a crear un usuario con
smbpasswd
sin que éste exista en el sistema Linux. ¿Qué sucede? Adjunta una captura. - Crea el usuario “leonardo” en el sistema linux, recuerda que dicho usuario solo debe ser capaz de acceder al sistema a través de Samba. Posteriormente créalo para Samba. Visualiza los usuarios de samba y fíjate en el
UID
asignado al usuario recién creado ¿tiene el mismo UID que en el sistema Linux (/etc/passwd
)? Adjunta capturas de todo el proceso. - Cierra la sesión actual en el servidor (exit) e intenta iniciar sesión con el usuario “leonardo” ¿Qué sucede y por qué?
- Edita en el servidor la sección [homes] con “force user = root”. Reinicia el servicio. Intenta crear, desde el cliente de Windows, un documento en el escritorio del
/home
compartido. ¿Te permite crearlo? ¿Por qué? ¿Qué permisos y usuario propietario tiene el fichero creado? Adjunta capturas a las explicaciones. - Cambia la configuración en el servidor de la carpeta “
/home/usuario/ejercicio2
” para que no permita el acceso de invitados y solo permita al usuario “leonardo”. Muestra la configuración. Intenta acceder desde el cliente Windows con las credenciales de tu usuario ¿Qué sucede? Adjunta capturas de pantalla.