[LinuxFocus-icon]
<--  | Hogar  | Mapa  | Indice  | Busqueda

Noticias | Arca | Enlaces | Sobre LF
Este documento está disponible en los siguientes idiomas: English  Castellano  ChineseGB  Deutsch  Francais  Italiano  Nederlands  Portugues  Russian  Turkce  Arabic  

[Foto del autor...]
por Éric Seigne
<erics(at)rycks.com>

Sobre el autor:

Trabajo en el mundo del Software Libre entre otros, desarrollo aplicaciones para acceso a base de datos desde web usando herramientas como PostGreSQL, MySQL y PHP. Para tener algo de libertad en mi forma de trabajar (hacer algun trabajo de vez en cuando... como comenzar un proyecto en C), recientemente he establecido mi propio negocio. Para empeorar las cosas, soy miembro de ABUL www.abul.org (¡y aún no he pagado mi suscripción!).



Traducido al español por:
Jose María Dueñas Quesada <josemaria.duenas(en)hispalinux.es>

Contenidos:

 

Configuración de Samba

[Illustration]

Resumen:

Intentaré explicar aqui el trabajo que hemos realizado para implementar un servidor Linux/Samba usado como un controlador de dominio para una red Windows.
Detallaremos la administracion de permisos de usuario, perfiles, etc.
Este documento de basa en Debian GNU/Linux 2.2, por lo que mi archivo smb.conf puede ser ligeramente diferente al tuyo.
La versión Samba usada en este articulo es la 2.0.7


_________________ _________________ _________________

 

Instalando Samba.

Vamos a suponer que conoces algo acerca de samba y que ya lo tienes instalado en tu servidor.
Si no es asi, para una rápida instalación, prueba:
Debian: apt-get install samba
RedHat/Mandrake: rpm -ivh /mnt/cdrom/RedHat(Mandrake)/RPMS/samba*

 

El archivo de configuración: Opciones generales

Samba usa un único archivo de configuración en el cual puedes encontrar bloques como [global].

¡Samba usa solamente un archivo de configuración!


<minimalist smb.conf file>
[global]
   printing = bsd
   printcap name = /etc/printcap
   load printers = yes
   guest account = pcguest

   log file = /usr/local/samba/log.%m

[tmp]
  comment = Temporary file space
  path = /tmp
  read only = yes
  public = yes
</file>

Si ejecutas Samba con este archivo de configuración, las máquinas Windows de tu red local serán capaces de ver, en Mis sitios de red, que una máquina Linux comparte un directorio temp en el cual tienes permisos de escritura.

ATENCIÓN: cuando actualices el archivo de configuración Samba, debes reiniciarlo usando: /etc/init.d/samba restart (para Debian)

 

El archivo de configuración: Parámetros "avanzados".

Vamos a detallar los siguientes parámetros:

 

Variables Samba

Variable Definición
Variables del cliente
%a Estructura del cliente
Ejemplo: Window 95, WfWG, Windows NT, Samba...
%I Dirección IP del cliente
%m Nombre netbios del cliente
%M Nombre DNS del cliente
Variables del usuario
%g Grupo primario del usuario
%H Directorio casa del usuario
%u Actual nombre Unix del usuario
Variables de compartición
%P Root de la presente compartición
%S Nombre de la presente compartición
Variables del servidor
%h Nombre DNS del servidor Samba
%L Nombre Netbios del servidor Samba
%v Versión de Samba
Otras variables
%T Fecha y hora actual

Ejemplo usando estas variables: Si las maquinas de la red usan Windows 3.11 y Windows 98, puedes crear dos archivos de configuración, uno para cada sistema, usando la variable %a.

 

Resultado: Nuestro archivo de configuración

<archivo smb.conf>

[global]
printing = bsd
printcap name = /etc/printcap
load printers = yes
guest account = nobody
invalid users = root

; fijamos su nombre netbios
netbios name = pantoufle
; esta es la red a escuchar
; (no necesitas Samba u otra tarjeta de red desde que controla la conexión
; a Internet)
interfaces = 192.168.0.1/255.255.255.0

; la seguridad del usuario implica que cada usuario debe tener una cuenta unix en el servidor
security = user

