| 
 | 
|  | 
| 
 | 
| Este artículo está disponible en los siguientes idiomas: English Castellano ChineseGB Deutsch Francais Italiano Nederlands Russian Turkce | 
| 
 ![[Photo of the Author]](../../common/images/SebastianSasias.jpg)  por Sebastian Sasías <[sasias](at)[linuxmail](dot)[org]> Sobre el autor: Utiliza Linux desde hace varios años como herramienta
    de soporte para soluciones tecnológicas. Contenidos: | 
![[Illustration]](../../common/images/article247/sambalogo.jpg) 
Resumen:
    Este artículo, complementa algunos aspectos vistos en
    LinuxFocus sobre el producto SAMBA y su utilidad para compartir
    recursos en redes heterogéneas Unix-Windows. En
    particular, está enfocado en la utilización del
    sistema operativo Linux en conjunto con el producto SAMBA para
    lograr poner en funcionamiento servicios típicamente
    brindados por sistemas operativos Windows. 
    Este hecho además de mostrar la potencialidad y
    flexibilidad de Linux tiene una importante consecuencia
    económica si se tiene en cuenta que:
    - Implica un ahorro importante en pagos de licencias de
    servidores Windows.
    - Puede lograrse una performance igual o mejor utilizando menos
    recursos de hardware de los que requeriría un servidor
    Windows (en términos de procesador y memoria RAM).
    Un servidor Linux con SAMBA debidamente configurado puede
    sustituir a un servidor NT/2000, no solo en las tareas de
    compartir archivos y brindar un servicio activo de directorios
    (ADS, Active Directory Service), sino que además puede
    comportarse como PDC (Primary Domain Controller), efectuando la
    autentificación de usuarios con clientes Windows
    2000/NT/98/95, compartiendo recursos (directorios e impresoras)
    y personalizando las sesiones de usuarios.
    Este artículo se concentra particularmente en estos
    aspectos.
    Como resultado, para muchos ambientes en donde esta es la
    utilidad de un servidor Windows, el servidor Linux con SAMBA
    sustituye completamente las funciones de dicho servidor basado
    en tecnología de Microsoft, sin necesidad de
    alteración alguna en las máquinas clientes.
    Para el desarrollo de los pasos que se presentarán, se
    asume que SAMBA ya está instalado y funcionando
    correctamente en la máquina que se usará como
    servidor y que el lector está familiarizado con
    conceptos básicos de servidores Linux y Windows.
    
|  | 
Considérese un servidor Linux/Samba, haciendo el
    papel de PDC, donde además cada usuario autentificado
    tiene acceso a dos directorios compartidos en el servidor, uno
    para un área pública y otro para un área
    privada. En el desarrollo del artículo se
    considerará un caso bastante frecuente de acceso a un
    área privada, el acceso a un directorio propio de cada
    usuario.
    
    Detalles a considerar:
    
    Nombre NetBIOS del
    Servidor Linux/Samba: SMBServer
    Nombre de dominio Windows (workgroup): ELDOMINIO
    Particion privada por usuario: H: (Windows) => /home/
    (servidor Linux)
    Particion pública: P: (Windows) =>
    /home/public
    
    
    En la figura que aparece a continuación se esquematiza
    una red con máquinas clientes corriendo sistemas
    Windows, que hacen uso de recursos y servicios del servidor
    Windows NT/2000 que puede ser reemplazado por el servidor Linux
    con SAMBA.
    
    

Seguir los pasos que se indican a
    continuación:
    
    1) Crear los usuarios que deben ser autentificados en el
    servidor PDC (Linux con Samba), que hará el trabajo de
    un servidor Windows NT/2000. Utilizar el comando
    adduser, useradd o userconf,
    también se puede utilizar alguna herramienta de entorno
    gráfico para la administración de usuarios
    (Webmin, Linuxconf, Yast, etc.).
    
    Asegurarse de que los usuarios solamente accedan al servidor
    Linux/Samba (si es lo que desea), o sea que no tengan acceso al
    shell de Linux, para ello deberán tener como home el
    directorio /dev/null y como
    shell /bin/false
    
    2) Migrar los usuarios UNIX para Linux/Samba/Windows, creando
    el archivosmbpasswd.
    
    cat /etc/passwd |
    mksmbpasswd.sh > /etc/samba/smbpasswd
    
    Otra forma es ejecutar los comandos de Samba para crear
    usuarios Samba y definir las contraseñas con:
