SlideShare ist ein Scribd-Unternehmen logo
1 von 77
Downloaden Sie, um offline zu lesen
Vinculando con OpenLDAP




Autor: Rogelio Cores Raventós
Indice
Capítulo 1 Directorio OpenLDAP
           Generalidades y característica                      2
           Instlación y configuración                          5
           Estructura del directorio                           6
           Tareas para el auto aprendizaje                     7
           Tareas de autocontrol y autoevaluación              7
Capítulo 2 Interfaz Web GOsa
           Características                                     9
           Instalación y configuración                         9
             Crear un usuario                                  18
             Crear un grupo                                    19
             Crear un servidor                                 20
           Tareas para el auto aprendizaje                     21
           Tareas de autocontrol y autoevaluación              21
Capítulo 3 Samba3
           Características y funciones                         23
           Instalación y configuración                         24
             Nuestra primera carpeta compartida                24
             Carpeta compartida con usuario y contraseña       25
           PDC Master: Concepto, instalación y configuración   26
           Crear usuario administrador del PDC Master          30
           Tareas para el auto aprendizaje                     32
           Tareas de autocontrol y autoevaluación              32
Capítulo 4 Postfix
           Características, función y estructura               34
           Instalación y configuración                         36
             Postfix, Internet con smarthost                   36
           Característica e instalación del Cyrus2.2           37
             Postfix con Cyrus2.2 y el SASL                    39
             Postfix con OpenLDAP, Cyrus2.2 y SASL             41
Procedimiento para añadir los servicios Cyrus2.2 y Postfix
                                                                            44
               desde el GOsa
                  Crear usuario de correo desde la Interfaz Web GOsa        46
               Tareas para el auto aprendizaje                              47
               Tareas de autocontrol y autoevaluación                       47
Capítulo 5     DHCP
               Concepto. Características generales. Funcionamiento          49
               Modos de asignación de IP a otros equipos                    50
               Instalación y configuración con soporte OpenLDAP             51
                  Configurando desde el GOsa                                53
               Tareas para el auto aprendizaje                              55
               Tareas de autocontrol y autoevaluación                       55
Capítulo 6     Squid
               Características distintivas                                  57
               Tipos de Proxy que existen. Particularidades                 57
               Instalación y configuración                                  59
                  Vinculación con el Directorio OpenLDAP                    60
                  Crear usuario de navegación desde el GOsa                 61
               Tareas para el auto aprendizaje                              61
               Tareas de autocontrol y autoevaluación                       61
Anexos
               Anexo 1: Configuración del archivo smb.con                   63
               Anexo 2: Configuración del archivo smbldap-tools             65
               Anexo 3:Posibles errores que pueden presentarse en el
                                                                            67
                        Samba3 y vía de solución
               Anexo 4: Configuración del archivo main.cf                   68
               Anexo 5: Configuración del archivo imapd.conf                70
               Anexo 6: Configuración del archivo squid.conf                71
Bibliografía                                                                73
Introducción
Hoy en día nuestro país esta inmerso en un proceso de migración de “Software
propietario” a “Software Libre”, con una gran guía de Migración, donde se describe el
procedimiento a utilizar y recomienda una serie de servicios a utilizar; pero la misma no
muestra soluciones concretas para la instalación y configuración de estos servicios. Es
por ello que el autor del presente manual se ha dado a la tarea de escribir sus
experiencias, resultado de la búsqueda de información y solución de situaciones prácticas
concretas que ha tenido que enfrentar en su labor como administrador de redes a lo largo
de 5 años, todo lo cual queda a disposición del personal especializado para su consulta y
autosuperación.
En el manual no se trata lo referente a la distribución de los servicios en servidores,
puesto que para eso hay diversas maneras y conceptos. Lo que se pretende es enseñar
los procedimientos para instalar, configurar y vincular algunos de los servicios de redes
con el OpenLDAP y lograr una mayor organización de los mismos.
Las fuentes bibliográficas utilizadas como soporte teórico de la propuesta fue el resultado
de una amplia búsqueda en Internet, lo cual fue validado en la práctica por el autor. En la
bibliografía propuesta aparecen los sitios WEB consultados, para una mayor
profundización.
El manual tiene como objetivo proporcionar una vía para la autosuperación de los
administradores de redes, que les permita profundizar en cada uno de los servicios
vinculado con el OpenLDAP. para que haya una mejor organización en la red, elevar el
nivel de profesionalidad en la labor que desempeña y proporcionar un espacio para la
reflexión e intercambio acerca de estos procesos.
En el momento que fue creado este material estaban vigente el GNU/Linux Debian 5
(Lenny) y el GNU/Linux Debian 6 (Squeeze), por lo tanto, en el manual se hará
referencia a los dos. Cuando la Instalación y la Configuración de algún paquete sea
común para los dos, arriba se le pondrá COMUN y cuando sea diferente se explicará para
cada versión como se instala y configura. También se pondrá una tabla con los paquetes
instalados y sus versiones respectivamente en cada versión de los GNU/Linux Debian.




                                                                                   El autor
Capitulo 1




         Directorio OpenLDAP




Objetivo: Estudiar las características, uso y conceptos relacionados con el
            Directorio OpenLDAP, desarrollando          habilidades   en   su
            instalación y configuración.


Sistema de conocimientos:
1.1.- Generalidades y características.

1.2.- Instalación y configuración.

1.3.- Creación de una estructura de directorio mediante ldif.
Generalidades y características
OpenLDAP es una implementación libre y de código abierto del protocolo Lightweight
Directory Access Protocol (LDAP) desarrollada por el proyecto OpenLDAP. Está liberada
bajo su propia licencia OpenLDAP Public License. El mismo está basado en el estándar
X.500, pero significativamente más simple y más realmente adaptado para satisfacer las
necesidades del usuario. A diferencia de X.500 OpenLDAP soporta TCP/IP, que es
necesario para el acceso a Internet. Habitualmente, almacena la información de
autenticación (usuario y contraseña) y es utilizado para autenticarse, aunque es posible
almacenar otra información (datos de contacto del usuario, ubicación de diversos recursos
de la red, permisos, certificados, etc). A manera de síntesis, OpenLDAP es un protocolo
de acceso unificado a un conjunto de información sobre una red, que también permite la
comunicación independiente de la plataforma. Muchas distribuciones GNU/Linux incluyen
el software OpenLDAP para el soporte LDAP. Este software también corre en plataformas
BSD, AIX, HP-UX, Mac OS X, Solaris, Microsoft Windows (NT y derivados, incluyendo
2000, XP, Vista), y z/OS. Básicamente, OpenLDAP posee tres componentes principales:
slapd (dominio de servidor y herramientas), bibliotecas que implementan el protocolo
LDAP y programas clientes (ldapsearch, ldapadd, ldapdelete, entre otros).

El proyecto OpenLDAP se inició en 1998 por Kurt Zeilenga. El proyecto comenzó como un
clon de la implementación LDAP de la Universidad de Michigan, entidad donde se
desarrolló originalmente el protocolo LDAP y que también actualmente trabaja en la
evolución del mismo.
En abril de 2006, el proyecto OpenLDAP incorpora tres miembros principales: Howard
Chu (Arquitecto jefe), Pierangelo Masarati, y Kurt Zeilenga. Hay otros importantes y
activos contribuyentes incluyendo Luke Howard, Hallvard Furuseth, Quanah Gibson-
Mount, y Gavin Henry.
Los servidores OpenLDAP están fuertemente optimizados para operaciones de lectura
intensivas. A causa de esto, típicamente uno puede ver un orden de magnitud diferente
cuando lee datos de un directorio OpenLDAP frente a la obtención de los mismos datos
de una base de datos relacional optimizada. Sin embargo, a causa de esta optimización a
la mayoría de los directorios OpenLDAP no les viene bien el almacenamiento de datos
donde los cambios son frecuentes. Por ejemplo, un servidor de directorio OpenLDAP es
bueno para almacenar el directorio de teléfonos internos de la empresa, pero ni se te
ocurra pensar en utilizarlo como repositorio de base de datos para un sitio de comercio
electrónico de alto volumen.
Antes de instalar un directorio OpenLDAP debería hacerse las siguientes preguntas y si
las respuestas a estas es si, entonces, almacenar tus datos en OpenLDAP es una buena
idea.
     • Te gustaría que tus datos estén disponibles a través de varias plataformas?
     • Necesitas acceso a estos datos desde un número de ordenadores o aplicaciones?
     • Los registros individuales que estás almacenado cambian unas pocas veces al día
       o menos, como medía?
Los servidores de directorio OpenLDAP almacenan sus datos jerárquicamente. Si has
visto las presentaciones de árboles DNS descendientes o directorios de ficheros UNIX,
una estructura de directorio OpenLDAP te será un terreno familiar. Como con los nombres
de host en DNS, un registro Distinguished Name (Nombre Distinguido en español, DN en
corto) de un directorio OpenLDAP se lee desde su entrada individual, recursivamente a
través del árbol, hasta el nivel más alto. Es algo similar a lo que se muestra a continuación
(Figura1.1):

                                                                                           2
Figura 1.1: Árbol directorio OpenLDAP

Para explicar como funciona el OpenLDAP asumamos que se trabajo en una empresa la
cual está registrada en Internet como dominio.cu.
Base DN
Base DN es el punto inicial en la jerarquía del OpenLDAP en el que comenzará la
búsqueda. Una de las forma de escribir es así:
dc=domio,dc=cu
Este formato está separado en componentes de dominio: dominio.cu deviene dc=dominio,
dc=cu. En teoría, esta forma puede ser levemente más versátil, aunque es un poco más
duro de recordar para los usuarios finales.
Unidades Organizacionales (OU)
Debajo de la base de directorio (Base DN), se querrá crear contenedores que separen
lógicamente los datos. Por razones históricas (X.500), la mayoría de los directorios
configuran estas separaciones lógicas como entradas OU. OU vienen de "Organizational
Units" (Unidades Organizacionales, en español), que en X.500 eran utilizadas para indicar
la organización funcional dentro de la empresa: ventas, finanzas, etc. Actualmente las
implementaciones de OpenLDAP han mantenido la convención del nombre ou=, pero
separa las cosas por categorías amplias como ou=people, ou=groups y demás. Se
escribiría de esta forma:
ou=people,dc=dominio,dc=cu
Para las cuentas de usuario, típicamente se verá un DN basado en el cn o en el uid (ID
del usuario). Aquí se mostrarán dos formas de escribirlas:
uid=rcores,ou=people,dc=dominio,dc=cu
cn=rcores,ou=people,dc=dominio,dc=cu


Formato LDIF:
El LDAP Data Interchange Format (LDIF) es un formato que se utiliza para la importación
y exportación de datos independientemente del servidor LDAP que se esté utilizando.
Cada servidor LDAP tiene una o varias maneras de almacenar físicamente sus datos en
el disco rígido, por esto que LDIF provee una manera de unificar, la forma de tratar los
datos y así poder migrar de un servidor a otro sin importar que clase de implementación
es.

                                                                                       3
El formato LDIF es simplemente un formato de texto ASCII para entradas LDAP que
transmite el contenido del directorio como un conjunto de registros, un registro por cada
objeto (o entrada). Representa a las solicitudes de actualización, tales como agregar,
modificar, eliminar y cambiar el nombre, como un conjunto de registros, grabar uno para
cada solicitud de actualización. También es útil para realizar copias de seguridad de los
datos de un servidor LDAP, siempre manteniendo la independencia de la implementación
LDAP y de la plataforma donde esté instalada.
Los schema:
Son archivos donde se definen cada una de las estructuras (clases) y sus atributos
(attributes) para la construcción de entradas LDAP; cada archivo con extensión .schema
define dentro de él uno o más objectClasses y sus respectivos atributos.




                                                                                       4
Instalación y configuración

COMUN
Tabla de versiones:
              Paquetes        Versión Lenny       Versión Squeeze
              slapd           2.4.11-1+l          2.4.23-7
             ldap-utils      2.4.11-1+l           2.4.23-7
# aptitude install slapd ldap-utils
   •   Contraseña del administrador: passwd_desea_poner
   •   Verificación de contraseña: passwd_puesto_anterior
Luego de instalado, para realizar una completa configuración del OpenLDAP, se hace lo
siguiente:
GNU/LINUX DEBIAN 5 (LENNY)
# dpkg-reconfigure slapd
  • Desea omitir la configuración del servidor OpenLDAP?: No
  • DNS domain name: dominio.cu
  • Organization name: dominio.cu
  • Contraseña del administrador: passwd_desea_poner
  • Verificación de contraseña: passwd_puesto_anterior
  • Database backend to use: HDB (En mi caso escogí está porque es un nuevo tipo de
     almacenamiento para OpenLDAP, que sustituye el antiguo BDB, HDB utiliza Oracle
     Berkeley DB para el almacenamiento y almacena las entradas de forma jerárquica).
  • Desea que borre la base de datos cuando se purge el paquete slapd?: No
  • Desea mover la base de datos antigua?: Si
  • Reintentar la configuración?: No
  • Allow LDAPv2 protocol: No

GNU/LINUX DEBIAN 6 (SQUEEZE)
Debido a que en esta versión la configuración del OpenLDAP cambio casi completamente
respecto a la versión anterior, que en ves de tener el tradicional archivo
/etc/ldap/slapd.conf toda la configuración se almacena en un directorio de base
“cn=config”, trayendo la ventaja de que las modificaciones de configuración se pueden
hacer sin tener que reiniciar el servicio, pero tiene el inconveniente de que tenemos que
aprender algunas cosas nueva.
Ahora se verá como reconfigurar el OpenLDAP, para eso primero se borra el directorio
slapd.d que se encuentra ubicado en /etc/ldap/ de la siguiente manera:
# rm -r /etc/ldap/slapd.d/
Luego que se borre el directorio se ejecuta el comando dpkg-reconfigure slapd y se
hace la misma configuración que se les mostró arriba.




                                                                                       5
COMUN
Ahora se prueba que la configuración del OpenLDAP que se hizo está bien:
# ldapsearch -x -b "dc=dominio,dc=cu"
# extended LDIF
#
# LDAPv3
# base <dc=dominio,dc=cu> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#

# dominio.cu
dn: dc=dominio,dc=cu
objectClass: top
objectClass: dcObject
objectClass: organization
o: dominio.cu
dc: dominio

# admin, dominio.cu
dn: cn=admin,dc=dominio,dc=cu
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator

# search result
search: 2
result: 0 Success

# numResponses: 3
# numEntries: 2
Si sale algo similar a esto, es que la instalación salió exitosamente.

Estructura del directorio
Ya instalado correctamente el directorio OpenLDAP crearemos la estructura del directorio,
que por ahora los únicos objetos que tendrá será: usuarios y grupos; esto se hará
mediante los LDIF.
Lo primero que se hará es crear el archivo LDIF con los distintos parámetros que
permitirán la creación de dicha estructura.
#      mkdir /etc/ldap/ldif
#      touch /etc/ldap/ldif/crear_dir.ldif
#      nano /etc/ldap/ldif/crear_dir.ldif
dn: ou=people,dc=dominio,dc=cu
objectClass: top
objectClass: organizationalUnit
ou: people

dn: ou=groups,dc=dominio,dc=cu
objectClass: top
objectClass: organizationalUnit
ou: groups




                                                                                       6
Hay que fijarse bien que entre cada objeto que se crea hay un espacio, de esa forma es
como sabe el OpenLDAP que se refiere a objetos diferentes. Luego de esto se añade el
fichero ldif. Se mostrarán varios formas de añadir los archivos ldif.
Forma 1:
# invoke-rc.d slapd stop
# slapadd -l /etc/ldap/ldif/crear_dir.ldif
# invoke-rc.d slapd start
Forma 2:
# ldapadd -x -f /etc/ldap/ldif/crear_dir.ldif -D "cn=admin,dc=dominio,dc=cu" -W
Ahora le explico bien la traducción de este comando:
-x para indicar el tipo de autenticación simple.
-f (dir/fichero.ldif): permite leer las operaciones del fichero.
-D: para poner el usuarios del OpenLDAP.
-W: solicita la contraseña del usuario.
De la segunda forma le deberá mostrar algo parecido a esto:
adding new entry "ou=people,dc=dominio,dc=cu"

adding new entry "ou=groups,dc=dominio,dc=cu"
Ya se tiene un directorio OpenLDAP con los grupos necesarios para las configuraciones
que se realizarán posteriormente. Esto puede variar en independencia de los servicios
que se vayan a vincular con el mismo.
A lo largo de este documento se irá trabajando con el archivo de configuración del
OpenLDAP, así como también se usarán algunos comandos del mismo.

Tareas para el autoaprendizaje:
Orientar el estudio de la Unidad 1 referente al Directorio OpenLDAP y resolver las
siguientes actividades:
1. Observe la figura 1.1 del manual y resuma, ¿Cómo se estructura el árbol del
   directorio?
2. ¿Qué es un ldif? Mencione algunas de sus características.
3. ¿Qué es un schema?.
4. Con respecto a la instalación y configuración del directorio OpenLDAP, puntualice:
   •   Compare la estructura de datos que asume el OpenLDAP entre las versiones
       GNU/LINUX Debian 5 y GNU/LINUX Debian 6.
   •   ¿Qué comando se utiliza para comprobar la instalación del directorio?
   •   Cómo añadir un ldif al directorio.

Tareas de autocontrol y autoevaluación:
1. Instale y configure el directorio OpenLDAP en su red teniendo en cuenta el
   procedimiento descrito en el manual.
2. Utilizando los servicios de su red, estructure un ldif con un árbol de directorio que
   satisfaga las necesidades de los servicios en cuanto a la vinculación del OpenLDAP.




                                                                                        7
Capítulo 2




             Interfaz Web GOsa




Objetivo: Vincular la aplicación Web GOsa al Directorio OpenLDAP,
             facilitando la funcionabilidad en la administración del mismo.


Sistema de conocimientos:

2.1.- Características.

2.2.- Instalación y configuración.

2.3.- Estructura de schema´s al directorio OpenLDAP.

2.4.- Creación de usuario, grupo y servidores.
Características
Es un proyecto basado en PHP que proporciona un poderoso marco para la gestión de
cuentas y los sistemas de bases de datos OpenLDAP. El uso del GOsa le permite al
administrador de sistemas un manejo simple de usuarios, grupos, clientes aplicaciones,
teléfonos, faxes y correo. En relación con el FAI (Completa Instalación Automática), GOsa
es altamente automatizado, permite la instalación de sistemas preconfigurados. Por lo
tanto GOsa permite administrar grandes ambientes desde un solo punto en forma simple
desde una base de datos OpenLDAP, con lo que la administración de usuarios, de todos
los sistemas y los parámetros relacionados con el, son manejables y fácil.

Instalación y configuración
COMUN
Tabla de versiones:
Paquetes                Versión Lenny          Versión Squeeze
php5                    5.2.6.dfsg             5.3.3-7
apache2                 2.2.9-10+l             2.2.16-6
libapache-mod-php5      5.2.6.dfsg             5.3.3-7
gosa                    2.5.16.1-4             2.6.11-3
En este paso se instalará la interfaz web para administrar más comodo al OpenLDAP.
Junto con esta interfaz web se instalará también los servicios de Apache2 y PHP5 para
permitirnos interactuar con el GOsa.
#   aptitude install php5 php5-imagick php5-common php5-gd php5-ldap php5-
    mhash php5-cli php5-recode php5-snmp php5-cgi apache2 libapache2-mod-php5
Luego de instalados los paquetes anteriores se procede a instalar la interfaz web GOsa.
GNU/LINUX DEBIAN 5 (LENNY)
#   aptitude install gosa gosa-desktop gosa-schema
Instalado todo esto, se le añade los siguientes schema al OpenLDAP, el orden de los
schema debe quedar de la siguiente forma:
#   nano /etc/ldap/slapd.conf
include      /etc/ldap/schema/core.schema
include      /etc/ldap/schema/cosine.schema
include      /etc/ldap/schema/inetorgperson.schema
include      /etc/ldap/schema/openldap.schema
include      /etc/ldap/schema/nis.schema
include      /etc/ldap/schema/misc.schema
include      /etc/ldap/schema/samba3.schema
include      /etc/ldap/schema/gosystem.schema
include      /etc/ldap/schema/gofon.schema
include      /etc/ldap/schema/goto.schema
include      /etc/ldap/schema/gofax.schema
include      /etc/ldap/schema/goserver.schema
include      /etc/ldap/schema/gosa+samba3.schema

password-hash {MD5}




                                                                                          9
El orden de estos include es importante y la opción “password-hash {MD5}” hace que
LDAP siempre almacene las contraseñas encriptadas usando MD5.
GNU/LINUX DEBIAN 6 (SQUEEZE)
A partir de esta versión junto al GOsa se instalan los plugin's que uno desea.
#   aptitude install gosa gosa-desktop gosa-plugin-addressbook gosa-plugin-
    connectivity gosa-plugin-dhcp gosa-plugin-dhcp-schema gosa-plugin-goto gosa-
    plugin-ldapmanager gosa-plugin-mail gosa-plugin-samba gosa-plugin-squid
    gosa-plugin-systems gosa-plugin-uw-imap gosa-schema
Cuando se tengan estos paquetes instalados se le añaden los schemas; ya que son
tantos se parará el servicio. La forma que se verá a continuación es una de las formas
que se le puede añadir schemas al OpenLDAP.
Lo primero es crear el archivo convschema y la carpeta schemaldif.
# mkdir /tmp/schema.ldif
# touch /tmp/convschema
Dentro del archivo convschema se ponen los siguientes schemas:
# nano /tmp/convschema
include      /etc/ldap/schema/core.schema
include      /etc/ldap/schema/cosine.schema
include      /etc/ldap/schema/inetorgperson.schema
include      /etc/ldap/schema/openldap.schema
include      /etc/ldap/schema/nis.schema
include      /etc/ldap/schema/misc.schema
include      /etc/ldap/schema/gosa/samba3.schema
include      /etc/ldap/schema/gosa/gosystem.schema
include      /etc/ldap/schema/gosa/gofon.schema
include      /etc/ldap/schema/gosa/goto.schema
include      /etc/ldap/schema/gosa/gofax.schema
include      /etc/ldap/schema/gosa/goserver.schema
include      /etc/ldap/schema/gosa/gosa-samba3.schema
Llego el momento de convertir estos schema en ldif y darles los permisos adecuados para
ser añadidos al OpenLDAP.
#   slaptest -f /tmp/convschema -F /tmp/schema.ldif/
#   rm -r /etc/ldap/slapd.d/cn=config/cn=schema/
#   cp -R /tmp/schema.ldif/cn=config/cn=schema/ /etc/ldap/slapd.d/cn=config/
#   chown -R openldap:openldap /etc/ldap/slapd.d/cn=config/cn=schema/
COMUN
Ahora se debe reiniciar el OpenLDAP.
#   invoke-rc.d slapd restart
Llegado a este punto y realizado los cambios pertinentes se configurará el GOsa. Ahora
en el navegador preferido de ustedes se debe poner http://ip_server_openldap/gosa (ej:
http://192.168.1.0/gosa).
Este proceso de configuración se irá explicando pantalla a pantalla.




                                                                                    10
Figura 2.1: Página Bienvenida de la Interfaz web GOsa
Primera pantalla:
Aquí para poder seguir con el proceso de configuración se debe de copiar lo señalado en
rojo en el servidor y darle Enter, todo esto es en el servidor donde este instalado el Gosa.
(ojo: lo que esta después el “echo -n” ese serial cambia, fijarse bien en el que le ponga a
ustedes en el proceso de configuración).
Segunda pantalla:




                                                        Figura 2.2: Página de selección de Idioma




                                                                                              11
Tercera pantalla:




                                           Figura 2.3: Página de Comprobación de la Instalación
Esta pantalla es donde te pone si cargo bien todas las extensiones y módulos del PHP
que se instalaron, si hasta ahora todo se ha hecho por este manual, debe de salir algo
similar a esto. Si hay alguno que no le ha cargado bien, fijase bien si lo instaló, sino
reinstale el módulo php que le dio error.
Cuarta pantalla:




                                                   Figura 2.4: Página donde muestra la Licencia
Esta pantalla es donde está la licencia del programa, luego que se la lea, si esta de
acuerdo, debe de marcar donde está señalado en rojo.



                                                                                            12