; El nombre del Grupo de trabajo al cual el servidor pertenece
workgroup = rycks
; La descripción del servidor, visible cuando se visualizan los detalles
; %h es el nombre DNS del servidor y %v la versión de Samba
server string = %h server (Samba %v)

; Usamos el archivo log, no únicamente el syslog
syslog only = no

; La información menos importante tiene que ser escrita en el syslog,
; la otra información se encuentra en /var/log/smb(nmb)/
syslog = 0;

; ¡Vamos a afinarlo!
socket options = IPTOS_LOWDELAY TCP_NODELAY \
SO_SNDBUF=4096 SO_RCVBUF=4096

; Usamos contraseñas encriptadas. Cuidado,
; cada cliente Windows 95 debe ser parchado con MS SMB
(parche se seguridad).
; NT4 debe ser parchado con SP3 o superior.
; No recuerdo en cuanto a lo que windows 3.11 se refiere:
; es probable que no soporte las contraseñas encriptadas:(
encrypt passwords = yes

; Este servidor tambien trabaja como un servidor WINS.
; WINS permite dos redes usando diferentes rangos de IP
; (por ejemplo 192.168.0.0/255.255.255.0 y 192.168.0.1/255.255.255.0)
; para ver los recursos compartidos en la "otra" red,
; tan pronto como el Gateway esté activo.
wins support = yes

; Nivel OS. Si es que nuestro servidor tiene dominio maestro, accesos locales, etc, es
; "superior" que el servidor NT, ¡si es que hay uno!
os level = 34

; Gestión del dominio
domain master = yes
local master = yes
preferred master = yes

; Gestión del dominio de conexión
domain logons = yes

; ¿Qué script ejecutar cuando un usuario se conecta?
; %g corresponde al nombre de grupo primario al que este usuario pertenece
logon script = %g.bat
; ¿En qué directorio podemos encontrar los archivos de script de inicio?
; %L es el nombre Netbios del servidor Samba
logon path=\\%L\netlogon
; ¿Dónde guardar los perfiles de usuario?
; %U es el login del usuario
logon home=\\%L\%U\winprofile

; ¿En qué orden comprobar los recursos para buscar
; el nombre de la máquina?
; Anota el broadcast al final ... a diferencia de Windows
; enviando el broadcast en una base normal.
name resolve order = lmhosts host wins bcast

; ¿Debe ser Samba usado como proxy DNS?
dns proxy = no

; Preservar los nombres de archivos en su caso
preserve case = yes
short preserve case = yes

; ¿Debemos sincronizar las contraseñas de Windows y Linux?
unix password sync = yes

; ¿Qué sincronización de contraseñas utilizar?
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\sUNIX\spassword:* \
%n\n *Retype\snew\sUNIX\spassword:* %n\n .

; Tamaño máximo del archivo log,
; evita que se sature el directorio /var :p
max log size = 1000

; Somos un servidor de hora: sería bueno sincronizar
; las máquinas un poco.
; Usaremos esta característica desde archivo .bat de inicio
time server = yes

; Especificamos donde esta el inicio de red.
; Sólo se usa para conectar la hora,
; ya que no necesitamos hacerla pública.
[netlogon]
path = /home/netlogon/%g
public = no
writeable = no
browseable = no

; El directoio casa para cada usuario
[homes]
comment = Home Directories
browseable = no

; Si deseamos o no que tenga permisos de escritura
read only = no

; El umask por defecto de Unix
create mask = 0700

; Por razones de seguridad, el directorio
; mask se establece a 700 tambien.
directory mask = 0700


; Compartimos FTP, es más fácil tenerlo en
; Mis sitios de red que ejecutar
; un programa específico.
[ftp]
path = /home/ftp/pub
public = yes
printable = no
guest ok = yes

; El directorio temporal
[tmp]
path = /tmp
public = yes
printable = no
guest ok = yes
writable = yes

; Otro directorio temporal especial
; para un usuario que necesite mucho espacio
[bigtemp]
path = /home/bigtemp
public = yes
printable = no
guest ok = yes
valid users = erics
writable = yes

</smb.conf (archivo)>

 

Lo que tenemos en el servidor

Como minimo debemos tener:



<file /home/netlogon/admin.bat>
net use P: \\pantoufle\homes
net use T: \\pantoufle\tmp
net time \\pantoufle /SET /YES
</file admin.bat>

<file /home/netlogon/teachers/teachers.bat>
net use P: \\pantoufle\homes
net use T: \\pantoufle\tmp
net time \\pantoufle /SET /YES
regedit /s \\pantoufle\netlogon\teachers.reg
</file teachers.bat>

<file /home/netlogon/pupils/pupils.bat>
net use P: \\pantoufle\homes
net use T: \\pantoufle\tmp
net time \\pantoufle /SET /YES
regedit /s \\pantoufle\netlogon\pupils.reg
</file pupils.bat>

<file /home/netlogon/teachers/teachers.reg>
[HKEY_CURRENT_USER\Software\Microsoft\Windows
\CurrentVersion\Explorer\User Shell Folders]
"Personal"="P:\\"
</file teachers.reg>

<file /home/netlogon/pupils/pupils.reg>
[HKEY_CURRENT_USER\Software\Microsoft\Windows
\CurrentVersion\Explorer\User Shell Folders]
"Personal"="P:\\"
</file pupils.reg>

Este archivo permite montar automáticmente el directorio personal del usuario al inicio como P: y el directorio como T:. La hora del sistema también se obtiene del servidor Samba.

NOTA: el archivo .bat debe estar en "modo DOS". La forma más fácil es crear este archivo con el Bloc de notas y después enviarlo al servidor.

 

Definiendo la política de seguridad del sistema (C) (TM) (R)

La seguridad de Windows es posible usando un controlador de dominio.

¡Esto es un título!. Bueno, lo tomé prestado de un documento de Microsoft, concerniente a su herramienta de Políticas de seguridad.

Así, para crear una Política de seguridad en Windows, por ejemplo para prevenir que algunos usuarios (¿todos?) puedan ejecutar regedit, un programa DOS, etc., tienes que usar poledit.exe, que está en el CD de Windows 98.

Ejecuta poledit, lee su ayuda, anota la información; este artículo no va a enseñarte como funciona el software propietario.

Una vez que tu archivo .pol está listo, cópialo a tu servidor Samba, dentro del directorio en el que se encuentra el PATH del grupo [netlogon].

AVISO: Para clientes Windows 9x, el archivo de estrategia de sistema debe ser config.pol, para Windows NT es otro nombre, no tengo NT y no puedo decírtelo:'(
No, no me envies una versión de prueba de NT. Gracias de todos modos, eso fue muy amable por tu parte:o)

