Actualizo receta de
http://lists.debian.org/debian-user-spanish/2005/07/msg00129.html
----------------------------------------------------
SAMBA como cliente en dominios Microsoft Windows(R) NT
3 de Marzo de 2006 - Actualizado para Microsoft Windows Server 2003.
Introducción
Hoy en día la mayoría de las pequeñas y medianas empresas, por no
hablar de las grandes corporaciones, poseen redes internas instaladas
que enlazan sus computadoras de escritorio, las cuales, salvo
excepciones, corren sobre la arquitectura de redes controladas por
servidores con un sistema operativo de la empresa Microsoft, como ser
Windows NT, XP, Server 2000 o Server 2003.
Esta situación nos lleva a que los usuarios GNU /Linux tengamos
ciertos problemas a la hora de utilizar aplicaciones de distinto
tipo, ya que, para no vulnerar la ley, estas empresas sólo autorizan
a instalar en dichas máquinas programas comerciales pagos, que en
general, son de la empresa propietaria del señor Bill Gates y para
nada económicos.
El usuario GNU/Linux promedio está acostumbrado a tener programas
específicos para cada tarea, además de desear tener el control
minucioso de todo lo que su computadora ejecuta.
Esto podría sonar al latiguillo "Demasiado complicado, con Windows es
fácil" para el usuario novato, pero no lo es tanto, habida cuenta del
principio de claridad que todo paquete GNU/Linux debe poseer, la
actual simplicidad de manejo en entorno gráfico y la capacidad de,
por ejemplo, KDE de simular el tipo de entorno de escritorio que se
desee para facilitar la transición desde otros sistemas operativos.
Es de norma en M$W no poseer documentación suficiente de los
programas instalados; a veces, ninguna.
Dado que la mayoría de la documentación de SAMBA disponible en
internet está en inglés, y la que no lo está, trata básicamente del
reemplazo de servidores de redes Microsoft Windows(R) por servidores
SAMBA, y que es poco clara la implementación de terminales con
sistema operativo GNU/Linux en redes NT, es que me aboqué a la tarea
de confeccionar esta receta, tratando de que no por sencilla sea poco
clara.
El conjunto de aplicaciones SAMBA
El conjunto de aplicaciones SAMBA ( http://www.samba.org ) es un
grupo de paquetes que habla el protocolo SMB (Server Message Block),
el cual es de uso normal en muchos sistemas operativos para el manejo
de redes, como ser OS/2 y Microsoft Windows(R), en las operaciones de
red servidor-cliente.
Este conjunto de paquetes nos permite tanto controlar una red como
ser un cliente de ella.
Convenciones
A fin de clarificar lo que más adelante se explique, convendremos el
significado de los siguientes términos:
PDC: Primary Domain Controler - Controlador de Dominio Primario: Es
el servidor principal de la red que provee los servicios de
comunicaciones, y básicamente, la autenticación de las terminales a
través de una tabla de datos conocida como DNS, y habilita los
usuarios de la red.
BDC: Back-up Domain Controler - Controlador de Dominio Secundario:
Son servidores que pueden asumir ciertas tareas de control de la red,
incluso llegar a suplantar al PDC en caso de caída del mismo.
host: Nombre en claro del una terminal. En este ejemplo lo asumiremos
como MASAE82: Malvinas Argentinas S.A., estación 82.
IP: Internet Protocol - La dirección en forma numérica de una
terminal; consta de cuatro grupos de números del 0 al 255, separados
por puntos (110.111.1.254).
WINS: Windows Internet Name Service - Servicio de Nombres Internet de
Windows: Servicio que asigna los nombres a los equipos, conocidos
como "hosts" (equipos (TCP/IP)
DHCP: Dynamic Host Configuration Protocol - Protocolo de
Configuración Dinámica del Host: Configura a los equipos en forma
automática al conectarse a una red.
DNS: Domain Name System - Sistema de Nombres de Dominio: Base datos
que mantiene la identificación de los equipos del dominio.
Suposición
Haremos la siguiente suposición: usted es José Pérez, un empleado de
la empresa MALVINAS ARGENTINAS S.A., trabaja en la sección
Facturación del departamento Ventas. Hasta ahora está usando una
terminal con sistema operativo Microsoft Windows(R), (versiones 85,
98, Me o XP), a la que de aquí en mas nos referiremos como M$W,
corriendo en un entorno de red Microsoft Windows (R) NT, que
llamaremos "Domino NT", y desea cambiar por GNU/Linux. (Este
procedimiento está probado en Debian; usuarios de SUSE, Irix, RedHat,
Mandrake, Knoppix y otros, por favor, amplíen esta receta con sus
particularidades).
Obtención de información de su terminal
Bajo M$W, pique "Inicio", luego "Ejecutar"; en el campo en blanco que
se le presente, tipie command, y luego presione <enter>. Al aparecer
la pantalla en blanco y negro de terminal, tipie la siguiente
instrucción:
\>ipconfig /all
Tome nota de todos los da tos que en esta pantalla aparezca.
Para que los imprima directamente a su impresora, \>ipconfig /all >lpt1
Pique con el botón derecho del ratón el ícono "Propiedades de red"
que debería estar en su escritorio, y obtenga el nombre del dominio,
que para este ejemplo, supondremos que es MALVINAS. Este grupo no
debería diferir de lo que en los datos obtenidos anteriormente se
detalla como "Sufijo DNS principal".
Configurando GNU/Linux: samba, smbclient y winbind.
Instale el paquete samba mediante la instrucción # apt-get install samba
Tome nota de los paquetes sugeridos que le indica: krb5-user,
krb5-doc y samba-doc.
Cuando le sea solicitado, indique el nombre del dominio EN
MAYÚSCULAS, en este ejemplo, MALVINAS
Elija activar las contraseñas cifradas. Este tema es importante.
Hasta la versión NT Server 2000, se aceptaban contraseñas planas (sin
cifrar); NT Ser ver 2003 sólo acepta contraseñas cifradas. De hecho,
las terminales M$W 95, 98 y Me deben ser actualizadas con un parche
(¡qué raro! ¿no?) para que sean reconocidas, y las M$ W 3.11 WFW
dejaron de ser reconocidas y no hay parche disponible (¿y la
compatibilidad hacia atrás?). Esto podría ser obviado en el caso que
exista algún BDC con M$W NT4 con capacidad de autenticar al usuario
con claves planas, pero repito, es conveniente manejar contraseñas
cifradas.
Cuando le pregunte ¿Modificar smb.conf para usar la configuración
WINS que proviene de DHCP?, recomiendo elegir No, salvo que usted
maneje bien los protocolos de red TCP/IP.
Elija activar los programas samba como demonios (daemons).
Cuando le interrogue ¿Crear base de datos de contraseñas?, conteste Sí.
Instale el paquete smbclient mediante la instrucción # apt-get
install smbclient. Tome nota de los paquetes sugeridos que le indica:
smbfs. El paquete smbclient es el responsable de permitirle acceder
al dominio NT.
Instale el paquete winbind mediante la instrucción # apt-get install
winbind. El paquete winbind es quien lo autenticará ante el dominio NT.
Ejecute el comando # base-config, y en la opción "Establecer el
nombre del sistema", indique lo que la pantalla M$W le indicó como
"Nombre del host"; por ejemplo, MASAE82, o el que el administrador de
red le haya asignado.
Con respecto a esto, si usted ha decidido mantener en una misma
máquina ambos sistemas operativos, deberá tener un nombre de host
distinto para cada versión de sistema operativo, ya que el nombre de
host se asocia a un SID especifico, y cada vez que reinicie la
máquina en un sistema distinto, deberá volverse a unir al dominio. En
pocas palabras, causa problemas mantener el mismo nombre de host para
una misma máquina pero corriendo con sistema operativo diferente. Lo
ideal, es tratar a cada sistema operativo como si fuesen máquinas
distintas.
Como root , cree la carpeta /home/MALVINAS en MAYÚSCULAS. Esto es
porque los archivos de los usuarios NT se almacenarán en una carpeta
con el nombre del dominio, el cual es en mayúscula.
Como root , modifique el archivo /etc/nsswich.conf.
# /etc/nsswitch.conf
passwd: files winbind
group: files winbind
shadow: files winbind
hosts: files wins
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis
Este archivo indica a los paquetes que así lo solicitan, que se
autentiquen mediante el demonio winbindd. (Nota: el paquete se llama
winbind, el demonio, winbindd)
Para acceder a la red desde el intérprete de comandos, como root,
modifique el archivo /etc/pam.d/gdm. Este archivo indica al sistema
cómo autenticar al usuario dentro del sistema. (Asumo que instaló una
consola gráfica por X).
Si desea acceder desde el gestor de inicio gráfico kdm, modifique el
archivo /etc/pam.d/kdm. Sugiero sólo modificar el acceso desde el
gestor gráfico, y dejar el de consola /etc/pam.d/login nativo de
GNU/Linux. El gdm es más eficiente en grandes redes con muchos
usuarios, pues kdm cada vez que inicia, recupera toda la lista de
usuarios para poder seleccionarlos, y si la red es lenta o cuenta con
miles de usuarios, esto puede ralentizar el rendimiento; en gdm, esto
es opcional.
# /etc/pam.d/gdm
# /etc/pam.d/kdm
auth required /lib/security/pam_securetty.so
auth required /lib/security/pam_nologin.so
auth sufficient /lib/security/pam_winbind.so
auth required /lib/security/pam_pwdb.so use_first_pass shadow
nullok
account required /lib/security/pam_winbind.so
session required /lib/security/pam_mkhomedir.so skel=/etc/skel
umask=0022
Como root , modifique el archivo /etc/samba/smb.conf .
# Samba config file created using SWAT from 127.0.0.1 (127.0.0.1)
# Date: 2005/05/03 16:04:23
# (Lea la documentación de SAMBA y de SWAT; le será útil)
# Global parameters
[global]
unix charset = LOCALE
# Indicamos el nombre del dominio NT al que pertenecemos,
# en este caso, MALVINAS
workgroup = MALVINAS
# Indicamos la descripción de nuestra terminal
server string = Facturación - José Pérez
# Indicamos a SAMBA que la seguridad de autenticación la dará
# un PDC o BDC.
security = domain
auth methods = winbind
update encrypted = Yes
obey pam restrictions = Yes
# Indicamos a SAMBA qué servidores nos pueden autenticar.
# Con sólo colocar un asterisco, alcanza.
# Si conocemos el nombre de host del PDC y/o BDC, podemos
# indicarlos separados por comas, es lo conveniente.
# En este ejemplo, indicamos el PDC Malvinas Argentinas -
# Servidor 1 y el BDC Malvinas Argentinas Servidor 2 y el
asterisco.
password server = MASA1, MASA2, *
passdb backend = tdbsam, guest
passwd chat = *Enter\snew\sUNIX\spassword:* %n\n
*Retype\snew\sUNIX\spasswo= rd:* %n\n .
username map = /etc/samba/smbusers
log level = 1
syslog = 0
log file = /var/log/samba/log.%m
max log size = 0
add user script = /usr/sbin/useradd -m '%u'
add group script = /usr/sbin/groupadd '%g'
add machine script = /usr/sbin/useradd -M '%u'
# Indicamos a SAMBA que queremos ser terminal, y no
# controladores de dominio.
os level = 0
preferred master = No
domain master = No
dns proxy = No
# Datos extraídos de M$W, bajo el título
# "Servidor= WINS principal" y "Servidor WINS secundario"
# Si su sistema toma la información WINS de DHCP, no incluya la
# siguiente línea
wins server = 10.111.1.254, 10.111.1.201
ldap ssl = no
panic action = /usr/share/samba/panic-action %d
# Indicamos a SAMBA que los usuarios y grupos creados bajo
# dominio NT, tengan un número de identificación lo suficientemente
# alto como para no colisionar con los usuarios UNIX
idmap uid = 10000-20000
idmap gid = 10000-20000
# Indicamos cómo nos vamos a referir a DOMINIO+usuario
# (más adelante se detalla)
winbind separator = +
winbind enable local accounts = Yes
winbind use default domain = Yes
winbind cache time = 10
template shell = /bin/bash
# Indicamos a SAMBA dónde guardar los archivos de los usuarios.
template homedir = /home/%D/%U
invalid users = root
printer admin = root
[homes]
comment = Home Directories
create mask = 0700
directory mask = 0700
browseable = No
[printers]
comment = All Printers
path = /tmp
create mask = 0700
printable = Yes
browseable = No
[print$]
comment = Printer Drivers
path = /var/lib/samba/printers
Asegúrese que este archivo posea atributos que permitan el acceso de
lectura a todos los usuarios. Algunos programas lo consultan, y si
está bloqueado por el root, dan error de acceso.
El separador winbind indica cómo uno se identifica en la red.
Normalmente, al indicar en el "login" el nombre de usuario, para un
dominio NT debería seguir, según la mayoría de la documentación
disponible, el formato MIDOMINIO\usuarioNT. En este ejemplo, sería
MALVINAS\joseperez.
Es conveniente cambiar este símbolo "\" (barra invertida) por el de
"+" (más), dado que el gestor gdm no reconoce la barra invertida.
En la versiones SAMBA 3 o superior, es indistinto identificarse como
"MIDOMINIO+usuarioNT" o "usuarioNT" directamente, ya que se asume
como perteneciente al dominio especificado en /etc/samba/smb.conf al
usuario que se identifica.
Recuerde que si modifica o anula el archivo /etc/pam.d/login, no
podrá volver a ingresar a la consola como root; deberá identificarse
como usuario válido en el dominio, y luego invocar a su.
Si se cayó la red, le va a se un poco difícil iniciar GNU/Linux,
salvo que entre en modo de recuperación y reestablezca el archivo
original .
Verificando su paquete SAMBA para Windows Server NT 2003
Con esta nueva versión de servidores, existe un pequeño problema de
"tickets" de accesos, que son manejados por un guardián desarrollado
en el Instituto Tecnológico de Massachussets (MIT), conocido como
Kerberos, en alusión al can Cerbero que guarda las puertas del
infierno. ¿Tomó nota d el paquete sugerido krb5-user? (Esto no es
válido para usuarios de SUSE, que usan una versión distinta llamada
heimdal) .
Como root, ejecute # smb -b | grep KRB
La salida debe ser algo como esto:
HAVE_KRB5_H
HAVE_ADDRTYPE_IN_KRB5_ADDRESS
HAVE_KRB5
HAVE_KRB5_AUTH_CON_SETUSERUSERKEY
...
...
HAVE_KRB5_SET_REAL_TIME
HAVE_KRB5_STRING_TO_KEY
HAVE_KRB5_TKT_ENC_PART2
HAVE_KRB5_USE_ENCTYPE
HAVE_LIBGSSAPI_KRB5
HAVE_LIBKRB5
Si tiene al final la línea HAVE_LIBKRB5, vamos bien, pues su samba
está compilado con la versión 5 de Kerberos, y por lo tanto va a
funciona, si no es así, actualice samba desde ( http://www.samba.org
) y empiece de nuevo.
Instale el paquete krb5-user mediante la instrucción # apt-get
install krb5-user.
Cuando se le solicite el "realm" por defecto, indique su nombre de
dominio, MALVINAS.
Cuando se le solicite los nombres de servidores del "realm", indique
MASA1 MASA2, los nombres de PDC y BDCs separados por espacios.
Cuando se le solicite el nombre del servidor administrativo de
claves, indique MASA1. Esto debería haberse cargado por defecto; sólo
cámbielo si en su red el administrador principal de claves de acceso
ha sido redireccionado a otro servidor. Este servidor es el encargado
de cederle los "tickets" de seguridad a las aplicaciones que así lo
requieran a través de Kerberos.
¡Atención! Escriba estos nombres en MAYÚSCULA.
Conectándose a su dominio NT
Desde la consola, y como root, ejecute los siguientes comando para
que se capturen los cambios introducidos. ¡Recuerde que usted usa
GNU/Linux y no tiene que reiniciar la máquina! :-P
# /etc/init.d/winbind restart
# /etc/init.d/samba restart
Desde la consola, y como root, pruebe el siguiente comando
# net rpc testjoin
Si la salida es "Join to 'MALVINAS' is OK", no lea lo que sigue, pues
tiene un problema menos (hizo magia). Si la salida es "Join to domain
'MALVINAS ' is not valid", deberá unir su terminal a la red. Y aquí
puede tener problemas, no por los sistemas operativos, si no por las
personas que administran la red. (net depende del paquete samba).
Cada máquina, o "host", debe estar validada en un dominio NT, no sólo
el usuario que la utiliza. Me dirá que eso nunca lo hizo con M$W 95,
9 8 o Me, y le diré que es cierto. Pero si alguna vez dio de alta una
terminal con M$W XP, sabrá que debió unirla al dominio en forma
explícita, y debió tener comunicaciones con el administrador de red
para que en el PDC esa máquina sea reconocida.
Dado que Windows NT debió mantener compatibilidad con los grupos de
trabajo diseñados para los sistemas "Windows para trabajo en grupo
3.1x", es que seguió permitiendo que dichas terminales se unan no a
un dominio, si no a un grupo de trabajo, el cual es intrínsicamente
inseguro. La versión M$W Server 2003 ya no acepta grupos de trabajo.
Su terminal con SAMBA se identifica ante la red como "Windows NT4"
por defecto, y además, por un problema de seguridad interno, no
admitió nunca a los grupos de trabajo.
Existen dos formas de dar de alta su terminal en la red.
En la primera, deberá tener una cuenta de administrador y clave
válidas en el dominio NT, o le pedirle a quien la tenga que, como
root, ejecute el siguiente comando:
# net rpc join member -U AdministradorDominioNT%claveNT
donde "MALVINAS" es el nombre de su dominio, "AdministradorDominioNT"
es el nombre de usuario administrador del Dominio NT y "claveNT" es
la clave de acceso.
En la segunda, la más normal, (si es un administrador de una red y
usa GNU/Linux, lo más probable es sus usuarios use n GNU/Linux y no
estaría leyendo esto), solicite a su administrador que dé de alta a
su máquina en el PDC como terminal "Windows XP" con los utilitarios
que ese sistema operativo tienen, y lo habiliten a usted, con su
propio nombre de usuario y clave, para dar de alta su propia máquina.
Esto hace que en el PDC se registre en la DNS una asociación entre el
nombre de host y un usuario habilitado a unirlo, para que la red lo
reconozca. Los administradores M$W a veces son uno poco reacios a que
haya algún usuario que sea capaz de unir su propia máquina al domino,
pues si pierden este control, se no son imprescindibles a la hora de
manejar las terminales, y eso implica una pérdida de poder. Si es
necesario, miéntales y dígale que "Tuvo que formatear el disco y
reinstalar Windows XP con Service Pack 122, porque pasó el virus
Kamasutra-Hentai que colisionó con la actualización de seguridad
xp6649264IEMN DC974 y se le pinchó el registro de punto de
recuperación de la partición NTFS, por lo que el disco de emergencia
que tiene no la levanta, pues es FAT32, ni puede acceder por Active
Directory". Va a parecer gurú y adorador de M$W, y tal vez le "pasen
bola".
Luego que lo habiliten a dar de alta la terminal (host ) en el
dominio, como root, ejecute
# net rpc join member -U UsuarioNT%claveNT
(UsuarioNT es su nombre de usuario norma l M$W en el dominio con su
respectiva clave).
No debería tener problemas. Si los tiene, intente con
# net rpc join member -U UsuarioNT%claveNT -D MALVINAS -S MASA1
Es decir, indique en forma expresa el nombre del dominio y del PDC de
su red. Ante la duda, # man net.
Para comprobar haberse un ido exitosamente al dominio, ejecute
# net rpc testjoin -S MASA1
Si sigue con problemas, al pié esta mi dirección.
Una vez hecho todo esto, tómese un café o un té, y espere los 15
minutos de rigor para que el PDC replique en todos los BDC la
información de que usted está unido al dominio. Cuando pase este
tiempo, verifique su situación en la red mediante los comandos
# net rpc info
# wbinfo -m
# wbinfo -g
# wbinfo -u
Estos comandos (wbinfo depende del paquete winbind) le informarán
datos del dominio al que se unió, qué dominios están en su red, los
grupos y usuarios habilitados en la misma, etcétera.
Bien, ahora es tiempo de ejecutar como root # /etc/init.d/gdm restart
con el objeto de acceder a la red, como si de una terminal M$W se
tratase.
Por último, puede ser que su usuario NT no tenga algunos atributos
para uso de periféricos en su terminal. Como root, dé de alta un
usuario UNIX con el mismo nombre del usuario NT, sin clave, y déle
los permisos de acceso necesarios para los servicios locales. Yo en
particular, tengo problemas con los parlantes. Esto es porque al
grupo "usuarios del dominio" usted no puede administrarlos, y por
defecto, GNU/Linux le da atributos restringidos; de esta manera,
cualquier usuario con clave válida de dominio puede "loguearse" en la
terminal, pero sólo los específicamente indicados con un paralelo
UNIX pueden acceder a algunos servicios. Si alguien sabe otra manera
de simplificar esto, avísime, por favor.
Recomendaciones
Instale el paquete smbfs. Le simplificará la tarea de montar los
directorios remotos.
Utilice el paquete xsmbrowser en modo gráfico; es el que más se
asemeja al "Entorno de red" de M$W.
Si no usa la interfaz gráfica, el paquete smbc (Samba Commander), es
lo más eficiente, rápido y simple.
Instale el paquete swat y póngase a jugar con las configuraciones de
Samba.
Recuerde que en los navegadores gráficos de archivos, para acceder a
un recurso remoto, debe indicar smb://NombreHostRemoto/NombreDirectorio.
Lea toda la documentación sugerida y de los paquete que instala,
especialmente las siguientes:
· Manual de SAMBA de Robert Eckstein, David Collier-Brown y Peter
Kelly, traducido por el Proyecto S.O.B.L.
· man pages y HowTo's de de samba, winbindd , wbinfo, webmin, wbinfo,
krb5, net y P.A.M.
· Visitar los vínculos http://www.samba.org , http://www.sobl.org ,
http://www.vivaolinux.br y http://www.webmin.com .
Despedida
Bueno, esto ha sido todo, espero que les sea de utilidad, y no tengan
que pasar dos meses leyendo manuales en inglés, portugués y
castellano y molestar continuamente a la gente de la lista Debian (
debian-user-spanish@lists.debian.org ), sin la cual no hubiese podido
hacer ni la mitad de lo que logré, amén de tener que ponerme a
estudiar las "nuevas" versiones de M$W para ver qué nuevo escollo hay
que vencer; espero que M$W Vista no venga con más "sorpresas".
Si en su empresa usan el correo empresario "Outlook" y/o "Exchange",
no desespere; intente con "Evolution" y el paquete ximian-connect.
Con todo esto, se independizará de la "ventanita" con pantallazos
azules.
Si está viviendo en mi queridísima República Argentina (al sur del sur).
¡ Instale y apoye a Tuquito ! ( http://www.tuquito.org.ar ).
J.A.P. ( [EMAIL PROTECTED] )
GNU/Linux Registered User # 389414