Está en la página 1de 43

ADMINISTRACIÓN DE SISTEMAS OPERATIVOS

ASO_UT6.2

Configuración y utilización de redes


heterogéneas.
ÍNDICE

2 Configuración y utilización de redes heterogéneas ..........................................................................................3


2.1 El servidor Samba en un grupo de trabajo ...............................................................................................4
2.1.1 Usuarios ......................................................................................................................................................... 5
2.1.2 Recursos compartidos ................................................................................................................................... 7
2.1.3 permisos ........................................................................................................................................................ 9
2.1.4 Impresoras ................................................................................................................................................... 12
2.1.5 Master browser ........................................................................................................................................... 19
2.1.6 Acceso a los recursos mediante clientes GNU/Linux................................................................................... 21
2.1.7 Acceso a los recursos mediante clientes Microsoft Windows .................................................................... 24
2.2 El servidor Samba como controlador primario de dominio .................................................................... 26
2.2.1 El nombre del host ....................................................................................................................................... 27
2.2.2 La interfaz de red ......................................................................................................................................... 28
2.2.3 Instalación del software............................................................................................................................... 29
2.2.4 configurar Samba ......................................................................................................................................... 30
2.2.5 Creación y gestión de usuarios .................................................................................................................... 34
2.2.6 Vincular una máquina con Windows 10 al dominio. ................................................................................... 35
2.2.7 Uso de Windows 10 para la administración del dominio de Active Directory. ........................................... 39

2
2 Configuración y utilización de redes heterogéneas

En el mundo empresarial, Samba es un buen aliado de los administradores de sistemas cuando se dispone de una red
con varios sistemas operativos. Como veréis a continuación, se puede integrar de una manera sencilla en redes
heterogéneas, pero debemos ser conscientes de sus limitaciones.

En este contexto te puedes puede encontrar situaciones muy diferentes y Samba dispone de un nivel de configuración
muy elevado que permite obtener una buena adaptación a muchas de estas situaciones. Hacer una recopilación de
todas las posibilidades de configuración resultaría demasiado extenso, pero trataremos de analizar las dos situaciones
más comunes que nos podemos encontrar:

1. Samba como servidor independiente en un grupo de trabajo

2. Samba como servidor de dominio

A continuación verá cómo configurar y administrar Samba en cada una de estas situaciones.

3
2.1 El servidor Samba en un grupo de trabajo

El servicio Samba permite configurar un servidor basado en Linux para integrarlo dentro de un grupo de trabajo
Windows, de manera que pueda compartir recursos como un equipo más del conjunto lógico de la red. Uno de los
requisitos imprescindibles es que este servidor se comporte exactamente igual que un sistema Windows. Por ello, hay
que ajustar los parámetros de configuración de Samba tal como se detallan a continuación:

1. Nivel de seguridad: el nivel de seguridad determinará la forma en que los usuarios se identifican. El nivel
adecuado a una red igualitaria donde intervienen ordenadores Windows es el nivel user. Las opciones
restantes no son adecuadas o bien son caducas.

2. Backend: el tipo de backend que usamos determina de qué manera se almacenan los usuarios. En este caso,
la opción más recomendable es usar un archivo local, de tipo smbpasswd o tdbsam.

3. Grupo de trabajo: el nombre del grupo de trabajo (workgroup).

4. Nombre del equipo: también conocido como el nombre NetBIOS . Determina qué nombre tendrá este equipo
cuando se explore la red.

5. Master browser (opcional): el master browser es el equipo que contiene la lista de todos los equipos
conectados a la red.

Para establecer esta configuración es necesario modificar el archivo /etc/samba/smb.conf. Como podrán observar,
en este archivo encontrará cientos de parámetros que pueden dar lugar a miles de configuraciones diferentes.

Aunque el archivo de configuración smb.conf es muy extenso, para empezar hay que realizar muy pocos cambios
respecto a la imagen original que se incorpora con el paquete.

El archivo se divide en secciones identificadas por un nombre entre llaves, [ ]. Hay tres secciones
especiales: [global], [homes]y [printers]. La sección principal se identifica con [global] y nos permite configurar los
parámetros generales del servicio. La sección [homes] nos permite compartir los directorios de inicio (home) de cada
usuario para que cada usuario pueda acceder a su directorio a través de la red. La sección [printers] permite compartir
impresoras.

Dentro del apartado [global] se debe especificar el nombre del grupo de trabajo , el nombre de la máquina, el nivel de
seguridad y el tipo de backend deseado.

[ Global ]

workgroup = IEDIB

NetBIOS name = Debian-Samba

security = user

passdb backend = tdbsam

encrypt passwords = yes

Como veis, la configuración es simple: el nombre con el que se anuncia esta máquina es Debian-Samba, y se incluirá
en el grupo de trabajo llamado IEDIB. El parámetro security determina el nivel de seguridad y el backend almacenará
en una base de datos de tipo TDB.

4
Con esta configuración ya tendríamos suficiente para incorporar el servidor al grupo de trabajo. Para asegurarnos de
que las modificaciones del archivo smb.conf se llevan a cabo, es conveniente reiniciar el servicio.

# Service smbd restart


# service nmbd restart

2.1.1 Usuarios

Samba incluye un conjunto de herramientas para manipular las cuentas de usuario almacenados en el backend . Estas
herramientas se han diseñado de forma que funcionen igual independientemente del tipo de backend que utiliza:
archivo TDB, archivo smbpasswd o directorio LDAP. Las herramientas que se utilizan para manipular usuarios Samba
son, principalmente, las órdenes smbpasswd y pdbedit.

Para añadir usuarios a Samba usaremos la orden smbpasswd, tal como muestra el siguiente ejemplo:

# Smbpasswd -a usuario

New SMB password:

Retype new SMB password:

La pareja usuario/contraseña que introducimos aquí es aquella con la que se accederá desde los clientes
Windows. Puede utilizar smbpasswd tantas veces como usuarios desee crear.

La orden smbpasswd se comporta de dos maneras diferenciadas:

