Samba

De WikiMar
Dreceres ràpides: navegació, cerca

A page with information about Samba and how to use it to share files with Windows can be found at http://lpi.aluzina.org/wiki/Plantilla:Samba

Here a copy of it:


  • El nombre samba viene del protocolo SMB (Server Message Block), usado extensivamente en Microsoft Windows mediante el protocolo NBT (NetBIOS over TCP/IP). CIFS es la continuación del protocolo SMB y tiene múltiples mejoras. Soportado completamente a partir de Windows 2000 y Samba 3.
  • Miramos qué ficheros contiene el paquete samba: equery f samba.

Como cliente

  • smbclient. Es como un cliente ftp para trabajar con recursos compartidos, se conecta al recurso y permite bajar y subir archivos.
  • smbmount. Es el mecanismo de montaje de recursos compartidos SMB/CIFS. Para ello, hay que activar en el núcleo esa opción (File Systems/Network FileSystems/CIFS o SMB). También se puede hacer con el net-fs/fusesmb.
  • Acceso modo gráfico: aplicación smb4k y Kde I/O slave smb:/.

Como servidor

  • Fichero de configuración /etc/samba/smb.conf.
    • Se parece a los ficheros de configuración .ini de Windows. Hay una sección principal [global] y luego cada recurso compartido se especifica mediante nuevas secciones, al final. Se pueden comprobar todas sus opciones mediante el comando testparm -v. Algo así como hacíamos con el postfix con el comando postconf.

Un servidor puede actuar en modo grupo de trabajo o en modo PDC, como grupo de trabajo:

  • Variable workgroup.
  • Añadir recursos compartidos al final del fichero, como secciones aparte. Las variables que controlan los recursos compartidos más importantes son:
    • path. La más importante, indica dónde se guardan los ficheros.
    • comment. Comentario que sale en la barra de información del explorador de Windows.
    • public, sinónimo de guest ok. No hace falta autentificarse para usar el recurso compartido, se utilizará la cuenta de guest.
    • writable. Se puede escribir.
    • printable. Es una impresora (se gestionan como un recurso más).
    • create mask. Con qué máscara se crean los ficheros nuevos.

Autentificación en Samba

Como servidor

  • Base de datos de usuarios en otro fichero: /var/lib/samba/private/smbpasswd (variable smb passwd file). Por qué no usar el /etc/shadow ?! Es imposible por el protocolo a partir de Windows 2000. Las contraseñas ya se envían encriptadas desde el cliente. Por lo tanto, habrá dos bases de datos de contraseñas distintas en nuestro sistema: el /etc/shadow y el smbpasswd, el primero se controla con los comandos useradd y passwd y el segundo con smbpasswd. Para utilizar samba autentificando con un usuario, éste tiene que estar dado de alta en el smbpasswd!!!
  • Nivel de seguridad: (variable security):
    • SHARE. El usuario no importa, se ponen contraseñas por recurso compartido.
    • USER. El método por defecto. Se inicia sesión con el usuario en cuestión antes de intentar acceder al recurso compartido.
    • DOMAIN. Es igual que USER pero las contraseñas de validan en otro PDC, si el servidor ha sido añadido como máquina a este otro dominio.
    • SERVER. Igual que DOMAIN, la petición de autentificación va a otro servidor, pero no tiene que ser miembro del dominio.

Como cliente

  • En máquina local: pam_smbpass, ya viene instalado con la suite Samba.
  • Autentificar en máquina remota: pam_winbind. Como esto no es muy frecuente, ya que normalmente se usa Linux como servidor Samba, esto no lo veremos.

Configurar Samba como PDC (Primary Domain Controller)

En Samba 3:

  • Editar el fichero de configuración /etc/samba/smb.conf. Y añadir las siguientes variables:
    • workgroup = DOMINIO
    • domain logons = Yes
    • quitar comentario en el recurso netlogon.
    • En Ubuntu: comentar la línia "invalid users = root"
  • Creamos un grupo para las estaciones del dominio: groupadd smbstation
  • Para cada máquina que vaya a entrar en el dominio:
    • useradd -s /bin/false -g smbstation nombredemaquina\$ -c 'maquina xp'
    • smbpasswd -a -m nombredemaquina
  • Para cada usuario que vaya a entrar en el dominio:
    • useradd ... (si no estaba ya creado en unix, tiene que existir un usuario real).
    • smbpasswd -a usuario (y ponemos la contraseña samba).
  • Creamos una contraseña al usuario root (mapeado como Administrador):
    • smbpasswd -a root

En Microsoft Windows XP Professional:

  • Coger el editor de registro: regedit y en el directorio:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters

Cambiar la clave RequireSignOrSeal y ponerla a 0.

  • En el menú inicio, botón derecho en Mi PC, pestaña Nombre de equipo, botón Cambiar... (nombre de equipo o unirse a un dominio). Sale un cuadro: ponemos el mismo nombre de equipo que pusimos en el useradd, y luego seleccionamos dominio y escribimos el nombre del dominio. A continuación sale otro cuadro para autentificar. Ponemos usuario: "root", contraseña la que pusimos en el último paso del Samba.
  • Hay que reiniciar.

Info. sacada de Convirtiendo Samba en PDC.

Perfiles

  • Configuración local del usuario C:\Documents and Settings\Usuario\. Hay de tres tipos:
    • Perfiles locales. Están siempre en el cliente. (variable logon path dejarla vacía)
    • Perfiles móviles (roaming). Están en el servidor y se van copiando en los clientes.
    • Perfiles mandatorios. Están en el servidor pero no pueden modificarse desde los clientes.

En la configuración por defecto, ya viene el perfil móvil configurado en el /home/usuario/profile/, pero este mecanismo es muy ineficiente y inoperativo, ya que cuando empieza a crecer (normal) el inicio de sesión puede tardar minutos y es preciso redireccionar carpetas y optimizar la carga. Un documento interesante está en Samba & Windows Profiles.

Scripts de entrada

La ejecución de scripts de entrada, son scripts (.BAT o .CMD) que se ejecutan en el cliente cuando un usuario se conecta a un dominio Windows NT. La variable es logon script = %M.bat (mirar la sección de sustitución de variables en el smb.conf). Esto se ejecuta del recurso netlogon. El %M.bat podría tener algo así como:

net use h: \\cafe\usuario

Muy útil para poner el /home en una unidad al entrar.