Вы находитесь на странице: 1из 60

PROYECTO INTEGRADO

TUTORIAL
AUTENTIFICACIÓN LDAP
CONTRA SAMBA

ANTONIO JESÚS
DUEÑAS QUESADA
Pág. - 2 -

CURSO 2006/07
INDICE DE CONTENIDOS

1. INTRODUCCIÓN…………………………………………………………………... 4

1.1. ¿Qué es OpenLDAP y SAMBA?........................................................................ 4


1.2. Motivos de elección de proyecto……………………………………………… 4
1.3. ¿Para qué nos sirve y uso que le podemos dar?.................................................. 4
2. HARDWARE………………………………………………………………………. 4

2.1. Tipos de Hardware…………………………………………………………… 5


3. SOFTWARE………………………………………………………………………… 6
3.1. TIPOS DE SOFTWARE………………………………………………………. 6
3.2. SISTEMA OPERATIVO……………………………………………………… 7

3.2.1. Windows 2003 Server…………………………………………………… 8


3.2.2. Linux – Ubuntu 7.04…………………………………………………… 10
3.2.3. ¿En qué Sistema Operativo nos basaremos y por qué?.............................. 12
4. COSTES DE PROYECTO………………………………………………………… 13

5. TUTORIAL………………………………………………………………………… 17
5.1. LDAP…………………………………………………………………………. 17
5.1.1. Conceptos teóricos………………………………………………………. 17
5.1.2. Instalación…………………………………………………...................... 18

5.1.3. Configuración……………………………………………………………. 26
5.2. PHPLDAPADMIN……………………………………………………………. 26
5.2.1. Conceptos teóricos………………………………………………………. 26
5.2.2. Instalación……………………………………………………………….. 26

5.2.3. Configuración……………………………………………………………. 27
5.3. AUTENTIFICACIÓN DE USUARIOS A TRAVÉS DE OpenLDAP……….. 31
5.3.1. Instalación del software necesario………………………………………. 31
5.3.1.1. Instalación pam_ldap……………………………………………… 31

5.3.1.2. Instalación de nss_ldap……………………………………………. 36


5.3.2. Configuración de los archivos necesarios……………………………….. 42
5.3.2.1. /etc/nsswitch.conf…………………………………………………. 42
5.3.2.2. Configuración PAM………………………………………………. 43

5.3.2.3. /etc/pam.d/common-account……………………………………… 43
5.3.2.4. /etc/pam.d/common-auth………………………………………….. 43
5.3.2.5. /etc/pam.d/common-session………………………………………. 43
Pág. - 3 -

5.3.2.6. /etc/pam.d/common-passwd………………………………………. 44
5.3.2.7. Comprobando que todo funciona…………………………………. 44

5.4. SAMBA……………………………………………………………………….. 45
5.4.1. Conceptos teóricos………………………………………………………. 45
5.4.2. Instalación……………………………………………………………….. 49
5.4.3. Configuración SAMBA…………………………………………………. 51

5.4.4. Configuración de un cliente SAMBA…………………………………… 52


5.5. Agregando usuarios a PHPLDAPADMIN……………………………………. 52
5.5.1. Asignando privilegios y automatizando………………………………… 53
5.5.2. Scripts de inicio de sesión……………………………………………….. 54

5.5.3. Habilitar Profiles………………………………………………………… 55


5.5.4. Creación de home por defecto…………………………………………… 55
5.5.5. Permitir cambio de contraseña…………………………………………... 55
6. AUTENTIFICANDO EN WINDOWS XP…………………………………………. 56

7. CONCEPTOS FINALES…………………………………………………………… 59
7.1. Concepto de recursos utilizados……………………………………………….. 59
7.2. Conclusión…………………………………………………………………….. 60
8. ANEXOS……………………………………………………………………………. 60

9. RESULTADOS……………………………………………………………………... 60
Pág. - 4 -

1. INTRODUCCIÓN.

Es un proyecto basado en la integración de las tecnologías LDAP y SAMBA bajo un sistema


operativo libre de la distribución Ubuntu 7.04 Server (distribución especial para servidores), para
poder tener como servidor un Software libre, para poder dar soporte a los Sistemas operativos
basado en Linux y de la plataforma Microsoft. Autentificando los usuarios con LDAP, bajo el
gestor de dominios que se agrupa a los usuarios y utilizando Samba para poder permitir acceso de
lectura y escritura a una carpeta alojada en el propio servidor, donde se guardan todos los datos
que se efectúen en la maquina remota.

1.1. ¿QUÉ ES LDAP, SAMBA?


OpenLDAP, es una implementación open source del protocolo LDAP (lighweight
Directory Access Protocol).
Samba, es una suite que permite la interconexión, a través de la red, de sistemas
Windows, Unix y otros sistemas operativos, haciendo uso de los protocolos nativos
de Windows.

1.2. MOTIVOS DE ELECCIÓN DE PROYECTO

Si alguna vez ha tenido que realizar labores de administración en redes heterogéneas, en las
cuales existan múltiples clientes, y cada uno de ellos pueda tener un sistema operativo distinto,
sobre el cual puedan operar una infinidad de usuarios; se habrá dado cuenta de la complejidad que
esto conlleva. Por poner un simple ejemplo, si no posee una base de datos de usuarios común a
todos los clientes, tendría que dar de alta a cada nuevo cliente en cada una de las máquinas que
quisiese utilizar. Piense ahora que ocurriría si, por un cambio de política de su empresa, se tenga
que modificar cierto aspecto en todas las cuentas de los usuarios existentes...

Si entramos en el aspecto de la compartición de archivos entre los distintos usuarios, o el


almacén de los documentos de un determinado usuario, que puede utilizar múltiples clientes, la
cosa se complica. Y si a todo esto se le añade la gestión de las cuotas de impresión de todos y cada
uno de los usuarios, se hace necesario buscar un método que facilite, en la medida de lo posible, la
labor de administración.

1.3. ¿PARA QUÉ NOS SIVER Y USO QUE LE PODEMOS DAR?

Este proyecto intenta presentar un método para facilitar la integración de este tipo de redes. La
idea es utilizar un directorio LDAP como base de datos común para almacenar la información
relativa a los usuarios (bien sea la información personal, la relativa a las cuentas Unix, la relativa a
las cuentas Samba/Windows o bien las cuotas de impresión asociadas a un usuario o grupo de
usuarios).

Samba proveerá la integración de redes Unix/Windows, de forma que se simplifique


sobremanera el intercambio y almacenamiento de información de los usuarios. Samba permitirá,
por ejemplo, tener un único HOME por usuario, independientemente del cliente que se utilice.
También actuará como PDC (Servidor Primario de Dominio) de la red donde se encuentre, entre
otras cosas.

2. HARDWARE

El hardware se refiere a todos los componentes físicos (que se pueden tocar) de la


computadora: discos, unidades de disco, monitor, teclado, ratón (mouse), impresora, placas, chips
y demás periféricos. En cambio, el software es intangible, existe como ideas, conceptos, símbolos,
pero no tiene sustancia. Una buena metáfora sería un libro: las páginas y la tinta son el hardware,
mientras que las palabras, oraciones, párrafos y el significado del texto son el software. Una
computadora sin software sería tan inútil como un libro con páginas en blanco.
Pág. - 5 -

Ejemplo de parte Hardware (CPU)

Para montar estos servicios, necesitamos una maquina mínima citada en el apartado 1.4., estas
características son las mínimas recomendadas por el Sistema Operativo que vamos a utilizar
Ubuntu 7.04 Server.

La parte hardware es muy importante a tener en cuenta, debido que según sus características
pueden ir bien o ralentizar nuestros servicios.

2.1. TIPOS DE HARDWARE

Se clasifica generalmente en básico y complementario, entendiendo por básico todo aquel


dispositivo necesario para iniciar el funcionamiento de la computadora, y el complementario como
su nombre lo dice sirve para realizar funciones específicas o más allá de las básicas.

Periféricos de entrada (E)


Son los que permiten al usuario que ingrese información desde el exterior. Entre ellos
podemos encontrar: teclado, ratón (mouse), escáner, SAI (Sistema de Alimentación
Ininterrumpida), micrófono, etc.
Periféricos de salida (S)
Son los que muestran al usuario el resultado de las operaciones realizadas por el PC. En
este grupo podemos encontrar: monitor, impresora, altavoces, etc.
Periféricos de entrada/salida (E/S)
Son los dispositivos que pueden aportar simultáneamente información exterior al PC y al
usuario. Aquí se encuentran: módem (Modulador/Demodulador), unidades de
almacenamiento (Discos duros, disquetes o floppy), ZIP, Memorias USB, flash, etc)...

Hardware, Computadora: aparato electrónico capaz de interpretar y ejecutar comandos


programados para operaciones de entrada, salida, cálculo y lógica. Las computadoras:

1. Reciben entradas. La entrada son los datos que se capturan en un sistema de computación
para su procesamiento.
2. Producen salidas. La salida es la presentación de los resultados del procesamiento.
3. Procesan información
4. Almacenan información

Todo sistema de cómputo tiene componentes de hardware dedicados a estas funciones:

1. Dispositivos de entrada
2. Dispositivos de salida
Pág. - 6 -

3. Unidad central de procesamiento. Es la computadora real, la "inteligencia" de un sistema


de computación.
4. Memoria y dispositivos de almacenamiento.

Cada dispositivo de entrada es sólo otra fuente de señales eléctricas; cada dispositivo de salida
no es más que otro lugar al cual enviar señales; cada dispositivo de almacenamiento es lo uno o lo
otro, dependiendo de lo que requiera el programa; no importa cuáles sean los dispositivos de
entrada y salida si son compatibles. Los elementos fundamentales que justifican el uso de las
computadoras, radican en que las computadoras son:

Útiles.
Baratas: tanto con respecto a sí mismas como con respecto al costo de la mano de obra.
Fáciles de utilizar.

Tecnologías y avances

1ª generación: Con tubos de vacío, tubos de vidrio del tamaño de una bombilla que
albergaban circuitos eléctricos. Estas máquinas eran muy grandes caras y de difícil
operación.
2ª generación: con transistores. Máquinas más pequeñas, confiables y económicas.
3ª generación: Con la tecnología que permitió empaquetar cientos de transistores en un
circuito integrado de un chip de silicio.
4ª generación: con el microprocesador, que es una computadora completa empaquetada
en un solo chip de silicio.

3. SOFTWARE

Se denomina software, programática, equipamiento lógico o soporte lógico a todos los


componentes intangibles de una computadora, es decir, al conjunto de programas y procedimientos
necesarios para hacer posible la realización de una tarea específica, en contraposición a los
componentes físicos del sistema (hardware). Esto incluye aplicaciones informáticas tales como un
procesador de textos, que permite al usuario realizar una tarea, y software de sistema como un
sistema operativo, que permite al resto de programas funcionar adecuadamente, facilitando la
interacción con los componentes físicos y el resto de aplicaciones.

El término «software» fue usado por primera vez en este sentido por John W. Tukey en 1957.
En las ciencias de la computación y la ingeniería de software, el software es toda la información
procesada por los sistemas informáticos: programas y datos. El concepto de leer diferentes
secuencias de instrucciones de la memoria de un dispositivo para controlar cálculos fue inventado
por Charles Babbage como parte de su máquina diferencial. La teoría que forma la base de la
mayor parte del software moderno fue propuesta por vez primera por Alan Turing en su ensayo de
1936, Los números computables, con una aplicación al problema de decisión.

3.1. TIPOS DE SOFTWARE