1. Si la ejecuta el usuario root , nos permite administrar los usuarios Samba: crear, borrar, listar,
habilitar/deshabilitar y cambiar la contraseña.

2. Si la ejecuta cualquier otro usuario, le permite cambiar la contraseña Samba en servidores remotos.

Opción Descripción

-a nom_usuari Añadir usuario.

-d nom_usuari Deshabilitar la cuenta de usuario.

-e nom_usuari Habilita la cuenta de usuario.

-n nom_usuari Aplica una contraseña vacía al usuario.

-x nom_usuari Borrar la cuenta de usuario.

-h Muestra la ayuda.

5
Aunque la herramienta pdbedit también se puede utilizar para realizar las mismas acciones, normalmente se utiliza
para tareas administrativas de bajo nivel, tales como cambiar las propiedades de un usuario o importar y exportar
usuarios del backend .
IMPORTANTE

Por otra parte, Samba necesita que todos los usuarios que acceden a los recursos se puedan vincular
a un usuario del sistema Linux (UID). Por este motivo, es necesario que antes de añadir un usuario
Samba lo damos de alta como usuario del sistema.

# Useradd usuario

# Passwd usuario

Introduzca la nueva contraseña de UNIX:

Vuelva a escribir la nueva contraseña de UNIX:

passwd: contraseña actualizada correctamente

Este requisito también se aplica a los usuarios invitados y por tanto, deben vincularse a una cuenta específica de
GNU/Linux. En general, cuando Samba recibe la petición de un usuario que no se ha podido autenticar correctamente,
como en el caso de no encontrar el usuario al backend , la petición se rechaza por defecto y no se otorga el acceso. A
veces, sin embargo, nos interesará que un usuario sin registrar pueda acceder a los recursos compartidos, como, por
ejemplo, en el caso de una empresa con muchos trabajadores puede resultar útil que todo el mundo tenga acceso a
un directorio público sin tener que dar de alta todos los trabajadores. En estos casos es necesario permitir el acceso a
usuarios no registrados y habilitar el acceso de invitado .

Si se desea que los usuarios puedan entrar sin estar registrados, lo primero que necesita hacer es cambiar el
comportamiento que Samba tiene por defecto cuando encuentra un usuario que no es el backend . Esto se realiza
indicando el parámetro y valor map to guest = bad user dentro de la sección [global]. De esta manera le indica que si
no se encuentra el usuario en el backend se utilice la cuenta de invitado.

Por último, indicar que usuario del sistema GNU/Linux se utilizará para vincular los usuarios invitados. Con el
parámetro guest account determinará qué cuenta de usuario GNU/Linux se utiliza como invitado.

[ Global ]

workgroup = IEDIB

NetBIOS name = Debian-Samba

security = user

passdb backend = tdbsam

encrypt passwords = yes

map to guest = bad user

guest account = invitado

6
Evidentemente, la cuenta de invitado debe estar creada previamente a Linux y vinculada a Samba.

# Useradd invitado
# smbpasswd -a invitado

No resulta imprescindible la creación de un usuario 'invitado' para poder acceder como usuario anónimo a un recurso
compartido, pero de esta manera conseguimos que el registro de las acciones realizadas por el usuario se asocie a la
cuenta que hayamos definido y tener así un mayor control sobre los accesos.

2.1.2 Recursos compartidos

Los recursos compartidos se definen añadiendo secciones en el fichero de configuración de Samba. Recuerde que el
comienzo de cada sección se indica con un nombre entre llaves, [ ] y a continuación se añade la información relativa a
un recurso compartido. Hay secciones especiales con nombres reservados que no podemos utilizar porque tienen un
significado especial: [global], [printers] y [home].

Entre llaves se indica el nombre del recurso compartido, que es aquel que verán los clientes cuando quieran
acceder. Posteriormente, a la variable path, indicamos la ruta local en el directorio compartido.

[ Recurs_compartit ]

path = /directorio

Es indispensable que el directorio exista previamente dentro del sistema de archivos original.

# Mkdir / directorio

Esta configuración es la mínima necesaria para compartir un recurso, pero hay que saber que por defecto el recurso
se compartirá con permisos de sólo lectura .

Sin embargo, cuando compartir recursos con Samba en una red donde se integran sistemas operativos Windows y
Linux, hay una serie de diferencias que tenemos que tener en consideración . Principalmente, se trata de diferencias
directamente relacionadas con los sistemas de ficheros.

Como sabéis, Windows y Linux disponen de sus propios sistemas de archivos. En el caso de Windows son FAT32 y NTFS,
mientras que para Linux los más comunes son ext2, ext3, ext4 y ReiserFS. Cada sistema de archivos tiene sus
características y limitaciones. Entre estas limitaciones encontramos:

1. La distinción entre mayúsculas y minúsculas

2. Los caracteres prohibidos en los nombres

3. Los accesos directos a Windows o soft-links y hard-links a Linux

7
IMPORTANTE Samba se encarga de solucionar las diferencias entre sistemas de ficheros Windows y Linux

Por ejemplo, los nombres de los ficheros en Windows no distinguen entre mayúsculas y minúsculas, por lo que los
directorios llamados escritorio y ESCRITORIO son lo mismo. Por eso un directorio no puede contener un
archivo document.txt y a la vez un DOCUMENT.txt . En cambio, si utilizamos los sistemas de ficheros Linux sí es
posible. Como sabéis, en GNU/Linux se suele distinguir mayúsculas y minúsculas.

El sistema operativo Windows no permite que los nombres de los archivos o directorios contengan los caracteres \
/:*?”< >|, pero en cambio, Linux sí podemos crear archivos con los caracteres :*?”<>|. Entonces, ¿qué ocurre cuando
un servidor Samba comparte algún archivo con uno de estos caracteres prohibidos para Windows? En estos casos, el
servidor realiza un proceso de transformación llamado mangle y muestra al cliente un nombre modificado, no el
original. Este nombre se representa en formato 8.3.

Formato 8.3
AMPLIACIÓN

