8 de junio de 2011

Instalar y configurar Samba


Samba son un conjunto de aplicaciones libres para Linux que implementan el protocolo de comunicación SMB utilizado por los sistemas operativos Microsoft Windows para compartir carpetas e impresoras.

Básicamente samba permite a PCs que utilizan Linux conectarse a carpetas compartidas en PCs con Windows, gracias a samba, en una red podemos tener PCs con Windows y PCs con Linux que puedan intercambiar información en carpetas compartidas.

Cuando en una misma red conviven sistemas Linux con equipos Windows, se utiliza samba para integrarlos y poder intercambiar información. Como alternativa, sería posible utilizar protocolos estándar como el FTP que es utilizado tanto equipos Windows como equipos Linux.

Red con sistemas Windows y Linux

Samba permite a un PC con Linux comportarse como un controlador de dominio de Windows para redes Microsoft con prestaciones superiores a las que nos ofrecería un servidor con Windows NT Server 4.0.

Instalación de samba

Samba se compone de varios paquetes. Destacamos los más importantes:

  • samba: Servidor de archivos e impresoras tipo LanManager para maquinas Linux.
  • samba-common: Archivos de samba utilizados para clientes y servidores.
  • smbclient: Cliente simple tipo LanManager para maquinas Linux.
  • swat: Herramienta de administración de Samba vía Web.
  • samba-doc: Documentación de Samba.
  • smbfs: Comandos para montar y desmontar unidades de red samba
  • winbind: Servicio para resolver información de usuarios y grupos de servidores Windows NT

Para instalar los paquetes necesarios ejecutaremos en el terminal:

aceitunero@Pc15:~$ sudo apt-get install samba samba-common smbclient samba-doc smbfs

De esta forma instalamos los paquetes básicos para iniciar el servicio de SAMBA.

Configuración de samba

Samba dispone de un archivo de texto para su configuración. Se trata del archivo: /etc/samba/smb.conf

El archivo de configuración de samba es bastante extenso, pero para empezar tenemos que hacer muy pocos cambios. El archivo de configuración se divide en secciones identificadas porque su un nombre va escrito entre corchetes. Hay tres secciones especiales que son [global], [homes] y [printers].

  • La sección principal es la sección [global] que nos permite configurar los parámetros generales del servicio.

  • La sección [homes] nos permitirá compartir las carpetas home de cada usuario del sistema, para que cada usuario pueda acceder a su carpeta home por la red.

  • La sección [printers] nos permitirá compartir impresoras.

Para compartir una carpeta, debemos crear una sección nueva. El nombre de la sección, será el nombre del recurso compartido. Ejemplo, si queremos compartir la carpeta /home/ archivos_compartidos y llamar al recurso compartido archivos_compartidos, debemos crear una sección llamada [archivos_compartidos].

Para facilitar la configuración de samba existe una herramienta llamada swat que permite, vía Web, configurar la aplicación.

En el archivo smb.conf se pueden configurar más de 300 parámetros y miles de configuraciones, pero analizaremos los parámetros más importantes, para compartir archivos e impresoras.

Vamos a ver un sencillo ejemplo de archivo de configuración de samba (smb.conf):

#Sección global, parámetros generales
[global]
# Seguridad por usuarios
security = user

# Grupo de trabajo "Oficina"
workgroup = Oficina

# 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