Existen varios tipos de software, que se pueden resumir y dividir en los siguientes grupos:

Software de sistema, es la parte que permite funcionar al hardware. Su objetivo es aislar


tanto como sea posible al programador de aplicaciones de los detalles del computador
particular que se use, especialmente de las características físicas de la memoria,
dispositivos de comunicaciones, impresoras, pantallas, teclados, etcétera. Incluye entre
otros:
o Sistemas operativos
o Controladores de dispositivo
o Herramientas de diagnóstico
o Servidores
Pág. - 7 -

o Sistemas de ventanas
o Utilidades

Software de programación, que proporciona herramientas para ayudar al programador a


escribir programas informáticos y a usar diferentes lenguajes de programación de forma
práctica. Incluye entre otros:
o Editores de texto
o Compiladores
o Intérpretes
o Enlazadores
o Depuradores
o Los entornos integrados de desarrollo (IDE) agrupan estas herramientas de
forma que el programador no necesite introducir múltiples comandos para
compilar, interpretar, depurar, etcétera, gracias a que habitualmente cuentan con
una interfaz gráfica de usuario (GUI) avanzada.

Software de aplicación, que permite a los usuarios llevar a cabo una o varias tareas más
específicas, en cualquier campo de actividad susceptible de ser automatizado o asistido,
con especial énfasis en los negocios. Incluye entre otros:
o Aplicaciones de automatización industrial
o Aplicaciones ofimáticas
o Software educativo
o Software médico
o Bases de datos
o Videojuegos

3.2. SISTEMA OPERATIVO

Un sistema operativo (cuyo acrónimo es S.O.) es un conjunto de programas destinados a


permitir la comunicación del usuario con un computador y gestionar sus recursos de una forma
eficaz. Comienza a trabajar cuando se enciende el computador, y gestiona el hardware de la
máquina desde los niveles más básicos.

Un sistema operativo se puede encontrar normalmente en la mayoría de los aparatos


electrónicos que podamos utilizar sin necesidad de estar conectados a una computadora y que
utilicen microprocesadores para funcionar, ya que gracias a estos podemos entender la máquina y
que ésta cumpla con sus funciones (teléfonos móviles, reproductores de DVD, autoradios... y
computadoras)

Las funciones básicas que tiene un S.O., es la de Gestionar los recursos del equipo ejecutando
servicios para los procesos (programas), y brindar una interfaz al usuario, ejecutando una serie de
instrucciones o comandos.

También un S.O. es el encargado de gestionar todos los recursos de un Sistema Operativo


administrando,

- La CPU
- Los memoria
- Los dispositivos de E/S
- Las colas de procesos
- Administrar los recursos

Un S.O. está considerado como un programa, que ha alcanzado un tamaño muy grande,
debido a que tiene que ser capaz de realizar muchas tareas. Por esta razón el construir un S.O. es
debido dividirlo en componentes mas pequeños para que sea de capaz de organizarse para poder
realizar todas estas tareas, y podemos dividir estos componentes en,
Pág. - 8 -

- Gestión de procesos
- Gestión de memoria
- Gestión de archivos y directorios
- Gestión de la E/S
- Seguridad y protección
- Comunicación y sincronización entre procesos
- Intérprete de ordenes

Aparte de gestionar sus recursos y tener unos componentes, debe de tener unas características
que se pueden agrupar de las siguientes,

Administración de tareas:
o Monotarea: Si solamente puede ejecutar un proceso (aparte de los procesos del
propio S.O.) en un momento dado. Una vez que empieza a ejecutar un proceso,
continuará haciéndolo hasta su finalización o interrupción.
o Multitarea: Si es capaz de ejecutar varios procesos al mismo tiempo. Este tipo de
S.O. normalmente asigna los recursos disponibles (CPU, memoria, periféricos)
de forma alternada a los procesos que los solicitan, de manera que el usuario
percibe que todos funcionan a la vez, de forma concurrente.

Administración de usuarios:
o Monousuario: Si sólo permite ejecutar los programas de un usuario al mismo
tiempo.
o Multiusuario: Si permite que varios usuarios ejecuten simultáneamente sus
programas, accediendo a la vez a los recursos de la computadora. Normalmente
estos SS.OO. utilizan métodos de protección de datos, de manera que un
programa no pueda usar o cambiar los datos de otro usuario.

Manejo de recursos:
o Centralizado: Si permite utilizar los recursos de una sola computadora.
o Distribuido: Si permite utilizar los recursos (memoria, CPU, disco, periféricos...
) de más de una computadora al mismo tiempo.

3.2.1. Windows 2003 Server

Sus características más importantes son:

Sistema de archivos NTFS:

1. cuotas
2. cifrado y compresión de archivos, carpetas y no unidades completas.
3. permite montar dispositivos de almacenamiento sobre sistemas de archivos de otros
dispositivos al estilo unix

Gestión de almacenamiento, backups... incluye gestión jerárquica del almacenamiento,


consiste en utilizar un algoritmo de cache para pasar los datos menos usados de discos
duros a medios ópticos o similares más lentos, y volverlos a leer a disco duro cuando se
necesitan.
Windows Driver Model: Implementación básica de los dispositivos más utilizados, de esa
manera los fabricantes de dispositivos sólo han de programar ciertas especificaciones de
su hardware.
ActiveDirectory Directorio de organización basado en LDAP, permite gestionar de forma
centralizada la seguridad de una red corporativa a nivel local.
Autentificación Kerberos5
DNS con registro de IP's dinámicamente
Políticas de seguridad
Pág. - 9 -

Actualmente existen cuatro versiones de Windows 2003, aunque todas ellas cuentan a su vez
con versiones de 32 y 64 bits (excepto Web Edition). Las versiones son:

Web Edition Diseñado para los servicios y el hospedaje Web.


Standard Edition El más versátil de todos, ofrece un gran número de servicios útiles
para empresas de cualquier tamaño.
Enterprise Edition Para empresas de mayor tamaño que la Standard Edition.
Datacenter Edition Para empresas que requieran bases de datos más escalables y un
procesamiento de transacciones de gran volumen.

Las diferencias entre las versiones, explicadas en mayor detalle, pueden encontrarse en la Web de
Microsoft 
http://www.microsoft.com/spain/windowsserver2003/evaluation/choosing/default.aspx

Requisitos Mínimos para instalar Windows 2003 Estándar Edition

Requisitos del sistema

Requisito Standard Edition

Velocidad mínima de la CPU 133 MHz

Velocidad recomendada de la CPU 550 MHz

Memoria RAM mínima 128 MB

Memoria RAM mínima recomendada 256 MB

Memoria RAM máxima 4 GB

Soporte para multiprocesadores Hasta 4

Espacio en disco para la instalación 1,5 GB

Para este proyecto necesitaríamos la versión del 2003 Server la Standard Edition, y al ser
un software de pago tiene un coste que expongo en el presupuesto desde la web de Dynos
(www.dynos.es).
Pág. - 10 -

3.2.2. Linux – Ubuntu 7.04

Historia

El 8 de julio de 2004, Mark Shuttleworth y la empresa Canonical Ltd. anunciaron la


creación de la distribución Ubuntu. Ésta tuvo una financiación inicial de 10 millones de dólares
(US$). El proyecto nació por iniciativa de algunos programadores de los proyectos Debian, Gnome
porque se encontraban decepcionados con la manera de operar del proyecto Debian, la distribución
Linux sin ánimo de lucro más popular del mundo.

De acuerdo con sus fundadores, Debian era un proyecto demasiado burocrático donde no
existían responsabilidades definidas y donde cualquier propuesta interesante se ahogaba en un mar
de discusiones. Asimismo, Debian no ponía énfasis en estabilizar el desarrollo de sus versiones de
prueba y sólo proporcionaba auditorías de seguridad a su versión estable, la cual era utilizada sólo
por una minoría debido a la poca o nula vigencia que poseía en términos de la tecnología Linux
actual.

Tras formar un grupo multidisciplinario, los programadores decidieron buscar el apoyo


económico de Mark Shuttleworth, un emprendedor sudafricano que vendió la empresa Thawte a
VeriSign, cuatro años después de fundarla en el garaje de su domicilio, por 575 millones de
dólares estadounidenses.

Shuttleworth vio con simpatía el proyecto y decidió convertirlo en una iniciativa


autosostenible, combinando su experiencia en la creación de nuevas empresas con el talento y la
experiencia de los programadores de la plataforma Linux. De esta forma nació la empresa
Canonical, la cual se encarga de sostener económicamente el proyecto mediante la
comercialización de servicios y soporte técnico a otras empresas. Mientras los programadores
armaban el sistema, Shuttleworth aprovechó la ocasión para aplicar una pequeña campaña de
mercadotecnia para despertar interés en "la distribución-sin-nombre" (en inglés: the no-name-
distro).

Tras varios meses de trabajo y un breve período de pruebas, la primera versión de Ubuntu
(Warty Warthog) fue lanzada el 20 de octubre de 2004.

Características
Pág. - 11 -

Basada en la distribución Debian.


Disponible en 4 arquitecturas: Intel x86, AMD64, PowerPC, SPARC (para esta última
sólo existe la versión servidor).
Los desarrolladores de Ubuntu se basan en gran medida en el trabajo de las comunidades
de Debian y GNOME.
Las versiones estables se liberan cada 6 meses y se mantienen actualizadas en materia de
seguridad hasta 18 meses después de su lanzamiento.
La nomenclatura de las versiones no obedece principalmente a un orden de desarrollo, se
compone del dígito del año de emisión y del mes en que esto ocurre. La versión 4.10 es
de octubre de 2004, la 5.04 es de abril de 2005, la 5.10 de octubre de 2005, la 6.06 es de
junio de 2006, la 6.10 es de octubre de 2006 y la 7.04 es de abril de 2007.
El entorno de escritorio oficial es Gnome y se sincronizan con sus liberaciones.
Para centrarse en solucionar rápidamente los bugs, conflictos de paquetes, etc. se decidió
eliminar ciertos paquetes del componente main, ya que no son populares o simplemente
se escogieron de forma arbitraria por gusto o sus bases de apoyo al software libre. Por
tales motivos inicialmente KDE no se encontraba con más soporte de lo que entregaban
los mantenedores de Debian en sus repositorios, razón por la que se sumó la comunidad
de KDE distribuyendo la distro llamada Kubuntu.
De forma sincronizada a la versión 6.06 de Ubuntu, apareció por primera vez la
distribución Xubuntu, basada en el entorno de escritorio XFce.
El navegador web oficial es Mozilla Firefox.
El sistema incluye funciones avanzadas de seguridad y entre sus políticas se encuentra el
no activar, de forma predeterminada, procesos latentes al momento de instalarse. Por eso
mismo, no hay un firewall predeterminado, ya que no existen servicios que puedan
atentar a la seguridad del sistema.
Para labores/tareas administrativas en terminal incluye una herramienta llamada sudo
(similar al Mac OS X), con la que se evita el uso del usuario root (administrador).
Mejorar la accesibilidad y la internacionalización, de modo que el software esté
disponible para tanta gente como sea posible. En la versión 5.04, el UTF-8 es la
codificación de caracteres en forma predeterminada.

CDs de Ubuntu 5.04