Los nombres de los ficheros con formato 8.3 tienen como máximo 8 caracteres que indican el
nombre, seguidos de un punto y tres caracteres más que indican la extensión del archivo. Este
formato se utilizaba en MS-DOS y en las primeras versiones de Windows.

Tal como puede observarse en la figura 2.1 , el proceso de transformación permite que los clientes Windows puedan
acceder a los archivos con caracteres prohibidos, pero con un nombre totalmente distinto del inicial.

8
2.1.3 permisos

La autorización de una acción sobre un recurso compartido está determinada por los permisos asignados al
servidor. Así, si un usuario quiere acceder a un recurso compartido y crear archivos deberá tener permisos de escritura
dentro de ese directorio compartido.

Los recursos compartidos por Samba están afectados por dos tipos de permisos totalmente independientes:

1. Los permisos del sistema de archivos

2. Los permisos Samba, también llamados permisos de red

Cuando un cliente desea realizar una acción determinada (leer o escribir), debe tener los permisos adecuados tanto al
sistema de archivos como el recurso compartido. No sirve de nada que un usuario tenga todos los permisos a Samba
si después no tiene ningún sistema de archivos. Por lo tanto, siempre se aplica el permiso más restrictivo. Tener esto
siempre presente le ahorrará muchos dolores de cabeza.

Los permisos del sistema de archivos o permisos locales se representan mediante 9 bits (rwxrwxrwx) con los que los
sistemas Unix implementan el control de acceso a los archivos del sistema y que podemos modificar con el
orden chmod .

El significado de los permisos varía dependiendo de si se trata de un archivo o de un directorio, tal como muestra
la tabla 2.2 .

Tabla 2.2: Permisos tradicionales Unix

PERMISO ARCHIVO DIRECTORIO

r leer archivos Ver el contenido del directorio

w Grabar en un archivo Crear y borrar archivos dentro del directorio

x Ejecutar como programa Entrar en el directorio

- sin permiso sin permiso

Conviene recordar que en directorios, además de los tres permisos mostrados, también podemos asignar el permiso
del sticky bit . El sticky bit permite que sólo los propietarios de los archivos puedan renombrar o borrar sus archivos
aunque el resto de usuarios tenga permisos de escritura en ese directorio. Las opciones + t y t del
orden chmod permiten añadir o quitar el sticky bit .

# Chmod + t directorio

9
Los permisos Samba especifican en el fichero de configuración, dentro de cada una de las secciones donde haya un
recurso compartido. Las variables que controlan los permisos se indican en la tabla 2.3 . Por defecto, un recurso
compartido tiene permisos de sólo lectura para todos los usuarios del backend .

Tabla 2.3: Variables que controlan los permisos de los recursos compartidos

VARIABLE DEFINICIÓN

admin users Lista de usuarios con control total sobre el recurso compartido.

read list Lista de usuarios que tienen acceso de sólo lectura.

write list Lista de usuarios que tienen acceso de lectura y escritura.

guest ok Permitir el acceso como invitado al recurso.

invalid users Lista de usuarios a los que no se les permite acceder.

valid users Lista de usuarios que sí pueden entrar. Si la variable no se especifica, todos los usuarios con
cuenta al backend pueden acceder.

read only Indica que el recurso sólo es de lectura.

Por ejemplo, la variable read only = no permite que los usuarios puedan leer y escribir (siempre que también lo hagan
los permisos del sistema de archivos).

[ Recurs_compartit ]

path = / directorio

read only = no

También podemos indicar la lista de usuarios a los que restringimos el acceso con la variable invalid users .

[ Recurs_compartit ]

path = / directorio

read only = no

invalid users = alumne1, alumne2, @profesores

10
Listas de usuarios y grupos
AMPLIACIÓN
A los permisos de Samba puede indicar una lista de usuarios con los nombres separados por
comas. Los grupos se muestran con el símbolo @ delante.

Cuando deseamos que los usuarios invitados tengan acceso a un recurso en concreto, hay que asignar la variable guest
ok a yes . De lo contrario siempre se pedirá la autenticación del usuario.

[ Public ]

path = / directori_public

guest ok = yes

11
2.1.4 Impresoras

Cuando pensamos en Samba normalmente nos viene a la mente la función de compartir directorios, y de hecho, este
es el uso principal que se le da. Pero Samba también se puede usar como servidor central de impresoras en una red
con clientes Windows. En este apartado veremos cómo configurar el servicio para compartir impresoras.

Hay que decir, sin embargo, que Samba no es un sistema de impresión per se , sino que actúa como intermediario
entre las peticiones de los clientes y el sistema de impresión del sistema operativo ( figura 2.2 ). Esto significa que
Samba no se comunica directamente con las impresoras, simplemente ejecuta las órdenes del sistema necesarias para
imprimir trabajos, ponerlos en pausa, cancelarlos, ver los trabajos en cola, etcétera. En definitiva, Samba se comporta
de la misma manera que lo haría un usuario del equipo que quiere imprimir.
IMPORTANTE

Samba no es un sistema de impresión, sino que actúa como intermediario entre los clientes y el
sistema de impresión del sistema operativo.

Figura 2.2: Esquema de impresión del servicio Samba

12
Samba permite la comunicación con varios tipos de sistemas de impresión Unix, entre los que destacamos HPUX, BSD,
PLP, LPRng, y el más utilizado, CUPS .

CUPS
AMPLIACIÓN

CUPS (Common Unix Printing System) es el sistema de impresión por defecto se utiliza en muchas
distribuciones GNU/Linux actuales, entre ellas Debian y Ubuntu.

Visto esto, puede suponer que el paso previo a compartir una impresora con Samba es tenerla correctamente
configurada en el sistema de impresión . En su caso supondremos que utilice CUPS, y éste se puede administrar de
varias maneras:

1. Desde las herramientas gráficas que proporciona el escritorio de su distribución de GNU/Linux.

2. Desde el sitio web de administración de CUPS: http: // localhost: 631 / .

3. Directamente desde el archivo de configuración en /etc/cups/cups.conf.

Es conveniente asegurarnos de que el servicio CUPS está funcionando correctamente.

# Ps -A | grep cupsd