smbadduser
     smbpasswd
    
    Las cuales funcionan de forma similar a los comandos
    tradicionales adduser y passwd.
    
    3) Editar el archivo de configuración de Samba
    smb.conf, asegurándose de incluir/descomentar las
    opciones que se muestran a continuación:
    
    netbios name = SMBServer
    workgroup = ELDOMINIO
    server string = Linux Samba NT Server
    log file = /var/log/samba/%m.log
    max log file = 0
    security = user
    encrypt password = yes
    smb password file = /etc/samba/smbpasswd
    ssl CA certificate = /usr/share/ssl/.... (descomentar)
    socket options = (descomentar)
    local master = yes
    preferred master = yes
    domain master = yes
    domain logons = yes
    logon script = logon.bat
    wins support = yes
    
    Nota:
    Para login específico por usuario, cambiar el "logon
    script" por "%U.bat", o sea que cada
    usuario tiene un "script de logon" con su nombre de
    usuario, también podría usarse %u. Si se desea de
    alguna forma considerar el grupo al que pertenece el usuario,
    puede utilizarse %g o %G, el significado preciso de estos
    parámetros y otros, puede encontrarse consultando el
    manual ( man smb.conf )
    
    4) Crear los recursos compartidos
    En el archivo smb.conf, comentar todos los "shares"
    de ejemplo y hacer los agregados necesarios para que se
    incorpore la siguiente información:
    
    [netlogon]
    comment = Scripts de Inicializacion
    path = /home/netlogon
    read only = yes
    guest ok = yes
    browseable = no
    
    [home]
    comment = Directorio Particular de Usuario
    path = /home/%U
    browseable = yes
    writable = yes
    
    [publico]
    comment = Directorio Publico
    path = /home/public
    browseable = yes
    writable = yes
    guest ok = yes
    create mask = 0777
    force create mask = 0777
    
    Salvar el archivo smb.conf
    
    5) Para chequear la correctitud del archivo smb.conf, se puede
    usar el comando:
    
    testparm
    
    El mismo, hace un análisis del archivo smb.conf y
    reporta errores si los encuentra.
    
    6) Crear los directorios /home/netlogon y
    /home/public con permisos 0754 (netlogon) y 0777
    (public).
    
    7) Editar el script de Logon - archivo logon.bat.
    Importante: Utilizar un editor de
    texto de Windows, tipo Notepad para crear este archivo
    logon.bat (para que quede salvado como archivo de texto estilo
    MS), también puede hacerlo bajo Linux y luego utilizar
    alguna utilidad de conversión del formato.
    
    net time \\SMBServer /y (también se puede usar: /yes en lugar de
    /y)
    net use H: \\SMBServer\home -y (también
    se puede usar: /yes o /y en lugar de
    -y)
    net use P: \\SMBServer\public -y
    
    8) Incluir el información de SMBServer en el
    archivo lmhosts
    Editar el archivo /etc/samba/lmhosts (o /etc/lmhosts) e
    incluir una línea con información de su
    SMBServer
    
    por ejemplo una linea: 192.168.0.10 SMBServer
    
    9) Iniciar/Reactivar el demonio de Samba (smbd)
    
    service smb
    restart
    
    Si esto no funciona en la distribución que utiliza, no
    dude en usar los clásicos:
    ps -auxgx | grep
    smb
    kill -9 <ID proceso de smb>
    smbd
    
    10) Verifique con smbclient que la configuración
    indicada anteriormente esté funcionando.
    
    smbclient -L
    //SMBServer
    
    En caso de que aparezca "Password:", presionar
    "Enter" y se verán los recursos compartidos
    por el servidor.
    
    11) Hacer un login de clientes Windows 95/98/NT en el dominio
    ELDOMINIO con uno de los
    usuarios Linux/Samba previamente creado(ver pasos 1 y 2).
    
    En Windows 95/98/ME, se debe configurar según la
    siguiente secuencia de acciones:
Inicio => Configuración => Panel de Control => Red => Cliente para redes Microsoft => Propiedades.
Para el caso de clientes Windows NT/2000
    (Workstation/Professional), la idea es similar aunque la
    secuencia no sea exactamente la misma.
    
Hacer un click en la opción "Iniciar
    sesión en dominio de Windows NT" y escribir el
    dominio
    ELDOMINIO (workgroup).
    
    