No sólo tiene como lazo a Debian el uso del mismo formato de paquetes deb, Ubuntu
tiene uniones muy fuertes con esa comunidad, contribuyendo cualquier cambio
directamente e inmediatamente, más que anunciándolos. Esto sucede en los tiempos de
lanzamiento. Muchos de los desarrolladores de Ubuntu son también responsables de los
paquetes importantes dentro de la distribución de Debian.
Todos los lanzamientos de Ubuntu se proporcionan sin costo alguno. Los CDs de la
distribución se envían de forma gratuita a cualquier persona que los solicite mediante el
servicio ShipIt (la versión 6.10 no se llegó a distribuir de forma gratuita en CD's, pero la
versión 7.04 si se distribuye). También es posible descargar las imágenes ISO de los
discos por transferencia directa o bajo la tecnología Bittorrent.
Ubuntu no cobra honorarios por la suscripción de las mejoras de la "Edición Enterprise".

Ubuntu al ser un Software Libre es gratuito, y como antes he mencionado se puede descargar
desde distintos sitios de la red, e incluso pedir los CDs y que los traigan a casa.

Requisitos del sistema


Pág. - 12 -

Requisito Ubuntu 7.04 Server

Memoria RAM mínima 128 MB

Memoria RAM mínima recomendada 256 MB

Espacio en disco para la instalación 1,5 GB

3.2.3. ¿En qué Sistema Operativo nos basaremos?

Nuestra base es un sistema operativo libre basado en el proyecto GNU, dicho proyecto fue
iniciado por Richard Stallman, cuyo objetivo era crear un sistema operativo completamente libre,
que en el año 1985 Stallman creó la Free Software Foundation (FSF o Fundación para el Software
Libre) para proveer soportes logísticos, legales y financieros al proyecto GNU. La FSF también
contrató programadores para contribuir a GNU, aunque una porción sustancial del desarrollo fue
(y continúa siendo) producida por voluntarios. A medida que GNU ganaba renombre, negocios
interesados comenzaron a contribuir al desarrollo o comercialización de productos GNU y el
correspondiente soporte técnico. El más prominente y exitoso de ellos fue Cygnus Solutions, ahora
parte de Red Hat.

En 1991, Linus Torvalds empezó a escribir el núcleo Linux y decidió distribuirlo bajo la GPL.
Rápidamente, múltiples programadores se unieron a Linus en el desarrollo, colaborando a través
de Internet y consiguiendo paulatinamente que Linux llegase a ser un núcleo compatible con
UNIX. En 1992, el núcleo Linux fue combinado con el sistema GNU, resultando en un sistema
operativo libre y completamente funcional. El sistema operativo formado por esta combinación es
usualmente conocido como "GNU/Linux" o como una "distribución Linux" y existen diversas
variantes.

A raíz de este hecho empezó a desarrollarse las primeras distribuciones Linux. Y una vez
comentado la base, tenemos que especificar que la distribución de Linux que vamos a usar es
la Ubuntu 7.04 Server.

¿Por qué Ubuntu 7.04?

Nos basaremos en esta distribución por varias razones, que son:

- Ningún tipo de coste de Software


- Basada en Debian (cuya distribución es la mejor desde mi punto de vista para servidores)
- Rápido
- Estable
- Reconoce todo tipo de Hardware estándar

Estas son algunas de las razones que he elegido este S.O., pero sobre todo porque es gratuito y
estoy a favor del Software Libre, creo que debería de ser todo el software así para poder crecer y
mejorar los programas.

Además Ubuntu 7.04 necesita menos requisitos que Windows 2003 Server, y al necesitar
menos requisitos implica que la maquina no debe de ser tan potente y tan cara para montar el S.O.
y sus recursos. De esta manera ahorramos costes en nuestro proyecto.
Pág. - 13 -

4. COSTES DE PROYECTO

Análisis de los medios físicos

En nuestro proyecto debemos de tener mínimo 2 ordenadores, uno para que actúe de
Servidor y otro de Cliente. A continuación presento 2 Presupuestos de una maquina servidor y otra
maquina genérica.

PRESUPUESTO SERVIDOR
Poweredge SC440 (SC064401)

299,00 €
Precio sin IVA, gastos de envío excluidos (99 € sin IVA) (salvo disposición
contraria)

 Poweredge SC440 (SC064401)


03/06/2007 19:07:16 Romance Standard
Date
Time
Número de catálogo 1919 Retail esbsdt1

Número de catálogo / Descripción Código del producto SKU Id.

Base:
Dual Core Intel® Xeon® 3040 Processor at 73347 [210-16898] 1
1.86GHz, 2MB L2 cache, 1066MHz FSB
Enhanced Service Packs:
9812 [680-11460] 30
Sin ampliación de garantía
Memory:
512MB DDR2 SDRAM 667MHz Memory 73362 [370-12593] 3
(1x512MB single ranked DIMMs)
Raid Connectivity:
C1 - SATA de placa base con cable, 1 disco
73373 [780-10796] 35
duro conectado a un controlador SATA
integrado, sin RAID
1st Hard Drive:
160GB, SATA, 3.5-inch, 7.200 rpm Hard 73370 [400-12937] 668
Drive
Shipping Documents:
73351 [340-14001] 21
Spanish Documentation, Euro Power Cord
Elija su chasis:
Chasis de torre del servidor PE SC440 (Nivel 73365 [350-10188] 116
5)
Monitor:No se necesita monitor 6040 [480-11024] 5
Mouse:
71303 [570-10291] 12
Sin ratón instalado de fábrica
Keyboard:
7328 [580-11029] 4
No se necesita teclado
Pág. - 14 -

Administración de sistemas:
73378 [631-10117] 49
CD de Open Manage con drivers
[688-
Standard Warranty:
75269 10587][688- 29
Garantía base
10588]
Order Information:
97485 [800-11310] 111
Petición de PowerEdge - España
Optical Devices:
71267 [429-12298] 16
Unidad combo de DVD/CDRW 48X
Floppy Drives and Additional Storage
Devices: 38498 [385-10321] 10
No se necesita disquetera
Factory Installed Operating System:
8014 [611-10037] 285
SC - Sin sistema operativo
Installation Services:
Ha optado por no elegir el servicio de 75313 [683-11870] 32
instalación de PowerEdge de Dell

Este es el presupuesto de la maquina que hará de servidor su precio es de 299€ sin IVA,
incluyendo el IVA que sería de un 16 % con un coste total de 346.84 €

Y a continuación expongo el presupuesto del ordenador Genérico DELL:

Componentes
PROCESADOR Intel® Core™ 2 Duo E6320 Processor (1.86GHz, 1066MHz, 4MB)
SISTEMA OPERATIVO Windows Vista™ Ultimate original (32 bits) - Español
SERVICIO DE Paquete básico, 3 años de servicio a domicilio
ASISTENCIA
MONITOR Pantalla plana panorámica de Dell™ de 20" en negro (E207WFP) - Europeo
MEMORIA Memoria de 2048 MB de canal dual con DDR2 de 533 MHz (2x1024)
UNIDAD DE DISCO Unidad de disco duro no RAID de 500 GB (2x250 GB- 7200 rpm)
DURO
TARJETA GRÁFICA Tarjeta gráfica PCI Express Pro X1300; ATI® Radeon® de 256 MB
UNIDAD(ES) ÓPTICA(S) Unidad de DVD+/-RW 16 X
TECLADO Teclado Quietkey USB básico de Dell - Español (QWERTY)
RATÓN Ratón óptico USB de Dell con 2 botones de desplazamiento - negro
Pág. - 15 -

Accesorios
TARJETAS DE SONIDO Audio integrado con función Dolby Digital 7.1
ALTAVOCES Sin altavoces
DISQUETERA/UNIDADES Lector interno de tarjetas de medios 13 en 1
EXTERNAS
MÓDEMS Sin módem
SOFTWARE DE Sin protección de seguridad/Anti-Virus - Español
SEGURIDAD
SOFTWARE DE Microsoft® Works 8.0 - Español
MICROSOFT

Incluido también con su sistema


Gedis Bundle Reference D065203
Shipping Documents E520 Spanish Documentation with EUR Power Cord
Order Information Dimension Order - Spain
Standard Warranty Recogida y entrega, sólo un año de servicio
Dell Internet Order Dell Internet Order.
UNIDADES DE SISTEMA DVD de recursos de Dimension para Vista (herramientas de diagnóstico y drivers)

Este Ordenador tiene un coste de 783.99 € Sin IVA, sumándole el IVA del 16 % hace un
total de 909,43 €

Estas 2 maquinas suman en NETO 1082.99 € + el IVA 16% es un TOTAL: 1256.27 €

Aparte de los ordenadores es necesario poseer de un switch y 2 cables de red, a


continuación detallo los elementos necesarios:

SWITCH 8 PUERTOS DE 1 GIGA 10 / 100 / 1000 MBPS CONCEPTRONIC

69,90 €

Foto orientativa Ref: C07-100

Descripción

Especificaciones Generales:

Compatible con redes IEEE 802.3 10BASET/802.3u 100BASE-TX/802.3ab


Gigabit de cobre
Pág. - 16 -

Los 8 puertos se pueden utilizar como puerto de transmisión ascendente para


realizar la conexión con otro conmutador
Funcionamiento en modo bidireccional y direccional
Vía de enlace MDI / MDIX automática para todos los puertos
Requisitos mínimos de sistema:
Red a 10 / 100 / 1000 Mbps

Switch que soporta hasta 1Gb de transferencia de datos, y a continuación los latiguillos
de categoría 5e y UTP para que pueda soportar dicha transferencia de datos.

LATIGUILLO RJ45 UTP CAT 5E GRIS 0.25M

STEY

1,00 €
Ref: D45498G

Descripción

MOLDEADO NO APANTALLADO.IEE 802.3.AWG 26 / 7

Como necesitamos 2 latiguillos 1 para el servidor y otro para el ordenador, hace un total
de 2 € IVA incluido, este pedido de Switch + 2 Latiguillos lo pediríamos en Dynos.es, haciendo un
total con IVA INCLUIDO de 71.90 €.

Ambos pedidos de las maquinas como de Dynos tienen un plazo de entrega de 5 días, a
partir de la fecha de pedido.

El coste inicial será de 1256.27€ + 71.90 € = 1328.17 €

Aparte necesitamos una conexión a Internet para poder descargar de los repositorios de
Ubuntu los paquetes que vamos a necesitar, estudiando las ofertas del mercado:

ONO

Línea de 4 Mbs Bajada


Solo Internet
Sin cuota de Alta hasta fin de mes de Junio

Precio: 40.6 €/Mes

Telefónica

Línea de 3 Mbs de Bajada


Línea de teléfono + Gratis Llamadas nacionales + Internet 3 Mbs
Sin cuota de Alta
Hasta el 30 de Junio solo pagas 3 €/mes
Alquiler de Línea

Precio: 56.60 €/Mes


Pág. - 17 -

TELE2

Línea de Hasta 20 Mb´s de Bajada


Línea de Teléfono + Gratis Llamadas nacionales y locales + Internet 20 Mbs
Sin cuota de alta
Alquiler de línea

Precio: 39.90 €/Mes

Estudiando la oferta, escogeremos TELE2 que tiene más Mbs de Bajada y su cuota es la mas
barata al mes.

5. TUTORIAL
5.1. LDAP
5.1.1. Conceptos teóricos
¿Qué es LDAP?

LDAP son las siglas de Lightweight Directory Access Protocol. Como su propio nombre
indica, es un protocolo ligero para acceder al servicio de directorio, especialmente al basado en
X.500. LDAP se ejecuta sobre TCP/IP o sobre otros servicios de transferencia orientado a
conexión. La definición detallada de LDAP está disponible en el RFC2251 “The Lightweight
Directory Access Protocol (v3)” y en otro documento que comprende las especificaciones técnicas,
RFC3377