1,097 ? 12:00:01 cupsd

Para añadir una impresora de manera sencilla puede visitar la web http: // localhost: 631 / , clicar en la pestaña
de Administración ya continuación el botón de Añadir impresora . CUPS necesita introducir el nombre y la contraseña
del administrador ( root ) de la máquina.

Posteriormente, y como muestra la figura 2.3 , hay que indicarle donde está conectada la impresora y qué protocolo
utiliza, lo que se conoce como backend . La mayoría de impresoras para entornos empresariales actuales permiten
utilizar los protocolos IPP, LPD / LPR o JetDirect (AppSocket).

Pulsando el botón Siguiente le pedirá la marca y el modelo, el nombre y el resto de opciones. Si no está en la lista
también puede añadir un controlador específico con extensión PPD.

Controladores (drivers) CUPS


AMPLIACIÓN

Los controladores de impresoras para CUPS son archivos con extensión .ppd. Actualmente, la
mayoría de fabricantes dispone de controladores para Linux

13
Figura 2.3: Aplicación web de administración de CUPS

Una vez que haya añadido la impresora al sistema, debe indicarle a Samba qué servicio de impresión utilizará, en
nuestro caso CUPS.

[ Global ]

workgroup = IEDIB

NetBIOS name = Servidor-debian

security = user

printing = cups

printcap name = cups

14
Finalmente, es necesario que añada la definición de la impresora compartida de manera similar a como lo haría con
un directorio, con las siguientes diferencias:

1. El nombre del recurso compartido debe coincidir con el nombre de la impresora en el servicio de impresión de
Linux. Así, si ha puesto el nombre HP_1102W a la impresora en CUPS, será necesario que el recurso a Samba
llame igual.

2. Hay que añadir la variable print ok = yes al recurso compartido para indicar que este recurso es una impresora.

3. La variable path debe indicar el directorio donde se almacenan los trabajos que serán impresos. Es obligado
que el directorio que tenga permisos de escritura para todo aquel que pueda imprimir, de otro modo los
clientes tendrán un error al imprimir. Podemos usar el directorio /var/spool/samba, que ya está preparado
con el paquete Samba.

4. Típicamente, los controladores de impresión de Windows envían los datos a la impresora de forma que no es
necesario ningún filtro de procesado, al contrario de los sistemas Linux que envían los datos en PostScript. Si
no es necesario ningún procesado añada el parámetro cups options = "raw" .

[MFC-L2700DW ]

comment = "Brother MFC-L2700DW series"

print ok = yes

path = / var / spool / samba

cups options = "raw"

Esta es la configuración mínima imprescindible para tener accesible la impresora desde los clientes con Windows, tal
como puede observarse en la figura 2.4 .

Figura 2.4: Impresora accesible desde clientes Windows

15
Como no hemos proporcionado ningún controlador deberá añadir manualmente ( figuras 2.5 y 2.6 ).

Figura 2.5: Adición manual del controlador

Figura 2.6: Adición manual del controlador

16
Como veis, compartir una impresora es una tarea muy sencilla, pero se puede mejorar para facilitar las
tareas la administración. En primer lugar, podemos hacer que Samba detecte automáticamente las impresoras
conectadas al sistema de impresión y las comparta. De esta manera no es necesario añadir una a una. Para ello basta
con incluir el recurso compartido especial [printers]con los mismos parámetros que una impresora.

[ Printers ]

path = / var / spool / samba

print ok = yes

Esta pequeña modificación puede liberar la carga del administrador cuando haya muchas impresoras conectadas a la
máquina, como en el caso de un servidor de impresión de una oficina. En segundo lugar, podemos facilitar la tarea de
instalación de las impresoras a los clientes si permitimos la descarga e instalación automática de controladores , es lo
que se conoce como Apuntar e imprimir .
AMPLIACIÓN

Apuntar e imprimir ( Point and print) Es una característica de los dominios Windows que permite a
un usuario utilizar las impresoras de red haciendo clic sobre sus iconos.

Para habilitar esta característica, es necesario que el directorio /var/lib/samba/printers haya los controladores de
impresión que se pueden descargar los usuarios, separados según la arquitectura de la máquina cliente.

# Ls -l / var / lib / samba / printers /

total 32

drwxr-xr-x 2 root root 4096 ene 8 16 : 56 COLOR

drwxr-xr-x 2 root root 4096 ene 8 16 : 56 IA64

drwxr-xr-x 2 root root 4096 ene 8 16 : 56 W32ALPHA

drwxr-xr-x 2 root root 4096 ene 8 16 : 56 W32MIPS

drwxr-xr-x 2 root root 4096 ene 8 16 : 56 W32PPC

drwxr-xr-x 2 root root 4096 ene 8 16 : 56 W32X86

drwxr-xr-x 2 root root 4096 ene 8 16 : 56 WIN40

drwxr-xr-x 2 root root 4096 ene 8 16 : 56 x64

Así, por ejemplo, habrá que añadir los controladores para las máquinas con Windows de 32 bits dentro del
directorio W32X86, los controladores para las versiones del sistema Windows de 64 bits se deberán almacenar
dentro x64, y así sucesivamente.

Este directorio es necesario compartirlo con el nombre de [print$], que es el recurso donde las máquinas en un grupo
de trabajo Windows buscan los controladores de las impresoras. Salvo los administradores, es importante que todo el
mundo tenga acceso de sólo lectura a este recurso.

17
[ Print $ ]

path = / var / lib / samba / printers

browseable = yes

read only = yes

guest ok = no

write list = root

Debe haber al menos un usuario que pueda cargar los controladores en estos directorios. Como veis, en el ejemplo
asignamos permisos de escritura al usuario root , pero también podríamos asignarlos a otro usuario o grupo si fuera
necesario, siempre y cuando asignamos los permisos de escritura en el directorio /var/lib/samba/printers.

Finalmente, hay que dar el derecho SePrintOperatorPrivilege al usuario que pueda añadir controladores.

# net -U root%contrasenya rpc rights grant root \ SePrintOperatorPrivilege

