Instalación de un servidor Samba

Mayo 2017

-----------------------------------------------------------------------------------
Instalación y configuración de un servidor Samba versión 3.0.2a
Linux Mandrake versión 10.0
----------------------------------------------------------------------------------



Requerimientos


Instalación de la distribución Mandrake 10.0 (Servidor)
Tener un dominio.

Introducción


El servidor Samba es la herramienta preferida para instalarla en una red LAN (Local Area Network) usando el protocolo SMB (Server Message Block).Gracias a este programa servidor podemos utilizar eficazmente en una misma red estaciones Linux y PCs Windows.
Samba es muy útil para compartir archivos e impresoras entre estaciones Unix y Windows de manera transparente y estable.

1. Arquitectura de Samba


Samba está compuesta de un servidor y un cliente, así como de algunas herramientas que permiten realizar servicios prácticos o hacer un test de la configuración.
El servidor esta compuesto de dos aplicaciones (llamadas demonios):
smbd, núcleo del servidor, provee los servicios de autenticación y acceso a los recursos.
nmbd, permite mostrar los servicios disponible en Samba (visualización de los servidores Samba en la red,…)
el cliente: smbclient es un cliente para Linux que provee una interfaz que permite la transferencia de archivos, el acceso a impresoras, etc.
smbtar: permite transferir de o hacia un archivo TAR bajo Linux
testparm: comprueba la sintaxis del archivo smb.conf, el archivo de configuración de Samba.

El protocolo de comunicación que permite esta comunicación entre Windows y Linux se llama SMB (Server Message Block). Puesto a punto por Microsoft en 1987, retomando un concepto desarrollado por IBM en 1985 (NetBIOS), este protocolo se apoya sobre NetBEUI (así como sobre TCP/IP). El interés de TCP/IP proviene del hecho que es ampliamente adoptado. Por ello TCP/IP ya ha sido implementado en la mayoría de sistemas operativos (Unix, Linux, AmigaOS, MacOS, OS/2,...) según el esquema siguiente:
Aplicación
SMB
NetBios
TCP/IP
NetBeui
IPX/SPX
Controladores de red

2. Instalación de los paquetes que necesita el servidor Samba


Primero debemos asegurarnos de que están instalados los paquetes necesarios, si no lo están, debemos instalarlos. En la línea de comandos escribir mcc (Centro de Control de Mandrake)logueandose como root (escribir su luego la contraseña de usuario root), ir al Gestor de Programas luego a Instalar, seleccionar los tres paquetes siguientes:
samba-client-3.0.2a-3mdk
samba-common-3.0.2a-3mdk
samba-server-3.0.2a-3mdk

Luego hacer clic en Instalar.

Primer arranque de Samba


Por lo general, una vez instalado, el servidor Samba está listo para ser iniciado (sin poder compartir archivos ni impresoras). Para iniciarlo, ejecuta el comando:
/etc/rc.d/init.d/smb start
Starting SMB services: [OK]
Starting NMB services: [OK]

El siguiente comando permite controlar que los dos demonios hayan sido ejecutados correctamente
/etc/rc.d/init.d/smb status (o service smb status)
smbd (pid 1054) is running...
nmbd (pid 1056) is running...

Los comandos útiles


(desde el terminal como root)
  • testparm /etc/samba/smb.conf
    • Test de sintaxis de escritura del archivo smb.conf
  • /etc/rc.d/init.d/smb stop
    • Detiene el servicio Samba
  • /etc/rc.d/init.d/smb start
    • Inicia el servicio
  • /etc/rc.d/init.d/smb restart
    • Reinicia el servicio
  • /smbstatus
    • Muestra las conexiones Samba actuales

3. Configuración del archivo smb.conf


La configuración de Samba se realiza en un único archivo de configuración: smb.conf. Este archivo se encuentra en el directorio /etc/samba/

Observación: cada vez que se modifique el archivo smb.conf utilizando un editor de texto, debemos guardarlo y reiniciar el servicio escribiendo en la línea de comandos: /etc/rc.d/init.d/smb restart (para reiniciar el servidor Samba y que tome en cuenta las modificaciones realizadas en el archivo smb.conf)

Este archivo describe los recursos que se desean compartir, así como los permisos y restricciones asociados a estos. El archivo smb.conf se divide en secciones (que se identifican con títulos entre corchetes), cada una de las cuales contiene un conjunto de líneas de parámetros del tipo atributo=valor. Una línea que comienza con un “#” es una línea de comentarios y una línea que comienza con un “;” está inactiva.