A continuación se presenta el contenido de un archivo
    de configuración de SAMBA, que ha sido probado con
    varias distribuciones y que el lector puede modificar a gusto
    para lograr lo que se presenta en este artículo. Cada
    instrucción que aparece está debidamente
    comentada.
    
    Como último consejo para quienes quieran lograr una
    rápida configuración de SAMBA, pueden instalar
    Webmin y/o SWAT, herramientas que permiten configurarlo
    amigablemente.
    
    #============================================================#
    # /etc/smb.conf
     #------------------------------------------------------------------------------------------------------------#
    # Archivo principal de configuracion de SAMBA
    # Esqueleto de archivo de configuracion, establecer
    selectivamente
    # los parámetros, de acuerdo a las
    necesidades.
     #------------------------------------------------------------------------------------------------------------#
    # Probado en los sistemas: Solaris y Linux/Distribuciones:
     # RedHat 6.0, 7.0 y 7.1
     # Solaris 7
    # Slackware 7.x
    # Mandrake 6.1, 7.0 y 8.1
    # SuSe 7.2
     #------------------------------------------------------------------------------------------------------------#
    # Ultima modificacion: 08/12/2001
    # Sebastian Sasias - sasias(at)linuxmail(dot)org
    #============================================================#
    #
    # Este archivo se ha desarrollado siguiendo las
    especificaciones de la
    # documentación de SAMBA, ver el smb.conf(5) manual
     #
    # OBS: Una vez modificado este archivo, testearlo con el
    comando "testparm"
     #
    #====================== Opciones Globales
    =======================#
     #
    # Opciones generales de configuración
     #
    [global]
     #......................................................................................................................................#
    # workgroup = NT-Domain-Name o Workgroup-Name, ej:
    MIDOMINIO 
    # Dominio PDC 
    workgroup =
    ELDOMINIO
    #......................................................................................................................................#
    # Nombre con el que aparecerá anunciada esta
    máquina en las demas
    netbios name =
    SMBServer
    #......................................................................................................................................#
    # Comentario que aparece en la ventana "Entono de red"
    en Windows
     server string = Samba Server de este
    lugar
    #......................................................................................................................................#
    # Esta opcion es importante por razones de seguridad,
    para permitir 
    # conexiones desde ciertas maquinas que estan en
    la red local 
    # En este ejemplo, se permite el acceso desde
    una red 192.168.8.0 (tipicamente 
    # de clase C) y desde la interfaz "loopback".
    Para mas detalles, ver las paginas 
    # del man de smb.conf 
    # Ej: Los recursos compartidos con samba
    sólo pueden ser utilizados 
    # por maquinas cuya IP empieza por 192.168.8 y
    127 (línea comentada abajo)
    ; hosts allow = 192.168.8.
    127.
     #......................................................................................................................................#
    # Si desea cargar automaticamente la lista de
    impresoras, en lugar de 
    # ponerlas individualmente, utilizar
    esto: 
    ; load printers =
    yes
     #......................................................................................................................................#
    # Se puede sobreescribir la ubicacion del
    printcap
    ; printcap name =
    /etc/printcap
     #......................................................................................................................................#
    # En las propiedades del nombre printcap del SystemV
    para lpstat debe permitir 
    # obtener automaticamente una lista de
    impresoras del spool system de 
    # SystemV (valga la
    redundancia)
    ; printcap name =
    lpstat
     #......................................................................................................................................#
    #No deberia ser necesario especificar el tipo de sistema
    de impresión a menos
     #que sea algo no estandar.
     #Los sistemas de impresión actualmente soportados
    son:
     # bsd, sysv, plp, lprng, aix, hpux, qnx 
    ; printing =
    bsd
     #......................................................................................................................................#
    # Descomentar esto si quiere una cuenta de usuario
    invitado (guest), 
    # se debe agregar esto a /etc/passwd, por
    defecto el usuario "nobody" 
    # sera usado en caso de que no se especifique
    algo. 
    ; guest account =
    pcguest
     #......................................................................................................................................#
    # Esto es para indicarle a Samba que use un log aparte
    por cada maquina 
    # que se conecte al servidor 
    log file =
    /var/log/samba/log.%m
     #......................................................................................................................................#
    # Para indicar un maximo de espacio (en KB) de los
    archivos de log.
     max log size = 50
     #......................................................................................................................................#
    # ver security_level.txt por mas
    detalles
    # Especifica como se efectua la
    validación de contraseñas 
    # Seguridad a nivel de usuario, cada usuario con
    su password (smbpasswd) 
    security = user
     #......................................................................................................................................#
    # Si security = server entonces la validación se
    efectuará contra otro servidor 
    # Usar opcion "password server" solo con
    security = server 
    # En password server indicar la IP del servidor
    encargado de autentificar. 
    ; password server =
    <NT-Server-Name>
     #......................................................................................................................................#
    # Si desea usar passwords encriptadas, leer los archivos
    ENCRYPTION.TXT, 
    # Win95.txt y WinNT.txt que vienen en la
    documentacion de Samba.
    # No habilitar esta opcion a menos que se cuente
    con la informacion adecuada. 
    # Informacion: Win95, Win98 y WinNT
    envían sus passwords encriptadas 
    encrypt passwords =
    yes
     #......................................................................................................................................#
    # Utilizando esta opcion, se puede personalizar la
    configuracion por cada
    # maquina de la red. El parametro %m es
    reemplazado con el nombre de 
    # netbios de la maquina que se conecta.
    
    ; include =
    /usr/local/samba/lib/smb.conf.%m
     #......................................................................................................................................#
    # Segun dice la documentacion y algunos "tips" que andan
    en la vuelta, esta
    # opcion brinda mejor performance.
    
    # Ver speed.txt y las paginas del manual por mas
    detalles
    socket options =
    TCP_NODELAY
     #......................................................................................................................................#
    # Configura Samba para usar multiples interfaces de
    red
    # Si se tienen multiples interfaces de red, se
    deben listar aquí como en el ejemplo
    # Ver las paginas del manual por mas
    detalles. 
    ; interfaces =
    192.168.8.2/24192.168.12.2/24
     #......................................................................................................................................#
    # Browser Control Options: 
    # poner "local master = no" si NO se desea que
    Samba sea el "master browser" en la red.
     local master =
    yes
     #......................................................................................................................................#
    # OS Level determina la precedencia de este servidor en
    la eleccion del 
    # master browser. El valor por defefecto deberia
    ser razonable
    ; os level =
    33
     #......................................................................................................................................#
    # La opcion "domain master" es para especificarle a
    Samba que sea un
    # "Domain Master Browser". Esto permite a Samba
    prestar servicios de controlador
    # de dominio NT/2000 Server. Puede tener
    "visibilidad" sobre varias sub-redes TCP/IP
    # NO UTILIZAR esta opcion si ya hay en la red un
    Windows NT domain controller 
    # (PDC) haciendo este trabajo
    
    domain master =
    yes
     #......................................................................................................................................#
    # Preferred Master hace que Samba forzosamente haga una
    eleccion de 
    # local browser en el momento del arranque y le
    da una oportunidad ligeramente
    # más alta de ganar la
    elección 
    # Es la capacidad de obtener la lista de
    maquinas conectadas a la red. 
    # Si se tienen varios servidores el "preferred
    master" será el servidor de preferencia
    
    # para los clientes que buscan en una lista de
    servidores. 
    preferred master =
    yes
     #......................................................................................................................................#
    # Usar solamente si hay un NT server de la red, que esta
    configurado como 
    # PDC (primary domain controller).
    
    ; domain controller =
    <NT-Domain-Controller-SMBName>
     #......................................................................................................................................#
    # Habilitar esta opcion si se desea que SAMBA sea
    "domain logon server" para 
    # estaciones clientes Windows 9x/ME.
    
    domain logons =
    yes
     #......................................................................................................................................#
    # Si se habilita "domain logons" entonces hay que
    utilizar un script de logon,
    # por cada maquina o por cada usuario de la red
    Windows
    
    # Para correr logon batch especifico por maquina
    cliente de la red 
    ; logon script =
    %m.bat
    
     # Para correr un script logon por cada
    usuario
     ; logon script =
    %U.bat
     #......................................................................................................................................#
    # Donde se almacenan los perfiles (solo para Win95/98 y
    WinNT) 
    # %L se sustituye por el nombre de NetBIOS de
    este servidor, %U se sustituye
    # por el nombre de usuario. 
    # Se debe descomentar el elemento [Profiles] que
    aparece mas abajo 
    ; logon path =
    \\%L\Profiles\%U
     #......................................................................................................................................#
    # Soporte de Windows Internet Name Service:
    
    # WINS Support - le indica al NMBD si habilita
    su WINS Server 
    # El protocolo WINS convierte los nombres de las
    maquinas en direcciones IP, 
    # es lo mismo que DNS para TCP/IP.
     ; wins support =
    yes
     #......................................................................................................................................#
    # WINS Server - Le dice al componente de Samba NMBD que
    sea un cliente
    # WINS en la red. 
    # OBS: Samba puede ser una de las dos cosas:
    Servidor WINS, o Cliente 
    # WINS, pero NO ambas a la
    vez
    # Aqui se especifica la IP del servidor
    WINS
     ; wins server =
    192.168.8.1
     #......................................................................................................................................#
    # WINS Proxy - Le dice a Samba que debe negociar las
    preguntas de resolución
    # de nombres, "representando" a sus clientes
    ante un servidor WINS.
    # Para ello debe haber al menos un servidor WINS
    en la red. Por defecto es NO. 
    ; wins proxy =
    yes
     #......................................................................................................................................#
    # DNS Proxy - Le indica a Samba cuando debe o no,
    intentar resolver nombres
    # de NetBIOS usando DNS nslookups. Los valores por defecto
    hasta versiones
    # 1.9.17 es "yes", esto fue cambiado en la version 1.9.18 a
    "no". 
    # Indicamos que la resolución de
    nombres se hará mediante DNS 
    # dns proxy = yes
     # dns proxy = no (la resolución se hará mediante
    el archivo lmhosts )
    #......................................................................................................................................#
    # Si no se especifica logon drive, se automonta la
    unidad Z:
     logon drive = P:
     #......................................................................................................................................#
    #al hacer login se ejecuta el script
    /etc/samba/netlogon/SAMBA.BAT 
    # y monta las unidades con net use
    
    logon script =
    SAMBA.BAT
    
     #====================== Share Definitions
    ========================#
    
     # Directorio personal de cada usuario
    
    # Unidad P: 
    
    [homes]
     comment = Home Directories
     browseable = no
     writable = yes
     readonly = no
     force create mode = 0700
     create mode = 0700
     force directory mode = 0700
     directory mode = 700
    
     #------------------------------------------------------------------------------------------------------------#
    # Directorio para almacenar archivos temporales
    
    # Unidad T: 
    
    [tmp]
     comment = Archivos temporales
     path = /tmp
     readonly = no
     public = yes
     writable = yes
     force create mode = 0777
     create mode = 0777
     force directory mode = 0777
     directory mode = 0777
    
    
    #------------------------------------------------------------------------------------------------------------#
    # CD-ROM del servidor 
    # Unidad L: 
    
    [cdrom]
     comment = CD-ROM
     path = /mnt/cdrom
     public = yes
     writable = no
    
    
    #------------------------------------------------------------------------------------------------------------#
    # Grupo, corresponde a /home/grp.nombre_grupo
    
    # /home/usuario/grupo es un enlace a
    /home/grp.nombre_grupo 
    # grp.nombre_grupo tiene permisos 770
    
    # Unidad G: 
    
    [grupo]
     comment = Directorio grupo
     path = /home/%u/grupo
     writable = yes
     readonly = no
     force create mode = 0770
     create mode = 0770
     force directory mode = 0770
     directory mode = 0770
    
    
    #------------------------------------------------------------------------------------------------------------#
    # Aquí se colocan todas las aplicaciones, soft.
    de instalación, 
    # aplicaciones corporativas, etc.
    
    # permisos de /red y /red/instala 755 y
    propietario root (por ahora) 
    # Unidad R: 
    
    [red]
     comment = Directorio /red
     path = /red
     writable = yes
     readonly = no
     force create mode = 0750
     create mode = 0750
     force directory mode = 0750
     directory mode = 0750
    
     #------------------------------------------------------------------------------------------------------------#
    [netlogon]
     comment = Servicios de Logon de Red
     path = /etc/samba/netlogon
     guest ok = yes
     writable = no
     locking = no
     public = no
     browseable = yes
     share modes = no
    
    
    #------------------------------------------------------------------------------------------------------------#
    #============================================================#