El usuario root ya puede añadir al servidor todos los controladores que desee. Para hacerlo hay que conectarse al
servidor desde una máquina con Windows ( figura 2.7 ).

Figura 2.7: Conexión desde una máquina Windows

18
2.1.5 Master browser

En un entorno empresarial, los servidores suelen ser los equipos más potentes de la red y los que están disponibles la
mayor parte del tiempo. En este escenario es probable que Samba sea uno de los servicios instalados. Entonces, ¿por
qué no aprovechar la potencia de estas máquinas que Samba actúe como master browser ?

Si Samba instala en una máquina con alta disponibilidad y se configura como master browser aprovecharemos la
potencia de la máquina donde está instalado y podremos evitar parte de los problemas de sincronización debidos a la
desconexión repentina de las máquinas del entorno de trabajo.

En caso contrario puede correr el riesgo de que una máquina menos potente, como la de un trabajador, asuma ese
rol. Si esta máquina no es suficientemente potente o está saturada de trabajo, el resto del grupo de trabajo tendrá
problemas de lentitud cuando quiera acceder a la red.

Cualquiera de las máquinas de un grupo de trabajo es susceptible de tomar el rol de master browser . Si queremos que
Samba tenga este rol debemos forzar para que gane las elecciones .

El algoritmo de elección está implementado en todos los sistemas Windows, de manera que cuando se lleva a cabo,
todos ellos estarán de acuerdo en quien será el master y el backup browser . También hay que saber que en cualquier
momento se puede forzar el proceso de elección.

El proceso de elección se basa en algunos aspectos de los ordenadores, como el tiempo que llevan encendidas, el
sistema operativo o la versión del protocolo que utilizan. El sistema operativo que tenga un valor más alto en la escala
gana la elección.

Problemas de seguridad en el proceso de elección del master browser


IMPORTANTE

El mecanismo utilizado en el proceso de elección permite que cualquier máquina de la red pueda
tomar el rol de master browser . Esto ocasiona un problema de seguridad, ya que de este modo,
una máquina de un posible atacante podría forzar la elección, ganarla y hacer modificaciones en la
lista de equipos y suplantar así la identidad de una de las máquinas . A partir de aquí, el atacante
podría obtener los nombres de usuario y contraseñas que envían los clientes.

Por defecto, un servidor Samba está configurado para poder actuar como master browser y se asigna a sí mismo un
valor por encima del que tienen los clientes de Windows. Por lo tanto, en una red igualitaria (sin controladores de
dominios) un ordenador Samba siempre ganará la elección ante equipos Windows . Si, en cambio, hay un controlador
de dominio, la perderá, ya que estos tienen asignado un valor superior.

En cualquier caso, siempre puede establecer el valor desde el archivo de configuración con la variable os level, que
como máximo puede tomar el valor 255.

[ Global ]

...

os level = 100

...

19
Si además se desea forzar el proceso de elección cada vez que se inicie el servidor Samba, hay que poner la
variable preferred master = yes .

[ Global ]

...

os level = 100

preferred master = Yes

...

La tabla 2.4 muestra un resumen de las variables implicadas en la elección del master browser .

Tabla 2.4: Variables implicadas en el proceso de elección del master browser.

VARIABLE VALOR DESCRIPCIÓN

Determina si Samba puede actuar como master browser . Por defecto, lo


local master yes / no
puede hacer.

Valor que se tendrá en cuenta en el proceso de elección. Cuanto más


os level numérico 0-255
elevado, más probabilidades tiene de ganarlo.

preferred Si se establece a yes , se fuerzan las elecciones cuando Samba se incorpora


yes / no
master a la red.

20
2.1.6 Acceso a los recursos mediante clientes GNU/Linux

En Linux un cliente dispone de varias formas de acceder a los recursos compartidos en un grupo de trabajo. En
cualquier distribución puede descargarse el paquete smbclient y acceder vía órdenes.

# Apt-get install smbclient

El paquete smbclient contiene varias herramientas:

# Dpkg -L smbclient | grep bin

/Usr/bin

/Usr/bin/smbspool

/Usr/bin/rpcclient

/Usr/bin/smbtree

/Usr/bin/smbcacls

/Usr/bin/findsmb

/Usr/bin/smbget

/Usr/bin/smbcquotas

/Usr/bin/smbclient

/Usr/bin/smbtar

Sólo verá algunas de las opciones más significativas, ya que explicar la función de todas ellas ocuparía mucho tiempo,
y en caso necesario todas disponen de páginas al manual que puede consultar escribiendo man <orden> en un
terminal.

21
La orden smbtree muestra todos los equipos del grupo de trabajo en modo texto, de manera similar a la Entorno de
red de Windows. Dibuja un árbol con todos los dominios conocidos, los servidores que comparten recursos y sus
nombres.

# Smbtree -N

G-IEDIB

\\ UBUVM ubuvm server (Samba, Ubuntu)


\\ UBUVM \ Ubu-compartida Directorio compartido en Ubuntu
\\ UBUVM \ IPC $ IPC Service (ubuvm server (Samba, Ubuntu))
\\ UBUVM \ print $ Printer Drivers
\\ PC- WIN10 PC-Win10-B
\\ PC-WIN10 \ Users
\\ PC-WIN10 \ IPC $ IPC remota
\\ PC-WIN10 \ COMPA_1 Enlace a Compartida_1
\\ PC-WIN10 \ Compartida_2
\\ PC-WIN10 \ Compartida_1
\\ PC -WIN10 \ C $ Recurso predeterminado
\\ PC-WIN10 \ ADMIN $ Admin remota

Con la opción -N puede hacer la consulta sin necesidad de introducir ninguna contraseña.

Para listar los recursos compartidos por una máquina se puede utilizar la orden smbclient -L seguida del nombre del
ordenador.

# Smbclient -L PC-WIN10 -N

Sharename Type Comment


--------- ---- -------
ADMIN $ Disk Admin remota
C $ Disk Recurso predeterminado
Compartida_1 Disk
Compartida_2 Disk
COMPA_1 Disk Enlace a Compartida_1
IPC $ IPC IPC remota
Users Disk

