PDF de programación - Curso avanzado de Linux SAMBA

<<>>
Imágen de pdf Curso avanzado de Linux SAMBA

Curso avanzado de Linux SAMBAgráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 9 de Febrero del 2018)
443 visualizaciones desde el 9 de Febrero del 2018
166,0 KB
35 paginas
Curso avanzado de Linux

SAMBA

Rafael Varela Pet

Unidad de Sistemas

Área de Tecnologías de la Información y Comunicaciones

Universidad de Santiago de Compostela

Curso avanzado de GNU/Linux

SAMBA

● Paquete Open Source que permite a los sistemas

UNIX comunicarse mediante SMB/CIFS
– SMB = Server Message Block
– CIFS = Common Internet FileSystem

● Compartición de archivos e impresoras
● Funcionamiento como cliente y/o servidor

Curso avanzado de GNU/Linux

SAMBA. Nomenclatura

● NetBEUI: Protocolo de transporte. Actúa al
mismo nivel que TCP/IP. No empleado por
SAMBA

● NetBIOS: API para operaciones en red
● NBT: NetBIOS sobre TCP/IP
● SMB/CIFS funciona sobre NetBIOS en sistemas

Windows

● SAMBA es una implementación de NBT y

SMB/CIFS

Curso avanzado de GNU/Linux

Servicios

● Servicios presentes en NBT:

– Servicio de nombres: permite que los equipos se

puedan localizar por sus nombres

– Servicio de datagramas: intercambio de datos en modo

desconexión (se usan paquetes UDP)

– Servicio de sesión: intercambio de datos orientado a

conexión (se usa TCP). Es el servicio usado para
intercambio de ficheros

Curso avanzado de GNU/Linux

Demonios y utilidades

● Demonios

– smbd: hace prácticamente todo el trabajo ya que es el
que maneja la compartición de archivos e impresoras

– nmbd: incorpora el servicio de nombres

● Utilidades
– smbclient
– nmblookup: permite encontrar nombres NetBIOS en

una red, buscar sus dir. IP (entre otras cosas)

– SWAT (Samba Web Administration Tool)

Curso avanzado de GNU/Linux

Puertos

● Puertos empleados en NBT:
– 137/udp: servicio de nombres
– 138/udp: servicio de datagramas

● Servicio de sesión:

– 139/tcp: modo clásico a través de NetBIOS
– 445/tcp: SMB/CIFS directamente por TCP/IP sin usar

NetBIOS

Curso avanzado de GNU/Linux

Instalación en Debian

● Paquetes

– samba: servidores
– smbclient: herramientas cliente
– samba-common: componentes comunes a la parte de

servidor y la de cliente

Curso avanzado de GNU/Linux

Resolución de nombres

● Broadcast en la red local
● WINS: Windows Internet Name Service. Servicio

semejante al DNS

● Fichero lmhosts: equivalente al fichero hosts de

UNIX

● DNS: Método preferido en Windows 2000 en

adelante

Curso avanzado de GNU/Linux

Problemática en compartición de archivos

● Mayúsculas/minúsculas

– UNIX es sensible a mayúsculas
– Windows “retiene” las mayúsculas
– DOS solo trabaja en mayúsculas

● Juego de caracteres
● Longitud máxima de los nombres de fichero
● Propietario de los ficheros
● Permisos de acceso /ACLs

Curso avanzado de GNU/Linux

Problemas en la autentificación

● Los sistemas Windows antiguos enviaban las
claves en claro => podemos calcular el hash y
comparar con lo que tenemos en /etc/shadow

● Actualmente las claves se envían cifradas con un

sistema incompatible con el de UNIX.

● Las soluciones:

– mantener una base de datos separada
– delegar la autentificación a otra máquina

Curso avanzado de GNU/Linux

Bases de datos de usuarios

● Parámetro passdb backend

– tdbsam: Trivial Database (TDB)
– ldapsam
– nisplussam
– mysql

● Por defecto, en Debian se utiliza tdbsam
● Ejemplos:

passdb backend = 