Quinta pantalla:




                                                   Figura 2.5: Página Configuración del LDAP
Se describirá por orden lo que se debe poner:
Nombre de la localización: Nombre de empresa u organismo.
URL de conexión: ldap://ip_server_openldap:389
DN del administrador: cn=admin y marcar la opción Añadir automáticamente la base
              LDAP al DN administrado, la misma permite que se complete el DN con la
              Base.
Contraseña del administrador: passwd_admin_openldap
Sexta pantalla:




                                     Figura 2.6: Página de Comprobación de los esquemas LDAP
Aquí se comprueba si el orden de los esquemas están bien puesto.




                                                                                         13
Séptima pantalla:




                                                 Figura 2.7: Página Configuración del GOsa 1/3
En esta pantalla empieza como tal la configuración del GOsa con respecto al directorio
OpenLDAP, los cambios se describirán por orden:
Subárbol de almacenamiento para los usuarios: aquí se define el grupo donde van a
             estar los usuarios. El valor que se debe de poner es el mismo que el que se
             puso cuando se creo el directorio del OpenLDAP; en este caso es
             ou=usuarios.
Subárbol de almacenamiento para los grupos: este parámetro es muy parecido al
             anterior pero con la diferencia que aquí se van a almacenar los grupos; el
             valor en este caso es ou=grupos.
UIDsAutomaticas: Esto es para crear Los UIDs automáticamente.
GID/UID min id: es el valor que se definirá como mínimo a la hora que se cree un usuario
             o grupo, de este valor en adelante es que se empezará a dar los valores de
             GID/UID. Se debe de poner un número alto para que no entre en
             contradicción con ninguno del sistema, en este caso se puso 10000.
Número base para usuarios y grupos: este parámetro es parecido al anterior. Como
             valor se puso el mismo número 10000.
En la sección de Parámetros de Contraseña estos valores cambia dependiendo del Plan
de Seguridad Informática del organismo o empresa de cada uno.




                                                                                           14
Octava Pantalla:




                                                  Figura 2.8: Página Configuración del GOsa 2/3
En esta pantalla se configurará los siguiente parámetros:
Contenedor de la estación de trabajo: esto se usa para definir el contenedor de las
          maquinas de nuestra red.
Zona de uso horario: Aquí se pone el uso horario de cada cual. Aquí se uso el de Cuba
          que es America/Havana(DST).
Método de correo: Se pone que se va usar el Cyrus.
Modificar atributos existentes: Se selecciona uid.
Usa estilo Cyrus Unix: Si.




                                                                                            15
Novena pantalla:




                                               Figura 2.9: Página Configuración del GOsa 3/3
En esta pantalla solamente se realizarán cambios en la sección de Depurado, los mismos
son:
Mostrar errores PHP: Si
Registrar estadísticas LDAP: Si
Nivel de depuración: 1 Activado




                                                                                         16
Décima Pantalla:




                                                       Figura 2.10: Página de Inspección LDAP
En esta pantalla el GOsa se encarga de comprobar algunos problemas que pueda tener
nuestra base OpenLDAP. De paso se aprovechará y se arreglarán aquí para una mejor
administración. Por lo que se recomienda que le den a Migrar a todo.
También es bueno que creen el usuario administrador del GOsa por aquí mismo. Luego
de que realicen todos sus cambios y creen su usuario se le da click a Comprobar de
nuevo.
La pantalla sugerencias no se mostrará porque es especie de una encuesta para realizar
mejoras al programa. Si quiere se participa y sino se da Siguiente.
Onceava pantalla:




                                             Figura 2.11: Página para Terminar la Configuración
Aquí en esta pantalla lo primero es Descargar configuración y copiarla en el servidor
donde se instaló este servicio, en la carpeta /etc/gosa/ y luego realizar lo mismo que se
señaló en rojo. Luego de terminar todo esto se le da a Siguiente para finalizar la
configuración.
El usuario y la contraseña para entrar, es la que se definió cuando se creo el usuario
GOsa en la pantalla anterior.

                                                                                            17
Crear un usuario
Aquí veremos como crear un usuario sin activarle ningún servicio. Los servicios de cada
usuario se irán activando a la par de su instalación y configuración con el OpenLDAP. No
se va a especificar la versión porque es mas o menos parecido una de la otra.
Luego de haber accedido al GOsa se va a la sección Administration -->> Usuarios.




                                                   Figura 2.12: Sección Administrador del GOsa
Luego de dar clic sale el listado de usuarios del OpenLDAP y para crear un usuarios nevo
hay que ir a Acciones -->> Crear -->> Usuario.




                                                    Figura 2.13: Página de Gestión de Usuarios
De ahí saldrá un formulario donde se pondrá la información personal y la del centro de
trabajo del usuario. Los campos obligatorios son los que están resaltado con un *. Cuando
se completen se dan OK y para acabar va a salir una página para definirle la contraseña
al nuevo usuario.




                                                     Figura 2.14: Pestaña Genérico del Usuario




                                                                                           18
Crear un grupo
Aquí veremos como crear un grupo cualquiera para luego usarlo para cualquier servicio.
No se va a especificar la versión porque es mas o menos parecido una de la otra.
Luego de haber accedido al GOsa se va a la sección Administration -->> Grupos.




                                                 Figura 2.17: Sección Administrador del GOsa
Luego sale un listado de todos los grupos y para crear uno nuevo se va a Acciones -->>
Crear -->> Grupo, donde saldrá un formulario como el que se muestra en la Figura 2.18.




                                                    Figura 2.18: Pestaña Genérico del Grupo
Aquí se completa los siguientes datos:
   • Nombre del Grupo: se pone el nombre del grupo.
   • Descripción: una pequeña descripción del grupo.
   • Miembros del grupo: aquí se pone los usuarios que sea miembro de este grupo.
Luego de haber completado los datos se le da clic al botón OK.




                                                                                         19
Crear un servidor
Aquí es donde vamos a mostrar como añadir un servidor al directorio OpenLDAP, aquí no
se va a mostrar como añadirle un servicio a ese servidor, los servicios se irán añadiendo a
medida que se vayan vinculando con el OpenLDAP en los siguiente capítulos. No se va a
especificar la versión porque es mas o menos parecido una de la otra.
Cuando se acceda al GOsa se va a la sección Administration -->> Sistemas.




                                                    Figura 2.15: Sección Administrador del GOsa
Luego de dar cilc sale la lista de los servidores y para crear uno nuevo servidor se va a
Acciones -->> Crear -->> Server.
De ahí saldrá un formulario pidiendo la información del servidor. Los campos obligatorios
son los que están resaltado con un *. Cuando se completen se da OK.




                                                      Figura 2.17: Pestaña Genérico del Servidor
Aquí se completa los siguientes datos:
  • Nombre del Servidor: se pone el nombre del servidor declarado en el DNS.
  • Descripción: una pequeña descripción del servidor.
  • Dirección IP: aquí se pone la dirección de IP del servidor.
  • Dirección MAC: la MAC del mismo servidor. Ejecutando el comando ipconfig en
      el servidor, te muestra el IP y la MAC.
  • Modo: se pone en Activado.



                                                                                             20
Tareas para el autoaprendizaje:
1. ¿Qué características distinguen la Interfaz Web GOsa? Mencione la función de este
   proyecto.
2. Argumente por qué es necesario la instalación del php5 con sus complementos y el
   apache2 antes que el Interfaz Web GOsa.
3. Con respecto a la instalación y configuración de la Interfaz Web GOsa puntualice:
   •   Compare el procedimiento de configuración del directorio OpenLDAP entre las
       versiones GNU/LINUX Debian 5 y GNU/LINUX Debian 6 al instalar la Interfaz Web
       GOsa..
   •   Por qué se modifica el directorio OpenLDAP a la hora de instalar la Interfaz Web
       GOsa?. Mencione las modificaciones.
4. Estudie el procedimiento para la configuración de la Interfaz Web GOsa.

Tareas de autocontrol y autoevaluación:
1. Tomando en cuenta el Directorio OpenLDAP instalado en su servidor, instale y
   configure la Interfaz Web GOsa teniendo en cuenta el procedimiento descrito en el
   manual.
2. Cree un usuario genérico con sus respectivos datos.




                                                                                       21
Capitulo 3




                            Samba3




Objetivo: Profundizar en el estudio del servicio Samba3 para la creación de
            un PDC Master.


Sistema de conocimientos:

3.1.- Características y funciones.

3.2.- Procedimientos para la instalación, con los requerimientos mínimos de
     prestaciones que debe ser del dominio del especialista.

3.3.- PDC Master: Concepto, instalación y configuración.

3.4.- Crear usuario Administrador del PDC Master
Características y funciones
Samba es una suite de aplicaciones GNU/Linux (o Unix) que habla el protocolo SMB
(Server Message Block), protocolo SMB está dentro de la capa OSI. Muchos sistemas
operativos, incluidos Windows y OS/2, usan SMB para operaciones de red cliente-
servidor. De esta forma, es posible que ordenadores con GNU/Linux, Mac OS X o Unix
en general se vean como servidores o actúen como clientes en redes de Windows. Entre
los sistemas tipo Unix en los que se puede ejecutar Samba, están las distribuciones
GNU/Linux, Solaris y las diferentes variantes BSD entre las que podemos encontrar el
Mac OS X Server de Apple.
Su surgimiento está relacionado con la idea de Andrew Tridgell, quien actualmente lidera
el equipo de desarrollo de Samba development desde su casa de Canberra, Australia. El
proyecto nació en 1991. Siendo originalmente desarrollado para Unix por Andrew Tridgell
utilizando un sniffer o capturador de tráfico para entender el protocolo a través de la
ingeniería inversa. El nombre viene de insertar dos vocales al protocolo estándar que
Microsoft usa para sus redes, el SMB o server message block. En un principio Samba
tomó el nombre de smbserver pero tuvieron que cambiarlo por problemas con una marca
registrada. Tridgell busco en el diccionario de su máquina Unix alguna palabra que
incluyera las letras “s”, “m” y “b” con la orden grep hasta que dio con Samba.
SAMBA es una conjunto de programas, originalmente creados por Andrew Tridgell y
actualmente mantenidos por The SAMBA Team, bajo la Licencia Publica General GNU, y
que implementan en sistemas basados sobre UNIX® el protocolo Server Message Block
(o protocolo SMB). Este es algunas veces referido también como Common Internet File
System (CIFS), LanManager o protocolo NetBIOS. Sirve como reemplazo total para
Windows® NT, Warp®, NFS® servidores Netware®. Estos permiten:
• Compartir uno o más sistemas de archivos.
• Compartir impresoras, instaladas tanto en el servidor como en los clientes.
• Ayudar a los clientes, con visualizador de Clientes de Red.
• Validación como miembro de dominio e incluso como un dominio Active Directory para
  redes basadas en Windows.
• Validar usuarios haciendo de Controlador Principal de Dominio (PDC).

Samba configura directorios Unix/Linux (incluyendo sus subdirectorios) como recursos
para compartir a través de la red. Para los usuarios de Microsoft Windows, estos recursos
aparecen como carpetas normales de red.
Los usuarios de Linux pueden montar en sus sistemas de archivos estás unidades de red
como si fueran dispositivos locales, o utilizar la orden smbcilent para conectarse a ellas
muy al estilo del cliente de la línea de órdenes ftp.
Cada directorio puede tener diferentes permisos de acceso sobrepuestos a las
protecciones del sistema de archivos que se esté usando en Linux. Por ejemplo, las
carpetas /home pueden tener permisos de lectura y escritura para cada usuario,
permitiendo que cada uno acceda a sus propios archivos.




                                                                                       23
Instalación y Configuración

COMUN
Tabla de versiones:
Paquetes                   Versión Lenny          Versión Squeeze
samba                      2:3.2.5-4l             2:3.5.6~df
samba-tools                2:3.2.5-4l             2:3.5.6~df
smbclient                  2:3.2.5-4l             2:3.5.6~df
Lo primero que se hará es instalar el Samba. Para poder trabajar un poco con él y así
caer en el tema que importa, que es configurar un PDC Master.
#   aptitude install samba samba-common samba-tools smbfs smbclient
    • Nombre del dominio o del grupo de trabajo: nombre_dominio
    • Modificar smb.conf para usar la configuración WINS que proviene de DHCP?: No

Nuestra primera carpeta compartida
Ahora se crea una copia del archivo smb.conf que se encuentra ubicado en /etc/samba/
para en caso de algún problema poder virar atrás.
#   cp /etc/samba/smb.conf /etc/samba/smb.conf.bk
Luego de haber hecho la copia, se puede realizar los cambios que se quieran; en este
caso se compartirá una carpeta añadiendo lo siguiente.
#   nano /etc/samba/smb.conf
# Nombre del recurso compartido.
[miprueba]
     # Texto que se ve junto al recurso.
     comment = Mi Primera Prueba
     # Si este parámetro es yes, entonces se puede crear o modificar los ficheros del directorio.
     writeable = yes
     # Controla si este recurso compartido se ve en la lista de variables compartidas en la red.
     browseable = yes
     # Si este parámetro es yes, entonces no requiere clave para conectar con dicho servicio.
     public = yes
     # Si este parámetro es yes, entonces sólo se permiten las conexiones de invitado a este servicio.
     guest only = yes
     # Carpeta Compartida.
     path = /home
     # Aquí se define con que permisos se crean los ficheros. Por defecto es 744 (traducido: lectura,
     # escritura, ejecución por el dueño y lectura por grupo y otro).
     create mask = 0744
     # Aquí se define con que permisos se crean los directorios. Por defecto es 755 (traducido: lectura,
     # escritura, ejecución por el dueño y lectura,ejecutar por grupo y otro).
     directory mask = 0755
Luego de esto se reinicia el servicio.
#   invokre-rc.d samba restart
Ahora desde otra computadora se comprobará de que todo esta bien. Lo que esta en
negrita son los comando que se teclean.




                                                                                                     24
#   smbclient //IP_server_samba/miprueba -N
Anonymous login successful
Domain=[INFOSOC] OS=[Unix] Server=[Samba 3.5.6]
smb: > dir
 .                   D     0 Mon Jan 10 10:01:24 2011
 ..                  D     0 Tue Jan 11 12:58:58 2011
 rogelio             D     0 Mon Jan 10 09:22:38 2011
 datos               D     0 Mon Jan 10 09:33:57 2011
 aquota.user           8192 Tue Jan 11 12:54:03 2011
 aquota.group           8192 Tue Jan 11 10:46:08 2011
 lost+found          D     0 Mon Jan 10 09:11:22 2011
 perfiles            D     0 Mon Jan 10 09:36:54 2011

          61031 blocks of size 2097152. 57837 blocks available
smb: > exit
-N se usa para definir que no pida contraseña.

Carpeta compartida con usuario y contraseña
Siguiendo el mismo ejemplo anterior de configuración se mostrará como ponerle
seguridad a una carpeta compartida. Solamente se comentará el parámetro nuevo.
#   nano /etc/samba/smb.conf
[miprueba]
     comment = Mi Primera Prueba
     writeable = yes
     browseable = yes
     public = yes
     guest only = yes
     path = /home
     create mask = 0744
     directory mask = 0755
     # Aquí se define la lista de usuario permitida a entrar, de estar vació este parámetro puede entrar
     # cualquiera.
     valid user = sambauser
Insertado este parámetro se reinicia el samba y se crea el usuario declarado antes al
samba. Es importante aclarar que para crear un usuario samba primero tienes que
definirlo como usuario del sistema, también se les mostrará como crearlo.
#   invokre-rc.d samba restart
#   useradd -s /bin/false -d /dev/null sambauser
    -s el tipo de shell que se le definirá al usuario.
    -d el home_dir del usuario, en este caso se creará sin ninguno.
#   smbpasswd -a sambauser
    -a para metro para añadir usuario al samba y para eliminarlo se usa -x.
New SMB password:
Retype new SMB password:
Solo resta probar que se puede entrar a la carpeta protegida de la siguiente forma:
#   smbclient //192.168.1.19/miprueba -U sambauser
Enter rogelio's password:
Domain=[INFOSOC.CU] OS=[Unix] Server=[Samba 3.5.6]
smb: > dir
 .                     D     0 Fri Jan 21 09:37:49 2011
 ..                    D     0 Fri Jan 21 08:20:25 2011
 rogelio               D     0 Fri Jan 21 08:10:39 2011
 datos                 D     0 Mon Jan 10 09:33:57 2011
 aquota.user              8192 Tue Jan 11 12:54:03 201
 aquota.group             8192 Tue Jan 11 10:46:08 2011

                                                                                                           25
lost+found           D     0 Mon Jan 10 09:11:22 2011
 perfiles             D     0 Mon Jan 10 09:36:54 2011

         61035 blocks of size 2097152. 57841 blocks available
smb: > quit
Ya con esto tenemos un samba funcionando perfectamente, pero el objetivo es crear un
PDC Master.

PDC Master: Concepto, instalación y configuración
Luego de haber trabajado un poco con el samba, se creará un Primary Domain Controler
(Controlador de Dominio Primario) que tire contra un OpenLDAP. Si hacen todo como se
describe aquí no pasarán mucho trabajo, aunque hay que destacar que es un poco
trabajoso.
Lo primero que se hará es instalar tres paquetes (libpam-ldap, libnss-ldap y nscd) que
servirán para que el sistema busque en el directorio OpenLDAP, osea, cuando un servicio
necesite un usuario determinado primero buscará en el sistema y luego en el OpenLDAP,
logrando con esto, que el sistema detecte a los usuarios como locales. Posteriormente se
configurará el Samba3 como PDC Master vinculado con el OpenLDAP y por último se
creará el usuario administrador en la Interfaz Web Gosa. A continuación se ilustra el
procedimiento de instalación.
#   aptitude install libpam-ldap libnss-ldap nscd smbldap-tools
    •   Identificador de recurso para el servidor LDAP: ldap://ip_server_ldap
    •   El nombre distintivo (DN) de la base de búsquedas: dc=dominio,dc=cu
    •   Versión de LDAP a utilizar: 3
    •   Cuenta LDAP para root: cn=admin,dc=dominio,dc=cu
    •   Contraseña para la cuenta LDAP de root: passwd_admin_OpenLDAP
    •   Crear un administrador de la base de datos local: Si
    •   Hace falta un usuario para acceder a la base de datos LDAP?: No
    •   Cuenta LDAP para root: cn=admin,dc=dominio,dc=cu
    •   Contraseña para la cuenta LDAP de root: passwd_admin_OpenLDAP

Para terminar se edita el fichero /etc/nsswitch.conf y se le añade ldap, debe quedar de la
siguiente forma:
#   nano /etc/nsswitch.conf
passwd: compat ldap
group: compat ldap
shadow: compat ldap
Ya en este punto el sistema esta reconociendo a todos los usuarios del OpenLDAP como
si pertenecieran al sistema.
Antes de comenzar con la configuración del samba, se creará las carpetas profiles y
datos dentro de /home, aquí es donde se guardará la configuración del perfil y datos de
cada usuario respectivamente. Esto se hace da la siguiente forma:
# mkdir /home/profiles
# mkdir /home/datos
Ahora se configura el samba con la vinculación al OpenLDAP. En esta primera parte se
mostrará lo que se modificó y lo añadido nuevo (lo nuevo tendrá por delante el signo (+)).
Para ver la configuración del archivo samba completo ver Anexo 1.


                                                                                       26
Para deshacer todo lo hecho antes y configurar el samba desde cero, primero se restaura
a la configuración original y luego se edita, todo de la siguiente forma:
#   cp /etc/samba/smb.conf.bk /etc/samba/smb.conf
#   nano /etc/samba/smb.conf
[global]
# Este es el nombre del grupo en la red.
workgroup = DOMINIO
(+)realm = DOMINIO.CU
# Nombre que se mostrará en la red
(+)netbios name = NombPC
# Establece un literal descriptivo para el servidor Samba. Con esto pondrá versión del samba y pc donde
# está instalado.
server string = Samba PDC %v en (%h)
# Controla si Samba actúa como servidor WINS.
wins support = no
# Define si se utiliza el servidor Samba como un proxy DNS.
dns proxy = no
# Su principal función es controlar como se realiza la resolución NetBIOS.
name resolve order = wins lmhosts host bcast
# Configuración para que la pc sea PDC master
# Determina si el Samba va hacer PDC master o no.
(+)os level = 65
# Controla si Samba es un examinador principal para nuestro dominio o grupo de trabajo
(+)preferred master = yes
# Le permite al nmbd intentar y constituirse en examinador principal en una subred
(+)local master = yes
# Este parámetro indica a nmbd que solicite un nombre NetBIOS de dominio especial que lo identifica como
# examinador principal del dominio para el grupo de trabajo dado.
(+)domain master = yes
# Si se pone como yes, el servidor Samba como controlador primario de dominio (PDC). Este parametro se
# debe usar conjuntamete con domain master
(+)domain logons = yes
# Esta opción afecta el como los clientes responden a Samba. Con el nivel de seguridad user un cliente
# tiene que conectarse con un nombre de usuario y clave válidos.
security = user
# Esto es para negociar las claves cifradas con el cliente
encrypt passwords = yes
# Activa o desactiva el acceso a cuentas que tienen claves nulas.
(+) null passwords = no
# Aquí se pone los hosts o segmento de red a los que se le permite acceso a los servicio de Samba
(+)hosts allow = 192.168.10.0/24
# Permite redefinir la lista de interfaces de red predeterminada que usa Samba para examinar, registro de
# nombres, y otro tráfico NBT. Los valores pueden ser nombre_interfaz (ej: eth0), pareja IP/masc (ej:
# 192.168.10.0/24).
intefaces = eth0 lo
# El nombre de un programa que se puede usar para asignar claves de usuarios.
passwd program = /usr/bin/smbldap-passwd %u
# Parámetros para soporte LDAP
(+)passdb backend = ldapsam:ldap://ip_server_ldap
(+)ldap suffix = dc=dominio,dc=cu
(+)ldap machine suffix = ou=machines
(+)ldap user suffix = ou=people
(+)ldap group suffix = ou=groups
(+)ldap admin dn = cn=admin,dc=dominio,dc=cu
(+)ldap delete dn = no
(+)enable privileges = yes
# para permitir a los usuarios cambiar su clave desde Windows
(+)ldap password sync = yes
add user script = /usr/sbin/smbldap-useradd -m “%u”
add group script = /usr/sbin/smbldap-groupadd -p “%g”
(+)delete user from group script = /usr/sbin/smbldap-groupmod -x “%u”

                                                                                                      27
(+)set primary group script = /usr/sbin/smbldap-usermod -g “%g” “%u”
(+)add user to group script = /usr/sbin/smbldap-groupmod -m “%u” “%g”
add machine script = /usr/sbin/user/add -d /dev/null -s /bin/false -d /var/lib/nobody %u
(+)ldapsam:editposix = yes
# Especifica el rango de uid de usuario que se reservan para asociar usuarios UNIX con SID de usarios NT.
idmap uid = 10000-20000
# Especifica el rango de id de grupo que se reservan para asociar grupos UNIX con SID de grupos NT.
idmap gid = 20000-30000
(+)case sensitive = yes
[homes]
# Especifica la ejecución de un comando como root cuando alguien se conecta al servicio.
(+)root preexec = /bin/user.sh %U %S %I
# Texto que se ve junto al recurso.
comment = Directorio Usuario
# Directorio al cual tendrán acceso los usuarios del servicio
path = /home/%U/datos
valid users = %S
read only = no
browseable = no
directory mask = 0700
# Los nuevos directorios heredan los permisos del directorio padre
inherit permissions = yes
Para chequear que el samba está ya configurado como un PDC master se ejecutará el
comando testparm y se deberá mostrar lo siguiente:
Load smb config files from /etc/samba/smb.conf
Processing section "[homes]"
Processing section "[netlogon]"
Processing section "[profiles]"
Processing section "[printers]"
Processing section "[print$]"
Loaded services file OK.
Server role: ROLE_DOMAIN_PDC
Press enter to see a dump of your service definitions
Ahora se creará el script user.sh
#    touch /bin/user.sh
#    nano /bin/user.sh
#!/bin/bash
if [ ! -d $1 ]
then
mkdir /home/datos/$1
mkdir /home/profiles/$1
cp /etc/skel/.* /home/datos/$1
fi
chown -R $1 /home/datos/$1
chown -R $1 /home/profiles/$1
Se le cambian los permisos al archivo /bin/user.sh
#    chmod 755 /bin/user.sh
Luego se le pasa a Samba la contraseña del usuario administrador se Servidor
OpenLDAP ya que este necesita escribir algunos datos en el OpenLDAP, se hace de la
siguiente forma:
#    smbpasswd -W
Ojo la contraseña que se introduce aquí es la del administrador del OpenLDAP.
#    invoke-rc.d samba restart



                                                                                                       28