22
En el ejemplo puede observar que la máquina comparte siete recursos en total, tres de los cuales son
ocultos. Utilizando la misma orden, puede acceder al recurso indicando la dirección UNC, y con la opción -U especificar
qué usuario utiliza para realizar la conexión.

# Smbclient // pc-win10 / Compartida_1 -U usuario


Enter G-IEDIB \ usuario s password:
Try "help" to get a list of posible commands.
smb: \> ls
. D 0 Fri Feb 21 10:30:47 2020
.. D 0 Fri Feb 21 10:30:47 2020
Acta_23.rtf A 7 Fri Feb 21 10:30:40 2020

12.958.463 blocks of size 4096. 6811354 blocks available


smb: \ > exit

Un entorno interactivo le permite realizar las acciones deseadas en el recurso compartido. Algunas de las órdenes
utilizadas son similares a las de Unix ( cd , ls , pwd ...), mientras que para subir o descargarnos archivos puede
utilizar put y get , respectivamente. En caso de duda, escribiendo help obtendrá la lista de opciones.

1. smb: \ > help

También puede acceder con la interfaz gráfica que proporciona el escritorio. Se puede acceder desde Otras
ubicaciones o Lugares > Red (depende de la distribución que emplees) y se abrirá una ventana del estilo de la mostrada
en la figura 2.8 .

Figura 2.8: Acceso a la red desde la interfaz gráfica de Ubuntu

De manera sencilla se puede navegar por los diferentes servidores de red de forma muy similar a Windows.

23
2.1.7 Acceso a los recursos mediante clientes Microsoft Windows

El acceso a los recursos compartidos por Samba mediante un cliente Windows se puede realizar utilizando las
utilidades gráficas que proporciona el mismo explorador del sistema operativo de forma totalmente intuitiva.

Para acceder al servidor Samba primero debe asignar un nombre NetBIOS y unir el equipo Windows al mismo grupo
de trabajo.

En la figura 2.9 se observa la ventana de configuración de un ordenador unido al grupo de trabajo G-IEDIB con el
nombre PC-Win10-A. Una vez unido al grupo de trabajo se debe reiniciar la máquina.

Figura 2.9: Ventana de configuración del grupo de trabajo

Se accede a los recursos compartidos a través del explorador de la red o bien escribiendo la dirección UNC del recurso
compartido directamente en la barra superior (por ejemplo, \\Servidor\recurs), utilizando el nombre NetBIOS del
servidor o bien la dirección IP seguida del nombre del recurso, tal y como muestra la figura 2.10 .

Son muchos los elementos que participan del funcionamiento del explorador de red 'y muy a
IMPORTANTE

menudo, algún parámetro mal configurado puede hacer que su funcionamiento no sea el
esperado y no veamos representado un recurso compartido donde tocaría ser. La vía más fiable,
y por lo tanto la recomendada, es el uso de la dirección UNC del recurso compartido.

24
Definición de UNC:

(Universal Naming Convention) Un estándar para identificar servidores, impresoras y otros recursos
en una red, que se originó en la comunidad de Unix. Una ruta UNC utiliza barras dobles o barras
diagonales inversas para preceder al nombre del equipo. La ruta de acceso (disco y directorios)
AMPLIACIÓN

dentro del equipo se separa con una sola barra o barra diagonal inversa, como en los ejemplos
siguientes.

Ejemplos:
// nombre_servidor / ruta - Unix / Linux
\\ nomi_servidor \ ruta - Windows

Figura 2.10: El acceso a los recursos compartidos mediante Windows se realiza de manera intuitiva

25
2.2 El servidor Samba como controlador primario de dominio

Sin duda, Active Directory es la característica más atractiva a la hora de decidirnos por Windows Server como servidor
de nuestra red local. El conjunto de servicios y utilidades que ofrece para la gestión de usuarios y equipos permite una
gestión tremendamente productiva, especialmente si trabajamos con clientes Windows.

Por otra parte Samba, la implementación para el mundo Linux del protocolo CFIS de Windows, permitía hasta hace
unos años implantar un servidor de dominio NT, que aunque permitía la autenticación centralizada, quedaba muchos
pasos atrás respecto a las funcionalidades de cualquier Windows Server de 2003 hacia delante. Pero desde la aparición
de la versión 4 (finales de 2012), Samba 4 permite implementar un DC (Domain Controller) basado en Active Directory.

A continuación veremos cómo crear un controlador de dominio basado en Active Directory usando Samba. En nuestro
caso, utilizaremos una máquina con Ubuntu 4.18. La configuración se hará sobre los siguientes datos:

• Nombre del controlador de dominio de Active Directory: IEDIB-CD

• Nombre DNS del dominio de Active Directory: xiedib.local

• Nombre NEBIOS del dominio: xiedib

• Dirección estática del servidor: 192.168.10.10

• Rol del servidor: Domain Controler (DC)

Si para probar una configuración como ésta quieres utilizar maquinas virtualizadas a VirtualBox la opción
recomendable sería configurar las máquinas con una red NAT con una configuración como la que puedes ver a
continuación (figura 2.1):

Figura 2.1: Configuración de red NAT en VirtualBox

26
2.2.1 El nombre del host

Antes de entrar propiamente en la instalación y configuración de Samba tenemos que preparar la máquina que nos
hará de servidor. Al haber comprobado que el sistema operativo está actualizado, estableceremos lo que debe ser el
nombre del host y el del dominio. Para definir el nombre de host, una de las opciones que tenemos es editar los
archivos /etc/hostname y /etc/hosts .

hostnamectl set-hostname <nombre del servidor>


AMPLIACIÓN

La orden hostnamectl nos permite cambiar de manera permanente el nombre del host pero
igualmente nos conviene editar /etc/hosts.

En el archivo / etc / hosts aparecen una serie de direcciones IP con sus correspondientes nombres
lógicos. De este modo, cuando se hace referencia a un ordenador que está identificado en esta
lista, el acceso es inmediato, y no se necesita la intervención de un servidor DNS para resolverlo.

Este archivo contenía una referencia al nombre antiguo del propio servidor, que Cambiaremos el
nombre antiguo del servidor. En este caso, además, incluiremos tanto el nombre DNS como el
IMPORTANTE

nombre NetBIOS (IEDIB-CD.xiedib.local y IEDIB-CD).

También incluiremos una referencia a la dirección IP estática que asignaremos al equipo en el


siguiente apartado.

#Contingut de / etc / hosts


127.0.0.1 localhost
127.0.1.1 IEDIB-CD.xiedib.local IEDIB-CD
192.168.10.10 IEDIB-CD.xiedib.local IEDIB-CD

27
2.2.2 La interfaz de red

Al tratarse de un servidor es más que conveniente que la IP sea estática.

Network-Manager

Si queremos controlar de manera completa la configuración de las interfaces de red de nuestro


sistema y éste tiene instalado un entorno gráfico, puede darse el caso de que la herramienta gráfica
Network-Manager interfiera con la configuración manual que realizamos.
AMPLIACIÓN

Si quieres evitar esto, tienes la opción de desinstalar la herramienta.

sudo apt purge network-manager

Esta es una precaución que no deberíamos haber tomado si hubiéramos optado por la versión
Server de Ubuntu.

Optamos por usar netplan para la configuración de la interfaz.

Editamos o creamos un archivo dentro /etc/netplan/ como 01-netcfg.yaml y definimos el siguiente contenido:

#Arxiu para la configuración estática de la red


network:
version: 2
renderer: networkd
Ethernets:
enp0s3:
dhcp4: no
dhcp6: no
addresses: [192.168.10.10/24]
gateway4: 192.168.10.1
nameservers:
addresses: [192.168.10.10 , 8.8.8.8, 8.8.4.4]

Guardado los cambios y aplicamos la configuración:

sudo netplan apply

En principio hasta aquí los pasos previos. Podemos reiniciar si queremos tener la certeza de que todos los cambios se
han realizado como es debido.

28
2.2.3 Instalación del software

El software necesario implica los siguientes paquetes:

• samba: El servidor de archivos, impresión y autentificación para SMB / CIFS.

• smbclient: Clientes de línea de comandos para SMB / CIFS.

• winbind: Servicio para resolver información sobre usuarios y grupos.

Lanzaremos de una vez la instalación de toda la paquetería necesaria para la configuración del servidor con la siguiente
orden:

sudo apt install samba smbclient winbind krb5-config

La instalación de Kerberos lanzará un asistente interactivo que nos pedirá información (o confirmación) sobre el
dominio y el nombre del servidor (figura 2.2).

29
2.2.4 configurar Samba

Ahora toca configurar Samba. En primer lugar renombramiento el archivo de configuración. Esto nos sirve para
asegurarnos de que no se usarán los datos que contiene durante el proceso de configuración y que sólo se usan las
que hemos introducido. De paso, tenemos un backup por si algo falla:

sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.old

Después de esto ya podemos promover nuestro servidor como controlador de un dominio con Samba 4 que podrá
hacer el papel de un servidor de dominio de Active Directory. Para ello utilizaremos la orden samba-tool domain
provision y, de forma interactiva, se nos pedirán los valores que se necesiten y se sugerirán sus valores
predeterminados.

sudo samba-tool domain provision

Si hemos realizado correctamente todo el proceso hasta llegar aquí, los valores que nos sugiere el asistente (los que
aparecen entre []) serán todos correctos y, por tanto, sólo será necesario pulsar INTRO para aceptarlos. Para terminar
introduciremos por dos veces la que será la contraseña del usuario administrator . Esta contraseña requiere cierta
complejidad. Una sencilla no será aceptada y se tendrá que repetir el proceso. Poner atención en la información que
le da por pantalla.

Figura 2.3: Asistente samba-tool

30
Si puede ver el resumen del final, es que la operación ha resultado exitosa.

Figura 2.4: Asistente samba-tool

El procedimiento anterior, además de configurar Samba como controlador de dominio, ha generado un archivo de
configuración para Kerberos en la ruta /var/lib/samba/private/krb5.conf . Su ubicación adecuada para poder
funcionar es /etc/ , entonces el copiamos allí:

sudo cp /var/lib/samba/private/krb5.conf /etc/

Antes de ajustar la resolución de nombres detendremos y deshabilitaremos los servicios implicados

sudo systemctl stop smbd.service nmbd.service winbind.service systemd-resolved.service


sudo systemctl disable smbd.service nmbd.service winbind.service systemd-resolved.service

Si quisiéramos conocer el estado del servicio samba-ad-dc en este momento podrían ejecutar la orden:

systemctl status samba-ad-dc.service

31
Es muy probable que se dé una salida como la siguiente:

Figura 2.5: systemctl status samba-ad-dc.service

Como hay que asegurarse de que el servicio se iniciará sin inconvenientes, desenmascararemos el servicio con la
siguiente orden:

sudo systemctl unmask samba-ad-dc.service

ACTIVAR, HABILITAR Y ENMASCARAR

Para gestionar servicios en systemd , hay que tener en claro los tres estados en los que se puede encontrar un
servicio. Estos estados son los siguientes:

• Activo e inactivo

• Habilidad e inhabilitado

• Enmascarado o desenmascarado

Activo e inactivo: Un servicio está activo cuando está en funcionamiento.

Habilidad o inhabilitado: El siguiente estado en el que podemos encontrar los servicios en systemd es el de
habilidad o inhabilitado. Que un servicio JavaScript nos indica que se iniciará de manera automática cuando
iniciamos el equipo. Por el contrario estará inhabilitado, cuando no se inicie de forma automática. Este estado,
no es incompatible con la anterior, es decir, un servicio puede estar activo y deshabilitado, inactivo y habilidad, y
sucesivamente.
AMPLIACIÓN

Enmascarado y desenmascarado

El último estado que nos queda por definir para gestionar servicios en systemd es el enmascaramiento. Un
servicio está enmascarado cuando no se puede iniciar de forma manual o por medio de otro servicio. Por
supuesto, cuando un servicio está enmascarado no puede ser iniciado en el arranque de la máquina. Es decir, un
servicio enmascarado puede estar activo, pero no puede estar habilitado. Ahora bien, si el servicio no está activo
y está enmascarado, no se podrá iniciar.