El archivo smb.conf tiene 3 secciones principales:
  • La sección [global]
    • define los parámetros de todo el servidor
  • La sección [homes]
    • define la forma de compartir un directorio personal
  • La sección [printers]
    • define las impresoras compartidas por el servidor

Sección “global”


Aquí un ejemplo (el ejemplo es el de la red R2D4) de la sección [global]:
[global]
# asigna el grupo de trabajo, el mismo nombre de grupo que el de Windows
workgroup = MSHOME

# nombre con el que aprecerá el servidor en la red
netbios = samba server

# dará una breve descripción de nuestro equipo al presentarse dentro de la Red, con %v aparece el número de version de Samba
server string = Samba Server %v

# las contraseñas serán enviadas encriptadas
encrypt passwords = Yes
smb passwd file = /etc/samba/smbpasswd

# ubicación donde serán guardados los logs
log file = /var/log/samba/log.%m

# tamaño máximo del log
max log size = 50

# ninguna cuenta de invitado (opcional)
guest account = nobody

#acceso multiusuario (opcional)
Share modes = yes

#ubicación del archivo printcap (impresoras en el servidor Linux)
printcap = /etc/printcap

# compartir todas las impresoras definidas en printcap
printcap name = cups
load printers = yes
printing = cups
printer adm = @ adm

# archivo log de samba
log level = 1
log file = /var/log/samba/log.%m

# tipos de seguridad: (user / share / server)
security = user

# permitir el acceso sólo de ciertas redes al servidor (el punto final es importante)
hosts allow = 192.168.1.

#Todos los equipos de esta red están autorizados, excepto 192.168.1.10
hosts allow = 192.168.1. EXCEPT 192.168.1.10

#Poner la dirección IP de los equipos a los que queremos prohibir el acceso
#al servidor samba por ejemplo: ALL, para prohibir a todos, excepto los equipos autorizados por <hosts allow>.
Hosts deny = ALL

# no hay proxy dns
dns proxy = No

# dejar estos campos por defecto
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192

# activar la función de servidor de tiempo
time server = yes

# el script de conexión lleva el nombre del grupo, %g es la variable samba para el grupo primario
logon script = %g.bat

# autoriza la conexión de los usuarios al dominio
domain logons = yes

#Si se quiere que el servidor sea el maestro del dominio
domain master = yes

#en el caso de que existan varios controladores de dominio, el servidor será el favorito.
preferred master = yes

#En el caso de ser servidor maestro, permite ganar la elección contra otros equipos Windows
os level = 255
# da acceso al directorio netlogon que contiene los scripts de inicio
[netlogon]

#ruta de acceso del directorio
path = /home/netlogon

#sólo los usuarios indicados pueden utilizar este directorio
public = no

# no se puede escribir en este directorio
writable = no

# el directorio no aparece en el árbol de directorios
browseable = no

#lista de usuarios con derecho root en este directorio, por ejemplo
admin users = Guillermo

Sección “homes”


Compartir el directorio personal
La sección [homes] permite definir el acceso al directorio personal de cada usuario. Aquí un ejemplo:

[HOMES]
# comentario visible en la red
comment = Home Directories

#el directorio no puede ser observado por todos los usuarios
browseable = no

# permiso de escritura sobre el directorio
writable = yes

Sección “documents”


Compartir cualquier directorio
Es posible definir un acceso personalizado a cualquier directorio del equipo creando una sección con el nombre que queremos dar al recurso. Este contendrá entre otros un parámetro path que dé la ruta de acceso al recurso. Este directorio podrá ser consultado en modo lectura y escritura en la estación Windows de acuerdo al permiso del usuario.
A continuación un ejemplo de sección personalizada:

[DOCUMENTS]
# comentario visible en la red
comment = /home/cualquier_directorio

# ruta de acceso al recurso
path = /home/cualquier_directorio

# visualización del recurso por todos
browseable = no
guest ok = yes

# valida los usuarios que pueden ingresar al recurso, el procedimiento para ingresarlos será explicado posteriormente
valid users = nombre_usuarios

#ruta de acceso al recurso
#dado que los usuarios ingresados podrán acceder a él, es necesario poner no
public = no

# usuarios con derechos de root sobre este directorio
admin users = nombre_usuarios

# permiso de escritura sobre el recurso
writable = yes