Ya realizado los cambios en el archivo smb.conf hay que configurar los ficheros smbldap-
tools y smbldap_bind, que se encuentra en /etc/smbldap-tools/; en caso que el sistema no
lo haya creado en la instalación se hace lo siguiente:
#    cp /usr/share/doc/smbldap-tools/examples/smbldap.conf.gz /etc/smbldap-tools/
#    cp /usr/share/doc/smbldap-tools/examples/smbldap_bind.conf /etc/smbldap-tools/
#    gunzip /etc/smbldap-tools/smbldap.conf.gz
En el fichero /etc/smbldap-tools/smbldap-tools lo mas importante es cambiar el valor
de esta opción SID=“” por el tuyo, que lo obtienes mediante el comando net getlocalsid.
Aquí solo se mostrará lo que ha sido cambiado. Para ver la configuración completa ver
Anexo2.
#    nano /etc/smbldap-tools/smbldap-tools
SID=”al que te muestre el comando antes comentado”
sambaDomain=”DOMINIO”
suffix=”dc=dominio,dc=cu”
userdn=”ou=people,${suffix}”
computerdn=”ou=machines,${suffix}”
hash_encrypt=”MD5”
crypt_salt_format=”$1$%.8s”
userLoginShell=”/bin/false”
userSmbHome=”DOMINIO%U”
userProfile=”DOMINIOprofiles%U”
userHomeDrive=”Z:”
Este otro fichero solo contiene la información sobre el usuario y la contraseña con el que
se debe conectar al servidor OpenLDAP.
#    nano /etc/smbldap-tools/smbldap_bind.conf
masterDN="cn=admin,dc=dominio,dc=cu"
masterPw="passwd_admin_OpenLDAP"
Una vez realizado todo esto deberemos de introducir el siguiente comando:
#    smbldap-populate
Si todo esta bien, nos debe salir algo similar a esto:
Populating LDAP directory for domain DOMINIO (S-1-5-21-859530851-107162760-3624729787)
(using builtin directory structure)
entry dc=dominio,dc=cu already exist.
entry ou=people,dc=dominio,dc=cu already exist.
entry ou=groups,dc=dominio,dc=cu already exist.
entry ou=machines,dc=dominio,dc=cu already exist.
adding new entry: ou=idmap,dc=dominio,dc=cu
adding new entry: uid=root,ou=people,dc=dominio,dc=cu
adding new entry: uid=nobody,ou=people,dc=dominio,dc=cu
adding new entry: cn=Domain Admins,ou=groups,dc=dominio,dc=cu
adding new entry: cn=Domain Users,ou=groups,dc=dominio,dc=cu
adding new entry: cn=Domain Guests,ou=groups,dc=dominio,dc=cu
adding new entry: cn=Domain Computers,ou=groups,dc=dominio,dc=cu
entry cn=Administrators,ou=groups,dc=dominio,dc=cu already exist.
adding new entry: cn=Account Operators,ou=groups,dc=dominio,dc=cu
adding new entry: cn=Print Operators,ou=groups,dc=dominio,dc=cu
adding new entry: cn=Backup Operators,ou=groups,dc=dominio,dc=cu
adding new entry: cn=Replicators,ou=groups,dc=dominio,dc=cu
entry sambaDomainName=DOMINIO,dc=dominio,dc=cu already exist. Updating it...
Please provide a password for the domain root:
Changing UNIX and samba passwords for root
New password:
Retype new password:


                                                                                         29
Ahora se reinicia el Samba
#    invoke-rc.d samba restart
Ahora se comprobara si el mapeo de los usuarios se ha hecho correctamente de forma
automática:
#    net groupmap list
Deberá mostrar algo parecido a esto:
Domain Admins (S-1-5-21-859530851-107162760-3624729787-512) -> 512
Domain Users (S-1-5-21-859530851-107162760-3624729787-513) -> 513
Domain Guests (S-1-5-21-859530851-107162760-3624729787-514) -> 514
Domain Computers (S-1-5-21-859530851-107162760-3624729787-515) -> 515
Account Operators (S-1-5-32-548) -> 548
Print Operators (S-1-5-32-550) -> 550
Backup Operators (S-1-5-32-551) -> 551
Replicators (S-1-5-32-552) -> 552
También se chequeará si el sistema reconoce estos grupos:
#    getent group
Mostrará lo siguiente:
Domain Admins:*:512:root
Domain Users:*:513:
Domain Guests:*:514:
Domain Computers:*:515:
Administrators:*:544:
Account Operators:*:548:
Print Operators:*:550:
Backup Operators:*:551:
Replicators:*:552:
Ya solo te queda crear un usuario para añadir las computadoras de la red al dominio.

Crear usuario Administrador del PDC Master
En el Capítulo 2 se mostró como crear un usuario. Ahora se mostrará como activarle el
servicio Unix y Samba para que pertenezca al PDC master.
Para esto se edita un usuario ya creado o se crea uno nuevo pero antes de dar OK se va
a la pestaña Unix y luego de dar clic en Añadir características POSIX mostrará un
formulario (Figura 3.1) donde se configura las distintas opciones del usuario. Lo más
importante aquí es poner en Grupo Primario que el usuario va a pertenecer a Domain
Admins y en Pertenencia a grupo el usuario será miembro del Domain Admins
[Netbios Domain Administrations]. Por último, en la sección Cuenta se tiene todo lo
que tiene que ver con la contraseña.




                                                                                       30
Figura 3.1: Pestaña Unix del Usuario
A continuación se va a la pestaña Samba que es donde se configura todo lo del sistema
operativo Windows respecto al usuario, en este caso luego de dar clic en Añadir
características Samba se le da clic en el botón OK y si es un usuario ya creado se
guardarán los cambios y sino saldrá para definirle la contraseña al nuevo usuario.




                                                         Figura 3.2: Pestaña Samba del Usuario
Teniendo listo el usuario que permite a añadir las computadoras al dominio, solo resta
crear los usuarios de la red al OpenLDAP, con la única diferencia que estos van a tener en
Grupo Primario que va a pertenecer a Domain Users y en el Pertenencia a grupo van
a ser Domain Users [Netbios Domain Users]. Ya con todo esto se tiene el PDC master.




                                                                                           31
Tareas para el autoaprendizaje:
1. Estudie y resuma las características del Samba3. Mencione sus funciones.
2. Cuáles son los requerimientos mínimos que debe conocer el especialista para el
   trabajo con el Samba3.
3. Profundice y resuma el procedimiento para la creación de una carpeta compartida por
   el Samba3.
4. Haga un cuadro resumen con los pasos lógicos para la instalación de un PDC Master.
   Estudie los procedimientos y comandos para la instalación y configuración de este
   servicio.
5. Estudie en el Anexo 3 del manual los posibles errores que pueden presentarse a la
   hora de vincular el Samba3 con el Directorio OpenLDAP, sus causas y su posible
   solución.

Tareas de autocontrol y autoevaluación:
1. Comparta una carpeta con usuario y contraseña.
2. Teniendo en cuenta la instalación realizada del Directorio OpenLDAP y la Interfaz Web
   GOsa, cree un PDC Master siguiendo el procedimiento descrito en el manual.
3. El proceso de instalación del Samba3 como PDC Master se presentó el siguiente
   error:
      rlimit_max: rlimit_max (1024) below minimum Windows limit (16384)
   A) Cuál es su causa?
   B) Qué solución Ud. le daría.
4. Crear un usuario por el Interfaz Web GOsa que pertenezca al PDC Master ya
   instalado y configurado.




                                                                                       32
Capitulo 4




                              Postfix




Objetivo: Profundizar en las características y funcionabilidad del servicio
             Postfix, vinculándolo con el Directorio OpenLDAP, para una
             mejor organización de la red.


Sistema de conocimientos:

4.1.- Características, función y estructura.

4.2.- Característica e instalación del Cyrus2.2.

4.3.- Instalación y configuración del postfix con el Cyrus. Vinculación de estos
     servicios con el directorio OpenLDAP.

4.4.- Procedimiento para añadir los servicios cyrus y postfix desde el GOsa
Características, función y estructura
Postfix es un servidor de correo de código abierto, un programa informático para el
enrutamiento y envío de correo electrónico, creado con la intención de que sea una
alternativa más rápida, fácil de administrar y sobre todo seguro como el Sendmail. Es un
MTA (Mail Transport Agent) originalmente escrito por Wietsa Venema durante su estancia
en la IBM y continua siendo desarrollado activamente.
Es el agente de transporte por omisión en diversas distribuciones de Linux y en las
últimas del Mac OS X. Postfix trabaja de la siguiente forma:
La figura que viene a continuación, proporciona una visión global de los elementos que
componen Postfix:




                                                              Figura 4.1: Elementos del postfix
Postfix basa su funcionamiento en cuatro colas: maildrop, incoming, active y deferred
(cuadrados coloreados en verde).
El correo que se genera de forma local se deposita en maildrop para su posterior proceso.
El proceso pickup toma los mensajes que llegan a maildrop y los pasa a cleanup, que
analiza las cabeceras de los mensajes y deposita éstos en la cola incoming.
En la cola active se encuentran aquellos mensajes que están en fase de encaminamiento,
y en deferred los mensajes que por diversas causas no se pueden encaminar o están
pendientes de reintentar su encaminamiento.
El proceso qmgr es el encargado de tratar los mensajes que llegan a la cola incoming,
depositarlos en active y lanzar el proceso adecuado para su encaminamiento, como
pueden ser local, smtp o pipe.
El correo procedente de otros sistemas se atiende a través del proceso smtpd, utilizando
el protocolo SMTP, pudiendo utilizar accesos a servidores de RBL o tablas internas para
aplicar las políticas de acceso a cada mensaje entrante.
Coloreadas de azul aparecen las tablas que, creadas por el administrador, sirven a los
diferentes procesos para concretar el tratamiento que debe darse a cada mensaje.
Se usan seis tablas: access, aliases, canonical, relocated, transport y virtual. Aunque no
es obligatoria la existencia ni utilización de todas ellas.
La tabla access permite definir una relación explícita de sistemas a los que se les deben
aceptar o rechazar sus mensajes. La utiliza el proceso smptd.


                                                                                            34
La tabla aliases, al igual que en Sendmail, define una serie de nombres alternativos a
usuarios locales, y la consulta el proceso local.
El proceso cleanup, mediante la tabla canonical establece relaciones entre nombres
alternativos y nombres reales, ya sean usuarios locales o no.
El proceso qmgr utiliza la tabla relocated para devolver los mensajes de usuarios que han
cambiado de dirección: “User has moved to new-email”.
Con la tabla transport, que es utilizada por el proceso trivial-rewrite, se define la política de
encaminamiento por dominios, subdominios e incluso por dirección concreta de usuario.
Para la gestión y soporte de dominios virtuales el proceso cleanup utiliza la tabla virtual.
En ella se establecen las relaciones entre usuarios virtuales y reales, e incluso de
dominios completos.




                                                                                              35
Instalación y Configuración

COMUN
Tabla de versiones:
Paquetes                     Versión Lenny           Versión Squeeze
postfix                      2.5.5-1.1               2.7.1-1
cyrus                        2.2.13-14+              2.2.13-19
sasl                         2.1.22.dfs              2.1.23.dfs

Antes de comenzar hay que aclarar que la configuración que se realizará aquí, es
suponiendo que ya se tiene un servidor de correo que sirva de Relay de Correo, en caso
contrario en vez de poner la opción Internet con smarthost se deberá coger Sitio de
Internet y se sigue la configuración igual a como se mostrará a continuación. Tampoco se
pondrá la tabla de versiones porque esta configuración sirve para cualquier versión del
postfix. Solamente se diferenciará las versiones a la hora de añadir el servidor en el
GOsa2.

Postfix, Internet con smarthost.
#       aptitude install postfix postfix-ldap
Tipo genérico de configuración de correo: Internet con smarthost
    System mail name: nombServ.dominio.cu
    SMTP relay host (blank for none): ipServerRelay
Luego de instalado se realizarán algunos cambios al fichero de configuración. Se les irá
comentando las líneas cambiadas y añadidas muevas (lo nuevo tendrá esto(+) por
delante). Antes se hace una copia del archivo original, en caso de algo malo suceda se
pueda volver para atrás. Para ver la configuración completa ver el Anexo 4.
#       cp /etc/postfix/main.cf /etc/postfix/main.cf.bk
#       nano /etc/postfix/main.cf
# Nombre de dominio para este sistema de correo.
(+)mydomain = dominio.cu
# Especifica el dominio que parecerá detrás del @.
myorigin = $mydomain
# Especifica a que dominios se entregará el correo a nivel local, antes de ser enviado a otro equipo.
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
# Redes de confianzas que se le permitirá hacer SMTP.
mynetworks = 127.0.0.0/8 IPInterna
# invoke-rc.d postfix restart
Ahora se prueba que todo esta bien configurado enviando un correo mediante telnet. Lo
que está en negrita es lo que se tiene que teclear.
# telnet IPServ 25
Trying 192.168.1.13...
Connected to 192.168.1.13.
Escape character is '^]'.
220 nombServ.dominio.cu ESMTP Postfix (Debian/GNU)
ehlo nombServ
250-nombServ.dominio.cu
250-PIPELINING
250-SIZE 10240000


                                                                                                        36
250-VRFY
250-ETRN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
mail from: mail@dominio.cu
250 2.1.0 Ok
rcpt to: correo@loquesea.com (yo use mi dirección de gmail por su rapidez)
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
Esto es una prueba de mi primera parte de config del POSTFIX.
.
250 2.0.0 Ok: queued as 8F8D466A049
quit
221 2.0.0 Bye
Connection closed by foreign host.
En los log's se debe mostrar algo similar a esta salida:
Apr 19 12:59:29 phil postfix/smtpd[3972]: 8F8D466A049: client=nombServ.dominio.cu[192.168.1.13]
Apr        19       12:59:55        phil       postfix/cleanup[3975]:    8F8D466A049:        message-
id=<20100419165929.8F8D466A049@nombServ.dominio.cu>
Apr 19 12:59:55 phil postfix/qmgr[3966]: 8F8D466A049: from=<mail@dominio.cu>, size=390, nrcpt=1
(queue active)
Apr     19     12:59:57      phil   postfix/smtp[3976]:     8F8D466A049:   to=<correo@loquesea.com>,
relay=200.55.136.178[200.55.136.178]:25, delay=42, delays=40/0.01/1.1/1.4, dsn=2.0.0, status=sent (250
2.0.0 Ok: queued as 14B558B4A3)
Apr 19 12:59:57 phil postfix/qmgr[3966]: 8F8D466A049: removed
Ya en este punto esta configurado para mandar correos, pero no para recibirlos.

Característica e instalación del Cyrus2.2
Antes de pasar a la instalación como tal se va a explicar el por qué se uso Cyrus. Se
procede a usarlo porque a diferencias de otros servidores POP/IMAP, Cyrus usa su propio
método de almacenamiento de correo. Cada mensaje es almacenado en su propio
fichero. Esto trae como ventaja que en caso de un error del servidor, solo se pierde un
solo mensaje. También trae el beneficio de que los mensajes son indexados, mejorando
así el rendimiento del Cyrus. Por último, una de las características mas importante es que
no son necesarias cuentas locales de GNU Linux para cada usuario, el Cyrus cuenta con
su propia base de usuarios, esto lo convierte en una magnífica solución cuando se tiene
una gran cantidad de usuarios.
Antes de pasar a la Instalación del Cyrus se tiene que instalar primero todo el soporte
SASL.
#   aptitude install sasl2-bin libsasl2-modules libsasl2-modules-ldap
Luego de que se instalen estos paquetes se configura el soporte SASL.
#   nano /etc/default/saslauthd
START=yes
DESC="SASL Authentication Daemon"
NAME="saslauthd"
MECHANISMS="sasldb"
THREADS=5
OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd"
Ahora se crea y se le da los correspondientes permisos a la carpeta, y por último se
reinicia el servicio.


                                                                                                   37
#   mkdir -p /var/spool/postfix/var/run/saslauthd/
#   chmod 755 /var/spool/postfix/var/run/saslauthd/
#   chown root.sasl /var/spool/postfix/var/run/saslauthd/
#   invoke-rc.d saslauthd restart
Ya realizado lo anterior se instala todo los paquetes referente al cyrus.
#   aptitude install cyrus-admin-2.2 cyrus-common-2.2 cyrus-clients-2.2 cyrus-
    imapd-2.2 cyrus-pop3d-2.2 cyrus-doc-2.2
Aquí solo se mostrará lo cambiado. Para ver la configuración completa ver Anexo 5.
#   nano /etc/imapd.conf
unixhierarchysep: yes
# Esta opción es para definir los usuarios con permiso de administración.
admins: cyrus
# Lista de los mecanismo de autenticación que se van a soportar
sasl_mech_list: PLAIN LOGIN
# El valor por defecto es 0, que permite texto plano, en primera instancia. Una vez funcionando se puede
# aumentar la seguridad
sasl_minimum_layer: 0
# Esta opción nos permite especificar los plugins del auxpropd que deseamos cargar, en el caso de estar
# usando sasl_pwcheck_method: auxprop. Es necesario descomentar esta línea para que use sasldb.
sasl_auxprop_plugin: sasldb
Luego se reinicia el servicio y se crea el usuario Cyrus que fue el que se declaró como
administrador. También se probará que el mismo este bien creado.
#   invoke-rc.d cyrus2.2 restart
#   saslpasswd2 -c cyrus
#   imtest -a cyrus localhost
S: * OK phil Cyrus IMAP4 v2.2.13-Debian-2.2.13-14+lenny3 server ready
C: C01 CAPABILITY
S: * CAPABILITY IMAP4 IMAP4rev1 ACL QUOTA LITERAL+ NAMESPACE UIDPLUS ID
NO_ATOMIC_RENAME             UNSELECT         CHILDREN        MULTIAPPEND BINARY SORT
THREAD=ORDEREDSUBJECT THREAD=REFERENCES ANNOTATEMORE IDLE
S: C01 OK Completed
Please enter your password: passwd_user_probando
C: L01 LOGIN cyrus {1}
S: + go ahead
C: <omitted>
S: L01 OK User logged in
Authenticated.
Security strength factor: 0
Deberá mostrar algo como lo anterior, si es así, quiere decir que hasta el momento todo
esta bien. Es hora de crear un usuario en cyrus y sasl para probarlo con el postfix.
#   cyradm -- user cyrus localhost
IMAP Password:
localhost>cm user/test
localhost> exit
#   saslpasswd2 -c test




                                                                                                           38
Postfix con Cyrus2.2 y el SASL
Ya llegado aquí, lo que se debe hacer es activar el soporte SASL y vincular el Cyrus2.2 al
Postfix. Lo primero es crear el archivo smtpd.conf e insertarle lo siguiente:
#   nano /etc/postfix/sasl/smtpd.conf
# método para la verificación de la clave de acceso
pwcheck_method: saslauthd
# mecanismos de encriptación de la clave de acceso del usuario a utilizar para la autenticación ante una
# conexión por smtp
mech_list: plain login
Ahora en el main.cf se le añade lo siguiente:
#   nano /etc/postfix/main.cf
# Este parámetro consulta con todos los nombres o direcciones de los destinatarios locales. Una dirección
# de destinatario es local, cuando su dominio coincide con $mydestination, $inet_interfaces o
# $proxy_interfaces
local_recipient_maps = $alias_maps unix:passwd.byname
virtual_alias_maps = hash:/etc/postfix/virtual
# habilitar el soporte sasl en el postfix
smtpd_sasl_auth_enable = yes
smtpd_sasl_authenticated_header = yes
# no permitir usuarios anónimos en la autenticación mediante sasl
smtpd_sasl_security_options = noanonymous
# evitar que ciertos clientes no entiendan las líneas del sasl
broken_sasl_auth_clients = yes
#### LISTAS DE CONTROL DE ACCESO ####
smtpd_helo_restrictions =
         permit_sasl_authenticated,
         permit_mynetworks,
         reject_invalid_helo_hostname,
         reject_non_fqdn_helo_hostname
smtpd_sender_restrictions =
         reject_non_fqdn_sender,
         reject_unknown_sender_domain,
         permit_sasl_authenticated,
         permit_mynetworks
smtpd_recipient_restrictions =
         reject_non_fqdn_recipient,
         reject_unknown_recipient_domain,
         permit_sasl_authenticated,
         permit_mynetworks,
         reject_unauth_destination,
         reject_unlisted_recipient,
         permit
smtpd_data_restrictions =
         reject_multi_recipient_bounce,
         reject_unauth_pipelining

mailbox_transport = cyrus
También se debe añadir al final un proceso al archivo master.cf, pero primero se creará
una copia del mismo por cualquier cosa que pase, volver para atrás.
#    cp /etc/postfix/master.cf /etc/postfix/master.cf.bk
#    nano /etc/postfix/master.cf
cyrus unix     -       n       n       -        -      pipe
 flags=R user=cyrus argv=/usr/sbin/cyrdeliver -e -m ${extension} ${user}




                                                                                                           39
En este punto les daré dos formas de llenar el archivo /etc/postfix/virtual:
    1. sasldblistusers2 | perl -ne 'print "$1t$1n" if /^([^:]+):/;' > /etc/postfix/virtual
    2. Esta forma es mas a la antigua y es así:
       # touch /etc/postfix/virtual
       # nano /etc/postfix/virtual
       ### Ojo aquí van los usuarios que creas en la base datos sasl.
       user@dominio.cu                user@dominio.cu
Luego de tener los usuario en /etc/postfix/virtual se le debe hacer postmap para convertir
el contenido de la tabla virtual en el fichero binario indexado necesario para que el postfix
pueda leerla.
#   postmap /etc/postfix/virtual
Después de todo esto se reinicia y se prueba el postfix.
#   invoke-rc.d postfix restart
#   telnet IPServ 25
Trying 192.168.1.13...
Connected to nombServ.dominio.cu.
Escape character is '^]'.
220 nombServ.dominio.cu ESMTP Postfix (Debian/GNU)
ehlo nombServ
250-nombServ.dominio.cu
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
mail from: test@dominio.cu
250 2.1.0 Ok
rcpt to: test@dominio.cu
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
Esto es una prueba de mi segunda etapa de Configuración.
.
250 2.0.0 Ok: queued as A2DC666A057
quit
221 2.0.0 Bye
En los log's se debe mostrar algo similar a esta salida de aquí abajo:
Apr 20 14:36:49 phil cyrus/lmtpunix[6994]: Delivered: <20100420183637.A2DC666A057@dominio.cu> to
    mailbox: user.test
Apr 20 14:36:49 phil postfix/pipe[7204]: A2DC666A057: to=<test@dominio.cu>, relay=cyrus, delay=82,
    delays=82/0.01/0/0.02, dsn=2.0.0, status=sent (delivered via cyrus service)
Apr 20 14:36:49 phil postfix/qmgr[6981]: A2DC666A057: removed
Ahora se deberá verificar si el correo llego bien a su destino.
#   telnet IPServ 143
Trying 192.168.1.13...
Connected to phil.infosoc.cu.
Escape character is '^]'.
* OK phil Cyrus IMAP4 v2.2.13-Debian-2.2.13-14+lenny3 server ready
x login nombuser passwd
x OK User logged in
x select inbox

                                                                                               40
* FLAGS (Answered Flagged Draft Deleted Seen)
* OK [PERMANENTFLAGS (Answered Flagged Draft Deleted Seen *)]
* 1 EXISTS
* 1 RECENT
* OK [UIDVALIDITY 1272045852]
* OK [UIDNEXT 2]
x OK [READ-WRITE] Completed
x fetch 1 (body[text])
* 1 FETCH (BODY[TEXT] {30}
Esta es mi segunda prueba.

)
x OK Completed (0.000 sec)
x logout
* BYE LOGOUT received
x OK Completed
Connection closed by foreign host.
Si hasta aquí todo se a hecho como se ha indicado aquí, se puede decir que ya se tiene
un servidor de correo con Postfix, Cyrus-imap y SASL. Pero el verdadero objetivo es
vincular todo esto con el Directorio OpenLDAP para tener a todos los usuarios de la red
centralizados.