En resumen, podemos decir que existen tres niveles de apagado:

• El primer nivel de apagado, simplemente termina la instancia del servicio que está en funcionamiento. Esto
se hace con la instrucción sudo systemctl stop service. Esto simplemente termina la instancia del servicio
que esté en funcionamiento.

• El segundo nivel de apagado, evita que un servicio se inicie con el arranque de la máquina. Para impedir
que un servicio arranque con la máquina, tan sólo tenemos que ejecutar la siguiente instrucción sudo
systemctl disable service.

• Finalmente, el tercer nivel de apagado es el enmascaramiento. Este nivel de apagado impedirá que se inicie
un servicio, ni de forma manual, ni en el arranque de la máquina.

32
El archivo /etc/resolv.conf encarga de configurar la parte del sistema de resolución de nombres de dominio. Lo hemos
de editar para conseguir que esta resolución de nombres funcione como es debido.

En este momento este archivo es sólo un enlace a otro archivo (/run/systemd/resolve/stub-resolv.conf), por tanto, lo
que tendremos que hacer es eliminarlo y crear uno nuevo con el contenido necesario.

Indicaremos dentro del archivo a qué dominio pertenece la máquina y como primer servidor de DNS hará referencia a
sí misma (127.0.0.1). Opcionalmente si queremos tener la certeza de que también se podrán resolver los dominios del
exterior podemos añadir las direcciones de servidores DNS públicos (la muestra se han añadido las de Google). El orden
en que aparecen es importante para que este será el orden en que serán consultadas. El archivo quedará por tanto
así:

Figura 2.6: /etc/resolv.conf

Y ahora sólo nos falta iniciar el servicio samba-ad-dc y habilitarlo para que también se inicie automáticamente al
arrancar el sistema.

sudo systemctl start samba-ad-dc


sudo systemctl enable samba-ad-dc

33
2.2.5 Creación y gestión de usuarios

La creación simple de un usuario para el dominio la podemos hacer así:

sudo samba-tool user create username

También podemos optar por hacerlo aportando más información desde la propia orden:

(ejemplo)
sudo samba-tool user create tamengual iedIB_2020 --given-name="Toni" --surname="Amengual" --
department="Dirección" --mail=tamengual@iedib.net --compañero="IEDIB" --job-title="Jefe de estudios
de FP"

TAREA DE APRENDIZAJE:

samba-tool es una herramienta muy potente que nos permite realizar toda una colección de tareas
bastante importantes. Te propongo hacer una búsqueda por internet para descubrir todas las posibilidades
de esta orden y probar al menos las que te resulten más interesantes.

34
2.2.6 Vincular una máquina con Windows 10 al dominio.

Ya podemos añadir máquinas al dominio de Active Directory que hemos configurado sobre Ubuntu de la misma manera
que si el servidor fuera un Windows Server. El procedimiento es exactamente el mismo.

Antes de establecer el vínculo puede resultar recomendable comprobar que la máquina Windows ve el servidor y ve
el dominio. Si están sobre la misma red, verá el servidor sin duda. Bastará hacer los pings correspondientes a la IP de
servidor (192.168.10.10) o en su nombre (iedib-cd) y recibiremos respuesta satisfactoria. Para poder ver el dominio
(xiedib.local) la máquina necesitará tener el servidor como servidor de DNS. Lo podemos comprobar haciendo ping
xiedib.local .

En la figura 2.7. podemos ver cómo modificamos la configuración del dispositivo de red para que pueda ver el dominio
y, de paso, como segundo servidor de DNS uno público que pueda resolver los nombres de dominio del exterior.

Figura 2.7: Configuración interfaz de red

35
Podemos comprobar el cambio realizado (figura 2.8)

Figura 2.8: El dominio resulta 'visible'

Ahora ya podemos proceder con la vinculación.

Abriremos las propiedades del sistema y pulsamos sobre la opción que nos permite cambiar la configuración del equipo
(nombre, dominio y grupo de trabajo).

Figura 2.9: Propiedades del sistema

36
Una vez dentro, un botón nos da opción a cambiar el dominio o grupo de trabajo y nos presenta la pantalla
Ingresaremos el nombre del equipo que queramos y números el dominio (xiedib.local).

Figura 2.10: Cambiar el dominio y el nombre del equipo

A continuación se nos pide identificarnos como usuario con privilegios (el administrador de Samba es, por defecto,
administrator -con indiferencia al uso de mayúsculas y minúsculas-).

Figura 2.11: Acreditación como administrador para cambiar el dominio

37
Si todo ha funcionado correctamente, una ventana emergente nos lo comunicará ya continuación nos informará de
que los cambios tendrán efecto una vez reiniciado el equipo.

Figura 2.12: Los cambios se aplicarán después de reiniciar el equipo

Tras el reinicio del equipo ya podremos iniciar sesión con alguno de los usuarios del dominio creados anteriormente
con samba-tool.

Figura 02.13: Inicio de sesión dentro del dominio

38
2.2.7 Uso de Windows 10 para la administración del dominio de Active Directory.

Existe una posibilidad bastante interesante por si se quiere gestionar Active Directory de la manera en que se haría
sobre una máquina con Windows Server.

Se trata de instalar en un cliente de Windows un software llamado 'Herramientas de administración remota del
servidor' (RSAT - Remote Server Administration Tool). Este software se debe bajar desde la página de Microsoft y, una
vez instalado, nos permitirá, entre muchas otras opciones, gestionar usuarios, grupos, unidades organizativas,
directivas, etc... del mismo modo que se hace ante un Windows Server. A quien esté acostumbrado a este tipo de
gestión no le supondrá un problema que Active Directory esté controlado por un servidor con GNU/Linux.

A continuación tienes una selección de capturas del procedimiento de lo anteriormente indicado:

1.

39
2.

3.

40
4.

41
5.

42
6.

43

También podría gustarte