¿Qué tipo de información se puede almacenar en un directorio?

El modelo de información de LDAP está basado en entradas. Una entrada es una colección de
atributos que tienen un único y global Nombre Distinguido (DN). El DN se utiliza para referirse a
una entrada sin ambigüedades. Cada atributo de una entrada posee un tipo y uno o más valores.
Los tipos son normalmente palabras nemotécnicas, como “cn” para common name, o “mail” para
una dirección de correo. La sintaxis de los atributos depende del tipo de atributo. Por ejemplo, un
atributo cn puede contener el valor “Antonio J. Dueñas”. Un atributo email puede contener un
valor “ajduenas@iesvirgendelcarmen.com”.

¿Cómo se almacena la información?

En LDAP, las entradas están organizadas en una estructura jerárquica en árbol.


Tradicionalmente, esta estructura reflejaba los límites geográficos y organizacionales. Las entradas
que representan países aparecen en la parte superior del árbol. Debajo de ellos, están las entradas
que representan los estados y las organizaciones nacionales. Debajo de estás, pueden estar las
entradas que representan las unidades organizacionales, empleados, impresoras, documentos o
todo aquello que pueda imaginarse. El ejemplo “Árbol del directorio LDAP” muestra un ejemplo
de un árbol de directorio LDAP haciendo uso del nombramiento tradicional.

ARBOL DE DIRECTORIO

¿Cómo se accede a la información?

DAP define operaciones para interrogar y actualizar el directorio. Provee operaciones para
añadir y borrar entradas del directorio, modificar una entrada existente y cambiar el nombre de una
Pág. - 18 -

entrada. La mayor parte del tiempo, sin embargo, LDAP se utiliza para buscar información
almacenada en el directorio. Las operaciones de búsqueda de LDAP permiten buscar entradas que
concuerdan con algún criterio especificado por un filtro de búsqueda. La información puede ser
solicitada desde cada entrada que concuerda con dicho criterio.

Ejemplo:
Nosotros queremos acceder a la información de una persona, pongamos Antonio, pues
bien, debemos de introducir, dn=iesvirgendelcarmen,dc=com,ou=alumnos,cn=antonio

¿Cómo trabaja LDAP?

El servicio de directorio de LDAP está basado en el modelo cliente/servidor. Uno o más


servidores LDAP contienen los datos que conforman la información del árbol del directorio [5]
(DIT). El cliente se conecta a los servidores y les formula preguntas. Los servidores responden con
una respuesta o con un puntero donde el cliente puede obtener información adicional
(normalmente otro servidor LDAP). No importa a que servidor LDAP se conecte un cliente, este
siempre obtendrá la misma visión del directorio; un nombre presentado por un servidor LDAP
referencia la misma entrada que cualquier otro servidor LDAP. Esta es una característica muy
importante del servicio global de directorio, como LDAP.

¿Cuál es la diferencia entre LDAPv2 y LDAPv3?


LDAPv3 fue desarrollado en los años 90 para reemplazar a LDAPv2. LDAPv3 incorpora las
siguientes características a LDAP:

o Autentificación fuerte haciendo uso de SASL


o Protección de integridad y confidencialidad haciendo uso de TLS (SSL)
o Internacionalización gracias al uso de Unicode
o Remisiones y continuaciones
o Descubrimiento de esquemas
o Extensibilidad (controles, operaciones extendidas y más)