Postfix con OpenLDAP, Cyrus y SASL
Este paso es uno de los mas trabajoso ya que hay que vincularlo todo con el OpenLDAP,
pero tampoco es tan complicado solo con un poco de paciencia y tiempo se logrará todo.
En esta parte se explicará dos formas de configuración:
    1. Si se tiene un solo servidor y en este se tiene un PDC Master que usa el método
       de autenticación del saslauthd + PAM.
    2. Si se tiene el servidor de correo independiente del PDC Master y entonces se usa
       el método de autenticación saslauthd + LDAP.
Si se desea obtener mas información sobre estas configuraciones van a la carpeta
/usr/share/doc/cyrus-sasl2-doc/.

Método de autenticación saslauthd + PAM
Aquí se verá como emplear el método PAM ya que se tiene el usuario reconocido por el
sistema. Lo primero de todos es editar el archivo saslauthd y luego el imap.conf y poner
lo siguiente:
#   nano /etc/default/saslauthd
START=yes
MECHANISMS="ldap"
PARAMS="-a pam"
OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd"
Luego se activa el mecanismo de autenticación PAM.
#   saslauthd -a pam
Método de autenticación saslauthd + LDAP
Lo primero que se hará es que el SASL lea los usuarios del OpenLDAP, para lograr esto
hay que crear el archivo saslauthd.conf en /etc y modificar el fichero /etc/default/saslauthd.
También es recomendable que hagan una salva de toda la configuración que tienen hasta
ahora, por si algo sale mal se pueda virar para atrás.


                                                                                           41
#   touch /etc/saslauthd.conf
#   nano /etc/saslauthd.conf
ldap_servers: ldap://IPServLDAP
ldap_bind_dn: cn=admin,dc=dominio,dc=cu
ldap_bind_pw: passwd_uer_admin
ldap_search_base: ou=people,dc=dominio,dc=cu
ldap_scope: sub
ldap_auth_method: bind
ldap_filter: uid=%U
#   nano /etc/default/saslauthd
START=yes
MECHANISMS="ldap"
PARAMS="-a ldap -O /etc/saslauthd.conf"
OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd"
Activación del mecanismo ldap.
#   saslauthd -a ldap
A partir de ahora todo lo que viene a continuación es común para cualquiera de los dos
métodos de autenticación. Aplicado cualquiera de los dos métodos se reinicia el servicio y
se prueba la configuración. Importante la prueba se hace con un usuario del OpenLDAP.
#   invoke-rc.d saslauthd restart
#   testsaslauthd -u user_ldap -p passwd
0: OK "Success."
Si muestra lo anterior quiere decir que el saslauthd esta reconociendo los usuarios del
directorio OpenLDAP.
Ahora se procede a modificar el archivo imapd.conf para que el cyrus reconozca
mediante el mecanismo saslauthd los usuario del OpenLDAP, para esto se le añade lo
siguiente:
#   nano /etc/imapd.conf
# En esta opción va el nombre del servidor.
servername: nombServ.dominio.cu
sasl_pwcheck_method: saslauthd
#esto se habilitará para poder crear las cuentas mediante el GOsa2
imap_admins: cyrus
Como es de costumbre ahora se prueba que la configuración que se ha hecho hasta el
momento, trabaje bien. Esta prueba también se realiza con un usuario del OpenLDAP y
deberá mostrar algo parecido a esto.
#   imtest -a user_ldap localhost
S: * OK phil Cyrus IMAP4 v2.2.13-Debian-2.2.13-14+lenny3 server ready
C: C01 CAPABILITY
S: * CAPABILITY IMAP4 IMAP4rev1 ACL QUOTA LITERAL+ NAMESPACE UIDPLUS ID
NO_ATOMIC_RENAME             UNSELECT         CHILDREN        MULTIAPPEND BINARY SORT
THREAD=ORDEREDSUBJECT THREAD=REFERENCES ANNOTATEMORE IDLE
S: C01 OK Completed
Please enter your password: passwd_user
C: L01 LOGIN rogelio {8}
S: + go ahead
C: <omitted>
S: L01 OK User logged in
Authenticated.
Security strength factor: 0




                                                                                       42
Luego de todas estas configuraciones, se deberá crear el usuario administrador del cyrus
en el OpenLDAP mediante el GOsa2, ya que es el mismo que se usará para todas las
configuraciones que se realizarán, el mismo debe de coincidir con el usuario que se
definió en el parámetro imap_admins y luego a configurar el postfix de nuevo.
#   nano /etc/postfix/main.cf
virtual_alias_maps = ldap:/etc/postfix/openldap/virtual_alias_maps.cf,
                    ldap:/etc/postfix/openldap/virtual_user_aliases.cf
Ya solo queda crear y configurar los dos archivos puesto arriba.
virtual_alias_maps: archivo de configuración para que reconozca los correos
electrónicos de los usuarios.
virtual_user_aliases: archivo de configuración para que reconozca el alias del correo
electrónico de los usuarios.
#   mkdir /etc/postfix/openldap
#   touch /etc/postfix/openldap/virtual_alias_maps.cf
#   nano /etc/postfix/openldap/virtual_alias_maps.cf
server_host = ip_server_ldap
search_base = ou=people,dc=dominio,dc=cu
query_filter = (mail=%s)
result_attribute = uid
cache = no
bind = yes
bind_dn = cn=admin,dc=dominio,dc=cu
bind_pw = passwd_admin_ldap
#   touch /etc/postfix/openldap/virtual_user_aliases.cf
#   nano /etc/postfix/openldap/virtual_user_aliases.cf
server_host = ip_server_ldap
search_base = ou=people,dc=dominio,dc=cu
query_filter = (gosaMailAlternateAddress=%s)
result_attribute = uid
cache = no
bind = yes
bind_dn = cn=admin,dc=dominio,dc=cu
bind_pw = passwd_admin_ldap
Ya solo resta reiniciar el postfix y listo quedará el servidor completamente instalado.
#   invoke-rc.d postfix restart




                                                                                          43
Procedimiento para añadir los servicios cyrus y postfix desde
                             el GOsa
En el Capítulo 2 se mostró como crear un servidor, ahora se mostrará como adicionar
servicios al mismo.
GNU/LINUX DEBIAN 5 (LENNY)
Ahora toca darle las características de servidor de correo.




                                  Figura 4.2: Ventana para conectar un servidor a una Base de Datos
En la pestaña Base de Datos se le pone los siguientes datos:
   •   Identificador de servidor: se le pone el servername que se le puso en la
       configuración del cyrus.
   •   URL de conexión: aquí va el IP mas el puerto que es el 143 y todo esto va cerrado
       entre corchete. (ej: {10.10.10.1:143}).
   •   Usuario administrador: se pone el usuario administrador que se creo
       anteriormente por el GOsa2, en este caso es cyrus.
   •   Contraseña: contraseña del usuario.
   •   Puerto Sieve: va el puerto del sieve que por defecto es el 2000.
En la pestaña Servicios es donde se dice que el servidor va a tener el servicio de correo.




                                             Figura 4.3: Ventana para activar servicios a un servidor
Luego de todo esto se le da al botón Guardar.



                                                                                                  44
GNU/LINUX DEBIAN 6 (SQUEEZE)
Ahora se mostrará como añadir servicios por esta versión del interfaz.
Luego de entrar al servidor ya creado o si se crea uno nuevo, se va a la pestaña
Servicios y de ahí se le da clic a Acciones -->> Crear -->> Servicio.




                                            Figura 4.4: Pestaña para añadir servicios a un servidor
Ahora se mostrará como añadir los servicios necesario para que funcione el OpenLDAP
con el postfix y el cyrus. Cuando se le de clic a Servicio, saldrá una ventana donde listará
los servicios que pueden ser añadidos, de ahí se escoge el Servicio IMAP/POP3 y se le
da clic al botón Continuar, donde mostrará el siguiente formulario.




                                                         Figura 4.5: Pestaña Servicio IMAP/POP3
Aquí se le pone los siguientes datos:
   •   Identificador de servidor: se le pone el servername que se le puso en la
       configuración del cyrus.
   •   URL de conexión: aquí va el IP mas el puerto que es el 143 y todo esto va cerrado
       entre corchete. (ej: {10.10.10.1:143/notls}).
   •   Usuario administrador: se pone el usuario administrador que se creo
       anteriormente por el GOsa2, en este caso es cyrus.
   •   Contraseña: contraseña del usuario.
   •   Puerto Sieve: va el puerto del sieve que por defecto es el 2000. (ej:
       {10.10.10.1:2000/notls})
   •   También se activa las opciones Iniciar servicio IMAP e Iniciar servicio POP3.
   •   Action: Start




                                                                                                45
Luego que se guarde esta configuración se añade el servicio Servicio SMTP de Correo
Electrónico (Postfix) de la misma forma que el anterior y a continuación mostrará el
siguiente formulario.




                                  Figura 4.6: Pestaña Servicio SMTP de Correo Electrónico (Postfix)
En este formulario se pone la configuración del servidor postfix, no se va a entrar en
detalles porque todo esta claro.

Crear usuario de correo desde la Interfaz Web Gosa
En el Capítulo 2 se mostró como crear un Usuario Genérico, en esta sección se mostrará
como activar la opción Mail.
Luego de ir a la pestaña Mail se le da clic al botón Añadir características Mail.




                                             Figura 4.7: Pestaña Mail de la creación de un Usuario
Aquí lo mas importante es:
Cuenta Principal: Aquí va la dirección de correo del usuario. (ej.: usuario@dominio.cu)
Server: En esta opción va el servidor de Postfix que se añadió anteriormente.
Direcciones alternativas: Si hay un usuario que tiene que ponerle otra dirección de
                          correo alternativa que es donde se pone.

                                                                                                46
Tareas para el autoaprendizaje:
1.   Estudiar lo referente a las características del Postfix, observando la figura 4.1 para
     identificar los elementos que lo componen.
2.   Estudiar los diferentes comandos que se utilizan para la instalación del Postfix y su
     vinculación con el OpenLDAP. Elaborar resumen al respecto.
3.   Observar y resumir los métodos para vincular el Cyrus, el SALS y el Postfix con el
     Directorio OpenLDAP.
4.   Estudie el procedimiento para añadir los servicios Cyrus2.2 y Postfix desde la Interfaz
     Web GOsa y haga un resumen de los elementos que distinguen el mismo.

Tareas de autocontrol y autoevaluación:
1. Elabore un esquema que identifique los elementos que componen el Postfix. Explique.
2. Implemente un filtro por palabras en Postfix que permita eliminar los correos que
   contengan la palabra “Sexo” en el asunto.
3. Si se tiene el servidor de correo independiente del PDC Master y entonces se usa el
   método de autenticación saslauthd + LDAP. ¿Cómo usted configuraría el Postfix, con
   el Cyrus2.2 y el SASL, para vincularlo con el directorio OpenLDAP?.
4. Ya configurado los servicios Postfix y Cyrus2.2 con el Directorio OpenLDAP, cree el
   servidor desde la Interfaz Web GOsa.
5. Cree un usuario con el servicio de correo activado.




                                                                                         47
Capitulo 5




                             DHCP




Objetivo: Profundizar en el estudio del servicio DHCP y su vinculación con
           el Directorio OpenLDAP.

Sistema de conocimientos:

5.1.- Concepto. Características generales. Funcionamiento.

5.2.- Modos de asignación de IP a otros equipos.

5.3.- Instalación y configuración del servicio DHCP y su soporte OpenLDAP.

5.4.- Configuración del DHCP desde la Interfaz Web GOsa
Concepto. Características generales. Funcionamiento
Protocolo de configuración dinámica de host (en inglés Dynamic Host Configuration
Protocolo) es un protocolo de red que permite a los clientes de una red IP obtener sus
parámetros de configuración automáticamente. Se trata de un protocolo de tipo
cliente/servidor en el que generalmente un servidor posee una lista de direcciones IP
dinámicas y las va asignando a los clientes conforme éstas van estando libres, sabiendo
en todo momento quién ha estado en posesión de esa IP, cuánto tiempo la ha tenido y a
quién se la ha asignado después.
El DHCP esta basado en el protocolo BootP (Bootstrap Protocol) de RFC-0951, con
algunas diferencias. El BootP fue de los primeros métodos para asignar direcciones IP de
forma dinámica. Al ser las redes cada vez mas grandes, el BootP ya no era tan adecuado
y entonces es cuando se publica en octubre de 1993 el DHCP, estando documentado
actualmente en la RFC 2131.
DHCP trabaja de la siguiente forma:
Primero, se necesita un servidor DHCP que distribuya las direcciones IP. Este equipo será
la base para todas las solicitudes DHCP por lo cual debe tener una dirección IP fija.
El sistema básico de comunicación es BOOTP (con la trama UDP). Cuando un equipo se
inicia no tiene información sobre su configuración de red y no hay nada especial que el
usuario deba hacer para obtener una dirección IP. Para esto, la técnica que se usa es la
transmisión: para encontrar y comunicarse con un servidor DHCP, el equipo simplemente
enviará un paquete especial de transmisión (transmisión en 255.255.255.255 con
información adicional como el tipo de solicitud, los puertos de conexión, etc.) a través de
la red local. Cuando el DHCP recibe el paquete de transmisión, contestará con otro
paquete de transmisión (no olvide que el cliente no tiene una dirección IP y, por lo tanto,
no es posible conectar directamente con él) que contiene toda la información solicitada
por el cliente.
Se podría suponer que un único paquete es suficiente para que el protocolo funcione. En
realidad, hay varios tipos de paquetes DHCP que pueden emitirse tanto desde el cliente
hacia el servidor o servidores, como desde los servidores hacia un cliente:
   • DHCPDISCOVER (para ubicar servidores DHCP disponibles)
   • DHCPOFFER (respuesta del servidor a un paquete DHCPDISCOVER, que
     contiene los parámetros iniciales)
   • DHCPREQUEST (solicitudes varias del cliente, por ejemplo, para extender su
     concesión)
   • DHCPACK (respuesta del servidor que contiene los parámetros y la dirección IP del
     cliente)
   • DHCPNAK (respuesta del servidor para indicarle al cliente que su concesión ha
     vencido o si el cliente anuncia una configuración de red errónea)
   • DHCPDECLINE (el cliente le anuncia al servidor que la dirección ya está en uso)
   • DHCPRELEASE (el cliente libera su dirección IP)
   • DHCPINFORM (el cliente solicita parámetros locales, ya tiene su dirección IP)
El primer paquete emitido por el cliente es un paquete del tipo DHCPDISCOVER. El
servidor responde con un paquete DHCPOFFER, fundamentalmente para enviarle una
dirección IP al cliente. El cliente establece su configuración y luego realiza un
DHCPREQUEST para validar su dirección IP (una solicitud de transmisión ya que
DHCPOFFER no contiene la dirección IP) El servidor simplemente responde con un
DHCPACK con la dirección IP para confirmar la asignación. Normalmente, esto es

                                                                                        49
suficiente para que el cliente obtenga una configuración de red efectiva, pero puede tardar
más o menos en función de que el cliente acepte o no la dirección IP. En la Figura 5.1 se
muestra el funcionamiento.




                                         Figura 5.1: Funcionamiento del DHCP


Modos de asignación de IP a otros equipos
Existen 3 modos en DHCP para poder asignar direcciones IP a otros equipos:
1 – Asignación manual: El administrador configura manualmente las direcciones IP del
cliente en el servidor DCHP. Cuando la estación de trabajo del cliente pide una dirección
IP, el servidor mira la dirección MAC y procede a asignar la que configuró el administrador.
2 – Asignación automática: Al cliente DHCP (ordenador, impresora, etc.) se le asigna
una dirección IP cuando contacta por primera vez con el DHCP Server. En este método la
IP es asignada de forma aleatoria y no es configurada de antemano.
3 – Asignación dinámica: El servidor DHCP asigna una dirección IP a un cliente de
forma temporal. Digamos que es entregada al cliente que hace la petición por un espacio
de tiempo. Cuando este tiempo acaba, la IP es revocada y la estación de trabajo ya no
puede funcionar en la red hasta que no pida otra.




                                                                                         50
Instalación y configuración con soporte el OpenLDAP

COMUN
Tabla de versiones:
Paquetes                  Versión Lenny          Versión Squeeze
dhcp3-server              3.1.1-6+le
dhcp3-server-ldap         3.1.1-6+le
isc-dhcp-server                                  4.1.1-P1-1
isc-dhcp-server-ldap                             4.1.1-P1-1


GNU/LINUX DEBIAN 5 (LENNY)
Lo primero que se hará es instalar el servicio de DHCP, y su soporte con OpenLDAP.
#   aptitude install dhcp3-server dhcp3-server-ldap
Luego de instalado se copia el esquema del dhcp a la carpeta /etc/ldap/schema y se le
añade al final de todos los includes, al archivo slapd.conf, todo esto se hace de la
siguiente forma:
Nota: se coge el dhcp.schema.gz de la carpeta del GOsa2 y no de la del dchp3-server-
ldap, esto es producto a que el schema de esta última carpeta no es compatible con el
atributo GOHard del GOsa2 y entonces entra en conflicto.
#   cp /usr/share/doc/gosa/contrib/openldap/dhcp.schema.gz /etc/ldap/schema
#   gunzip /etc/ldap/schema/dhcp.schema.gz
#   nano /etc/ldap/slapd.conf
include               /etc/ldap/schema/dhcp.schema
#   invoke-rc.d slapd restart
Ahora se configurará el servidor dhcp, pero lo primero que se hará es hacer una copia de
seguridad del mismo archivo por si algo sale mal poder virar los cambios para atrás.
#   cp /etc/dhcp3/dhcpd.conf /etc/dhcp3/dhcpd.conf.bk
#   nano /etc/dhcp3/dhcpd.conf
ddns-update-style none;
option domain-name "dominio.cu";
option domain-name-servers 192.168.1.1;
default-lease-time 43200;
max-lease-time 43200;
authoritative;
log-facility local7;
# IP del servidor OpenLDAP
ldap-server "192.168.1.1";
# Puerto del servidor OpenLDAP
ldap-port 389;
# Usuario para acceder y realizar las búsquedas en el directorio
ldap-username "cn=admin,dc=dominio,dc=cu";
# Passwd del OpenLDAP
ldap-password "passwd”;
# A partir de donde se realizarán las busquedas
ldap-base-dn "ou=servers,ou=systems,dc=dominio,dc=cu";
# Eso significa que cada vez que un ordenador se encienda y pida una ip, el servidor DHCP consulta al
# servidor de LDAP para ver su MAC y darle nombre y dirección adecuados. Cuando ya se hayan añadido

                                                                                                  51
# todas las pc se pasa esta opción a static.
ldap-method dynamic;
# Archivo donde se almacenarán los log's
ldap-debug-file "/var/log/dhcp-ldap.log";
Ahora se va al fichero /etc/default/dhcp3-server para indicarle por cual interfaz de red va a
escuchar.
#   nano /etc/default/dhcp3-server
INTERFACES = “ethx”
En la x va el número de su eth.
#   touch /var/log/dhcp-ldap.log
Ya se puede reiniciar el servidor DHCP.
#   invoke-rc.d dhcp3-server restart
Cuando reinicien el servicio les mostrará un error parecido a este:
Error: Cannot find LDAP entry matching
(&(objectClass=dhcpServer)(|(cn=laptopjudas)(cn=laptopjudas.dominio.cu)))
Configuration file errors encountered -- exiting
invoke-rc.d: initscript isc-dhcp-server, action "restart" failed.
Pero no hay que preocuparse por eso, que ahora se mostrará como solucionarlo.
Luego de haber realizado todo esto, se añadirá al directorio OpenLDAP mediante un
archivo ldif, la configuración del DHCP.
Esto se hará de esta forma porque como se quiere administrar desde el GOsa2, hay que
pasarle el objeto dhcpServer mediante el ldif.
#   touch /etc/ldap/ldif/dhcp.ldif
#   nano /etc/ldap/ldif/dhcp.ldif
dn: cn=laptopjudas.dominio.cu,ou=servers,ou=systems,dc=dominio,dc=cu
description: Servidor DHCP
# ip del servidor DHCP.
IpHostNumber : 192.168.1.1
# mac del servidor DHCP.
macAddress : 00:00:00:00:00:00
gotoMode: active
objectClass: top
objectClass: dhcpServer
objectClass: goServer
objectClass: GOhard
cn: dhcp.dominio.cu
dhcpServiceDN: cn=dhcp,cn=ldaptopjudas.dominio.cu,ou=systems,dc=dominio,dc=cu
Ahora es el momento de añadirlo con el siguiente comando:

#   ldapadd -f /etc/ldap/ldif/dhcp.ldif -D "cn=admin,dc=infosoc,dc=cu" -x -W
Si se ha hecho como se a explicado aquí deberá mostrar algo muy parecido a esto.

adding new entry "cn=laptopjudas.dominio.cu,ou=servers,ou=systems,dc=dominio,dc=cu"
Ya realizado todo esto, se puede proceder al GOsa para seguir con la configuración.




                                                                                          52
GNU/LINUX DEBIAN 6 (SQUEEZE)
En esta versión se hace algo parecido a lo descrito en la versión anterior: se instalan los
paquetes del servidor DHCP, se copia el ldif apropiado, se descomprime y se añade al
OpenLDAP. Pero en esta versión todo se esto se realiza de la siguiente forma:
En el caso de esta versión cambio los nombres del servicio aunque sigue estando el
antiguo DHCP3.
#   aptitude install isc-dhcp-server isc-dhcp-server-ldap
#   cp /usr/share/doc/gosa-plugin-dhcp/contrib/dhcp.schema.gz /etc/ldap/schema/gosa/
#   gunzip /etc/ldap/schema/gosa/dhcp.schema.gz
Este paso no lo vamos a repetir, porque se hace lo mismo que se explico en el capítulo 2.
Lo que al final del archivo /tmp/convschema se le añade la siguiente línea:
include       /etc/ldap/schema/gosa/dhcp.schema
Luego de que se haga todo lo que se tenga que hacer para que el OpenLDAP reconozca
el nuevo schema se procede a configurar el DHCP de la siguiente forma:
# cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.bk
# nano /etc/dhcp/dhcpd.conf
ddns-update-style none;
option domain-name "dominio.cu";
option domain-name-servers 192.168.1.1;
default-lease-time 43200;
max-lease-time 43200;
authoritative;
log-facility local7;
# IP del servidor OpenLDAP
ldap-server "192.168.1.1";
# Puerto del servidor OpenLDAP
ldap-port 389;
# Usuario para acceder y realizar las busquedas en el directorio
ldap-username "cn=admin,dc=dominio,dc=cu";
# Passwd del OpenLDAP
ldap-password "passwd”;
# A partir de donde se realizarán las busquedas
ldap-base-dn "ou=servers,ou=systems,dc=dominio,dc=cu";
# Eso significa que cada vez que un ordenador se encienda y pida una ip, el servidor DHCP consulta al
# servidor de LDAP para ver su MAC y darle nombre y dirección adecuados. Cuando ya se hayan añadido
# todas las pc se pasa esta opción a static.
ldap-method dynamic;
# Archivo donde se almacenarán los log's
ldap-debug-file "/var/log/dhcp-ldap.log";
Luego de configurar el DHCP, se crea el archivo para los log's.
# touch /var/log/dhcp-ldap.log




                                                                                                  53
Vinculando con open ldap
Vinculando con open ldap
Vinculando con open ldap
Vinculando con open ldap
Vinculando con open ldap
Vinculando con open ldap
Vinculando con open ldap
Vinculando con open ldap
Vinculando con open ldap
Vinculando con open ldap
Vinculando con open ldap
Vinculando con open ldap
Vinculando con open ldap
Vinculando con open ldap
Vinculando con open ldap
Vinculando con open ldap
Vinculando con open ldap
Vinculando con open ldap
Vinculando con open ldap
Vinculando con open ldap

Weitere ähnliche Inhalte

Andere mochten auch