# Sección homes, carpetas home de usuarios
[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

# Sección printers, impresoras
[printers]
path = /var/tmp
printable = yes
min print space = 2000

# Carpeta común archivos_compartidos
[archivos_compartidos]
# Ruta de la carpeta compartida
path = /home/archivos_compartidos

# Explorable
browsable = yes

# Lectura y escritura
read only = no

# Máscara de creación de archivos (rxwrxw---)
create mask = 0770

# Máscara de creación de carpetas
directory mask = 0770

# Carpeta común administracion
[administracion]
browsable = yes
read only = no
path = /home/archivos_compartidos/administracion
# Carpeta común de la empresa (solo lectura)
[programas]
browsable = yes
read only = yes

# Se admiten invitados
guest ok = yes
path = /home/invitados

# Parámetros impresora
[HP_1010]
path = /tmp

# Se permite imprimir
printable = yes

Las líneas que comienzan por almohadilla (#) o punto y coma (;) son líneas de comentarios y son ignoradas por samba.

El archivo smb.conf está dividido en secciones. Ninguna de las secciones son obligatorias aunque normalmente suelen tener las siguientes secciones:

Sección [global]

En la sección [global] se configuran los parámetros globales que determinarán el modo de comportamiento general del servidor samba. Los parámetros que se omitan tomarán el valor por defecto. Existen unos 300 parámetros que se pueden configurar en ésta sección.

Vamos a exponer los parámetros más importantes y el valor:

hosts allow = 192.168.

Permite especificar desde qué direcciones IP se podrá acceder al servicio. Ej.: Si ponemos 192.168. significa todas las que empiecen por 192.168. accederán al servicio. Se pueden poner IP concretas.

hosts deny = 10.

Igual que hosts allow pero para especificar los rangos de IP que no sean permitidos

security = share

Permite determinar el modo de compartir los recursos y podemos elegir entre cinco opciones: share, user, domain, server y ads.

  • Share: para compartir los recursos con contraseña.
  • User: los permisos se gestionan por usuario.
  • Domain: los permisos se gestionan los permisos por dominio.
  • Server: los permisos son gestionados por otro servidor.
  • Ads: hace que samba se comporte como un miembro de un dominio de Active Directory y se requiere un servidor Windows Server.

Samba no puede actuar como controlador de dominio de Active Directory, es decir, no puede sustituir a un Windows Server, pero sí puede actuar como controlador de dominio de Windows NT.

domain logons = yes

Para que samba sea autentificador del dominio. En este caso, habrá que poner "security =user".

domain master = yes

Para que samba sea controlador de dominio. En este caso, habrá que poner "domain logons=yes.

encrypt passwords = yes

Hace que samba solo reconozca passwords encriptados, para impedir que otros usuarios puedan descubrirlas capturando paquetes de datos (sniffing). Los password encriptados de samba se guardan en /etc/smbpasswd.

Para que un usuario pueda acceder a samba debe existir en el sistema pero no tiene por qué coincidir la contraseña de un usuario en el sistema Linux con la de samba aunque es aconsejable.

logon script = INICIO.BAT

Indica el script que ejecutarán los clientes Windows al loguearse.

password server = 192.168.0.10

Indica qué servidor autentificará a los usuarios.

wins server = 192.168.0.10

Indica quién es el servidor de nombres wins

wins support = yes

Hace que nuestro samba sea servidor wins

load printers = yes

Para que se compartan las impresoras.

Sección [homes]

En ésta sección se configuran los parámetros para compartir la carpeta home (carpeta donde se almacena el perfil y todos los documentos) de cada usuario. Esta sección es opcional pero sino existe, no se compartirán las carpetas home de cada usuario.

Se debe utilizar cuando se desean crear perfiles móviles de forma que cuando se identifique el usuario en cualquiera de los PCs de la red, se cargue de forma automática su perfil.

Sección [printers]

En ésta sección se configuran los parámetros para compartir las impresoras o colas de impresión disponibles en el servidor.

Sección por cada carpeta compartida

Cada vez que se comparte una carpeta, hay que crear una sección denominada como se desee ya que dicho nombre será el nombre del recurso compartido.

Ejemplo, si deseamos compartir la carpeta /home/samba/compartida crearemos una sección [compartida] donde se configurará dicho recurso compartido con los parámetros específicos para dicho recurso. Los parámetros más destacados:

browseable = yes

Indica si el recurso compartido será visible cuando se escanea la red, por ejemplo haciendo clic en "Mis sitios de red" en Windows.

create mask = 0770

Establece la máscara de los permisos que tendrás los archivos cuando se creen y con directory mask para la creación de carpetas.

guest ok = yes

Indica que cualquier usuario sin contraseña tiene permiso de acceso

valid users = antonio, juan, pedro, tomas

Indica qué usuarios pueden acceder al recurso.

Consejos

Es conveniente crear en /home una carpeta llamada samba y que cuelguen de ella todas las carpetas compartidas, para tener todos los datos de usuario dentro de /home y sea sencillo hacer las copias de seguridad.

Si somos servidores de dominio y vamos a tener en nuestra red clientes Windows, es conveniente crear un recurso compartido llamado netlogon para poder almacenar scripts de inicio y archivos de políticas ya que los clientes Windows están preconfigurados para acceder a dicho recurso compartido, por ejemplo, si samba es controladores de dominio creamos la sección y con parámetros siguientes:

[netlogon]
path = /home/samba/netlogon
public = no
writeable = no
browsable = no

Si deseamos almacenar los drivers de impresora para los clientes Windows crearemos una sección [print$].

Es conveniente crear una copia de seguridad del archivo smb.conf antes de hacer ningún cambio para poder retornar al estado anterior en caso de que hagamos una modificación incorrecta del archivo que impida que arranque el servicio.

Para comprobar que nuestro archivo smb.conf está correcto, podemos utilizar el comando testparm que analiza cada línea en busca de errores.

Para tener una descripción detallada de todos los parámetros se puede hacer una consultar con el comando man:

aceitunero@Pc15:~$ man smb.conf

Arranque y parada de samba

Samba, al igual que todos los servicios en Debian, dispone de un script de arranque y parada en la carpeta /etc/init.d.

Si deseamos reiniciar el servidor samba, debemos ejecutar:

aceitunero@Pc15:~$ sudo /etc/init.d/samba restart

Este comando reiniciará los dos demonios (procesos residentes) que necesita samba para su funcionamiento: nmbd y smbd.

Y si deseamos detener el servidor samba, debemos ejecutar:

aceitunero@Pc15:~$ sudo /etc/init.d/samba stop

Espero que os sea de ayuda a todos un saludo:

Antonio

No hay comentarios:

Publicar un comentario

No olvides dejar tu comentario.