A medida que evolucionan las versiones de SAMBA y otras
    herramientas de Linux, es posible que algunos de los aspectos
    aquí presentados pierdan vigencia. De hecho a lo largo
    de de la evolución de SAMBA, los nombres de ciertos
    parámetros de su archivo de configuración han
    cambiado ligeramente, con el objetivo de lograr una mejor
    organización.
    
    Si en algún momento durante la configuración de
    SAMBA recibe mensajes de error indicando algún
    parámetro desconocido, tiene dos alternativas
    rápidas para corregir el problema:
    - Fijarse en el archivo smb.conf que se instala por defecto, el
    mismo generalmente contiene lineas comentadas que pueden tener
    información acerca del "parámetro
    problemático".
    - Leer la documentación de SAMBA, comenzar por el
    archivo que describe los cambios respecto a versiones
    anteriores..
    
SAMBA es
    un producto distribuído bajo los términos de GPL
    (Licencia Pública General)
    Linux es marca registrada de Linus Torvald.
    Solaris es sistema operativo y marca registrada de Sun
    Microsystems.
    MS Windows es sistema operativo y marca registrada de la
    empresa Microsoft.
    La utilización de SAMBA no implica pagos de licencias a
    Microsoft.
    
| 
 | 
| Contactar con el equipo de LinuFocus © Sebastian Sasías, FDL LinuxFocus.org Pinchar aquí para informar de algún problema o enviar comentarios a LinuxFocus | Información sobre la traducción: 
 | 
2002-04-29, generated by lfparser version 2.28