NOTA: poledit permite crear Grupos de usuarios y Usuarios, pero nosotros aún no lo hemos hecho. Sólo el usuario por defecto está dentro de la cuenta.

Por ejemplo, si creo un grupo "admin" con poledit, al que se le permita ejecutar regedit, si te conectas como "erics" ("admin" es su grupo primario), entonces yo no puedo ejecutar regedit.(

Sin embargo, si creas un usuario "erics" en poledit entonces si funciona.

A menos que queramos crear los 1056 usuarios con poledit y que la gestion global de usuarios sea más interesante, ofrecemos el siguiente "truco":

Para hacer eso, lo resolvimos de este modo: hicimos 3 archivos config.pol, sólo con usuarios por defecto, de este modo, en el servidor Linux tenemos:
/home/netlogon/teachers/CONFIG.POL
/home/netlogon/teachers/teachers.bat
/home/netlogon/pupils/CONFIG.POL
/home/netlogon/pupils/pupils.bat
/home/netlogon/admin/CONFIG.POL
/home/netlogon/admin/admin.bat
Y nosotros cambiamos el archivo smb.conf para introducir esto en la cuenta:

<smb.conf file>
[netlogon]
; añadimos %g para hacer que el netlogon apunte a un directorio diferente con respecto al
; grupo del usuario, en el cual el archivo config.pol correspode a cada perfil de Grupo de
; usuario.
path = /home/netlogon/%g
public = no
writeable = no
browseable = no
</smb.conf file>

 

Configuración de la máquina Windows

Con un poco de suerte, 20 clicks y un reinicio deberían ser suficientes para configurar Windows.

Para un cliente Windows 98

Haz click en Inicio/Configuración/Panel de control y haz doble click en Red

Instala:

Configuración de red

A continuación, haz click en la pestaña "Identificación" e introduce el correspondiente nombre de computadora y Grupo de trabajo.
Identidad

Click en "Control de acceso" y selecciona la opción Nivel de control de acceso
Control de Acceso

Regresa a la pestaña de configuración y haz doble click en "Cliente para redes Microsoft"
Cliente para red MS

No olvides configurar el soporte TCP/IP:
Doble click en TCP/IP
Dirección IP :

Configuración WINS:  

Notas "puesta a punto/funcionamiento/bueno"

En funcionamiento, un cuello de botella aparce rápidamente a causa del uso de perfiles Windows.

De hecho, el perfil está lleno de cosas de Microsoft que son importantes como el caché del IE, caché de OutLook, etc.

En pocas palabras, esto significa que alrededor de 10 Mb se descargarán cuando conectes una máquina (sin embargo, mi perfil es uno "clásico", una imagen de fondo) y 10 Mb se cargarán al servidor cuando te desconectes.

10 Mb por cada usuario, en una habitación con 15 máquinas (el tamaño "normal" de un laboratorio), hacen 150 Mb, y si el edificio tiene 10 habitaciones, calcula los usuarios desconectándose cuando suene la campana.

Entonces debes anticiparte y desconectar todo a las 5... (bueno, debo admitir que es lo que yo hacía cuando era estudiante)... mejor que a las 5 pasadas. Es como en los atascos de las grandes ciudades: mejor ir 10 minutos antes que 2 horas después.

Por lo tanto, según la política que implementes, sería una buena idea montar el directorio home a P: (por ejemplo, P de Personal) para todos y decir a los usuarios: "graben sus documentos en P y no en "Mis documentos".

A continuación, tienes que encontrar el software que permita configurar tus Favoritos en P:\bookmarks.html.

¡No sé, ni siquiera si existe eso en Windows!

Si encuentras una solución, escribe un artículo sobre ello, y comparte tus conocimientos con nosotros.

 

Preguntas y cuestiones a responder

¿Es posible tener varios grupos de trabajo en el mismo dominio, cómo se puede administrar, es posible compartir los problemas entre varios Samba?

¿Cómo usar ambos servidores, NT y Samba?

La configuración de los clientes NT: el equivalente de config.pol tiene otro nombre bajo NT, ¿cuál es?.

Un problema real cuando sólo tienes un servidor Samba (y no NT): Yo trabajo bajo Windows 98 y quiero compartir recursos locales, mi impresora:

Captura de mi impresora compartida

Click en el botón añadir...

ULTIMA NOTICIA: Alguien me dió la solución. Basta con seleccionar "Nivel de control de acceso a los recursos" durante el paso 3 de la configuración de Windows.

 

Reconocimientos

Bruno <bcarrere(at)asp-france.fr> por su trabajo de corrección y su preciada ayuda :o)