tdbsam:/etc/samba/passdb.tdbpassdb

passdb backend=ldapsam:ldap://localhost

Curso avanzado de GNU/Linux

tdbsam

● Bases de datos en /var/lib/samba. Ejemplos:

secrets.tdb, passdb.tdb

● tdbbackup permite

– hacer copias de seguridad
> tdbbackup *.tdb

– verificar la integridad de la base de datos

> tdbbackup ­v *.tdb

● Si instalamos el paquete tdb-tools podemos

emplear tdbtool y tdbdump

Curso avanzado de GNU/Linux

SAMBA. Fichero smbpasswd

● passdb backend = smbpasswd guest
● En /etc/samba/smbpasswd

– Formato:

username:uid:HASH LANMAN:HASH NT:Flags:Fecha de modificación

– Flags:

U: Usuario normal
N: Usuario sin clave
D: Cuenta desactivada
W: Cuenta de estación de trabajo

– Ejemplo: [U ]

Curso avanzado de GNU/Linux

Gestión usuarios

● Añadir un usuario

> smbpasswd ­a nombre_usuario

● Cambiar la contraseña a un usuario
> smbpasswd nombre_usuario
● Habilitar/Deshabilitar un usuario

> smbpasswd ­e nombre_usuario
> smbpasswd ­d nombre_usuario

● Borrar un usuario

> smbpasswd ­x nombre_usuario

Curso avanzado de GNU/Linux

SAMBA. Configuración

● En /etc/samba/smb.conf
● Tres bloques:

– Global
– Compartición de ficheros
– Compartición de impresoras

● Secciones especiales:

[global] [homes] [printers]

● Podemos comprobar nuestra configuración con el

comando testparm.

Curso avanzado de GNU/Linux

SAMBA. Configuración

● Identificación de nuestra máquina

workgroup = 
netbios name = 
netbios aliases =

● Alias: Podemos usar ficheros específicos para

cada alias:

include = %L.conf

● Elección del master browser.

os level =
local master = 
preferred master =

Curso avanzado de GNU/Linux

Autentificación

● Encriptación passwords

encrypt passwords = yes

● Métodos de autentificación (parámetro security)
– share: no hay usuarios. Se asignan contraseñas a los

recursos

– user: se necesita un usuario UNIX en el servidor
– server: se le reenvía la petición de autentificación a otra

máquina.

– domain: el servidor SAMBA pertenece a un dominio
– ads: el servidor pertenece a un dominio de Directorio

Activo

Curso avanzado de GNU/Linux

Autentificación “server”

● Delega la autenticación en un servidor

determinado
● En smb.conf

security=server
encrypt passwords = yes
password server =”nombre_servidor”

● Se requiere una cuenta UNIX local (puede estar

bloqueada)

Curso avanzado de GNU/Linux

Autentificación “domain”

● En smb.conf

security=domain
encrypt passwords = yes
workgroup = “nombre_grupo”
password server = *

● La máquina tiene que estar registrada en el

dominio:

> net rpc join ­U administrador
● Tienen que existir cuentas UNIX locales

Curso avanzado de GNU/Linux

Gestión de cuentas

● Automatizar creación de cuentas UNIX:

– Usar parámetro add user script:

● Crea cuentas cuando un usuario se autentifica
correctamente
● Las bajas son manuales
● Ejemplo
add user script = /usr/sbin/useradd %u

– Winbind: altas y bajas dinámicas. El equipo es

un miembro completo del dominio

Curso avanzado de GNU/Linux

SAMBA. Winbind

● Winbind permite:

– Verificar las credenciales de un usuario (vía PAM).
– Resolución de la identidad (vía NSS).
– Winbind mantiene una base de datos independiente

(winbind_idmap.tdb) en la que se almacena la
asociación entre UIDs / GIDs UNIX y los SIDs de NT.

● Requisitos previos:

– Nuestro servidor debe estar unido al dominio
– Instalamos paquete winbind

Curso avanzado de GNU/Linux

Winbind. Configuración

● Editar smb.conf:

security = domain