Chapter 6; business income students (1)
Chapter 6; business income students (1)Chapter 6; business income students (1)
Chapter 6; business income students (1)
Charmaine Deirdre Dave
 
Caperucita Roja en versión de 3º A
 Caperucita Roja en versión de 3º A Caperucita Roja en versión de 3º A
Caperucita Roja en versión de 3º A
biblioteca23de09
 

Andere mochten auch (14)

División de números decimales
División de números decimalesDivisión de números decimales
División de números decimales
 
Guide to running a limited company
Guide to running a limited companyGuide to running a limited company
Guide to running a limited company
 
Local Power, Local Control
Local Power, Local ControlLocal Power, Local Control
Local Power, Local Control
 
Chapter 6; business income students (1)
Chapter 6; business income students (1)Chapter 6; business income students (1)
Chapter 6; business income students (1)
 
Income from business and profession
Income from business and professionIncome from business and profession
Income from business and profession
 
Clase #2 de word ii
Clase #2 de word iiClase #2 de word ii
Clase #2 de word ii
 
Desayunos Tecnológicos
Desayunos TecnológicosDesayunos Tecnológicos
Desayunos Tecnológicos
 
Prévention des infections et stratégies de contrôle en soins à domicile et so...
Prévention des infections et stratégies de contrôle en soins à domicile et so...Prévention des infections et stratégies de contrôle en soins à domicile et so...
Prévention des infections et stratégies de contrôle en soins à domicile et so...
 
Los 10 errores más comunes, Ciudades Villes Ciutats 3.0
Los 10 errores más comunes, Ciudades Villes Ciutats 3.0Los 10 errores más comunes, Ciudades Villes Ciutats 3.0
Los 10 errores más comunes, Ciudades Villes Ciutats 3.0
 
Dossier kandinsky final
Dossier kandinsky finalDossier kandinsky final
Dossier kandinsky final
 
Impressionisme
ImpressionismeImpressionisme
Impressionisme
 
Ame gallery le monde de l'art selon e.t.-100514 e.t. devant les vitrines des ...
Ame gallery le monde de l'art selon e.t.-100514 e.t. devant les vitrines des ...Ame gallery le monde de l'art selon e.t.-100514 e.t. devant les vitrines des ...
Ame gallery le monde de l'art selon e.t.-100514 e.t. devant les vitrines des ...
 
Caperucita Roja en versión de 3º A
 Caperucita Roja en versión de 3º A Caperucita Roja en versión de 3º A
Caperucita Roja en versión de 3º A
 
Andinatel_VER
Andinatel_VERAndinatel_VER
Andinatel_VER
 

Ähnlich wie Vinculando con open ldap

Base de datos laboratorio
Base de datos laboratorioBase de datos laboratorio
Base de datos laboratorio
freddy Fred
 

Ähnlich wie Vinculando con open ldap (20)

Temario Administración de Usuarios UTS
Temario Administración de Usuarios UTSTemario Administración de Usuarios UTS
Temario Administración de Usuarios UTS
 
Taller drupal 8 tuxtepec
Taller drupal 8 tuxtepecTaller drupal 8 tuxtepec
Taller drupal 8 tuxtepec
 
Linux
LinuxLinux
Linux
 
Presentando drupal en xalapa
Presentando drupal en xalapaPresentando drupal en xalapa
Presentando drupal en xalapa
 
Base de datos laboratorio
Base de datos laboratorioBase de datos laboratorio
Base de datos laboratorio
 
Inciación a Drupal 8
Inciación a Drupal 8Inciación a Drupal 8
Inciación a Drupal 8
 
Anexo 28-actividad-7
Anexo 28-actividad-7Anexo 28-actividad-7
Anexo 28-actividad-7
 
e-Ghost 2014: introducción al desarrollo de módulos en drupal 7
e-Ghost 2014: introducción al desarrollo de módulos en drupal 7e-Ghost 2014: introducción al desarrollo de módulos en drupal 7
e-Ghost 2014: introducción al desarrollo de módulos en drupal 7
 
CodeIgniter
CodeIgniterCodeIgniter
CodeIgniter
 
Ccna discovery yina
Ccna  discovery  yinaCcna  discovery  yina
Ccna discovery yina
 
Aspectos básicos de la integración del Mac 10.8
Aspectos básicos de la integración del Mac 10.8Aspectos básicos de la integración del Mac 10.8
Aspectos básicos de la integración del Mac 10.8
 
¡This is drupal!
¡This is drupal!¡This is drupal!
¡This is drupal!
 
¡This is drupal! - Global Training Days
¡This is drupal! - Global Training Days¡This is drupal! - Global Training Days
¡This is drupal! - Global Training Days
 
Manualdel servidordeescuela primaria
Manualdel servidordeescuela primariaManualdel servidordeescuela primaria
Manualdel servidordeescuela primaria
 
Angie
AngieAngie
Angie
 
Haciendo que tu entorno de desarrollo de Drupal rocks
Haciendo que tu entorno de desarrollo de Drupal rocksHaciendo que tu entorno de desarrollo de Drupal rocks
Haciendo que tu entorno de desarrollo de Drupal rocks
 
Administración de sistemas
Administración de sistemasAdministración de sistemas
Administración de sistemas
 
Drupal grunt task - Drupal Camp CR 2015
Drupal grunt task  - Drupal Camp CR 2015Drupal grunt task  - Drupal Camp CR 2015
Drupal grunt task - Drupal Camp CR 2015
 
Infraestructura agil
Infraestructura agilInfraestructura agil
Infraestructura agil
 
Introduccion Java.ppt
Introduccion Java.pptIntroduccion Java.ppt
Introduccion Java.ppt
 

Vinculando con open ldap

  • 1. Vinculando con OpenLDAP Autor: Rogelio Cores Raventós
  • 2. Indice Capítulo 1 Directorio OpenLDAP Generalidades y característica 2 Instlación y configuración 5 Estructura del directorio 6 Tareas para el auto aprendizaje 7 Tareas de autocontrol y autoevaluación 7 Capítulo 2 Interfaz Web GOsa Características 9 Instalación y configuración 9 Crear un usuario 18 Crear un grupo 19 Crear un servidor 20 Tareas para el auto aprendizaje 21 Tareas de autocontrol y autoevaluación 21 Capítulo 3 Samba3 Características y funciones 23 Instalación y configuración 24 Nuestra primera carpeta compartida 24 Carpeta compartida con usuario y contraseña 25 PDC Master: Concepto, instalación y configuración 26 Crear usuario administrador del PDC Master 30 Tareas para el auto aprendizaje 32 Tareas de autocontrol y autoevaluación 32 Capítulo 4 Postfix Características, función y estructura 34 Instalación y configuración 36 Postfix, Internet con smarthost 36 Característica e instalación del Cyrus2.2 37 Postfix con Cyrus2.2 y el SASL 39 Postfix con OpenLDAP, Cyrus2.2 y SASL 41
  • 3. Procedimiento para añadir los servicios Cyrus2.2 y Postfix 44 desde el GOsa Crear usuario de correo desde la Interfaz Web GOsa 46 Tareas para el auto aprendizaje 47 Tareas de autocontrol y autoevaluación 47 Capítulo 5 DHCP Concepto. Características generales. Funcionamiento 49 Modos de asignación de IP a otros equipos 50 Instalación y configuración con soporte OpenLDAP 51 Configurando desde el GOsa 53 Tareas para el auto aprendizaje 55 Tareas de autocontrol y autoevaluación 55 Capítulo 6 Squid Características distintivas 57 Tipos de Proxy que existen. Particularidades 57 Instalación y configuración 59 Vinculación con el Directorio OpenLDAP 60 Crear usuario de navegación desde el GOsa 61 Tareas para el auto aprendizaje 61 Tareas de autocontrol y autoevaluación 61 Anexos Anexo 1: Configuración del archivo smb.con 63 Anexo 2: Configuración del archivo smbldap-tools 65 Anexo 3:Posibles errores que pueden presentarse en el 67 Samba3 y vía de solución Anexo 4: Configuración del archivo main.cf 68 Anexo 5: Configuración del archivo imapd.conf 70 Anexo 6: Configuración del archivo squid.conf 71 Bibliografía 73
  • 4. Introducción Hoy en día nuestro país esta inmerso en un proceso de migración de “Software propietario” a “Software Libre”, con una gran guía de Migración, donde se describe el procedimiento a utilizar y recomienda una serie de servicios a utilizar; pero la misma no muestra soluciones concretas para la instalación y configuración de estos servicios. Es por ello que el autor del presente manual se ha dado a la tarea de escribir sus experiencias, resultado de la búsqueda de información y solución de situaciones prácticas concretas que ha tenido que enfrentar en su labor como administrador de redes a lo largo de 5 años, todo lo cual queda a disposición del personal especializado para su consulta y autosuperación. En el manual no se trata lo referente a la distribución de los servicios en servidores, puesto que para eso hay diversas maneras y conceptos. Lo que se pretende es enseñar los procedimientos para instalar, configurar y vincular algunos de los servicios de redes con el OpenLDAP y lograr una mayor organización de los mismos. Las fuentes bibliográficas utilizadas como soporte teórico de la propuesta fue el resultado de una amplia búsqueda en Internet, lo cual fue validado en la práctica por el autor. En la bibliografía propuesta aparecen los sitios WEB consultados, para una mayor profundización. El manual tiene como objetivo proporcionar una vía para la autosuperación de los administradores de redes, que les permita profundizar en cada uno de los servicios vinculado con el OpenLDAP. para que haya una mejor organización en la red, elevar el nivel de profesionalidad en la labor que desempeña y proporcionar un espacio para la reflexión e intercambio acerca de estos procesos. En el momento que fue creado este material estaban vigente el GNU/Linux Debian 5 (Lenny) y el GNU/Linux Debian 6 (Squeeze), por lo tanto, en el manual se hará referencia a los dos. Cuando la Instalación y la Configuración de algún paquete sea común para los dos, arriba se le pondrá COMUN y cuando sea diferente se explicará para cada versión como se instala y configura. También se pondrá una tabla con los paquetes instalados y sus versiones respectivamente en cada versión de los GNU/Linux Debian. El autor
  • 5. Capitulo 1 Directorio OpenLDAP Objetivo: Estudiar las características, uso y conceptos relacionados con el Directorio OpenLDAP, desarrollando habilidades en su instalación y configuración. Sistema de conocimientos: 1.1.- Generalidades y características. 1.2.- Instalación y configuración. 1.3.- Creación de una estructura de directorio mediante ldif.
  • 6. Generalidades y características OpenLDAP es una implementación libre y de código abierto del protocolo Lightweight Directory Access Protocol (LDAP) desarrollada por el proyecto OpenLDAP. Está liberada bajo su propia licencia OpenLDAP Public License. El mismo está basado en el estándar X.500, pero significativamente más simple y más realmente adaptado para satisfacer las necesidades del usuario. A diferencia de X.500 OpenLDAP soporta TCP/IP, que es necesario para el acceso a Internet. Habitualmente, almacena la información de autenticación (usuario y contraseña) y es utilizado para autenticarse, aunque es posible almacenar otra información (datos de contacto del usuario, ubicación de diversos recursos de la red, permisos, certificados, etc). A manera de síntesis, OpenLDAP es un protocolo de acceso unificado a un conjunto de información sobre una red, que también permite la comunicación independiente de la plataforma. Muchas distribuciones GNU/Linux incluyen el software OpenLDAP para el soporte LDAP. Este software también corre en plataformas BSD, AIX, HP-UX, Mac OS X, Solaris, Microsoft Windows (NT y derivados, incluyendo 2000, XP, Vista), y z/OS. Básicamente, OpenLDAP posee tres componentes principales: slapd (dominio de servidor y herramientas), bibliotecas que implementan el protocolo LDAP y programas clientes (ldapsearch, ldapadd, ldapdelete, entre otros). El proyecto OpenLDAP se inició en 1998 por Kurt Zeilenga. El proyecto comenzó como un clon de la implementación LDAP de la Universidad de Michigan, entidad donde se desarrolló originalmente el protocolo LDAP y que también actualmente trabaja en la evolución del mismo. En abril de 2006, el proyecto OpenLDAP incorpora tres miembros principales: Howard Chu (Arquitecto jefe), Pierangelo Masarati, y Kurt Zeilenga. Hay otros importantes y activos contribuyentes incluyendo Luke Howard, Hallvard Furuseth, Quanah Gibson- Mount, y Gavin Henry. Los servidores OpenLDAP están fuertemente optimizados para operaciones de lectura intensivas. A causa de esto, típicamente uno puede ver un orden de magnitud diferente cuando lee datos de un directorio OpenLDAP frente a la obtención de los mismos datos de una base de datos relacional optimizada. Sin embargo, a causa de esta optimización a la mayoría de los directorios OpenLDAP no les viene bien el almacenamiento de datos donde los cambios son frecuentes. Por ejemplo, un servidor de directorio OpenLDAP es bueno para almacenar el directorio de teléfonos internos de la empresa, pero ni se te ocurra pensar en utilizarlo como repositorio de base de datos para un sitio de comercio electrónico de alto volumen. Antes de instalar un directorio OpenLDAP debería hacerse las siguientes preguntas y si las respuestas a estas es si, entonces, almacenar tus datos en OpenLDAP es una buena idea. • Te gustaría que tus datos estén disponibles a través de varias plataformas? • Necesitas acceso a estos datos desde un número de ordenadores o aplicaciones? • Los registros individuales que estás almacenado cambian unas pocas veces al día o menos, como medía? Los servidores de directorio OpenLDAP almacenan sus datos jerárquicamente. Si has visto las presentaciones de árboles DNS descendientes o directorios de ficheros UNIX, una estructura de directorio OpenLDAP te será un terreno familiar. Como con los nombres de host en DNS, un registro Distinguished Name (Nombre Distinguido en español, DN en corto) de un directorio OpenLDAP se lee desde su entrada individual, recursivamente a través del árbol, hasta el nivel más alto. Es algo similar a lo que se muestra a continuación (Figura1.1): 2
  • 7. Figura 1.1: Árbol directorio OpenLDAP Para explicar como funciona el OpenLDAP asumamos que se trabajo en una empresa la cual está registrada en Internet como dominio.cu. Base DN Base DN es el punto inicial en la jerarquía del OpenLDAP en el que comenzará la búsqueda. Una de las forma de escribir es así: dc=domio,dc=cu Este formato está separado en componentes de dominio: dominio.cu deviene dc=dominio, dc=cu. En teoría, esta forma puede ser levemente más versátil, aunque es un poco más duro de recordar para los usuarios finales. Unidades Organizacionales (OU) Debajo de la base de directorio (Base DN), se querrá crear contenedores que separen lógicamente los datos. Por razones históricas (X.500), la mayoría de los directorios configuran estas separaciones lógicas como entradas OU. OU vienen de "Organizational Units" (Unidades Organizacionales, en español), que en X.500 eran utilizadas para indicar la organización funcional dentro de la empresa: ventas, finanzas, etc. Actualmente las implementaciones de OpenLDAP han mantenido la convención del nombre ou=, pero separa las cosas por categorías amplias como ou=people, ou=groups y demás. Se escribiría de esta forma: ou=people,dc=dominio,dc=cu Para las cuentas de usuario, típicamente se verá un DN basado en el cn o en el uid (ID del usuario). Aquí se mostrarán dos formas de escribirlas: uid=rcores,ou=people,dc=dominio,dc=cu cn=rcores,ou=people,dc=dominio,dc=cu Formato LDIF: El LDAP Data Interchange Format (LDIF) es un formato que se utiliza para la importación y exportación de datos independientemente del servidor LDAP que se esté utilizando. Cada servidor LDAP tiene una o varias maneras de almacenar físicamente sus datos en el disco rígido, por esto que LDIF provee una manera de unificar, la forma de tratar los datos y así poder migrar de un servidor a otro sin importar que clase de implementación es. 3
  • 8. El formato LDIF es simplemente un formato de texto ASCII para entradas LDAP que transmite el contenido del directorio como un conjunto de registros, un registro por cada objeto (o entrada). Representa a las solicitudes de actualización, tales como agregar, modificar, eliminar y cambiar el nombre, como un conjunto de registros, grabar uno para cada solicitud de actualización. También es útil para realizar copias de seguridad de los datos de un servidor LDAP, siempre manteniendo la independencia de la implementación LDAP y de la plataforma donde esté instalada. Los schema: Son archivos donde se definen cada una de las estructuras (clases) y sus atributos (attributes) para la construcción de entradas LDAP; cada archivo con extensión .schema define dentro de él uno o más objectClasses y sus respectivos atributos. 4
  • 9. Instalación y configuración COMUN Tabla de versiones: Paquetes Versión Lenny Versión Squeeze slapd 2.4.11-1+l 2.4.23-7 ldap-utils 2.4.11-1+l 2.4.23-7 # aptitude install slapd ldap-utils • Contraseña del administrador: passwd_desea_poner • Verificación de contraseña: passwd_puesto_anterior Luego de instalado, para realizar una completa configuración del OpenLDAP, se hace lo siguiente: GNU/LINUX DEBIAN 5 (LENNY) # dpkg-reconfigure slapd • Desea omitir la configuración del servidor OpenLDAP?: No • DNS domain name: dominio.cu • Organization name: dominio.cu • Contraseña del administrador: passwd_desea_poner • Verificación de contraseña: passwd_puesto_anterior • Database backend to use: HDB (En mi caso escogí está porque es un nuevo tipo de almacenamiento para OpenLDAP, que sustituye el antiguo BDB, HDB utiliza Oracle Berkeley DB para el almacenamiento y almacena las entradas de forma jerárquica). • Desea que borre la base de datos cuando se purge el paquete slapd?: No • Desea mover la base de datos antigua?: Si • Reintentar la configuración?: No • Allow LDAPv2 protocol: No GNU/LINUX DEBIAN 6 (SQUEEZE) Debido a que en esta versión la configuración del OpenLDAP cambio casi completamente respecto a la versión anterior, que en ves de tener el tradicional archivo /etc/ldap/slapd.conf toda la configuración se almacena en un directorio de base “cn=config”, trayendo la ventaja de que las modificaciones de configuración se pueden hacer sin tener que reiniciar el servicio, pero tiene el inconveniente de que tenemos que aprender algunas cosas nueva. Ahora se verá como reconfigurar el OpenLDAP, para eso primero se borra el directorio slapd.d que se encuentra ubicado en /etc/ldap/ de la siguiente manera: # rm -r /etc/ldap/slapd.d/ Luego que se borre el directorio se ejecuta el comando dpkg-reconfigure slapd y se hace la misma configuración que se les mostró arriba. 5
  • 10. COMUN Ahora se prueba que la configuración del OpenLDAP que se hizo está bien: # ldapsearch -x -b "dc=dominio,dc=cu" # extended LDIF # # LDAPv3 # base <dc=dominio,dc=cu> with scope subtree # filter: (objectclass=*) # requesting: ALL # # dominio.cu dn: dc=dominio,dc=cu objectClass: top objectClass: dcObject objectClass: organization o: dominio.cu dc: dominio # admin, dominio.cu dn: cn=admin,dc=dominio,dc=cu objectClass: simpleSecurityObject objectClass: organizationalRole cn: admin description: LDAP administrator # search result search: 2 result: 0 Success # numResponses: 3 # numEntries: 2 Si sale algo similar a esto, es que la instalación salió exitosamente. Estructura del directorio Ya instalado correctamente el directorio OpenLDAP crearemos la estructura del directorio, que por ahora los únicos objetos que tendrá será: usuarios y grupos; esto se hará mediante los LDIF. Lo primero que se hará es crear el archivo LDIF con los distintos parámetros que permitirán la creación de dicha estructura. # mkdir /etc/ldap/ldif # touch /etc/ldap/ldif/crear_dir.ldif # nano /etc/ldap/ldif/crear_dir.ldif dn: ou=people,dc=dominio,dc=cu objectClass: top objectClass: organizationalUnit ou: people dn: ou=groups,dc=dominio,dc=cu objectClass: top objectClass: organizationalUnit ou: groups 6
  • 11. Hay que fijarse bien que entre cada objeto que se crea hay un espacio, de esa forma es como sabe el OpenLDAP que se refiere a objetos diferentes. Luego de esto se añade el fichero ldif. Se mostrarán varios formas de añadir los archivos ldif. Forma 1: # invoke-rc.d slapd stop # slapadd -l /etc/ldap/ldif/crear_dir.ldif # invoke-rc.d slapd start Forma 2: # ldapadd -x -f /etc/ldap/ldif/crear_dir.ldif -D "cn=admin,dc=dominio,dc=cu" -W Ahora le explico bien la traducción de este comando: -x para indicar el tipo de autenticación simple. -f (dir/fichero.ldif): permite leer las operaciones del fichero. -D: para poner el usuarios del OpenLDAP. -W: solicita la contraseña del usuario. De la segunda forma le deberá mostrar algo parecido a esto: adding new entry "ou=people,dc=dominio,dc=cu" adding new entry "ou=groups,dc=dominio,dc=cu" Ya se tiene un directorio OpenLDAP con los grupos necesarios para las configuraciones que se realizarán posteriormente. Esto puede variar en independencia de los servicios que se vayan a vincular con el mismo. A lo largo de este documento se irá trabajando con el archivo de configuración del OpenLDAP, así como también se usarán algunos comandos del mismo. Tareas para el autoaprendizaje: Orientar el estudio de la Unidad 1 referente al Directorio OpenLDAP y resolver las siguientes actividades: 1. Observe la figura 1.1 del manual y resuma, ¿Cómo se estructura el árbol del directorio? 2. ¿Qué es un ldif? Mencione algunas de sus características. 3. ¿Qué es un schema?. 4. Con respecto a la instalación y configuración del directorio OpenLDAP, puntualice: • Compare la estructura de datos que asume el OpenLDAP entre las versiones GNU/LINUX Debian 5 y GNU/LINUX Debian 6. • ¿Qué comando se utiliza para comprobar la instalación del directorio? • Cómo añadir un ldif al directorio. Tareas de autocontrol y autoevaluación: 1. Instale y configure el directorio OpenLDAP en su red teniendo en cuenta el procedimiento descrito en el manual. 2. Utilizando los servicios de su red, estructure un ldif con un árbol de directorio que satisfaga las necesidades de los servicios en cuanto a la vinculación del OpenLDAP. 7
  • 12. Capítulo 2 Interfaz Web GOsa Objetivo: Vincular la aplicación Web GOsa al Directorio OpenLDAP, facilitando la funcionabilidad en la administración del mismo. Sistema de conocimientos: 2.1.- Características. 2.2.- Instalación y configuración. 2.3.- Estructura de schema´s al directorio OpenLDAP. 2.4.- Creación de usuario, grupo y servidores.
  • 13. Características Es un proyecto basado en PHP que proporciona un poderoso marco para la gestión de cuentas y los sistemas de bases de datos OpenLDAP. El uso del GOsa le permite al administrador de sistemas un manejo simple de usuarios, grupos, clientes aplicaciones, teléfonos, faxes y correo. En relación con el FAI (Completa Instalación Automática), GOsa es altamente automatizado, permite la instalación de sistemas preconfigurados. Por lo tanto GOsa permite administrar grandes ambientes desde un solo punto en forma simple desde una base de datos OpenLDAP, con lo que la administración de usuarios, de todos los sistemas y los parámetros relacionados con el, son manejables y fácil. Instalación y configuración COMUN Tabla de versiones: Paquetes Versión Lenny Versión Squeeze php5 5.2.6.dfsg 5.3.3-7 apache2 2.2.9-10+l 2.2.16-6 libapache-mod-php5 5.2.6.dfsg 5.3.3-7 gosa 2.5.16.1-4 2.6.11-3 En este paso se instalará la interfaz web para administrar más comodo al OpenLDAP. Junto con esta interfaz web se instalará también los servicios de Apache2 y PHP5 para permitirnos interactuar con el GOsa. # aptitude install php5 php5-imagick php5-common php5-gd php5-ldap php5- mhash php5-cli php5-recode php5-snmp php5-cgi apache2 libapache2-mod-php5 Luego de instalados los paquetes anteriores se procede a instalar la interfaz web GOsa. GNU/LINUX DEBIAN 5 (LENNY) # aptitude install gosa gosa-desktop gosa-schema Instalado todo esto, se le añade los siguientes schema al OpenLDAP, el orden de los schema debe quedar de la siguiente forma: # nano /etc/ldap/slapd.conf include /etc/ldap/schema/core.schema include /etc/ldap/schema/cosine.schema include /etc/ldap/schema/inetorgperson.schema include /etc/ldap/schema/openldap.schema include /etc/ldap/schema/nis.schema include /etc/ldap/schema/misc.schema include /etc/ldap/schema/samba3.schema include /etc/ldap/schema/gosystem.schema include /etc/ldap/schema/gofon.schema include /etc/ldap/schema/goto.schema include /etc/ldap/schema/gofax.schema include /etc/ldap/schema/goserver.schema include /etc/ldap/schema/gosa+samba3.schema password-hash {MD5} 9
  • 14. El orden de estos include es importante y la opción “password-hash {MD5}” hace que LDAP siempre almacene las contraseñas encriptadas usando MD5. GNU/LINUX DEBIAN 6 (SQUEEZE) A partir de esta versión junto al GOsa se instalan los plugin's que uno desea. # aptitude install gosa gosa-desktop gosa-plugin-addressbook gosa-plugin- connectivity gosa-plugin-dhcp gosa-plugin-dhcp-schema gosa-plugin-goto gosa- plugin-ldapmanager gosa-plugin-mail gosa-plugin-samba gosa-plugin-squid gosa-plugin-systems gosa-plugin-uw-imap gosa-schema Cuando se tengan estos paquetes instalados se le añaden los schemas; ya que son tantos se parará el servicio. La forma que se verá a continuación es una de las formas que se le puede añadir schemas al OpenLDAP. Lo primero es crear el archivo convschema y la carpeta schemaldif. # mkdir /tmp/schema.ldif # touch /tmp/convschema Dentro del archivo convschema se ponen los siguientes schemas: # nano /tmp/convschema include /etc/ldap/schema/core.schema include /etc/ldap/schema/cosine.schema include /etc/ldap/schema/inetorgperson.schema include /etc/ldap/schema/openldap.schema include /etc/ldap/schema/nis.schema include /etc/ldap/schema/misc.schema include /etc/ldap/schema/gosa/samba3.schema include /etc/ldap/schema/gosa/gosystem.schema include /etc/ldap/schema/gosa/gofon.schema include /etc/ldap/schema/gosa/goto.schema include /etc/ldap/schema/gosa/gofax.schema include /etc/ldap/schema/gosa/goserver.schema include /etc/ldap/schema/gosa/gosa-samba3.schema Llego el momento de convertir estos schema en ldif y darles los permisos adecuados para ser añadidos al OpenLDAP. # slaptest -f /tmp/convschema -F /tmp/schema.ldif/ # rm -r /etc/ldap/slapd.d/cn=config/cn=schema/ # cp -R /tmp/schema.ldif/cn=config/cn=schema/ /etc/ldap/slapd.d/cn=config/ # chown -R openldap:openldap /etc/ldap/slapd.d/cn=config/cn=schema/ COMUN Ahora se debe reiniciar el OpenLDAP. # invoke-rc.d slapd restart Llegado a este punto y realizado los cambios pertinentes se configurará el GOsa. Ahora en el navegador preferido de ustedes se debe poner http://ip_server_openldap/gosa (ej: http://192.168.1.0/gosa). Este proceso de configuración se irá explicando pantalla a pantalla. 10
  • 15. Figura 2.1: Página Bienvenida de la Interfaz web GOsa Primera pantalla: Aquí para poder seguir con el proceso de configuración se debe de copiar lo señalado en rojo en el servidor y darle Enter, todo esto es en el servidor donde este instalado el Gosa. (ojo: lo que esta después el “echo -n” ese serial cambia, fijarse bien en el que le ponga a ustedes en el proceso de configuración). Segunda pantalla: Figura 2.2: Página de selección de Idioma 11
  • 16. Tercera pantalla: Figura 2.3: Página de Comprobación de la Instalación Esta pantalla es donde te pone si cargo bien todas las extensiones y módulos del PHP que se instalaron, si hasta ahora todo se ha hecho por este manual, debe de salir algo similar a esto. Si hay alguno que no le ha cargado bien, fijase bien si lo instaló, sino reinstale el módulo php que le dio error. Cuarta pantalla: Figura 2.4: Página donde muestra la Licencia Esta pantalla es donde está la licencia del programa, luego que se la lea, si esta de acuerdo, debe de marcar donde está señalado en rojo. 12
  • 17. Quinta pantalla: Figura 2.5: Página Configuración del LDAP Se describirá por orden lo que se debe poner: Nombre de la localización: Nombre de empresa u organismo. URL de conexión: ldap://ip_server_openldap:389 DN del administrador: cn=admin y marcar la opción Añadir automáticamente la base LDAP al DN administrado, la misma permite que se complete el DN con la Base. Contraseña del administrador: passwd_admin_openldap Sexta pantalla: Figura 2.6: Página de Comprobación de los esquemas LDAP Aquí se comprueba si el orden de los esquemas están bien puesto. 13
  • 18. Séptima pantalla: Figura 2.7: Página Configuración del GOsa 1/3 En esta pantalla empieza como tal la configuración del GOsa con respecto al directorio OpenLDAP, los cambios se describirán por orden: Subárbol de almacenamiento para los usuarios: aquí se define el grupo donde van a estar los usuarios. El valor que se debe de poner es el mismo que el que se puso cuando se creo el directorio del OpenLDAP; en este caso es ou=usuarios. Subárbol de almacenamiento para los grupos: este parámetro es muy parecido al anterior pero con la diferencia que aquí se van a almacenar los grupos; el valor en este caso es ou=grupos. UIDsAutomaticas: Esto es para crear Los UIDs automáticamente. GID/UID min id: es el valor que se definirá como mínimo a la hora que se cree un usuario o grupo, de este valor en adelante es que se empezará a dar los valores de GID/UID. Se debe de poner un número alto para que no entre en contradicción con ninguno del sistema, en este caso se puso 10000. Número base para usuarios y grupos: este parámetro es parecido al anterior. Como valor se puso el mismo número 10000. En la sección de Parámetros de Contraseña estos valores cambia dependiendo del Plan de Seguridad Informática del organismo o empresa de cada uno. 14
  • 19. Octava Pantalla: Figura 2.8: Página Configuración del GOsa 2/3 En esta pantalla se configurará los siguiente parámetros: Contenedor de la estación de trabajo: esto se usa para definir el contenedor de las maquinas de nuestra red. Zona de uso horario: Aquí se pone el uso horario de cada cual. Aquí se uso el de Cuba que es America/Havana(DST). Método de correo: Se pone que se va usar el Cyrus. Modificar atributos existentes: Se selecciona uid. Usa estilo Cyrus Unix: Si. 15
  • 20. Novena pantalla: Figura 2.9: Página Configuración del GOsa 3/3 En esta pantalla solamente se realizarán cambios en la sección de Depurado, los mismos son: Mostrar errores PHP: Si Registrar estadísticas LDAP: Si Nivel de depuración: 1 Activado 16
  • 21. Décima Pantalla: Figura 2.10: Página de Inspección LDAP En esta pantalla el GOsa se encarga de comprobar algunos problemas que pueda tener nuestra base OpenLDAP. De paso se aprovechará y se arreglarán aquí para una mejor administración. Por lo que se recomienda que le den a Migrar a todo. También es bueno que creen el usuario administrador del GOsa por aquí mismo. Luego de que realicen todos sus cambios y creen su usuario se le da click a Comprobar de nuevo. La pantalla sugerencias no se mostrará porque es especie de una encuesta para realizar mejoras al programa. Si quiere se participa y sino se da Siguiente. Onceava pantalla: Figura 2.11: Página para Terminar la Configuración Aquí en esta pantalla lo primero es Descargar configuración y copiarla en el servidor donde se instaló este servicio, en la carpeta /etc/gosa/ y luego realizar lo mismo que se señaló en rojo. Luego de terminar todo esto se le da a Siguiente para finalizar la configuración. El usuario y la contraseña para entrar, es la que se definió cuando se creo el usuario GOsa en la pantalla anterior. 17
  • 22. Crear un usuario Aquí veremos como crear un usuario sin activarle ningún servicio. Los servicios de cada usuario se irán activando a la par de su instalación y configuración con el OpenLDAP. No se va a especificar la versión porque es mas o menos parecido una de la otra. Luego de haber accedido al GOsa se va a la sección Administration -->> Usuarios. Figura 2.12: Sección Administrador del GOsa Luego de dar clic sale el listado de usuarios del OpenLDAP y para crear un usuarios nevo hay que ir a Acciones -->> Crear -->> Usuario. Figura 2.13: Página de Gestión de Usuarios De ahí saldrá un formulario donde se pondrá la información personal y la del centro de trabajo del usuario. Los campos obligatorios son los que están resaltado con un *. Cuando se completen se dan OK y para acabar va a salir una página para definirle la contraseña al nuevo usuario. Figura 2.14: Pestaña Genérico del Usuario 18
  • 23. Crear un grupo Aquí veremos como crear un grupo cualquiera para luego usarlo para cualquier servicio. No se va a especificar la versión porque es mas o menos parecido una de la otra. Luego de haber accedido al GOsa se va a la sección Administration -->> Grupos. Figura 2.17: Sección Administrador del GOsa Luego sale un listado de todos los grupos y para crear uno nuevo se va a Acciones -->> Crear -->> Grupo, donde saldrá un formulario como el que se muestra en la Figura 2.18. Figura 2.18: Pestaña Genérico del Grupo Aquí se completa los siguientes datos: • Nombre del Grupo: se pone el nombre del grupo. • Descripción: una pequeña descripción del grupo. • Miembros del grupo: aquí se pone los usuarios que sea miembro de este grupo. Luego de haber completado los datos se le da clic al botón OK. 19
  • 24. Crear un servidor Aquí es donde vamos a mostrar como añadir un servidor al directorio OpenLDAP, aquí no se va a mostrar como añadirle un servicio a ese servidor, los servicios se irán añadiendo a medida que se vayan vinculando con el OpenLDAP en los siguiente capítulos. No se va a especificar la versión porque es mas o menos parecido una de la otra. Cuando se acceda al GOsa se va a la sección Administration -->> Sistemas. Figura 2.15: Sección Administrador del GOsa Luego de dar cilc sale la lista de los servidores y para crear uno nuevo servidor se va a Acciones -->> Crear -->> Server. De ahí saldrá un formulario pidiendo la información del servidor. Los campos obligatorios son los que están resaltado con un *. Cuando se completen se da OK. Figura 2.17: Pestaña Genérico del Servidor Aquí se completa los siguientes datos: • Nombre del Servidor: se pone el nombre del servidor declarado en el DNS. • Descripción: una pequeña descripción del servidor. • Dirección IP: aquí se pone la dirección de IP del servidor. • Dirección MAC: la MAC del mismo servidor. Ejecutando el comando ipconfig en el servidor, te muestra el IP y la MAC. • Modo: se pone en Activado. 20
  • 25. Tareas para el autoaprendizaje: 1. ¿Qué características distinguen la Interfaz Web GOsa? Mencione la función de este proyecto. 2. Argumente por qué es necesario la instalación del php5 con sus complementos y el apache2 antes que el Interfaz Web GOsa. 3. Con respecto a la instalación y configuración de la Interfaz Web GOsa puntualice: • Compare el procedimiento de configuración del directorio OpenLDAP entre las versiones GNU/LINUX Debian 5 y GNU/LINUX Debian 6 al instalar la Interfaz Web GOsa.. • Por qué se modifica el directorio OpenLDAP a la hora de instalar la Interfaz Web GOsa?. Mencione las modificaciones. 4. Estudie el procedimiento para la configuración de la Interfaz Web GOsa. Tareas de autocontrol y autoevaluación: 1. Tomando en cuenta el Directorio OpenLDAP instalado en su servidor, instale y configure la Interfaz Web GOsa teniendo en cuenta el procedimiento descrito en el manual. 2. Cree un usuario genérico con sus respectivos datos. 21
  • 26. Capitulo 3 Samba3 Objetivo: Profundizar en el estudio del servicio Samba3 para la creación de un PDC Master. Sistema de conocimientos: 3.1.- Características y funciones. 3.2.- Procedimientos para la instalación, con los requerimientos mínimos de prestaciones que debe ser del dominio del especialista. 3.3.- PDC Master: Concepto, instalación y configuración. 3.4.- Crear usuario Administrador del PDC Master
  • 27. Características y funciones Samba es una suite de aplicaciones GNU/Linux (o Unix) que habla el protocolo SMB (Server Message Block), protocolo SMB está dentro de la capa OSI. Muchos sistemas operativos, incluidos Windows y OS/2, usan SMB para operaciones de red cliente- servidor. De esta forma, es posible que ordenadores con GNU/Linux, Mac OS X o Unix en general se vean como servidores o actúen como clientes en redes de Windows. Entre los sistemas tipo Unix en los que se puede ejecutar Samba, están las distribuciones GNU/Linux, Solaris y las diferentes variantes BSD entre las que podemos encontrar el Mac OS X Server de Apple. Su surgimiento está relacionado con la idea de Andrew Tridgell, quien actualmente lidera el equipo de desarrollo de Samba development desde su casa de Canberra, Australia. El proyecto nació en 1991. Siendo originalmente desarrollado para Unix por Andrew Tridgell utilizando un sniffer o capturador de tráfico para entender el protocolo a través de la ingeniería inversa. El nombre viene de insertar dos vocales al protocolo estándar que Microsoft usa para sus redes, el SMB o server message block. En un principio Samba tomó el nombre de smbserver pero tuvieron que cambiarlo por problemas con una marca registrada. Tridgell busco en el diccionario de su máquina Unix alguna palabra que incluyera las letras “s”, “m” y “b” con la orden grep hasta que dio con Samba. SAMBA es una conjunto de programas, originalmente creados por Andrew Tridgell y actualmente mantenidos por The SAMBA Team, bajo la Licencia Publica General GNU, y que implementan en sistemas basados sobre UNIX® el protocolo Server Message Block (o protocolo SMB). Este es algunas veces referido también como Common Internet File System (CIFS), LanManager o protocolo NetBIOS. Sirve como reemplazo total para Windows® NT, Warp®, NFS® servidores Netware®. Estos permiten: • Compartir uno o más sistemas de archivos. • Compartir impresoras, instaladas tanto en el servidor como en los clientes. • Ayudar a los clientes, con visualizador de Clientes de Red. • Validación como miembro de dominio e incluso como un dominio Active Directory para redes basadas en Windows. • Validar usuarios haciendo de Controlador Principal de Dominio (PDC). Samba configura directorios Unix/Linux (incluyendo sus subdirectorios) como recursos para compartir a través de la red. Para los usuarios de Microsoft Windows, estos recursos aparecen como carpetas normales de red. Los usuarios de Linux pueden montar en sus sistemas de archivos estás unidades de red como si fueran dispositivos locales, o utilizar la orden smbcilent para conectarse a ellas muy al estilo del cliente de la línea de órdenes ftp. Cada directorio puede tener diferentes permisos de acceso sobrepuestos a las protecciones del sistema de archivos que se esté usando en Linux. Por ejemplo, las carpetas /home pueden tener permisos de lectura y escritura para cada usuario, permitiendo que cada uno acceda a sus propios archivos. 23
  • 28. Instalación y Configuración COMUN Tabla de versiones: Paquetes Versión Lenny Versión Squeeze samba 2:3.2.5-4l 2:3.5.6~df samba-tools 2:3.2.5-4l 2:3.5.6~df smbclient 2:3.2.5-4l 2:3.5.6~df Lo primero que se hará es instalar el Samba. Para poder trabajar un poco con él y así caer en el tema que importa, que es configurar un PDC Master. # aptitude install samba samba-common samba-tools smbfs smbclient • Nombre del dominio o del grupo de trabajo: nombre_dominio • Modificar smb.conf para usar la configuración WINS que proviene de DHCP?: No Nuestra primera carpeta compartida Ahora se crea una copia del archivo smb.conf que se encuentra ubicado en /etc/samba/ para en caso de algún problema poder virar atrás. # cp /etc/samba/smb.conf /etc/samba/smb.conf.bk Luego de haber hecho la copia, se puede realizar los cambios que se quieran; en este caso se compartirá una carpeta añadiendo lo siguiente. # nano /etc/samba/smb.conf # Nombre del recurso compartido. [miprueba] # Texto que se ve junto al recurso. comment = Mi Primera Prueba # Si este parámetro es yes, entonces se puede crear o modificar los ficheros del directorio. writeable = yes # Controla si este recurso compartido se ve en la lista de variables compartidas en la red. browseable = yes # Si este parámetro es yes, entonces no requiere clave para conectar con dicho servicio. public = yes # Si este parámetro es yes, entonces sólo se permiten las conexiones de invitado a este servicio. guest only = yes # Carpeta Compartida. path = /home # Aquí se define con que permisos se crean los ficheros. Por defecto es 744 (traducido: lectura, # escritura, ejecución por el dueño y lectura por grupo y otro). create mask = 0744 # Aquí se define con que permisos se crean los directorios. Por defecto es 755 (traducido: lectura, # escritura, ejecución por el dueño y lectura,ejecutar por grupo y otro). directory mask = 0755 Luego de esto se reinicia el servicio. # invokre-rc.d samba restart Ahora desde otra computadora se comprobará de que todo esta bien. Lo que esta en negrita son los comando que se teclean. 24
  • 29. # smbclient //IP_server_samba/miprueba -N Anonymous login successful Domain=[INFOSOC] OS=[Unix] Server=[Samba 3.5.6] smb: > dir . D 0 Mon Jan 10 10:01:24 2011 .. D 0 Tue Jan 11 12:58:58 2011 rogelio D 0 Mon Jan 10 09:22:38 2011 datos D 0 Mon Jan 10 09:33:57 2011 aquota.user 8192 Tue Jan 11 12:54:03 2011 aquota.group 8192 Tue Jan 11 10:46:08 2011 lost+found D 0 Mon Jan 10 09:11:22 2011 perfiles D 0 Mon Jan 10 09:36:54 2011 61031 blocks of size 2097152. 57837 blocks available smb: > exit -N se usa para definir que no pida contraseña. Carpeta compartida con usuario y contraseña Siguiendo el mismo ejemplo anterior de configuración se mostrará como ponerle seguridad a una carpeta compartida. Solamente se comentará el parámetro nuevo. # nano /etc/samba/smb.conf [miprueba] comment = Mi Primera Prueba writeable = yes browseable = yes public = yes guest only = yes path = /home create mask = 0744 directory mask = 0755 # Aquí se define la lista de usuario permitida a entrar, de estar vació este parámetro puede entrar # cualquiera. valid user = sambauser Insertado este parámetro se reinicia el samba y se crea el usuario declarado antes al samba. Es importante aclarar que para crear un usuario samba primero tienes que definirlo como usuario del sistema, también se les mostrará como crearlo. # invokre-rc.d samba restart # useradd -s /bin/false -d /dev/null sambauser -s el tipo de shell que se le definirá al usuario. -d el home_dir del usuario, en este caso se creará sin ninguno. # smbpasswd -a sambauser -a para metro para añadir usuario al samba y para eliminarlo se usa -x. New SMB password: Retype new SMB password: Solo resta probar que se puede entrar a la carpeta protegida de la siguiente forma: # smbclient //192.168.1.19/miprueba -U sambauser Enter rogelio's password: Domain=[INFOSOC.CU] OS=[Unix] Server=[Samba 3.5.6] smb: > dir . D 0 Fri Jan 21 09:37:49 2011 .. D 0 Fri Jan 21 08:20:25 2011 rogelio D 0 Fri Jan 21 08:10:39 2011 datos D 0 Mon Jan 10 09:33:57 2011 aquota.user 8192 Tue Jan 11 12:54:03 201 aquota.group 8192 Tue Jan 11 10:46:08 2011 25
  • 30. lost+found D 0 Mon Jan 10 09:11:22 2011 perfiles D 0 Mon Jan 10 09:36:54 2011 61035 blocks of size 2097152. 57841 blocks available smb: > quit Ya con esto tenemos un samba funcionando perfectamente, pero el objetivo es crear un PDC Master. PDC Master: Concepto, instalación y configuración Luego de haber trabajado un poco con el samba, se creará un Primary Domain Controler (Controlador de Dominio Primario) que tire contra un OpenLDAP. Si hacen todo como se describe aquí no pasarán mucho trabajo, aunque hay que destacar que es un poco trabajoso. Lo primero que se hará es instalar tres paquetes (libpam-ldap, libnss-ldap y nscd) que servirán para que el sistema busque en el directorio OpenLDAP, osea, cuando un servicio necesite un usuario determinado primero buscará en el sistema y luego en el OpenLDAP, logrando con esto, que el sistema detecte a los usuarios como locales. Posteriormente se configurará el Samba3 como PDC Master vinculado con el OpenLDAP y por último se creará el usuario administrador en la Interfaz Web Gosa. A continuación se ilustra el procedimiento de instalación. # aptitude install libpam-ldap libnss-ldap nscd smbldap-tools • Identificador de recurso para el servidor LDAP: ldap://ip_server_ldap • El nombre distintivo (DN) de la base de búsquedas: dc=dominio,dc=cu • Versión de LDAP a utilizar: 3 • Cuenta LDAP para root: cn=admin,dc=dominio,dc=cu • Contraseña para la cuenta LDAP de root: passwd_admin_OpenLDAP • Crear un administrador de la base de datos local: Si • Hace falta un usuario para acceder a la base de datos LDAP?: No • Cuenta LDAP para root: cn=admin,dc=dominio,dc=cu • Contraseña para la cuenta LDAP de root: passwd_admin_OpenLDAP Para terminar se edita el fichero /etc/nsswitch.conf y se le añade ldap, debe quedar de la siguiente forma: # nano /etc/nsswitch.conf passwd: compat ldap group: compat ldap shadow: compat ldap Ya en este punto el sistema esta reconociendo a todos los usuarios del OpenLDAP como si pertenecieran al sistema. Antes de comenzar con la configuración del samba, se creará las carpetas profiles y datos dentro de /home, aquí es donde se guardará la configuración del perfil y datos de cada usuario respectivamente. Esto se hace da la siguiente forma: # mkdir /home/profiles # mkdir /home/datos Ahora se configura el samba con la vinculación al OpenLDAP. En esta primera parte se mostrará lo que se modificó y lo añadido nuevo (lo nuevo tendrá por delante el signo (+)). Para ver la configuración del archivo samba completo ver Anexo 1. 26
  • 31. Para deshacer todo lo hecho antes y configurar el samba desde cero, primero se restaura a la configuración original y luego se edita, todo de la siguiente forma: # cp /etc/samba/smb.conf.bk /etc/samba/smb.conf # nano /etc/samba/smb.conf [global] # Este es el nombre del grupo en la red. workgroup = DOMINIO (+)realm = DOMINIO.CU # Nombre que se mostrará en la red (+)netbios name = NombPC # Establece un literal descriptivo para el servidor Samba. Con esto pondrá versión del samba y pc donde # está instalado. server string = Samba PDC %v en (%h) # Controla si Samba actúa como servidor WINS. wins support = no # Define si se utiliza el servidor Samba como un proxy DNS. dns proxy = no # Su principal función es controlar como se realiza la resolución NetBIOS. name resolve order = wins lmhosts host bcast # Configuración para que la pc sea PDC master # Determina si el Samba va hacer PDC master o no. (+)os level = 65 # Controla si Samba es un examinador principal para nuestro dominio o grupo de trabajo (+)preferred master = yes # Le permite al nmbd intentar y constituirse en examinador principal en una subred (+)local master = yes # Este parámetro indica a nmbd que solicite un nombre NetBIOS de dominio especial que lo identifica como # examinador principal del dominio para el grupo de trabajo dado. (+)domain master = yes # Si se pone como yes, el servidor Samba como controlador primario de dominio (PDC). Este parametro se # debe usar conjuntamete con domain master (+)domain logons = yes # Esta opción afecta el como los clientes responden a Samba. Con el nivel de seguridad user un cliente # tiene que conectarse con un nombre de usuario y clave válidos. security = user # Esto es para negociar las claves cifradas con el cliente encrypt passwords = yes # Activa o desactiva el acceso a cuentas que tienen claves nulas. (+) null passwords = no # Aquí se pone los hosts o segmento de red a los que se le permite acceso a los servicio de Samba (+)hosts allow = 192.168.10.0/24 # Permite redefinir la lista de interfaces de red predeterminada que usa Samba para examinar, registro de # nombres, y otro tráfico NBT. Los valores pueden ser nombre_interfaz (ej: eth0), pareja IP/masc (ej: # 192.168.10.0/24). intefaces = eth0 lo # El nombre de un programa que se puede usar para asignar claves de usuarios. passwd program = /usr/bin/smbldap-passwd %u # Parámetros para soporte LDAP (+)passdb backend = ldapsam:ldap://ip_server_ldap (+)ldap suffix = dc=dominio,dc=cu (+)ldap machine suffix = ou=machines (+)ldap user suffix = ou=people (+)ldap group suffix = ou=groups (+)ldap admin dn = cn=admin,dc=dominio,dc=cu (+)ldap delete dn = no (+)enable privileges = yes # para permitir a los usuarios cambiar su clave desde Windows (+)ldap password sync = yes add user script = /usr/sbin/smbldap-useradd -m “%u” add group script = /usr/sbin/smbldap-groupadd -p “%g” (+)delete user from group script = /usr/sbin/smbldap-groupmod -x “%u” 27
  • 32. (+)set primary group script = /usr/sbin/smbldap-usermod -g “%g” “%u” (+)add user to group script = /usr/sbin/smbldap-groupmod -m “%u” “%g” add machine script = /usr/sbin/user/add -d /dev/null -s /bin/false -d /var/lib/nobody %u (+)ldapsam:editposix = yes # Especifica el rango de uid de usuario que se reservan para asociar usuarios UNIX con SID de usarios NT. idmap uid = 10000-20000 # Especifica el rango de id de grupo que se reservan para asociar grupos UNIX con SID de grupos NT. idmap gid = 20000-30000 (+)case sensitive = yes [homes] # Especifica la ejecución de un comando como root cuando alguien se conecta al servicio. (+)root preexec = /bin/user.sh %U %S %I # Texto que se ve junto al recurso. comment = Directorio Usuario # Directorio al cual tendrán acceso los usuarios del servicio path = /home/%U/datos valid users = %S read only = no browseable = no directory mask = 0700 # Los nuevos directorios heredan los permisos del directorio padre inherit permissions = yes Para chequear que el samba está ya configurado como un PDC master se ejecutará el comando testparm y se deberá mostrar lo siguiente: Load smb config files from /etc/samba/smb.conf Processing section "[homes]" Processing section "[netlogon]" Processing section "[profiles]" Processing section "[printers]" Processing section "[print$]" Loaded services file OK. Server role: ROLE_DOMAIN_PDC Press enter to see a dump of your service definitions Ahora se creará el script user.sh # touch /bin/user.sh # nano /bin/user.sh #!/bin/bash if [ ! -d $1 ] then mkdir /home/datos/$1 mkdir /home/profiles/$1 cp /etc/skel/.* /home/datos/$1 fi chown -R $1 /home/datos/$1 chown -R $1 /home/profiles/$1 Se le cambian los permisos al archivo /bin/user.sh # chmod 755 /bin/user.sh Luego se le pasa a Samba la contraseña del usuario administrador se Servidor OpenLDAP ya que este necesita escribir algunos datos en el OpenLDAP, se hace de la siguiente forma: # smbpasswd -W Ojo la contraseña que se introduce aquí es la del administrador del OpenLDAP. # invoke-rc.d samba restart 28
  • 33. Ya realizado los cambios en el archivo smb.conf hay que configurar los ficheros smbldap- tools y smbldap_bind, que se encuentra en /etc/smbldap-tools/; en caso que el sistema no lo haya creado en la instalación se hace lo siguiente: # cp /usr/share/doc/smbldap-tools/examples/smbldap.conf.gz /etc/smbldap-tools/ # cp /usr/share/doc/smbldap-tools/examples/smbldap_bind.conf /etc/smbldap-tools/ # gunzip /etc/smbldap-tools/smbldap.conf.gz En el fichero /etc/smbldap-tools/smbldap-tools lo mas importante es cambiar el valor de esta opción SID=“” por el tuyo, que lo obtienes mediante el comando net getlocalsid. Aquí solo se mostrará lo que ha sido cambiado. Para ver la configuración completa ver Anexo2. # nano /etc/smbldap-tools/smbldap-tools SID=”al que te muestre el comando antes comentado” sambaDomain=”DOMINIO” suffix=”dc=dominio,dc=cu” userdn=”ou=people,${suffix}” computerdn=”ou=machines,${suffix}” hash_encrypt=”MD5” crypt_salt_format=”$1$%.8s” userLoginShell=”/bin/false” userSmbHome=”DOMINIO%U” userProfile=”DOMINIOprofiles%U” userHomeDrive=”Z:” Este otro fichero solo contiene la información sobre el usuario y la contraseña con el que se debe conectar al servidor OpenLDAP. # nano /etc/smbldap-tools/smbldap_bind.conf masterDN="cn=admin,dc=dominio,dc=cu" masterPw="passwd_admin_OpenLDAP" Una vez realizado todo esto deberemos de introducir el siguiente comando: # smbldap-populate Si todo esta bien, nos debe salir algo similar a esto: Populating LDAP directory for domain DOMINIO (S-1-5-21-859530851-107162760-3624729787) (using builtin directory structure) entry dc=dominio,dc=cu already exist. entry ou=people,dc=dominio,dc=cu already exist. entry ou=groups,dc=dominio,dc=cu already exist. entry ou=machines,dc=dominio,dc=cu already exist. adding new entry: ou=idmap,dc=dominio,dc=cu adding new entry: uid=root,ou=people,dc=dominio,dc=cu adding new entry: uid=nobody,ou=people,dc=dominio,dc=cu adding new entry: cn=Domain Admins,ou=groups,dc=dominio,dc=cu adding new entry: cn=Domain Users,ou=groups,dc=dominio,dc=cu adding new entry: cn=Domain Guests,ou=groups,dc=dominio,dc=cu adding new entry: cn=Domain Computers,ou=groups,dc=dominio,dc=cu entry cn=Administrators,ou=groups,dc=dominio,dc=cu already exist. adding new entry: cn=Account Operators,ou=groups,dc=dominio,dc=cu adding new entry: cn=Print Operators,ou=groups,dc=dominio,dc=cu adding new entry: cn=Backup Operators,ou=groups,dc=dominio,dc=cu adding new entry: cn=Replicators,ou=groups,dc=dominio,dc=cu entry sambaDomainName=DOMINIO,dc=dominio,dc=cu already exist. Updating it... Please provide a password for the domain root: Changing UNIX and samba passwords for root New password: Retype new password: 29
  • 34. Ahora se reinicia el Samba # invoke-rc.d samba restart Ahora se comprobara si el mapeo de los usuarios se ha hecho correctamente de forma automática: # net groupmap list Deberá mostrar algo parecido a esto: Domain Admins (S-1-5-21-859530851-107162760-3624729787-512) -> 512 Domain Users (S-1-5-21-859530851-107162760-3624729787-513) -> 513 Domain Guests (S-1-5-21-859530851-107162760-3624729787-514) -> 514 Domain Computers (S-1-5-21-859530851-107162760-3624729787-515) -> 515 Account Operators (S-1-5-32-548) -> 548 Print Operators (S-1-5-32-550) -> 550 Backup Operators (S-1-5-32-551) -> 551 Replicators (S-1-5-32-552) -> 552 También se chequeará si el sistema reconoce estos grupos: # getent group Mostrará lo siguiente: Domain Admins:*:512:root Domain Users:*:513: Domain Guests:*:514: Domain Computers:*:515: Administrators:*:544: Account Operators:*:548: Print Operators:*:550: Backup Operators:*:551: Replicators:*:552: Ya solo te queda crear un usuario para añadir las computadoras de la red al dominio. Crear usuario Administrador del PDC Master En el Capítulo 2 se mostró como crear un usuario. Ahora se mostrará como activarle el servicio Unix y Samba para que pertenezca al PDC master. Para esto se edita un usuario ya creado o se crea uno nuevo pero antes de dar OK se va a la pestaña Unix y luego de dar clic en Añadir características POSIX mostrará un formulario (Figura 3.1) donde se configura las distintas opciones del usuario. Lo más importante aquí es poner en Grupo Primario que el usuario va a pertenecer a Domain Admins y en Pertenencia a grupo el usuario será miembro del Domain Admins [Netbios Domain Administrations]. Por último, en la sección Cuenta se tiene todo lo que tiene que ver con la contraseña. 30
  • 35. Figura 3.1: Pestaña Unix del Usuario A continuación se va a la pestaña Samba que es donde se configura todo lo del sistema operativo Windows respecto al usuario, en este caso luego de dar clic en Añadir características Samba se le da clic en el botón OK y si es un usuario ya creado se guardarán los cambios y sino saldrá para definirle la contraseña al nuevo usuario. Figura 3.2: Pestaña Samba del Usuario Teniendo listo el usuario que permite a añadir las computadoras al dominio, solo resta crear los usuarios de la red al OpenLDAP, con la única diferencia que estos van a tener en Grupo Primario que va a pertenecer a Domain Users y en el Pertenencia a grupo van a ser Domain Users [Netbios Domain Users]. Ya con todo esto se tiene el PDC master. 31
  • 36. Tareas para el autoaprendizaje: 1. Estudie y resuma las características del Samba3. Mencione sus funciones. 2. Cuáles son los requerimientos mínimos que debe conocer el especialista para el trabajo con el Samba3. 3. Profundice y resuma el procedimiento para la creación de una carpeta compartida por el Samba3. 4. Haga un cuadro resumen con los pasos lógicos para la instalación de un PDC Master. Estudie los procedimientos y comandos para la instalación y configuración de este servicio. 5. Estudie en el Anexo 3 del manual los posibles errores que pueden presentarse a la hora de vincular el Samba3 con el Directorio OpenLDAP, sus causas y su posible solución. Tareas de autocontrol y autoevaluación: 1. Comparta una carpeta con usuario y contraseña. 2. Teniendo en cuenta la instalación realizada del Directorio OpenLDAP y la Interfaz Web GOsa, cree un PDC Master siguiendo el procedimiento descrito en el manual. 3. El proceso de instalación del Samba3 como PDC Master se presentó el siguiente error: rlimit_max: rlimit_max (1024) below minimum Windows limit (16384) A) Cuál es su causa? B) Qué solución Ud. le daría. 4. Crear un usuario por el Interfaz Web GOsa que pertenezca al PDC Master ya instalado y configurado. 32
  • 37. Capitulo 4 Postfix Objetivo: Profundizar en las características y funcionabilidad del servicio Postfix, vinculándolo con el Directorio OpenLDAP, para una mejor organización de la red. Sistema de conocimientos: 4.1.- Características, función y estructura. 4.2.- Característica e instalación del Cyrus2.2. 4.3.- Instalación y configuración del postfix con el Cyrus. Vinculación de estos servicios con el directorio OpenLDAP. 4.4.- Procedimiento para añadir los servicios cyrus y postfix desde el GOsa
  • 38. Características, función y estructura Postfix es un servidor de correo de código abierto, un programa informático para el enrutamiento y envío de correo electrónico, creado con la intención de que sea una alternativa más rápida, fácil de administrar y sobre todo seguro como el Sendmail. Es un MTA (Mail Transport Agent) originalmente escrito por Wietsa Venema durante su estancia en la IBM y continua siendo desarrollado activamente. Es el agente de transporte por omisión en diversas distribuciones de Linux y en las últimas del Mac OS X. Postfix trabaja de la siguiente forma: La figura que viene a continuación, proporciona una visión global de los elementos que componen Postfix: Figura 4.1: Elementos del postfix Postfix basa su funcionamiento en cuatro colas: maildrop, incoming, active y deferred (cuadrados coloreados en verde). El correo que se genera de forma local se deposita en maildrop para su posterior proceso. El proceso pickup toma los mensajes que llegan a maildrop y los pasa a cleanup, que analiza las cabeceras de los mensajes y deposita éstos en la cola incoming. En la cola active se encuentran aquellos mensajes que están en fase de encaminamiento, y en deferred los mensajes que por diversas causas no se pueden encaminar o están pendientes de reintentar su encaminamiento. El proceso qmgr es el encargado de tratar los mensajes que llegan a la cola incoming, depositarlos en active y lanzar el proceso adecuado para su encaminamiento, como pueden ser local, smtp o pipe. El correo procedente de otros sistemas se atiende a través del proceso smtpd, utilizando el protocolo SMTP, pudiendo utilizar accesos a servidores de RBL o tablas internas para aplicar las políticas de acceso a cada mensaje entrante. Coloreadas de azul aparecen las tablas que, creadas por el administrador, sirven a los diferentes procesos para concretar el tratamiento que debe darse a cada mensaje. Se usan seis tablas: access, aliases, canonical, relocated, transport y virtual. Aunque no es obligatoria la existencia ni utilización de todas ellas. La tabla access permite definir una relación explícita de sistemas a los que se les deben aceptar o rechazar sus mensajes. La utiliza el proceso smptd. 34
  • 39. La tabla aliases, al igual que en Sendmail, define una serie de nombres alternativos a usuarios locales, y la consulta el proceso local. El proceso cleanup, mediante la tabla canonical establece relaciones entre nombres alternativos y nombres reales, ya sean usuarios locales o no. El proceso qmgr utiliza la tabla relocated para devolver los mensajes de usuarios que han cambiado de dirección: “User has moved to new-email”. Con la tabla transport, que es utilizada por el proceso trivial-rewrite, se define la política de encaminamiento por dominios, subdominios e incluso por dirección concreta de usuario. Para la gestión y soporte de dominios virtuales el proceso cleanup utiliza la tabla virtual. En ella se establecen las relaciones entre usuarios virtuales y reales, e incluso de dominios completos. 35
  • 40. Instalación y Configuración COMUN Tabla de versiones: Paquetes Versión Lenny Versión Squeeze postfix 2.5.5-1.1 2.7.1-1 cyrus 2.2.13-14+ 2.2.13-19 sasl 2.1.22.dfs 2.1.23.dfs Antes de comenzar hay que aclarar que la configuración que se realizará aquí, es suponiendo que ya se tiene un servidor de correo que sirva de Relay de Correo, en caso contrario en vez de poner la opción Internet con smarthost se deberá coger Sitio de Internet y se sigue la configuración igual a como se mostrará a continuación. Tampoco se pondrá la tabla de versiones porque esta configuración sirve para cualquier versión del postfix. Solamente se diferenciará las versiones a la hora de añadir el servidor en el GOsa2. Postfix, Internet con smarthost. # aptitude install postfix postfix-ldap Tipo genérico de configuración de correo: Internet con smarthost System mail name: nombServ.dominio.cu SMTP relay host (blank for none): ipServerRelay Luego de instalado se realizarán algunos cambios al fichero de configuración. Se les irá comentando las líneas cambiadas y añadidas muevas (lo nuevo tendrá esto(+) por delante). Antes se hace una copia del archivo original, en caso de algo malo suceda se pueda volver para atrás. Para ver la configuración completa ver el Anexo 4. # cp /etc/postfix/main.cf /etc/postfix/main.cf.bk # nano /etc/postfix/main.cf # Nombre de dominio para este sistema de correo. (+)mydomain = dominio.cu # Especifica el dominio que parecerá detrás del @. myorigin = $mydomain # Especifica a que dominios se entregará el correo a nivel local, antes de ser enviado a otro equipo. mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain # Redes de confianzas que se le permitirá hacer SMTP. mynetworks = 127.0.0.0/8 IPInterna # invoke-rc.d postfix restart Ahora se prueba que todo esta bien configurado enviando un correo mediante telnet. Lo que está en negrita es lo que se tiene que teclear. # telnet IPServ 25 Trying 192.168.1.13... Connected to 192.168.1.13. Escape character is '^]'. 220 nombServ.dominio.cu ESMTP Postfix (Debian/GNU) ehlo nombServ 250-nombServ.dominio.cu 250-PIPELINING 250-SIZE 10240000 36
  • 41. 250-VRFY 250-ETRN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN mail from: mail@dominio.cu 250 2.1.0 Ok rcpt to: correo@loquesea.com (yo use mi dirección de gmail por su rapidez) 250 2.1.5 Ok data 354 End data with <CR><LF>.<CR><LF> Esto es una prueba de mi primera parte de config del POSTFIX. . 250 2.0.0 Ok: queued as 8F8D466A049 quit 221 2.0.0 Bye Connection closed by foreign host. En los log's se debe mostrar algo similar a esta salida: Apr 19 12:59:29 phil postfix/smtpd[3972]: 8F8D466A049: client=nombServ.dominio.cu[192.168.1.13] Apr 19 12:59:55 phil postfix/cleanup[3975]: 8F8D466A049: message- id=<20100419165929.8F8D466A049@nombServ.dominio.cu> Apr 19 12:59:55 phil postfix/qmgr[3966]: 8F8D466A049: from=<mail@dominio.cu>, size=390, nrcpt=1 (queue active) Apr 19 12:59:57 phil postfix/smtp[3976]: 8F8D466A049: to=<correo@loquesea.com>, relay=200.55.136.178[200.55.136.178]:25, delay=42, delays=40/0.01/1.1/1.4, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 14B558B4A3) Apr 19 12:59:57 phil postfix/qmgr[3966]: 8F8D466A049: removed Ya en este punto esta configurado para mandar correos, pero no para recibirlos. Característica e instalación del Cyrus2.2 Antes de pasar a la instalación como tal se va a explicar el por qué se uso Cyrus. Se procede a usarlo porque a diferencias de otros servidores POP/IMAP, Cyrus usa su propio método de almacenamiento de correo. Cada mensaje es almacenado en su propio fichero. Esto trae como ventaja que en caso de un error del servidor, solo se pierde un solo mensaje. También trae el beneficio de que los mensajes son indexados, mejorando así el rendimiento del Cyrus. Por último, una de las características mas importante es que no son necesarias cuentas locales de GNU Linux para cada usuario, el Cyrus cuenta con su propia base de usuarios, esto lo convierte en una magnífica solución cuando se tiene una gran cantidad de usuarios. Antes de pasar a la Instalación del Cyrus se tiene que instalar primero todo el soporte SASL. # aptitude install sasl2-bin libsasl2-modules libsasl2-modules-ldap Luego de que se instalen estos paquetes se configura el soporte SASL. # nano /etc/default/saslauthd START=yes DESC="SASL Authentication Daemon" NAME="saslauthd" MECHANISMS="sasldb" THREADS=5 OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd" Ahora se crea y se le da los correspondientes permisos a la carpeta, y por último se reinicia el servicio. 37
  • 42. # mkdir -p /var/spool/postfix/var/run/saslauthd/ # chmod 755 /var/spool/postfix/var/run/saslauthd/ # chown root.sasl /var/spool/postfix/var/run/saslauthd/ # invoke-rc.d saslauthd restart Ya realizado lo anterior se instala todo los paquetes referente al cyrus. # aptitude install cyrus-admin-2.2 cyrus-common-2.2 cyrus-clients-2.2 cyrus- imapd-2.2 cyrus-pop3d-2.2 cyrus-doc-2.2 Aquí solo se mostrará lo cambiado. Para ver la configuración completa ver Anexo 5. # nano /etc/imapd.conf unixhierarchysep: yes # Esta opción es para definir los usuarios con permiso de administración. admins: cyrus # Lista de los mecanismo de autenticación que se van a soportar sasl_mech_list: PLAIN LOGIN # El valor por defecto es 0, que permite texto plano, en primera instancia. Una vez funcionando se puede # aumentar la seguridad sasl_minimum_layer: 0 # Esta opción nos permite especificar los plugins del auxpropd que deseamos cargar, en el caso de estar # usando sasl_pwcheck_method: auxprop. Es necesario descomentar esta línea para que use sasldb. sasl_auxprop_plugin: sasldb Luego se reinicia el servicio y se crea el usuario Cyrus que fue el que se declaró como administrador. También se probará que el mismo este bien creado. # invoke-rc.d cyrus2.2 restart # saslpasswd2 -c cyrus # imtest -a cyrus localhost S: * OK phil Cyrus IMAP4 v2.2.13-Debian-2.2.13-14+lenny3 server ready C: C01 CAPABILITY S: * CAPABILITY IMAP4 IMAP4rev1 ACL QUOTA LITERAL+ NAMESPACE UIDPLUS ID NO_ATOMIC_RENAME UNSELECT CHILDREN MULTIAPPEND BINARY SORT THREAD=ORDEREDSUBJECT THREAD=REFERENCES ANNOTATEMORE IDLE S: C01 OK Completed Please enter your password: passwd_user_probando C: L01 LOGIN cyrus {1} S: + go ahead C: <omitted> S: L01 OK User logged in Authenticated. Security strength factor: 0 Deberá mostrar algo como lo anterior, si es así, quiere decir que hasta el momento todo esta bien. Es hora de crear un usuario en cyrus y sasl para probarlo con el postfix. # cyradm -- user cyrus localhost IMAP Password: localhost>cm user/test localhost> exit # saslpasswd2 -c test 38
  • 43. Postfix con Cyrus2.2 y el SASL Ya llegado aquí, lo que se debe hacer es activar el soporte SASL y vincular el Cyrus2.2 al Postfix. Lo primero es crear el archivo smtpd.conf e insertarle lo siguiente: # nano /etc/postfix/sasl/smtpd.conf # método para la verificación de la clave de acceso pwcheck_method: saslauthd # mecanismos de encriptación de la clave de acceso del usuario a utilizar para la autenticación ante una # conexión por smtp mech_list: plain login Ahora en el main.cf se le añade lo siguiente: # nano /etc/postfix/main.cf # Este parámetro consulta con todos los nombres o direcciones de los destinatarios locales. Una dirección # de destinatario es local, cuando su dominio coincide con $mydestination, $inet_interfaces o # $proxy_interfaces local_recipient_maps = $alias_maps unix:passwd.byname virtual_alias_maps = hash:/etc/postfix/virtual # habilitar el soporte sasl en el postfix smtpd_sasl_auth_enable = yes smtpd_sasl_authenticated_header = yes # no permitir usuarios anónimos en la autenticación mediante sasl smtpd_sasl_security_options = noanonymous # evitar que ciertos clientes no entiendan las líneas del sasl broken_sasl_auth_clients = yes #### LISTAS DE CONTROL DE ACCESO #### smtpd_helo_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_invalid_helo_hostname, reject_non_fqdn_helo_hostname smtpd_sender_restrictions = reject_non_fqdn_sender, reject_unknown_sender_domain, permit_sasl_authenticated, permit_mynetworks smtpd_recipient_restrictions = reject_non_fqdn_recipient, reject_unknown_recipient_domain, permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination, reject_unlisted_recipient, permit smtpd_data_restrictions = reject_multi_recipient_bounce, reject_unauth_pipelining mailbox_transport = cyrus También se debe añadir al final un proceso al archivo master.cf, pero primero se creará una copia del mismo por cualquier cosa que pase, volver para atrás. # cp /etc/postfix/master.cf /etc/postfix/master.cf.bk # nano /etc/postfix/master.cf cyrus unix - n n - - pipe flags=R user=cyrus argv=/usr/sbin/cyrdeliver -e -m ${extension} ${user} 39
  • 44. En este punto les daré dos formas de llenar el archivo /etc/postfix/virtual: 1. sasldblistusers2 | perl -ne 'print "$1t$1n" if /^([^:]+):/;' > /etc/postfix/virtual 2. Esta forma es mas a la antigua y es así: # touch /etc/postfix/virtual # nano /etc/postfix/virtual ### Ojo aquí van los usuarios que creas en la base datos sasl. user@dominio.cu user@dominio.cu Luego de tener los usuario en /etc/postfix/virtual se le debe hacer postmap para convertir el contenido de la tabla virtual en el fichero binario indexado necesario para que el postfix pueda leerla. # postmap /etc/postfix/virtual Después de todo esto se reinicia y se prueba el postfix. # invoke-rc.d postfix restart # telnet IPServ 25 Trying 192.168.1.13... Connected to nombServ.dominio.cu. Escape character is '^]'. 220 nombServ.dominio.cu ESMTP Postfix (Debian/GNU) ehlo nombServ 250-nombServ.dominio.cu 250-PIPELINING 250-SIZE 10240000 250-VRFY 250-ETRN 250-AUTH PLAIN LOGIN 250-AUTH=PLAIN LOGIN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN mail from: test@dominio.cu 250 2.1.0 Ok rcpt to: test@dominio.cu 250 2.1.5 Ok data 354 End data with <CR><LF>.<CR><LF> Esto es una prueba de mi segunda etapa de Configuración. . 250 2.0.0 Ok: queued as A2DC666A057 quit 221 2.0.0 Bye En los log's se debe mostrar algo similar a esta salida de aquí abajo: Apr 20 14:36:49 phil cyrus/lmtpunix[6994]: Delivered: <20100420183637.A2DC666A057@dominio.cu> to mailbox: user.test Apr 20 14:36:49 phil postfix/pipe[7204]: A2DC666A057: to=<test@dominio.cu>, relay=cyrus, delay=82, delays=82/0.01/0/0.02, dsn=2.0.0, status=sent (delivered via cyrus service) Apr 20 14:36:49 phil postfix/qmgr[6981]: A2DC666A057: removed Ahora se deberá verificar si el correo llego bien a su destino. # telnet IPServ 143 Trying 192.168.1.13... Connected to phil.infosoc.cu. Escape character is '^]'. * OK phil Cyrus IMAP4 v2.2.13-Debian-2.2.13-14+lenny3 server ready x login nombuser passwd x OK User logged in x select inbox 40
  • 45. * FLAGS (Answered Flagged Draft Deleted Seen) * OK [PERMANENTFLAGS (Answered Flagged Draft Deleted Seen *)] * 1 EXISTS * 1 RECENT * OK [UIDVALIDITY 1272045852] * OK [UIDNEXT 2] x OK [READ-WRITE] Completed x fetch 1 (body[text]) * 1 FETCH (BODY[TEXT] {30} Esta es mi segunda prueba. ) x OK Completed (0.000 sec) x logout * BYE LOGOUT received x OK Completed Connection closed by foreign host. Si hasta aquí todo se a hecho como se ha indicado aquí, se puede decir que ya se tiene un servidor de correo con Postfix, Cyrus-imap y SASL. Pero el verdadero objetivo es vincular todo esto con el Directorio OpenLDAP para tener a todos los usuarios de la red centralizados. Postfix con OpenLDAP, Cyrus y SASL Este paso es uno de los mas trabajoso ya que hay que vincularlo todo con el OpenLDAP, pero tampoco es tan complicado solo con un poco de paciencia y tiempo se logrará todo. En esta parte se explicará dos formas de configuración: 1. Si se tiene un solo servidor y en este se tiene un PDC Master que usa el método de autenticación del saslauthd + PAM. 2. Si se tiene el servidor de correo independiente del PDC Master y entonces se usa el método de autenticación saslauthd + LDAP. Si se desea obtener mas información sobre estas configuraciones van a la carpeta /usr/share/doc/cyrus-sasl2-doc/. Método de autenticación saslauthd + PAM Aquí se verá como emplear el método PAM ya que se tiene el usuario reconocido por el sistema. Lo primero de todos es editar el archivo saslauthd y luego el imap.conf y poner lo siguiente: # nano /etc/default/saslauthd START=yes MECHANISMS="ldap" PARAMS="-a pam" OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd" Luego se activa el mecanismo de autenticación PAM. # saslauthd -a pam Método de autenticación saslauthd + LDAP Lo primero que se hará es que el SASL lea los usuarios del OpenLDAP, para lograr esto hay que crear el archivo saslauthd.conf en /etc y modificar el fichero /etc/default/saslauthd. También es recomendable que hagan una salva de toda la configuración que tienen hasta ahora, por si algo sale mal se pueda virar para atrás. 41
  • 46. # touch /etc/saslauthd.conf # nano /etc/saslauthd.conf ldap_servers: ldap://IPServLDAP ldap_bind_dn: cn=admin,dc=dominio,dc=cu ldap_bind_pw: passwd_uer_admin ldap_search_base: ou=people,dc=dominio,dc=cu ldap_scope: sub ldap_auth_method: bind ldap_filter: uid=%U # nano /etc/default/saslauthd START=yes MECHANISMS="ldap" PARAMS="-a ldap -O /etc/saslauthd.conf" OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd" Activación del mecanismo ldap. # saslauthd -a ldap A partir de ahora todo lo que viene a continuación es común para cualquiera de los dos métodos de autenticación. Aplicado cualquiera de los dos métodos se reinicia el servicio y se prueba la configuración. Importante la prueba se hace con un usuario del OpenLDAP. # invoke-rc.d saslauthd restart # testsaslauthd -u user_ldap -p passwd 0: OK "Success." Si muestra lo anterior quiere decir que el saslauthd esta reconociendo los usuarios del directorio OpenLDAP. Ahora se procede a modificar el archivo imapd.conf para que el cyrus reconozca mediante el mecanismo saslauthd los usuario del OpenLDAP, para esto se le añade lo siguiente: # nano /etc/imapd.conf # En esta opción va el nombre del servidor. servername: nombServ.dominio.cu sasl_pwcheck_method: saslauthd #esto se habilitará para poder crear las cuentas mediante el GOsa2 imap_admins: cyrus Como es de costumbre ahora se prueba que la configuración que se ha hecho hasta el momento, trabaje bien. Esta prueba también se realiza con un usuario del OpenLDAP y deberá mostrar algo parecido a esto. # imtest -a user_ldap localhost S: * OK phil Cyrus IMAP4 v2.2.13-Debian-2.2.13-14+lenny3 server ready C: C01 CAPABILITY S: * CAPABILITY IMAP4 IMAP4rev1 ACL QUOTA LITERAL+ NAMESPACE UIDPLUS ID NO_ATOMIC_RENAME UNSELECT CHILDREN MULTIAPPEND BINARY SORT THREAD=ORDEREDSUBJECT THREAD=REFERENCES ANNOTATEMORE IDLE S: C01 OK Completed Please enter your password: passwd_user C: L01 LOGIN rogelio {8} S: + go ahead C: <omitted> S: L01 OK User logged in Authenticated. Security strength factor: 0 42
  • 47. Luego de todas estas configuraciones, se deberá crear el usuario administrador del cyrus en el OpenLDAP mediante el GOsa2, ya que es el mismo que se usará para todas las configuraciones que se realizarán, el mismo debe de coincidir con el usuario que se definió en el parámetro imap_admins y luego a configurar el postfix de nuevo. # nano /etc/postfix/main.cf virtual_alias_maps = ldap:/etc/postfix/openldap/virtual_alias_maps.cf, ldap:/etc/postfix/openldap/virtual_user_aliases.cf Ya solo queda crear y configurar los dos archivos puesto arriba. virtual_alias_maps: archivo de configuración para que reconozca los correos electrónicos de los usuarios. virtual_user_aliases: archivo de configuración para que reconozca el alias del correo electrónico de los usuarios. # mkdir /etc/postfix/openldap # touch /etc/postfix/openldap/virtual_alias_maps.cf # nano /etc/postfix/openldap/virtual_alias_maps.cf server_host = ip_server_ldap search_base = ou=people,dc=dominio,dc=cu query_filter = (mail=%s) result_attribute = uid cache = no bind = yes bind_dn = cn=admin,dc=dominio,dc=cu bind_pw = passwd_admin_ldap # touch /etc/postfix/openldap/virtual_user_aliases.cf # nano /etc/postfix/openldap/virtual_user_aliases.cf server_host = ip_server_ldap search_base = ou=people,dc=dominio,dc=cu query_filter = (gosaMailAlternateAddress=%s) result_attribute = uid cache = no bind = yes bind_dn = cn=admin,dc=dominio,dc=cu bind_pw = passwd_admin_ldap Ya solo resta reiniciar el postfix y listo quedará el servidor completamente instalado. # invoke-rc.d postfix restart 43
  • 48. Procedimiento para añadir los servicios cyrus y postfix desde el GOsa En el Capítulo 2 se mostró como crear un servidor, ahora se mostrará como adicionar servicios al mismo. GNU/LINUX DEBIAN 5 (LENNY) Ahora toca darle las características de servidor de correo. Figura 4.2: Ventana para conectar un servidor a una Base de Datos En la pestaña Base de Datos se le pone los siguientes datos: • Identificador de servidor: se le pone el servername que se le puso en la configuración del cyrus. • URL de conexión: aquí va el IP mas el puerto que es el 143 y todo esto va cerrado entre corchete. (ej: {10.10.10.1:143}). • Usuario administrador: se pone el usuario administrador que se creo anteriormente por el GOsa2, en este caso es cyrus. • Contraseña: contraseña del usuario. • Puerto Sieve: va el puerto del sieve que por defecto es el 2000. En la pestaña Servicios es donde se dice que el servidor va a tener el servicio de correo. Figura 4.3: Ventana para activar servicios a un servidor Luego de todo esto se le da al botón Guardar. 44
  • 49. GNU/LINUX DEBIAN 6 (SQUEEZE) Ahora se mostrará como añadir servicios por esta versión del interfaz. Luego de entrar al servidor ya creado o si se crea uno nuevo, se va a la pestaña Servicios y de ahí se le da clic a Acciones -->> Crear -->> Servicio. Figura 4.4: Pestaña para añadir servicios a un servidor Ahora se mostrará como añadir los servicios necesario para que funcione el OpenLDAP con el postfix y el cyrus. Cuando se le de clic a Servicio, saldrá una ventana donde listará los servicios que pueden ser añadidos, de ahí se escoge el Servicio IMAP/POP3 y se le da clic al botón Continuar, donde mostrará el siguiente formulario. Figura 4.5: Pestaña Servicio IMAP/POP3 Aquí se le pone los siguientes datos: • Identificador de servidor: se le pone el servername que se le puso en la configuración del cyrus. • URL de conexión: aquí va el IP mas el puerto que es el 143 y todo esto va cerrado entre corchete. (ej: {10.10.10.1:143/notls}). • Usuario administrador: se pone el usuario administrador que se creo anteriormente por el GOsa2, en este caso es cyrus. • Contraseña: contraseña del usuario. • Puerto Sieve: va el puerto del sieve que por defecto es el 2000. (ej: {10.10.10.1:2000/notls}) • También se activa las opciones Iniciar servicio IMAP e Iniciar servicio POP3. • Action: Start 45
  • 50. Luego que se guarde esta configuración se añade el servicio Servicio SMTP de Correo Electrónico (Postfix) de la misma forma que el anterior y a continuación mostrará el siguiente formulario. Figura 4.6: Pestaña Servicio SMTP de Correo Electrónico (Postfix) En este formulario se pone la configuración del servidor postfix, no se va a entrar en detalles porque todo esta claro. Crear usuario de correo desde la Interfaz Web Gosa En el Capítulo 2 se mostró como crear un Usuario Genérico, en esta sección se mostrará como activar la opción Mail. Luego de ir a la pestaña Mail se le da clic al botón Añadir características Mail. Figura 4.7: Pestaña Mail de la creación de un Usuario Aquí lo mas importante es: Cuenta Principal: Aquí va la dirección de correo del usuario. (ej.: usuario@dominio.cu) Server: En esta opción va el servidor de Postfix que se añadió anteriormente. Direcciones alternativas: Si hay un usuario que tiene que ponerle otra dirección de correo alternativa que es donde se pone. 46
  • 51. Tareas para el autoaprendizaje: 1. Estudiar lo referente a las características del Postfix, observando la figura 4.1 para identificar los elementos que lo componen. 2. Estudiar los diferentes comandos que se utilizan para la instalación del Postfix y su vinculación con el OpenLDAP. Elaborar resumen al respecto. 3. Observar y resumir los métodos para vincular el Cyrus, el SALS y el Postfix con el Directorio OpenLDAP. 4. Estudie el procedimiento para añadir los servicios Cyrus2.2 y Postfix desde la Interfaz Web GOsa y haga un resumen de los elementos que distinguen el mismo. Tareas de autocontrol y autoevaluación: 1. Elabore un esquema que identifique los elementos que componen el Postfix. Explique. 2. Implemente un filtro por palabras en Postfix que permita eliminar los correos que contengan la palabra “Sexo” en el asunto. 3. Si se tiene el servidor de correo independiente del PDC Master y entonces se usa el método de autenticación saslauthd + LDAP. ¿Cómo usted configuraría el Postfix, con el Cyrus2.2 y el SASL, para vincularlo con el directorio OpenLDAP?. 4. Ya configurado los servicios Postfix y Cyrus2.2 con el Directorio OpenLDAP, cree el servidor desde la Interfaz Web GOsa. 5. Cree un usuario con el servicio de correo activado. 47
  • 52. Capitulo 5 DHCP Objetivo: Profundizar en el estudio del servicio DHCP y su vinculación con el Directorio OpenLDAP. Sistema de conocimientos: 5.1.- Concepto. Características generales. Funcionamiento. 5.2.- Modos de asignación de IP a otros equipos. 5.3.- Instalación y configuración del servicio DHCP y su soporte OpenLDAP. 5.4.- Configuración del DHCP desde la Interfaz Web GOsa
  • 53. Concepto. Características generales. Funcionamiento Protocolo de configuración dinámica de host (en inglés Dynamic Host Configuration Protocolo) es un protocolo de red que permite a los clientes de una red IP obtener sus parámetros de configuración automáticamente. Se trata de un protocolo de tipo cliente/servidor en el que generalmente un servidor posee una lista de direcciones IP dinámicas y las va asignando a los clientes conforme éstas van estando libres, sabiendo en todo momento quién ha estado en posesión de esa IP, cuánto tiempo la ha tenido y a quién se la ha asignado después. El DHCP esta basado en el protocolo BootP (Bootstrap Protocol) de RFC-0951, con algunas diferencias. El BootP fue de los primeros métodos para asignar direcciones IP de forma dinámica. Al ser las redes cada vez mas grandes, el BootP ya no era tan adecuado y entonces es cuando se publica en octubre de 1993 el DHCP, estando documentado actualmente en la RFC 2131. DHCP trabaja de la siguiente forma: Primero, se necesita un servidor DHCP que distribuya las direcciones IP. Este equipo será la base para todas las solicitudes DHCP por lo cual debe tener una dirección IP fija. El sistema básico de comunicación es BOOTP (con la trama UDP). Cuando un equipo se inicia no tiene información sobre su configuración de red y no hay nada especial que el usuario deba hacer para obtener una dirección IP. Para esto, la técnica que se usa es la transmisión: para encontrar y comunicarse con un servidor DHCP, el equipo simplemente enviará un paquete especial de transmisión (transmisión en 255.255.255.255 con información adicional como el tipo de solicitud, los puertos de conexión, etc.) a través de la red local. Cuando el DHCP recibe el paquete de transmisión, contestará con otro paquete de transmisión (no olvide que el cliente no tiene una dirección IP y, por lo tanto, no es posible conectar directamente con él) que contiene toda la información solicitada por el cliente. Se podría suponer que un único paquete es suficiente para que el protocolo funcione. En realidad, hay varios tipos de paquetes DHCP que pueden emitirse tanto desde el cliente hacia el servidor o servidores, como desde los servidores hacia un cliente: • DHCPDISCOVER (para ubicar servidores DHCP disponibles) • DHCPOFFER (respuesta del servidor a un paquete DHCPDISCOVER, que contiene los parámetros iniciales) • DHCPREQUEST (solicitudes varias del cliente, por ejemplo, para extender su concesión) • DHCPACK (respuesta del servidor que contiene los parámetros y la dirección IP del cliente) • DHCPNAK (respuesta del servidor para indicarle al cliente que su concesión ha vencido o si el cliente anuncia una configuración de red errónea) • DHCPDECLINE (el cliente le anuncia al servidor que la dirección ya está en uso) • DHCPRELEASE (el cliente libera su dirección IP) • DHCPINFORM (el cliente solicita parámetros locales, ya tiene su dirección IP) El primer paquete emitido por el cliente es un paquete del tipo DHCPDISCOVER. El servidor responde con un paquete DHCPOFFER, fundamentalmente para enviarle una dirección IP al cliente. El cliente establece su configuración y luego realiza un DHCPREQUEST para validar su dirección IP (una solicitud de transmisión ya que DHCPOFFER no contiene la dirección IP) El servidor simplemente responde con un DHCPACK con la dirección IP para confirmar la asignación. Normalmente, esto es 49
  • 54. suficiente para que el cliente obtenga una configuración de red efectiva, pero puede tardar más o menos en función de que el cliente acepte o no la dirección IP. En la Figura 5.1 se muestra el funcionamiento. Figura 5.1: Funcionamiento del DHCP Modos de asignación de IP a otros equipos Existen 3 modos en DHCP para poder asignar direcciones IP a otros equipos: 1 – Asignación manual: El administrador configura manualmente las direcciones IP del cliente en el servidor DCHP. Cuando la estación de trabajo del cliente pide una dirección IP, el servidor mira la dirección MAC y procede a asignar la que configuró el administrador. 2 – Asignación automática: Al cliente DHCP (ordenador, impresora, etc.) se le asigna una dirección IP cuando contacta por primera vez con el DHCP Server. En este método la IP es asignada de forma aleatoria y no es configurada de antemano. 3 – Asignación dinámica: El servidor DHCP asigna una dirección IP a un cliente de forma temporal. Digamos que es entregada al cliente que hace la petición por un espacio de tiempo. Cuando este tiempo acaba, la IP es revocada y la estación de trabajo ya no puede funcionar en la red hasta que no pida otra. 50
  • 55. Instalación y configuración con soporte el OpenLDAP COMUN Tabla de versiones: Paquetes Versión Lenny Versión Squeeze dhcp3-server 3.1.1-6+le dhcp3-server-ldap 3.1.1-6+le isc-dhcp-server 4.1.1-P1-1 isc-dhcp-server-ldap 4.1.1-P1-1 GNU/LINUX DEBIAN 5 (LENNY) Lo primero que se hará es instalar el servicio de DHCP, y su soporte con OpenLDAP. # aptitude install dhcp3-server dhcp3-server-ldap Luego de instalado se copia el esquema del dhcp a la carpeta /etc/ldap/schema y se le añade al final de todos los includes, al archivo slapd.conf, todo esto se hace de la siguiente forma: Nota: se coge el dhcp.schema.gz de la carpeta del GOsa2 y no de la del dchp3-server- ldap, esto es producto a que el schema de esta última carpeta no es compatible con el atributo GOHard del GOsa2 y entonces entra en conflicto. # cp /usr/share/doc/gosa/contrib/openldap/dhcp.schema.gz /etc/ldap/schema # gunzip /etc/ldap/schema/dhcp.schema.gz # nano /etc/ldap/slapd.conf include /etc/ldap/schema/dhcp.schema # invoke-rc.d slapd restart Ahora se configurará el servidor dhcp, pero lo primero que se hará es hacer una copia de seguridad del mismo archivo por si algo sale mal poder virar los cambios para atrás. # cp /etc/dhcp3/dhcpd.conf /etc/dhcp3/dhcpd.conf.bk # nano /etc/dhcp3/dhcpd.conf ddns-update-style none; option domain-name "dominio.cu"; option domain-name-servers 192.168.1.1; default-lease-time 43200; max-lease-time 43200; authoritative; log-facility local7; # IP del servidor OpenLDAP ldap-server "192.168.1.1"; # Puerto del servidor OpenLDAP ldap-port 389; # Usuario para acceder y realizar las búsquedas en el directorio ldap-username "cn=admin,dc=dominio,dc=cu"; # Passwd del OpenLDAP ldap-password "passwd”; # A partir de donde se realizarán las busquedas ldap-base-dn "ou=servers,ou=systems,dc=dominio,dc=cu"; # Eso significa que cada vez que un ordenador se encienda y pida una ip, el servidor DHCP consulta al # servidor de LDAP para ver su MAC y darle nombre y dirección adecuados. Cuando ya se hayan añadido 51
  • 56. # todas las pc se pasa esta opción a static. ldap-method dynamic; # Archivo donde se almacenarán los log's ldap-debug-file "/var/log/dhcp-ldap.log"; Ahora se va al fichero /etc/default/dhcp3-server para indicarle por cual interfaz de red va a escuchar. # nano /etc/default/dhcp3-server INTERFACES = “ethx” En la x va el número de su eth. # touch /var/log/dhcp-ldap.log Ya se puede reiniciar el servidor DHCP. # invoke-rc.d dhcp3-server restart Cuando reinicien el servicio les mostrará un error parecido a este: Error: Cannot find LDAP entry matching (&(objectClass=dhcpServer)(|(cn=laptopjudas)(cn=laptopjudas.dominio.cu))) Configuration file errors encountered -- exiting invoke-rc.d: initscript isc-dhcp-server, action "restart" failed. Pero no hay que preocuparse por eso, que ahora se mostrará como solucionarlo. Luego de haber realizado todo esto, se añadirá al directorio OpenLDAP mediante un archivo ldif, la configuración del DHCP. Esto se hará de esta forma porque como se quiere administrar desde el GOsa2, hay que pasarle el objeto dhcpServer mediante el ldif. # touch /etc/ldap/ldif/dhcp.ldif # nano /etc/ldap/ldif/dhcp.ldif dn: cn=laptopjudas.dominio.cu,ou=servers,ou=systems,dc=dominio,dc=cu description: Servidor DHCP # ip del servidor DHCP. IpHostNumber : 192.168.1.1 # mac del servidor DHCP. macAddress : 00:00:00:00:00:00 gotoMode: active objectClass: top objectClass: dhcpServer objectClass: goServer objectClass: GOhard cn: dhcp.dominio.cu dhcpServiceDN: cn=dhcp,cn=ldaptopjudas.dominio.cu,ou=systems,dc=dominio,dc=cu Ahora es el momento de añadirlo con el siguiente comando: # ldapadd -f /etc/ldap/ldif/dhcp.ldif -D "cn=admin,dc=infosoc,dc=cu" -x -W Si se ha hecho como se a explicado aquí deberá mostrar algo muy parecido a esto. adding new entry "cn=laptopjudas.dominio.cu,ou=servers,ou=systems,dc=dominio,dc=cu" Ya realizado todo esto, se puede proceder al GOsa para seguir con la configuración. 52
  • 57. GNU/LINUX DEBIAN 6 (SQUEEZE) En esta versión se hace algo parecido a lo descrito en la versión anterior: se instalan los paquetes del servidor DHCP, se copia el ldif apropiado, se descomprime y se añade al OpenLDAP. Pero en esta versión todo se esto se realiza de la siguiente forma: En el caso de esta versión cambio los nombres del servicio aunque sigue estando el antiguo DHCP3. # aptitude install isc-dhcp-server isc-dhcp-server-ldap # cp /usr/share/doc/gosa-plugin-dhcp/contrib/dhcp.schema.gz /etc/ldap/schema/gosa/ # gunzip /etc/ldap/schema/gosa/dhcp.schema.gz Este paso no lo vamos a repetir, porque se hace lo mismo que se explico en el capítulo 2. Lo que al final del archivo /tmp/convschema se le añade la siguiente línea: include /etc/ldap/schema/gosa/dhcp.schema Luego de que se haga todo lo que se tenga que hacer para que el OpenLDAP reconozca el nuevo schema se procede a configurar el DHCP de la siguiente forma: # cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.bk # nano /etc/dhcp/dhcpd.conf ddns-update-style none; option domain-name "dominio.cu"; option domain-name-servers 192.168.1.1; default-lease-time 43200; max-lease-time 43200; authoritative; log-facility local7; # IP del servidor OpenLDAP ldap-server "192.168.1.1"; # Puerto del servidor OpenLDAP ldap-port 389; # Usuario para acceder y realizar las busquedas en el directorio ldap-username "cn=admin,dc=dominio,dc=cu"; # Passwd del OpenLDAP ldap-password "passwd”; # A partir de donde se realizarán las busquedas ldap-base-dn "ou=servers,ou=systems,dc=dominio,dc=cu"; # Eso significa que cada vez que un ordenador se encienda y pida una ip, el servidor DHCP consulta al # servidor de LDAP para ver su MAC y darle nombre y dirección adecuados. Cuando ya se hayan añadido # todas las pc se pasa esta opción a static. ldap-method dynamic; # Archivo donde se almacenarán los log's ldap-debug-file "/var/log/dhcp-ldap.log"; Luego de configurar el DHCP, se crea el archivo para los log's. # touch /var/log/dhcp-ldap.log 53