John Perr por animarme a escribir mi primer artículo para LinuxFocus, y haberlo traducido al inglés.
Michel Billaud aka MiB por todas las soluciones que encontró a nuestros problemas :o)
Etienne, Éric, y el hombre invisible del que olvidé el nombre, !lo siento!. Además, gracias por compartir lo aprendido en tus clases de Microsoft sobre servidores NT.
Jean Peyratout, ¿necesitamos decir por qué? sería muy largo.
The Abul en general
Rycks por proveerme de tiempo y recursos para desarrollar y documentar Software Libre.

 

Bibliografía

Online O'Reilly book: http://www.oreilly.com/catalog/samba/chapter/book/index.html

Este documento será actualizado en la sección de documentación de rycks.com

 

Formulario de "talkback" para este artículo

Cada artículo tiene su propia página de "talkback". A través de esa página puedes enviar un comentario o consultar los comentarios de otros lectores
 Ir a la página de "talkback" 

<--, regresar al índice de este número

Contactar con el equipo de LinuFocus
© Éric Seigne, FDL
LinuxFocus.org
Información sobre la traducción:
fr --> -- : Éric Seigne <erics(at)rycks.com>
fr --> en: Georges Tarbouriech <georges.t(at)/at/linuxfocus.org>
en --> es: Jose María Dueñas Quesada <josemaria.duenas(en)hispalinux.es>

2003-11-07, generated by lfparser version 2.41