winbind use default domain = yes
winbind separator = +
winbind cache time = 300

idmap uid = 10000­20000
idmap gid = 10000­20000

template shell = /bin/bash
template homedir = /home/%D/%U

winbind enum groups = yes
winbind enum users = yes

Curso avanzado de GNU/Linux

Winbind. Configuración
● En caso de tener muchos usuarios, puede

considerarse:

winbind enum groups = no
winbind enum users = no

– Pero puede provocar problemas a ciertas aplicaciones
● Ajustar el parámetro “valid users” en la sección

[homes]

valid users = %S

Curso avanzado de GNU/Linux

Winbind. Configuración

● Parámetro “winbind separator”:

– Define el carácter empleado cuando se muestra un

usuario en la forma DOMINIO\usuario.

– Sólo se aplica cuando usamos los módulos

pam_winbind.so y nss_winbind.so para los servicios
UNIX

– Algunos caracteres problemáticos

● + : También se emplea con NIS en /etc/group
● \

: Carácter de escape en el shell

Curso avanzado de GNU/Linux

Winbind. Configuración

● Con Windows Server 2003

– Editar sección [global] de smb.conf

client schannel = no

– Asignar usuario para establecer sesión con un

controlador de dominio. Ejecutar:

> wbinfo –set­auth­user=usuario%clave

● Alternativa. Emplear Kerberos.

– En smb.conf:

security=ads

Curso avanzado de GNU/Linux

Winbind. Pruebas

● Unirnos al dominio e iniciar winbind
● Probar configuración:

● > wbinfo ­p (hace 'ping')
● > wbinfo ­t 

(comprueba la cuenta de la máquina en el dominio)

● > wbinfo ­g (lista grupos)
● > wbinfo ­u (lista usuarios)

● El resolver UNIX tiene que encontrar la

información en DNS del Servidor de Dominio.
– Ajustar contenido de /etc/resolv.conf

Curso avanzado de GNU/Linux

Winbind. NSS.

● NSS (Name Service Switch): sistema modular
para acceder a las bases de datos usadas por la
librería C.

● Configurar NSS

– Editar /etc/nsswitch.conf

passwd: files winbind
group: files winbind

● Probar NSS:

> getent group
> getent passwd

Curso avanzado de GNU/Linux

Winbind. PAM

● Podemos autenticar otros servicios vía PAM
● Editar el fichero /etc/pam.d correspondiente al servicio

que queremos modificar

● Ejemplo: OpenSSH, editar /etc/pam.d/ssh:

auth sufficient pam_winbind.so
@include common­auth
...
account    sufficient   pam_winbind.so
@include common­account
...

● Conectar al servidor SSH:

> ssh DOMINIO+usuario@servidor_ssh

Curso avanzado de GNU/Linux

Winbind y Kerberos

● El método anterior es compatible con dominios

pre-windows 2000

● Con Directorio Activo podemos emplear

Kerberos

● En smb.conf:

realm = CURSOLINUX.LOCAL
security = ADS
encrypt paswords = yes
password server = servidor_kerberos

(esto último, sólo si no es capaz de localizarlo)

Curso avanzado de GNU/Linux

Winbind. Kerberos

● Instalar krb5-user, krb5-clients y krb5-config
● /etc/krb5.conf

[libdefaults]

default_realm = CURSOLINUX.LOCAL

[realms]

CURSOLINUX.LOCAL = {

        
        

kdc = 192.168.253.21
admin_server = 192.168.253.21

}

[domain_realm]

.cursolinux.local = CURSOLINUX.LOCAL
cursolinux.local = CURSOLINUX.LOCAL

Curso avanzado de GNU/Linux

Winbind. Kerberos

● Sincronizar reloj del equipo Debian

> net time set

● Probar kerberos:

> kinit usuario@CURSOLINUX.LOCAL
> klist

● Unirse al dominio y almacenar la cuenta del

equipo en la unidad organizativa “comput
  • Links de descarga
http://lwp-l.com/pdf8691

Comentarios de: Curso avanzado de Linux SAMBA (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad