original in es Sebastian Sasías
es to en Sebastian Sasías
Utiliza Linux desde hace varios años como herramienta
de soporte para soluciones tecnológicas.
Trabaja en control de dispositivos con Linux, procesamiento de
señales, comunicaciones y
seguridad en redes. Profesional en Electrónica -
Automatización y en Informática.
Ha contribuido en el desarrollo de software libre GNU/GPL.
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.