Sección “cdrom”


Compartir un lector de CD-ROM
Es posible compartir un lector de CD-ROM (éste debiendo estar preferiblemente montado), creando por ejemplo una sección [cd-rom]:

[CD-ROM]
# comentario visible en la red
comment = lector de CD-ROM

# ruta de acceso al lector
path = /mnt/cdrom

# accessible a todos
public = yes

# imposibilidad de escribir sobre el recurso
writable = no

create mask = 0750

4. Acceder a un recurso Samba bajo Linux


El cliente Samba (smbclient) provee una interfaz en línea de comandos para acceder a los recursos de Samba desde un equipo de tipo Unix.

Smbclient permite verificar en primer lugar la existencia de un servidor Samba en la red y hacer una lista de los recursos que comparte, para ello utilizamos el comando:
smbclient nombre_servidor_smb
Una vez identificados los recursos, es posible acceder a cada uno de ellos con el comando:
smbclient \\\nom_serveur_smb\\ressource -U nom_utilisateur
Una contraseña será solicitada al usuario. Luego basta con enviar comandos FTP para enviar/recibir archivos o bien para examinar los directorios del recurso.
El acceso a una impresora se hace con el comando
smbclient \\\nombre_servidor_smb\\recurso -P
la impresión del archivo /usr/local/samba/lib/etc.conf se hace con el comando:
print /usr/local/samba/lib/etc.conf
para visualizar la cola de impresión:
queue
para detener smbclient:
exit

Observación: Para acceder a la red bajo Linux, abrir Konqueror y escribir en la barra de URL: smb:/

5. Creación de usuarios Samba y acceso a las cuentas de estos usuarios


Crear un usuario en el equipo servidor Samba bajo Linux Mandrake versión 10 (servidor):

Gráficamente


En línea de comandos escribir mcc logueandose como root (o a través del menú “configure your computer”), y estaremos en el Centro de Control Mandrake, luego ir a “Sistema”, luego “Usuarios y grupos” finalmente “agregar usuario”.

En línea de comandos ingresar


adduser Nombre_Usuario

A continuación ingresar la contraseña del usuario en el archivo smbpasswd en el directorio /etc/samba de la siguiente forma (en línea de comandos):
smbpasswd -a Nombre-Usuario
En respuesta:
New SMB password: Dar la misma contraseña que cuando se agregó al usuario
Retype new SMB password: idem

Crear el mismo usuario con la misma contraseña en el equipo Windows (Cliente):

Ir a “Panel de control” luego a “Cuentas de usuarios” para crear un usuario con los derechos de “administrador”.

Hacer esta operación para todos los usuarios que se necesiten crear.

Observación: En caso de usuarios que ya existan en el equipo Windows, entonces solo crearlos en el servidor Linux y sobretodo tener cuidado de no renombrar un usuario. Cada vez que se cree un usuario bajo Windows, reiniciar la estación.

6. La manera de compartir directorios


Podemos compartir un directorio personal, en este caso se muestran los directorios según el usuario logueado, y compartir un directorio común.
Atención, si compartimos un directorio que no se encuentra en el árbol de directorios “Home”, entonces el acceso será denegado, por lo tanto el directorio “Home” o uno de sus subdirectorios debe contener este directorio común para un uso óptimo de éste.

7. Los mensajes de error


Pueden aparecer mensajes de error del siguiente tipo:

Problemas: Red inaccesible (bajo Windows)
O también:
Internal Error
Please send a full bug at http://kde.org
Unknown error condition in stat : Network is unreahable (bajo Linux)

Este tipo de error significa que no estamos conectados a la red, entonces debemos revisar las conexiones, los cables, la configuración de la red y también el archivo /etc/samba/smb.conf.

Si aparece el siguiente mensaje de error:
Imposible conectarse al servidor samba
En este caso revisar la configuración del archivo /etc/samba/smb.conf.
El servidor samba aparece dentro del dominio pero muestra el mensaje de error cuando se hace clic encima, en este caso revisar la ruta del directorio compartido cualquier directorio o personal en el archivo smb.conf.

Consulta también

Publicado por Carlos-vialfa. Última actualización: 21 de agosto de 2008 a las 16:41 por Carlos-vialfa.
El documento «Instalación de un servidor Samba» se encuentra disponible bajo una licencia Creative Commons. Puedes copiarlo o modificarlo libremente. No olvides citar a CCM (es.ccm.net) como tu fuente de información.