LDAPv2 es histórico (RFC3494). Muchas implementaciones de LDAPv2 (incluyendo slapd


(8) no se adaptan a las especificaciones técnicas de LDAPv2, la interoperabilidad entre las
distintas implementaciones de LDAPv2 es muy limitada. Como LDAPv2 difiere
significativamente de LDAPv3, la interactuación entre ambas versiones puede ser un poco
problemática. LDAPv2 ha de evitarse, por lo que en la implementación de OpenLDAP viene
deshabilitado por defecto.

5.1.2. Instalación LDAP

El primer paso para instalar OpenLDAP, es instalar los paquetes slapd y ldap-utils.
Veamos el procedimiento,

1. Abrimos la consola
2. Nos identificamos como root, e introducimos la contraseña.
 # sudo su
3. Procedemos a la instalación,

# apt-get install slapd ldap-utils


Leyendo lista de paquetes... Hecho
Creando árbol de dependencias... Hecho
Se instalarán los siguientes paquetes NUEVOS:
ldap-utils slapd
0 actualizados, 2 se instalarán, 0 para eliminar y 1 no actualizados.
Pág. - 19 -

Se necesita descargar 0B/1042kB de archivos.


Se utilizarán 2884kB de espacio de disco adicional después de desempaquetar.
Preconfiguring packages ...

Configuración de slapd mediante debconf

Si se quiere configurar algunos aspectos de slapd a través de debconf, responda No, en esta
pantalla.

Configuración de slapd, elección del dominio


Pág. - 20 -

Esta pantalla se pide el dominio sobre el cual se va a ejecutar el servidor slapd, en este caso será el
dominio iesvirgendelcarmen.com.

Configuración de slapd, nombre de la organización

Solicitud del nombre de la organización que está instalando el servidor OpenLDAP. En este
ejemplo se dejará el nombre del dominio anteriormente tecleado:
iesvirgendelcarmen.com.

Configuración de slapd, clave de administrador


Pág. - 21 -

Pantalla de solicitud de la clave para el administrador del servicio LDAP. Este usuario es el
superusuario (root) de OpenLDAP, por lo que se debería elegir una buena clave.

Configuración de slapd, repetir clave de administrador


Pág. - 22 -

Verificación de la clave del administrador, se ha de teclear la misma que en la pantalla anterior.

Recomendación

Configuración de slapd, elección del backed de la BBDD


Pág. - 23 -

Elección del backend de la base de datos que utilizará OpenLDAP. En este ejemplo se elegirá
BDB.

Configuración de slapd, ¿conservar los datos al desinstalarlo?

Tenga cuidado con la elección de esta pantalla, puede perder los datos almacenados en la
base de datos de OpenLDAP si "accidentalmente" se desinstala slapd.

Seleccionamos que No queremos que se borre la base de datos de OpenLDAP al desinstalarse el


servidor slapd.

Configuración de slapd, ¿mover los datos antiguos?


Pág. - 24 -

Esta pantalla de configuración puede no aparecer cuando instale OpenLDAP en su


sistema, no se preocupe por ello. El motivo para que no aparezca es que no existen datos en el
directorio /var/lib/ldap, esto se puede deber a que esta sea su primera instalación de OpenLDAP o
se hayan borrado los datos de dicho directorio, entre otros.

Dependiendo de sus necesidades debería contestar o Sí o No en esta pantalla. En este


ejemplo se contestará que Sí, de esta forma los datos existentes en /var/lib/ldap se empaquetarán y
se moverán moverán a un directorio similar a /var/backups/var_lib_ldap-*FECHA*/ donde
*FECHA* se sustituirá por la fecha que posea el ordenador en ese momento.

Configuración de slapd, protocolo LDAPv2

o Después de la finalización del paquete LDAP, necesitamos la instalación de los


paquetes ldap-utils
 #apt-get install ldap-utils
- Seleccionando el paquete ldap-utils previamente no seleccionado.
- (Leyendo la base de datos ...
- 252690 ficheros y directorios instalados actualmente.)
- Desempaquetando ldap-utils (de .../ldap-utils_2.1.30-1_i386.deb) ...
- Seleccionando el paquete slapd previamente no seleccionado.
- Desempaquetando slapd (de .../slapd_2.1.30-1_i386.deb) ...
- Configurando ldap-utils (2.1.30-1) ...
- Configurando slapd (2.1.30-1) ...
- Creating initial slapd configuration... done
- Creating initial LDAP directory... done
- Starting OpenLDAP: slapd.
-
- localepurge: checking system for new locale ...
- localepurge: processing locale files ...
- localepurge: processing man pages ...

o Además de ldap-utils necesitamos instalar el siguiente paquete, que sirve para la


base de datos de LDAP.
 # apt-get install db4.2-util
Pág. - 25 -

Observaciones a la instalación

- Una vez más, dependiendo de cómo se encuentre su sistema y los paquetes que tenga
instalados en el mismo, se instalarán y sugerirán más o menos dependencias a la hora de
instalar OpenLDAP.
- La siguiente captura muestra la información relativa a los paquetes que se acaban de
instalar (dependencias, sugerencias de instalación, etc).
- # apt-cache show slapd ldap-utils
- Package: slapd
- Priority: optional
- Section: net
- Installed-Size: 2516
- Maintainer: Torsten Landschoff <torsten@debian.org>
- Architecture: i386
- Source: openldap2
- Version: 2.1.30-1
- Provides: ldap-server
- Depends: libc6 (>= 2.3.2.ds1-4), libdb4.2, libgcrypt7,
- libgnutls10 (>= 1.0.0-0), libgpg-error0 (>= 0.7),
- libiodbc2 (>= 3.51.2-2), libldap2 (>= 2.1.17-1),
- libltdl3 (>= 1.5.2-2), libsasl2 (>= 2.1.18), libslp1,
- libtasn1-2 (>= 0.2.7), libwrap0, zlib1g (>= 1:1.2.1),
- debconf (>= 0.5), coreutils (>= 4.5.1-1) | fileutils (>= 4.0i-1),
- psmisc, libldap2 (= 2.1.30-1), perl (>> 5.8.0) | libmime-base64-perl
- Recommends: db4.2-util, libsasl2-modules
- Suggests: ldap-utils
- Conflicts: umich-ldapd, ldap-server, libbind-dev, bind-dev,
- libltdl3 (= 1.5.4-1)
- Filename: pool/main/o/openldap2/slapd_2.1.30-1_i386.deb
- Size: 940506
- MD5sum: 3cc284bf5c0bc8da52a5aabc61c56ca7
- Description: OpenLDAP server (slapd)
- This is the OpenLDAP (Lightweight Directory Access Protocol) standalone
- server (slapd). The server can be used to provide a standalone directory
- service and also includes the slurpd replication server.
-
- Package: ldap-utils
- Priority: optional
- Section: net
- Installed-Size: 328
- Maintainer: Torsten Landschoff <torsten@debian.org>
- Architecture: i386
- Source: openldap2
- Version: 2.1.30-1
- Replaces: openldap-utils, slapd (<< 2.1.25), openldapd
- Provides: ldap-client, openldap-utils
- Depends: libc6 (>= 2.3.2.ds1-4), libdb4.2, libgcrypt7,
- libgnutls10 (>= 1.0.0-0), libgpg-error0 (>= 0.7),
- libiodbc2 (>= 3.51.2-2), libldap2 (>= 2.1.17-1),
- libltdl3 (>= 1.5.2-2), libsasl2 (>= 2.1.18), libslp1,
- libtasn1-2 (>= 0.2.7), zlib1g (>= 1:1.2.1), libldap2 (= 2.1.30-1)
- Recommends: libsasl2-modules
- Conflicts: umich-ldap-utils, openldap-utils, ldap-client
- Filename: pool/main/o/openldap2/ldap-utils_2.1.30-1_i386.deb
- Size: 113996
- MD5sum: 2842fec02d967bbf70943def051d9f58
- Description: OpenLDAP utilities
- Utilities from the OpenLDAP (Lightweight Directory Access Protocol)
Pág. - 26 -

- package. These utilities can access a local or remote LDAP server


- and contain all the client programs required to access LDAP servers.

5.1.3. Configuración LDAP


Como LDAP necesita el esquema de samba para trabajar, haremos lo siguiente en consola.

# cd /usr/share/doc/samba-doc/examples/LDAP
# gunzip samba.schema.gz
# cp samba.schema /etc/ldap/schema/

Ahora añadimos la siguiente línea a /etc/ldap/slapd.conf


include /etc/ldap/schema/samba.schema

Y relanzamos el LDAP
# /etc/init.d/slapd restart

5.2. PHPLDAPADMIN
5.2.1. Conceptos teóricos
PHPLDAPADMIN no es más que un interfaz de configuración del LDAP, del que
controla el acceso de los usuarios y directivas. Esta interfaz está realizada con PHP, para poder ser
ejecutada en el navegador de internet. (Internet Explorer, Mozilla, Firefox).

5.2.2. Instalación de PHPLDAPADMIN


Antes de instalar el PHPLDAPADMIN, es necesario disponer del servidor APACHE y
soporte de PHP5, y también instalaremos MySQL, esto es debido a que PHPLDAPADMIN es un
administrador de LDAP vía Web en un el lenguaje PHP.

- Instalamos APACHE, en consola como root.


# apt-get install apache2

- Instalamos MySQL
# apt-get install mysql-server-5.0 mysql-common mysql-client-5.0

Nota: Debemos de cambiar la contraseña de MySQL una vez instalado, de la siguiente


manera.
Con la herramienta MySQLAdmin cambiamos la contraseña, cambiando el valor
NUEVA_CONTRASEÑA por la contraseña elegida.

# mysqladmin –u root password NUEVA_CONTRASEÑA

- Ahora procedemos a instalar, el PHP5


# apt-get install libapache2-mod-php5 php5 php5-cgi

Una vez instalados los paquetes del PHP5, debemos de descomentar estas líneas en el
siguiente archivo.
/etc/apache2/apache.conf
AddType application/x-httpd-php .php .php3 .php4
AddType application/x-httpd-php-source .phps

Bien, ya tenemos instalados los paquetes y ahora procedemos a la instalación de


PHPLDAPADMIN.
En consola, procedemos como root y ponemos,
o # apt-get install phpldapadmin

Leyendo lista de paquetes... Hecho


Creando árbol de dependencias... Hecho
Se instalarán los siguientes paquetes NUEVOS:
phpldapadmin
0 actualizados, 1 se instalarán, 0 para eliminar y 0 no actualizados.
Se necesita descargar 0B/376kB de archivos.
Pág. - 27 -

Se utilizarán 1774kB de espacio de disco adicional después de desempaquetar.


Preconfiguring packages ...
--------------------- Sourcerer Apt Watcher -------------------
Configure: phpldapadmin
---------------------------------------------------------------
Seleccionando el paquete phpldapadmin previamente no seleccionado.
(Leyendo la base de datos ...
275016 ficheros y directorios instalados actualmente.)
Desempaquetando phpldapadmin (de .../phpldapadmin_0.9.4- 6_all.deb) ...
Configurando phpldapadmin (0.9.4-6) ...

Ya está instalado nuestro Controlador de LDAP en PHP, para acceder a él debemos de


entrar en el navegador y ponemos la dirección del equipo servidor, en nuestro casó el servidor está
bajo la IP 192.168.1.20, así accederemos en nuestro navegador de la siguiente manera.
- Introducimos en la barra de direcciones
o http://192.168.1.20/phpldapadmin/

Pantalla principal PHPLDAPADMIN

5.2.3. Configuración PHPLDAPADMIN


Editamos el fichero /usr/share/phpldapadmin/templates/template_config.php y buscamos
donde están estas líneas:
// uncomment to set the base dn of posix groups
// default is set to the base dn of the server
//#base_posix_groups="ou=People,dc=example,dc=com";

#samba3_domains[] =
array( 'name' => 'IESvirgendelcarmen.com',
'sid' => 'S-1-5-21-4147564533-719371898-3834029857' );

// The base dn of samba group. (CUSTOMIZE)


//#samba_base_groups = "ou=Groups,ou=samba,dc=example,dc=org";

Y las cambiamos por estas:


// uncomment to set the base dn of posix groups
Pág. - 28 -

// default is set to the base dn of the server


#base_posix_groups="ou=grupos,dc=iesvirgendelcarmen,dc=com";

#samba3_domains[] =
array( 'name' => 'iesvirgendelcarmen',
'sid' => 'S-1-5-21-2620819820-906013693-4274777306' );

// The base dn of samba group. (CUSTOMIZE)


#samba_base_groups = "ou=grupos,dc=iesvirgendelcarmen,dc=com";

Phpldapadmin requiere una utilidad llamada mkntpwd para crear las contraseñas Samba
hashes. esta incluida en smbldap-tools pero esta no parece estar incluida para Debian así que se
requiere descargarla.

# cd /opt/
# wget http://www.iesvirgendelcarmen.com.pe/soft/mkntpwd.tar.gz
# tar -zxf mkntpwd.tar.gz
# cd mkntpwd
# make
# cp mkntpwd /usr/local/bin

Chequeamos que esta corriendo:

# mkntpwd

ENTORNO GRÁFICO

A continuación, veremos los pasos para configurar el PHPLDAPADMIN.

1 – Nos identificamos pinchando en Autentificación a la izquierda.

Después de esto, debemos de ingresar grupos por defecto, una vez dentro de
http://192.168.1.20/phpldapadmin/ (en nuestro caso) nos identificamos y creamos algunos
grupo por defecto, para crearlos debemos usar Samba 3 Grpup Mapping sobre ou=grupos
o Unix name Samba Name gid Samba gid
Pág. - 29 -

o Admins Domain Admin 20000 Built-In -> Domain Admins


o users Domain Users 20001 Built-In -> Domain Users
o guests Domain Guests 20002 Built-In -> Domain Guests

Unas capturas para que veamos cómo se realiza:

Señalamos Create next entry here, señalamos Samba Group Mapping y le damos a Proceed.

Una vez creado el objeto, introducimos en Group el nombre del grupo, en este caso GROUPS, y
en users, los usuarios que queramos crear en dicho grupo, yo he creado Antonio y manolo.
Pág. - 30 -

Esta página nos indica el resumen de lo que vamos a crear, si estamos conformes pulsamos en
Create Object y ya estará creado nuestro primer grupo SAMBA.

Como vemos a la izquierda viene ya creado el grupo como, cn=groups y a la derecha vemos la
información de dicho grupo.

Una vez explicado como se crea los grupos ahora debemos de crear, el grupo machines, users,
pudiéndolos cambiar por grupos, profesores, usuarios. A continuación veremos una captura de
cómo quedaría estructurado. También decir que esta captura no corresponde a nuestro datos,
porque estos datos están alterados bajo otro dominio, en este caso silcom.com.pe pero en este
tutorial nos basamos en iesvirgendelcarmen.com
Pág. - 31 -

5.3. AUTENTIFICACIÓN DE USUARIOS A TRAVÉS DE OPENLDAP

Introducción

En este apartado se verá como configurar una máquina para que sus usuarios se autentifiquen
a través de un servidor LDAP. Para ello se han de modificar dos aspectos del comportamiento del
sistema:

El mapeado entre los números de identificación de los usuarios y sus nombres (utilizados,
por ejemplo, por /bin/ls -l) o la localización del directorio home. La búsqueda de este tipo
de información es responsabilidad del servicio de nombres, cuyo archivo de
configuración es: /etc/nsswitch.conf.
La autentificación (comprobación de claves), que es responsabilidad del subsistema
PAM, cuya configuración se hace a través del directorio /etc/pam.d/

Ambos subsistemas se han de configurar separadamente, pero en este caso, ambos se van a
configurar de tal forma que hagan uso de LDAP.

En este apartado sólo se trata la instalación y configuración de los dos aspectos arriba
expuestos, de todas formas, hay un tercer punto que, en sistemas en producción, sería interesante
abordar: la caché del servicio de nombres.

5.3.1. Instalación del software necesario

Antes de poder autentificar a los usuarios a través de un servidor LDAP, es necesario


instalar algunas utilidades en el cliente, como pam_ldap y nss_ldap. Esta sección mostrará la
forma de instalación de estas utilidades.

5.3.1.1. Instalación de pam_ldap

pam_ldap permite hacer uso de un servidor LDAP para la autentificación de usuarios


(comprobación de claves) a aquellas aplicaciones que utilicen PAM.
Pág. - 32 -

En Debian GNU/Linux el paquete libpam-ldap provee esta funcionalidad, por lo que será
instalado en la máquina, como muestra el Ejemplo 5-2

Instalación de libpam-ldap

# apt-get install libpam-ldap


Leyendo lista de paquetes... Hecho
Creando árbol de dependencias... Hecho
Paquetes sugeridos:
libnss-ldap
Se instalarán los siguientes paquetes NUEVOS:
libpam-ldap
0 actualizados, 1 se instalarán, 0 para eliminar y 1 no actualizados.
Se necesita descargar 0B/49,7kB de archivos.
Se utilizarán 291kB de espacio de disco adicional después de desempaquetar.
Preconfiguring packages ...
Seleccionando el paquete libpam-ldap previamente no seleccionado.
(Leyendo la base de datos ...
252791 ficheros y directorios instalados actualmente.)
Desempaquetando libpam-ldap (de .../libpam-ldap_164-2_i386.deb) ...
Configurando libpam-ldap (164-2) ...

localepurge: checking system for new locale ...


localepurge: processing locale files ...
localepurge: processing man pages ...

Antes de continuar se van a configurar algunos aspectos del paquete libpam-ldap. Para
ello es necesario ejecutar el siguiente comando:

Configuración del paquete libpam-ldap

# dpkg-reconfigure --priority=low libpam-ldap


URL del servidor LDAP
Pág. - 33 -

Dirección del servidor LDAP que se va a utilizar para la autentificación de usuarios.

Nombre distintivo de la base de búsquedas

Nombre distintivo de la base de búsquedas.


Versión del protocolo LDAP
Pág. - 34 -

Versión del protocolo LDAP a utilizar.

Comportamiento a la hora del cambio de claves

Contestamos afirmativamente a esta pregunta, de esta forma, aquellas aplicaciones que


cambien claves por medio de PAM, se comportarán como si lo hiciesen de forma local.

¿Necesita autentificación la conexión con la base de datos?


Pág. - 35 -

En este ejemplo no se necesita autentificarse para acceder a la base de datos LDAP, por lo
que se responde que NO.

Administrador de LDAP

Cuenta del administrador de LDAP, en este caso "admin".

Clave del administrador de LDAP


Pág. - 36 -

Se introduce la clave del administrador de LDAP.

Elección el método de encriptación para las claves

El método de encriptación elegido para almacenar las claves ha sido "exop", de esta
forma pam-ldap utilizará el algoritmo de hash especificado en el archivo /etc/ldap/slapd.conf, en
lugar de realizar la operación hash localmente y escribir el resultado en la base de datos
directamente.

La configuración del módulo pam_ldap.so se almacena en el archivo /etc/pam_ldap.conf,


cuyo contenido se encuentra en el Apéndice T.

El archivo /etc/pam_ldap.conf se ha de poder leer por todos los usuarios del sistema,
para asegurarse de que es legible por todo el mundo, puede ejecutar: /bin/chmod 644
/etc/pam_ldap.conf.

En estos momentos el sistema ya está listo para la configuración de los distintos servicios
que utilizan PAM, de forma que estos utilicen LDAP para la comprobación de la clave. Cada
servicio que hace uso de PAM para la autentificación, posee su propio archivo bajo el directorio
/etc/pam.d/. Para que dicho servicio utilice LDAP en la comprobación de claves, se ha de
modificar su archivo de configuración. Esto se verá en la Sección 5.3.2.

5.3.1.2. Instalación de nss-ldap

nss-ldap permite a un servidor LDAP actuar como un servidor de nombres. Esto significa
que provee la información de las cuentas de usuario, los IDs de los grupos, la información de la
máquina, los alias, los grupos de red y básicamente cualquier cosa que normalmente se obtiene
desde los archivos almacenados bajo /etc o desde un servidor NIS.
Pág. - 37 -

En Debian GNU/Linux el paquete libnss-ldap provee esta funcionalidad, por lo que será
instalado en la máquina, como muestra el Ejemplo 5-5

Antes de proceder a su instalación, echamos un vistazo a la descripción del paquete:

Instalación de libnss-ldap

# apt-cache show libnss-ldap


Package: libnss-ldap
Priority: extra
Section: net
Installed-Size: 208
Maintainer: Stephen Frost <sfrost@debian.org>
Architecture: i386

Version: 211-4
Depends: libc6 (>= 2.3.2-1), libdb4.1, libldap2 (>= 2.1.17-1), debconf
Recommends: nscd, libpam-ldap
Filename: pool/main/libn/libnss-ldap/libnss-ldap_211-4_i386.deb
Size: 68052
MD5sum: c7fbc3504f8429655742e6a8cc7ec54c
Description: NSS module for using LDAP as a naming service
This package provides a Name Service Switch that allows your LDAP server
act as a name service. This means providing user account information,
group id's, host information, aliases, netgroups, and basically anything
else that you would normally get from /etc flat files or NIS.
.
If used with glibc 2.1's nscd (Name Service Cache Daemon) it will help
reduce your network traffic and speed up lookups for entries.

Instalación de libnss-ldap (primera parte)

# apt-get install libnss-ldap


Leyendo lista de paquetes... Hecho
Creando árbol de dependencias... Hecho
Paquetes recomendados
nscd
Se instalarán los siguientes paquetes NUEVOS:
libnss-ldap
0 actualizados, 1 se instalarán, 0 para eliminar y 1 no actualizados.
Se necesita descargar 0B/68,1kB de archivos.
Se utilizarán 213kB de espacio de disco adicional después de desempaquetar.
Preconfiguring packages ...

Dirección del servidor LDAP


Pág. - 38 -

Dirección del servidor LDAP que se va a utilizar para la autentificación de usuarios.

Nombre distintivo de la base de búsquedas


Pág. - 39 -

Nombre distintivo de la base de búsquedas.

Versión del protocolo LDAP

Versión del protocolo LDAP a utilizar, es recomendable hacer uso de la versión 3.

Método de acceso a la base de datos


Pág. - 40 -

En este ejemplo no se necesita autentificarse para acceder a la base de datos LDAP, por lo que se
responde: NO.

Permisos del archivo de configuración

Es buena idea que sólo el propietario del archivo pueda leer su información, máxime
cuando este puede tener claves. Por este motivo se responde que Sí a esta pregunta.
Pág. - 41 -

Cuenta para hacer consultas con privilegios de root y e introducimos la clave para la
cuenta admin

Información sobre libnss-ldap


Pág. - 42 -

La configuración del paquete nos muestra información adicional sobre el mismo. Si se


quiere ver el ejemplo del archivo /etc/nsswitch.conf que provee libnss-ldap, acceda a:
/usr/share/doc/libnss-ldap/examples/nsswitch.ldap. De todas formas, en el Apéndice S se dispone
de un ejemplo.

Instalación de libnss-ldap (segunda parte)

Seleccionando el paquete libnss-ldap previamente no seleccionado.


(Leyendo la base de datos ...
252836 ficheros y directorios instalados actualmente.)
Desempaquetando libnss-ldap (de .../libnss-ldap_211-4_i386.deb) ...
Configurando libnss-ldap (211-4) ...

localepurge: checking system for new locale ...


localepurge: processing locale files ...
localepurge: processing man pages ...

La configuración de nss-ldap se almacena en el archivo /etc/libnss-ldap.conf,

El archivo /etc/libnss-ldap.conf se ha de poder leer por todos los usuarios del


sistema, para asegurarse de que es legible por todo el mundo, puede ejecutar: chmod 644
/etc/libnss-ldap.conf.

5.3.2. Configuración de los archivos necesarios


Tenga en cuenta que va a modificar archivos de configuración utilizados para el
ingreso al sistema. Sería recomendable que tuviese en todo momento una consola de root
abierta, por si deja de funcionar la autentificación.

5.3.2.1. /etc/nsswitch.conf

nsswitch.conf es el fichero de configuración de las Bases de Datos del Sistema y del


sistema de Conmutación de los Servicios de Nombres (Name Service Switch).

En otras palabras, es un archivo que indica el orden y el procedimiento a seguir para la


búsqueda de la información requerida, por ejemplo, para hacer búsquedas de hosts o usuarios.

La forma de configurar este archivo es muy simple: primero se especifica la base de datos
sujeta a la búsqueda (primera columna) seguida del procedimiento que se va a emplear para
realizar una búsqueda sobre la misma (columnas siguientes).

De esta forma, basta con configurar el procedimiento de búsqueda para que haga uso de
LDAP en algún momento.

Modificaciones en el de configuración /etc/nsswitch.conf

passwd: files ldap


group: files ldap
shadow: files ldap
hosts: files ldap dns

Una vez realizada la configuración, se puede comprobar que todo funciona bien con el
comando getent seguido de la base de datos de búsqueda deseada (por ejemplo: #getent hosts).
Como resultado se mostrará la base de datos consultada por pantalla.
Pág. - 43 -

5.3.2.2. Configuración de PAM

PAM permite configurar el método de autentificación que van a utilizar las aplicaciones
que hagan uso de él. Gracias a esto, se pueden añadir fácilmente distintas opciones de
autentificación, como el uso de una base de datos LDAP.

En las siguientes secciones se mostrarán los archivos que se han de modificar para lograr
la autentificación a través de LDAP.

Hace relativamente poco tiempo que la versión en desarrollo de Debian (Sid) ha


cambiado la forma de configuración de PAM. Actualmente posee secciones comunes a todos
los archivos, estas secciones comunes son aquellos archivos localizados en el directorio
/etc/pam.d/ que comiencen por "common-".

Se ha de tener en cuenta la forma en la que se ha ido actualizando Debian Sid en la


última temporada, para determinar si su sistema está utilizando o no dichos archivos comunes
para la configuración de PAM.

Un buen punto de partida, sería ojear los archivos almacenados bajo /etc/pam.d/ y
comprobar las diferencias entre los archivos con extensión .dpkg-dist y los que no la tienen.

pam-ldap asume que las cuentas del sistema son objetos con los siguientes atributos: uid y
userPassword. Los atributos están permitidos por la clase objeto (objectClass) posixAccount.

5.3.2.3. /etc/pam.d/common-account

Este archivo ha de tener únicamente estas entradas:

Opciones de configuración para /etc/pam.d/common-account

account required pam_unix.so


account sufficient pam_ldap.so

5.3.2.4. /etc/pam.d/common-auth

Este archivo ha de tener únicamente estas entradas:

Opciones de configuración para /etc/pam.d/common-auth

auth sufficient pam_unix.so


auth sufficient pam_ldap.so try_first_pass
auth required pam_env.so
auth required pam_securetty.so
auth required pam_unix_auth.so
auth required pam_warn.so
auth required pam_deny.so

5.3.2.5. /etc/pam.d/common-session

Este archivo ha de tener únicamente estas entradas:


Pág. - 44 -

Opciones de configuración para /etc/pam.d/common-session

session required pam_limits.so


session required pam_unix.so
session optional pam_ldap.so

Si desea que el sistema sea capaz de crear directorios home "al vuelo" (piense en el
siguiente caso: acaba de añadir un usuario en la base de datos LDAP, pero no ha creado un
directorio home para este usuario en el sistema), puede utilizar el módulo pam_mkhomedir para
este propósito. Para ello añada la siguiente línea al principio del archivo common-session:

Opción para crear directorios home al vuelo

session required pam_mkhomedir.so skel=/etc/skel/ umask=0022


El módulo pam_mkhomedir sólo crea directorios de un nivel. Es importante tener
esto en cuenta para planificar la estructura del home de los usuarios.

5.3.2.6. /etc/pam.d/common-passwd

Este archivo ha de tener únicamente estas entradas:

Opciones de configuración para /etc/pam.d/common-password

password required pam_cracklib.so retry=3 minlen=8 difok=4


password sufficient pam_unix.so use_authtok md5 shadow
password sufficient pam_ldap.so use_authtok
password required pam_warn.so
password required pam_deny.so

Se supone que tiene instalado en su sistema la librería libpam-cracklib, si no es así,


instálela o comente esta línea.

5.3.2.7. Comprobando que todo funciona

Ahora que ya está el sistema preparado para hacer uso de LDAP en la autentificación de
los usuarios, sería recomendable hacer algunas pruebas con la nueva configuración para ver si todo
funciona correctamente.

El comando pamtest puede ayudar a realizar estas pruebas. pamtest acepta dos
parámetros: el primero es el nombre del servicio al cual se va a conectar para realizar la
autentificación, el segundo es el nombre del usuario que se va a autentificar sobre dicho servicio.
Veamos unos ejemplos:

El comando pamtest se encuentra en el paquete libpam-dotfile, por lo que si no


está disponible en su sistema, ha de ejecutar:

# apt-get install libpam-dotfile

Comprobando la configuración del sistema con pamtest

# pamtest passwd ajduenas


Pág. - 45 -

Trying to authenticate <ajduenas> for service <passwd>.


Password:[Clave del usuario]
Authentication successful.
# /usr/bin/pamtest ssh ajduenas
Trying to authenticate <ajduenas> for service <ssh>.
Password:[Clave fallida del usuario]
Failed to authenticate: Authentication service cannot retrieve authentication info.
# /usr/bin/pamtest ssh ajduenas
Trying to authenticate < ajduenas > for service <ssh>.
Password:[Clave del usuario]
Authentication successful.

Una vez se ha llegado a este punto, el sistema ya está preparado para autentificar a los usuarios a
través de LDAP.

5.4. SAMBA
5.4.1. Conceptos Teóricos
Introducción

Samba es una herramienta de red extremadamente útil para cualquier persona que posea
en su red sistemas Unix y Windows. Samba se ejecuta en un sistema Unix, permitiendo a los
sistemas Windows compartir archivos e impresoras en la máquina Unix, a la vez que los usuarios
de Unix tienen acceso a los recursos compartidos en los sistemas Windows.

Aunque parece natural hacer uso de servidores Windows para servir archivos e
impresoras en una red donde haya clientes Windows, hay buenas razones para elegir un servidor
Samba para estos servicios. Samba es un software confiable que corre en un sistema operativo
confiable como Unix, dando como resultado la obtención de menos problemas y bajo coste de
mantenimiento. A parte de esto, Samba ofrece mejor rendimiento ante cargas de trabajo
extremadamente duras, sobrepasando a un servidor Windows 2000 en un factor de 2 a 1 en un PC
con la misma configuración de hardware, de acuerdo con unos benchmarks publicados por
terceros. Cuando un PC ya no pueda acometer las peticiones de los clientes, debido a la alta carga,
el servidor Samba se puede trasladar fácilmente a un mainframe Unix propietario, el cual puede
sobrepasar en mucho a un PC corriendo Windows. Si todo esto no fuese suficiente, Samba posee
una ventaja muy buena en relación al coste: es libre. No sólo el software está a su disposición
libremente, sino que no necesita ningún tipo de licencia para los clientes, ejecutándose en sistemas
operativos de gran calidad y libres, como GNU/Linux y FreeBSD.

¿Qué es SAMBA?

Samba es una suite de aplicaciones Unix que habla el protocolo SMB (Server Message
Block). Los sistemas operativos Microsoft Windows y OS/2 utilizan SMB para compartir por red
archivos e impresoras y para realizar tareas asociadas. Gracias al soporte de este protocolo, Samba
permite a las máquinas Unix entrar en el juego, comunicándose con el mismo protocolo de red que
Microsoft Windows y aparecer como otro sistema Windows en la red (desde la perspectiva de un
cliente Windows). El servidor Samba ofrece los siguientes servicios:

Compartir uno o varios sistemas de archivos


Compartir uno o varios sistemas de archivos distribuidos
Compartir impresoras instaladas en el servidor entre los clientes Windows de la red
Ayudar a los clientes permitiéndoles navegar por la red
Autentificar a los clientes que ingresan en un dominio Windows
Proveer o ayudar con un servidor de resolución de nombres Windows (WINS)

La suite Samba también incluye herramientas para los clientes, que permiten a los usuarios de
un sistema Unix acceder a los directorios e impresoras que los sistemas Windows y servidores
Samba comparten en la red.
Pág. - 46 -

Samba es la idea de Andrew Tridgell, quien actualmente lidera el equipo de desarrollo de


Samba. El proyecto nació en 1991 mientras Andrew trabajaba con la suite de Digital Equipment
Corporation (DEC) llamada Pathworks, creada para conectar ordenadores VAX DEC con los de
otras compañías. Sin conocer la transcendencia de lo que estaba haciendo, Andrew creó un
programa servidor de archivos para un extraño protocolo que formaba parte de la suite Pathworks.
Este protocolo pasó a llamarse más tarde SMB. Unos años más tarde, lo liberó como su servidor
SMB particular y lo comenzó a distribuir por Internet bajo el nombre de “SMB Server”. Sin
embargo, Andrew no pudo mantener ese nombre -este pertenecía a un producto de otra compañía-,
así que intentó lo siguiente para buscarle un nuevo nombre desde Unix:

# grep -i '^s.*m.*b' /usr/dict/words

Obteniendo como respuesta:

salmonberry
samba
sawtimber
scramble

De ésta manera nació el nombre de Samba.

Hoy en día, la suite Samba gira alrededor de un par de demonios Unix que permiten la
compartición de recursos entre los clientes SMB de una red. Estos demonios son:

smbd

Demonio que permite la compartición de archivos e impresoras sobre una red SMB y
proporciona autentificación y autorización de acceso para clientes SMB.

nmbd

Demonio que soporta el servicio de nombres NetBIOS y WINS, que es una


implementación de Microsoft del servicio de nombres NetBIOS (NBNS). Este demonio
también ayuda añadiendo la posibilidad de navegar por la red.

Samba actualmente está mantenido y es ampliado por un grupo de voluntarios bajo la


supervisión activa de Andrew Tridgell. Al igual que el núcleo Linux, los autores de Samba lo
distribuyen como software open source, bajo los términos de la licencia GPL (GNU General
Public License). Desde su concepción, el desarrollo de Samba ha sido patrocinado en parte por la
Australian National University, donde Andrew Tridgell hizo su doctorado. A partir de entonces,
muchas otras organizaciones han patrocinado a los desarrolladores de Samba, incluyendo
LinuxCare, VA Linux Systems, Hewlett-Packard e IBM. Es algo verdaderamente testimonial el
que entidades tanto comerciales como no comerciales estén dispuestas a gastar dinero para dar
soporte a un esfuerzo Open Source.

Microsoft también ha contribuido ofreciendo la definición de su protocolo SBM al grupo


IETF (Internet Engineering Task Force) en 1996, cuyo nombre es Common Internet File System
(CIFS).

¿Qué puede hacer samba?

Una de las cosas más importantes de samba es poder compartir un disco, que a través de
Windows se vería por el entorno de red, de echo en nuestro proyecto vamos a establecer un
recurso para poder entrar a Windows con un gestor de dominios con samba. Samba también
comparte impresoras e componentes que se puedan compartir. Pero básicamente hace los
siguientes ROL:
Pág. - 47 -

Ahora vamos a mostrar lo que Samba puede hacer con sus demonios y sus
responsabilidades.

nmbd

El demonio nmbd es un simple servidor de nombres que suministra la funcionalidad de


WINS. Este demonio espera peticiones del servidor de nombres y proporciona la
dirección IP apropiada cuando se le requiere. También provee una lista de búsqueda para
el entorno de red y participa en la elección de búsqueda.

smbd

El demonio smbd maneja los recursos compartidos entre el servidor Samba y sus
clientes. Provee los servicios de servidor de archivos, impresión y búsqueda a los clientes
SMB a través de una o más redes y maneja todas las notificaciones entre el servidor
Samba y la red de clientes. A parte de esto, es el responsable de la autentificación de
usuarios, bloqueo de recursos y compartición de datos a través del protocolo SMB.

winbind

Este demonio se utiliza junto con el servicio de nombres para obtener la información de
los usuarios y grupos desde un servidor Windows NT y permitir a Samba autorizar a los
usuarios dentro de un servidor Windows NT/2000.

La distribución de samba también viene con un conjunto de pequeñas herramientas para


consola:

findsmb
Pág. - 48 -

Un programa que realiza búsquedas de ordenadores en la red local que respondan al


protocolo SMB e imprime información sobre los mismos.

make_smbcodepage

Un programa utilizado cuando se trabaja con la característica de internacionalización de


Samba para informarle sobre como convertir entre mayúsculas y minúsculas en los
distintos conjuntos de caracteres.

make_unicodemap

Otro programa de internacionalización utilizado con Samba para compilar un mapa


Unicode que utilizará Samba para traducir los códigos de páginas de DOS o los conjuntos
de caracteres de Unix en formato Unicode de 16 bits.

net

Un nuevo programa distribuido con Samba 3.0 que puede ser utilizado para realizar una
administración remota de los servidores.

nmblookup

Un programa que realiza búsquedas de nombres sobre NBT para encontrar direcciones IP
de ordenadores cuando se da su nombre de máquina.

pdbedit

Nuevo programa distribuido con la versión 3.0 de Samba que ayuda en el manejo de las
cuentas de usuario almacenadas en las bases de datos SAM.

rpcclient

Un programa que se puede utilizar para ejecutar las funciones MS-RPC en los clientes
Windows.

smbcacls

Un programa que se utiliza para establecer o mostrar ACLs en un sistema de archivos


Windows NT

smbclient

Un cliente Unix similar a un cliente ftp, que se puede utilizar para conectarse a los
recursos compartidos SMB y operar con ellos.

smbcontrol

Una simple utilidad de administración que envía mensajes a nmbd o smbd.

smbgroupedit

Un comando que se puede utilizar para definir mapeos entre los grupos de Windows NT y
los de Unix. Esta es una funcionalidad nueva en Samba 3.0.

smbmnt
Pág. - 49 -

Una utilidad utilizada junto con smbmount.

smbmount

Un programa que monta un sistema de archivos smbfs, permitiendo que recursos remotos
SMB sean montados en el sistema de archivos local de la máquina Samba.

smbpasswd

Un programa que permite a un administrador cambiar la clave utilizada por Samba.

smbsh

Una herramienta que funciona de manera similar a una shell, permitiendo el acceso a
sistemas de archivos SMB remotos, y permite a las herramientas de Unix operar con
ellos.

smbspool

Un programa de cola de impresión que se utiliza para enviar archivos a impresoras


remotas que están compartidas en la red SMB.

smbstatus

Un programa que reporta las conexiones de red realizadas a los recursos compartidos en
el servidor Samba actualmente.

smbtar

Un programa similar al comando tar de Unix, que permite archivar datos en los recursos
compartidos de SMB.

smbumount

Un programa que trabaja junto con smbmount para desmontar los sistemas de archivos
smbfs.

testparm

Un programa que comprueba el archivo de configuración de Samba.

testprns

Un programa que comprueba si las impresoras en la máquina Samba están reconocidas


por el demonio smbd

wbinfo

Una utilidad utilizada para realizar peticiones al demonio winbind.

5.4.2. Instalación SAMBA


Para instalar samba recurrimos a los repositorios de nuestro S.O. Linux, (Ubuntu 7.10
Server), y como siempre en consola ponemos:
# apt-get install samba
Pág. - 50 -

Y a continuación nos saldrá estas pantallas:

¿Cómo ejecutar SAMBA (demonios/inetd)?

Momento para la elección sobre como se quiere ejecutar Samba, ya sea utilizando el
superservidor inetd o mediante demonios.

La elección realizada para esta documentación ha sido la ejecución mediante demonios,


ya que en un entorno donde el uso de Samba sea frecuente, es mucho más eficiente ejecutarlo
desde los demonios que desde un superservidor inetd.
Pág. - 51 -

Se responde que sí a esta pregunta, de esta forma se creará un archivo destinado al


almacén de las contraseñas para los usuarios de Samba.
Con esto ya tenemos instalado nuestro paquete SAMBA y ahora procederemos a
instalarlos esquemas samba para poder trabajar con samba y hacemos lo siguiente:
# cd /usr/share/doc/samba-doc/examples/LDAP/
# gunzip samba.schema.gz
# cp samba.schema /etc/ldap/schema/

Ahora incluimos las siguiente linea en /etc/ldap/slapd.conf :

include /etc/ldap/schema/samba.schema

Y reiniciamos slapd:
# /etc/init.d/slapd restart

5.4.3. Configuración SAMBA

1.- Ahora se configurara samba. Abrimos el archivo /etc/samba/smb.conf y buscamos la línea:

passdb backend = tdbsam guest

Esta linea necesita ser reemplazada por lo siguiente :


passdb backend = ldapsam:ldap://127.0.0.1
ldap suffix = dc=iesvirgendelcarmen,dc=com
ldap profesores suffix = ou=profesores
ldap usuarios suffix = ou=usuarios
ldap grupos suffix = ou=grupos
ldap admin dn = cn=admin,dc=iesvirngedelcarmen,dc=com
ldap delete dn = no

# para PDC
domain logons = yes

# permitir privilegios a usuarios


enable privileges = yes

2.- ejecutar testparm para verificar que la configuración no tiene errores.

# testparm

3.- le enviamos a samba la contraseña del admin de LDAP del siguiente modo:

# smbpasswd -w password

4.- Reiniciar samba:

# /etc/init.d/samba restart

5.- Ahora mire en phpldapadmin, y cerciórese que se ha creado una nueva entrada como esta :
sambaDomainName=IESVIRGENDELCARMEN
copiar el valor de sambaSID (eg S-1-5-21-2620819820-906013693-4274777306 ), ya que sera
necesaria mas adelante.
Pág. - 52 -

5.4.4. Configuración de un cliente SAMBA

o # apt-get install smbclient smbfs


Leyendo lista de paquetes... Hecho
Creando Árbol de dependencias
Leyendo información de estado... Hecho
smbclient ya está¡ en su versión más reciente.
Se instalarán los siguientes paquetes NUEVOS:
smbfs
0 actualizados, 1 se instalarán, 0 para eliminar y 9 no actualizados.
Necesito descargar 427kB de archivos.
Se utilizarán 995kB de espacio de disco adicional después de desempaquetar.
Des:1 http://security.ubuntu.com feisty-security/main smbfs 3.0.24-2ubuntu1.2 [427kB]
Descargados 427kB en 7s (59,9kB/s)
Seleccionando el paquete smbfs previamente no seleccionado.
(Leyendo la base de datos ...
128680 ficheros y directorios instalados actualmente.)
Desempaquetando smbfs (de .../smbfs_3.0.24-2ubuntu1.2_i386.deb) ...
Configurando smbfs (3.0.24-2ubuntu1.2) ...
Una vez se ha completado el proceso de instalación, el sistema tendrá disponibles las
siguientes herramientas

- dpkg -L smbclient |grep bin

/usr/bin
/usr/bin/smbclient
/usr/bin/smbtar
/usr/bin/rpcclient
/usr/bin/smbspool
/usr/bin/smbtree
/usr/bin/smbcacls
/usr/bin/smbcquotas

- dpkg -L smbfs |grep bin

/sbin
/usr/bin
/usr/bin/smbmount
/usr/bin/smbumount
/usr/bin/smbmnt
/sbin/mount.smbfs
/sbin/mount.smb

5.5. AGREGANDO USUARIOS A PHPLDAPADMIN

1.- Ahora se podrá agregar algunos usuario. Se necesita un Administrator (uid=0) y otro usuario
para realizar las pruebas.
crear un nuevo : Samba 3 User(s) sobre ou=users de la siguiente forma:

Uid First Name User Name User Password Encryption Windows Group
0 Admin Administrator password MD5 Domain Admins
10000 Antonio antonio ******** MD5 Domain Admins

2.- Verificamos con getent que nss está funcionando correctamente sobre el servidor linux.

# getent passwd
ajduenas:x:10000:20000:Antonio Newton:/home/ajduenas:/bin/bash
Administrator:x:0:20000:admin :/home/administrator:/bin/bash
Pág. - 53 -

3.- Creamos los directorios home para los usuarios:

# mkdir /home/ajduenas
# cp /etc/skel/.* /home/ajduenas/
# chown -R ajduenas /home/ajduenas
# chgrp -R users /home/ajduenas

5.5.1. Asignando privilegios y automatizando

Ingresar computadoras al dominio automaticamente

1.- Instalar los siguientes modulos de Perl :

# apt-get install libnet-ldap-perl libcrypt-smbhash-perl

2.- copiar el script smbldap-useradd (y archivos de configuración) del paquete Samba-doc


. en la ubicacion /usr/local/smbldaptools

# mkdir /usr/local/smbldaptools
# cd /usr/share/doc/samba-doc/examples/LDAP/smbldap-tools-0.8.7
# cp smbldap_bind.conf smbldap_tools.pm.gz smbldap.conf.gz smbldap-useradd.gz
/usr/local/smbldaptools/
# gunzip /usr/local/smbldaptools/*.gz
# cd /usr/local/smbldaptools
# chmod go-r *
# chmod u+x smbldap-useradd

Editar el archivo /usr/local/smbldaptools/smbldap.conf para que queden de esta manera:

SID=”S-1-5-21-3131077580-1338128831-1697195685″
suffix=”dc=iesvirgendelcarmen,dc=com”
usersdn=”ou=alumnos,#{suffix}”
computersdn=”ou=profesores,#{suffix}”
groupsdn=”ou=grupos,#{suffix}”
sambaUnixIdPooldn=”sambaDomainName=IESvirgendelcarmen,#{suffix}”
hash_encrypt=”MD5″

Editar el archivo /usr/local/smbldaptools/smbldap_bind.conf:

slaveDN=”cn=admin,dc=iesvirgendelcarmen,dc=com”
slavePw=”password”
masterDN=”cn=admin,dc=iesvirgendelcarmen,dc=com”
masterPw=”password”

Editar /usr/local/smbldaptools/smbldap_tools.pm para enlazar los archivos correctos para


la configuracion:

my #smbldap_conf=”/usr/local/smbldaptools/smbldap.conf”;
my #smbldap_bind_conf=”/usr/local/smbldaptools/smbldap_bind.conf”;

3.- Ubicar el objeto sambaDomainName=IESvirgendelcarmen en phpldapadmin.


Hacer click y Agregar un nuevo valor sobre el object class y escoger sambaUnixIdPool luego
hacer click en siguiente e ingresar un numero de uid y gid de inicio para este caso sera el 30000.

4.- Probar la configuración ingresando una maquina de la siguiente manera:

#./smbldap-useradd -w “manolo”
Pág. - 54 -

si no emitió algún error todo esta correcto, se creara un nuevo objeto uid=manolo# en el
ou machines.
Nos daremos cuenta que el uidNumber en el objeto sambaDomainName=IESvirgendelcarmen se
habrá actualizado a 30001 ahora.

Este objeto solo sirve para verificar que todo esta trabajando bien, procederemos a
eliminarlo del arbol

5.- Finalmente agregar la siguiente línea en el archivo smb.conf :

add machine script = /usr/local/smbldaptools/smbldap-useradd -w “%u”

6.- Si deseamos que un usuario normal agregue las maquinas al dominio. podemos
conceder al usuario derechos para agregar las maquinas al dominio usando lo siguiente:

net rpc -UAdministrator rights grant antonio SeMachineAccountPrivilege

5.5.2. Scripts de inicio de sesión

Vamos a usar KiXtart para escribir los archivos de inicio.

# cd /opt/
# wget http://www.kixtart.org/binary/distrib/KiX2010_453.zip
# apt-get install unzip
# unzip /opt/KiX2010_453.zip

1.- crear el netlogon, y hacer que el grupo administrador tenga a acceso a escribir

# mkdir -p /data/samba/netlogon
# chgrp admins /data/samba/netlogon

Y agregar las siguientes lines en /etc/samba/smb.conf:

# put this in the main section


logon script = logon.bat

# share for the logon scripts


[netlogon]
comment = Network logon service
path = /data/samba/netlogon
write list = “@admins”
guest ok = Yes

2.- Para el inicio de sesion de una maquina Windows a un usuario en el grupos Domain
Admins.Se tiene que tener aceso a escritura sobre la capeta netlogon

Download KiXstart, extract, and put the following files into the netlogon share:

KIX32.EXE
KX32.dll

# cp /opt/KiX2010.453/KIX32.EXE /data/samba/netlogon/
# cp /opt/KiX2010.453/KX32.dll /data/samba/netlogon/

3.- crear un archivo logon.bat en la carpeta netlogon e ingresar lo siguiente


en el archivo:
Pág. - 55 -

\\pdc\netlogon\kix32 \\debian\netlogon\logon.kix /f

4.- crear un archivo logon.kix. eset se ejecutara cuando el usuario se loguee.


se puede montar unidades compartidas, sincronizar la hora etc. como este ejemplo:

; logon script

setconsole(’hide’)

; delete all mapped drives


USE * /delete

; sync time
#timeserver = “\\pdc”
Settime #timeserver

IF INGROUP(”SILCOM\Domain Admins”)
use n: \\pdc\netlogon
ENDIF

; add more drive mappings here

; map homedirectory
use u: @HOMEDIR

Hasta aquí se debía poder configurar una estación de trabajo que se autentifique contra el
dominio

5.5.3. Habilitar profiles

mkdir /data/samba/profiles

[profiles]
path = /data/samba/profiles
comment = Profiles
writeable = yes
browseable = no
create mask = 0600
directory mask = 0700

5.5.4. Creación de home por defecto

Por defecto cuando se registra un usuario en ldap no crea el home respectivo para corregir
esto utilizamos lo siguiente:

editar /etc/pam.d/common-session y agregar en la primera línea

session required pam_mkhomedir.so skel=/etc/skel/ umask=0022

5.5.5. Permitir cambio de contraseña

Es bueno permitirle a los usuarios de Windows cambiar su contraseña en el servidor ldap


para esto se hará lo siguiente:

cd /usr/share/doc/samba-doc/examples/LDAP/smbldap-tools-0.8.7
cp smbldap-passwd.gz /usr/local/smbldaptools/
cd /usr/local/smbldaptools/
Pág. - 56 -

gunzip smbldap-passwd.gz
chmod u+x smbldap-passwd

en el archivo /etc/samba/smb.conf modificar las siguientes líneas :

unix password sync = no


passwd program = /usr/bin/passwd %u

por estas :

unix password sync = yes


passwd program = /usr/local/smbldaptools/smbldap-passwd -o %u

6. AUTENTIFICACIÓN EN WINDOWS XP
Acceda a la opción “Conexiones de Red e Internet” del Panel de Control (Inicio ->
Configuración -> Panel de Control -> Conexiones de Red e Internet).

Conexión de red
Pág. - 57 -

Pulsamos sobre “Conexiones de Red”.

Identificación de Red

Pulse sobre el menú Avanzado, opción “Identificación de Red...”

PROPIEDADES DEL SISTEMA


Pág. - 58 -

Pulsamos sobre el botón cambiar

Selección del dominio


Pág. - 59 -

Señalamos Dominio, y a continuación insertamos el dominio AULAS como ya habíamos


configurado antes.

Identificación ante dominio

Tecleamos Usuario y contraseña, en nuestro caso como root.

Bienvenida al dominio

Si todo ha ido bien, nos dará la bienvenida al dominio.

7. CONCEPTOS FINALES
7.1. Concepto de recursos

El recurso NETLOGON

El recurso NETLOGON, como ya hemos visto en la descripción de los parámetros de


configuración del PDC. Juega un papel central en las sesiones de dominio y en el soporte de la
pertenencia al dominio. Este recurso está presente en todos los controladores de dominio Microsof.
Se usa para proporcionar guiones o scripts de conexión, almacenar ficheros de políticas de grupo
(NTConfig.POL) y otras herramientas que pueden ser necesarias para procesar las sesiones. Es un
recuros esencial en un controlador de dominio.

Recurso PROFILES

Este recurso se usa para guardar los perfiles del escritorio. Cada usuario tiene que tener
un directorio en la raíz de este recurso. Este directorio tiene que tener permiso de escritura para el
usuario y tiene que tener permiso de lectura global.
Pág. - 60 -

7.2. Conclusión

El proyecto LDAP es muy complejo, pero a la vez muy potente junto a SAMBA, una
vez realizado este proyecto podremos autentificar todos los servicios que deseemos contra LDAP.
Además de ser un proyecto barato, porque te ahorras costes de Sistemas Operativos es además un
recurso muy útil para aquellas empresas que deseen centralizar toda la información en un solo
sistema.

Para montar estos servicios hemos puesto de base el Sistema Ubuntu 7.04 que es el mas
actual de esta distribución, además de tener un potente control y unos buenos repositorios es una
de las mejores distribuciones Linux y es más, es de las mas punteras.

8. ANEXOS
Voy a adjuntar el Sistema Base, Ubuntu 7.04 Server, como ANEXO I, y el tutorial en
formato digital como ANEXO II, como PDF, ya que todo lo que se ha necesitado ha sido expuesto
en el documento.

9. RESULTADOS

Todo este proyecto he tardado el total de 30 Horas para buscar información, 25 Horas
en montar los servicios mencionados en el proyecto y 15 Horas en redactar la parte teórica. He
tenido complicaciones al autentificar el PHPLDAPADMIN contra Samba, pero mirando por foros
logré encontrar una solución. Y también he tenido unos problemas al autentificar el dominio en
Windows, me entraba en el dominio pero no me reconocía al usuario root, ni cualquier otro del
sistema.

Вам также может понравиться