• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Vinculando con open ldap
 

Vinculando con open ldap

on

  • 3,963 views

 

Statistics

Views

Total Views
3,963
Views on SlideShare
3,963
Embed Views
0

Actions

Likes
0
Downloads
172
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Vinculando con open ldap Vinculando con open ldap Document Transcript

    • Vinculando con OpenLDAPAutor: Rogelio Cores Raventós
    • IndiceCapí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 7Capí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 21Capí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 32Capí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 47Capí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 55Capí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 61Anexos 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 71Bibliografía 73
    • IntroducciónHoy en día nuestro país esta inmerso en un proceso de migración de “Softwarepropietario” a “Software Libre”, con una gran guía de Migración, donde se describe elprocedimiento a utilizar y recomienda una serie de servicios a utilizar; pero la misma nomuestra soluciones concretas para la instalación y configuración de estos servicios. Espor ello que el autor del presente manual se ha dado a la tarea de escribir susexperiencias, resultado de la búsqueda de información y solución de situaciones prácticasconcretas que ha tenido que enfrentar en su labor como administrador de redes a lo largode 5 años, todo lo cual queda a disposición del personal especializado para su consulta yautosuperació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ñarlos procedimientos para instalar, configurar y vincular algunos de los servicios de redescon 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 resultadode una amplia búsqueda en Internet, lo cual fue validado en la práctica por el autor. En labibliografía propuesta aparecen los sitios WEB consultados, para una mayorprofundización.El manual tiene como objetivo proporcionar una vía para la autosuperación de losadministradores de redes, que les permita profundizar en cada uno de los serviciosvinculado con el OpenLDAP. para que haya una mejor organización en la red, elevar elnivel de profesionalidad en la labor que desempeña y proporcionar un espacio para lareflexió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 seacomún para los dos, arriba se le pondrá COMUN y cuando sea diferente se explicará paracada versión como se instala y configura. También se pondrá una tabla con los paquetesinstalados y sus versiones respectivamente en cada versión de los GNU/Linux Debian. El autor
    • Capitulo 1 Directorio OpenLDAPObjetivo: 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ísticasOpenLDAP es una implementación libre y de código abierto del protocolo LightweightDirectory Access Protocol (LDAP) desarrollada por el proyecto OpenLDAP. Está liberadabajo su propia licencia OpenLDAP Public License. El mismo está basado en el estándarX.500, pero significativamente más simple y más realmente adaptado para satisfacer lasnecesidades del usuario. A diferencia de X.500 OpenLDAP soporta TCP/IP, que esnecesario para el acceso a Internet. Habitualmente, almacena la información deautenticación (usuario y contraseña) y es utilizado para autenticarse, aunque es posiblealmacenar otra información (datos de contacto del usuario, ubicación de diversos recursosde la red, permisos, certificados, etc). A manera de síntesis, OpenLDAP es un protocolode acceso unificado a un conjunto de información sobre una red, que también permite lacomunicación independiente de la plataforma. Muchas distribuciones GNU/Linux incluyenel software OpenLDAP para el soporte LDAP. Este software también corre en plataformasBSD, AIX, HP-UX, Mac OS X, Solaris, Microsoft Windows (NT y derivados, incluyendo2000, XP, Vista), y z/OS. Básicamente, OpenLDAP posee tres componentes principales:slapd (dominio de servidor y herramientas), bibliotecas que implementan el protocoloLDAP y programas clientes (ldapsearch, ldapadd, ldapdelete, entre otros).El proyecto OpenLDAP se inició en 1998 por Kurt Zeilenga. El proyecto comenzó como unclon de la implementación LDAP de la Universidad de Michigan, entidad donde sedesarrolló originalmente el protocolo LDAP y que también actualmente trabaja en laevolución del mismo.En abril de 2006, el proyecto OpenLDAP incorpora tres miembros principales: HowardChu (Arquitecto jefe), Pierangelo Masarati, y Kurt Zeilenga. Hay otros importantes yactivos contribuyentes incluyendo Luke Howard, Hallvard Furuseth, Quanah Gibson-Mount, y Gavin Henry.Los servidores OpenLDAP están fuertemente optimizados para operaciones de lecturaintensivas. A causa de esto, típicamente uno puede ver un orden de magnitud diferentecuando lee datos de un directorio OpenLDAP frente a la obtención de los mismos datosde una base de datos relacional optimizada. Sin embargo, a causa de esta optimización ala mayoría de los directorios OpenLDAP no les viene bien el almacenamiento de datosdonde los cambios son frecuentes. Por ejemplo, un servidor de directorio OpenLDAP esbueno para almacenar el directorio de teléfonos internos de la empresa, pero ni se teocurra pensar en utilizarlo como repositorio de base de datos para un sitio de comercioelectrónico de alto volumen.Antes de instalar un directorio OpenLDAP debería hacerse las siguientes preguntas y silas respuestas a estas es si, entonces, almacenar tus datos en OpenLDAP es una buenaidea. • 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 hasvisto las presentaciones de árboles DNS descendientes o directorios de ficheros UNIX,una estructura de directorio OpenLDAP te será un terreno familiar. Como con los nombresde host en DNS, un registro Distinguished Name (Nombre Distinguido en español, DN encorto) de un directorio OpenLDAP se lee desde su entrada individual, recursivamente atravé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 OpenLDAPPara explicar como funciona el OpenLDAP asumamos que se trabajo en una empresa lacual está registrada en Internet como dominio.cu.Base DNBase DN es el punto inicial en la jerarquía del OpenLDAP en el que comenzará labúsqueda. Una de las forma de escribir es así:dc=domio,dc=cuEste 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ásduro de recordar para los usuarios finales.Unidades Organizacionales (OU)Debajo de la base de directorio (Base DN), se querrá crear contenedores que separenlógicamente los datos. Por razones históricas (X.500), la mayoría de los directoriosconfiguran estas separaciones lógicas como entradas OU. OU vienen de "OrganizationalUnits" (Unidades Organizacionales, en español), que en X.500 eran utilizadas para indicarla organización funcional dentro de la empresa: ventas, finanzas, etc. Actualmente lasimplementaciones de OpenLDAP han mantenido la convención del nombre ou=, perosepara las cosas por categorías amplias como ou=people, ou=groups y demás. Seescribiría de esta forma:ou=people,dc=dominio,dc=cuPara las cuentas de usuario, típicamente se verá un DN basado en el cn o en el uid (IDdel usuario). Aquí se mostrarán dos formas de escribirlas:uid=rcores,ou=people,dc=dominio,dc=cucn=rcores,ou=people,dc=dominio,dc=cuFormato LDIF:El LDAP Data Interchange Format (LDIF) es un formato que se utiliza para la importacióny 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 enel disco rígido, por esto que LDIF provee una manera de unificar, la forma de tratar losdatos y así poder migrar de un servidor a otro sin importar que clase de implementaciónes. 3
    • El formato LDIF es simplemente un formato de texto ASCII para entradas LDAP quetransmite el contenido del directorio como un conjunto de registros, un registro por cadaobjeto (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 paracada solicitud de actualización. También es útil para realizar copias de seguridad de losdatos de un servidor LDAP, siempre manteniendo la independencia de la implementaciónLDAP 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 .schemadefine dentro de él uno o más objectClasses y sus respectivos atributos. 4
    • Instalación y configuraciónCOMUNTabla 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_anteriorLuego de instalado, para realizar una completa configuración del OpenLDAP, se hace losiguiente: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: NoGNU/LINUX DEBIAN 6 (SQUEEZE)Debido a que en esta versión la configuración del OpenLDAP cambio casi completamenterespecto 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 puedenhacer sin tener que reiniciar el servicio, pero tiene el inconveniente de que tenemos queaprender algunas cosas nueva.Ahora se verá como reconfigurar el OpenLDAP, para eso primero se borra el directorioslapd.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 sehace la misma configuración que se les mostró arriba. 5
    • COMUNAhora 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.cudn: dc=dominio,dc=cuobjectClass: topobjectClass: dcObjectobjectClass: organizationo: dominio.cudc: dominio# admin, dominio.cudn: cn=admin,dc=dominio,dc=cuobjectClass: simpleSecurityObjectobjectClass: organizationalRolecn: admindescription: LDAP administrator# search resultsearch: 2result: 0 Success# numResponses: 3# numEntries: 2Si sale algo similar a esto, es que la instalación salió exitosamente.Estructura del directorioYa 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 quepermitirán la creación de dicha estructura.# mkdir /etc/ldap/ldif# touch /etc/ldap/ldif/crear_dir.ldif# nano /etc/ldap/ldif/crear_dir.ldifdn: ou=people,dc=dominio,dc=cuobjectClass: topobjectClass: organizationalUnitou: peopledn: ou=groups,dc=dominio,dc=cuobjectClass: topobjectClass: organizationalUnitou: groups 6
    • Hay que fijarse bien que entre cada objeto que se crea hay un espacio, de esa forma escomo sabe el OpenLDAP que se refiere a objetos diferentes. Luego de esto se añade elfichero 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 startForma 2:# ldapadd -x -f /etc/ldap/ldif/crear_dir.ldif -D "cn=admin,dc=dominio,dc=cu" -WAhora 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 configuracionesque se realizarán posteriormente. Esto puede variar en independencia de los serviciosque se vayan a vincular con el mismo.A lo largo de este documento se irá trabajando con el archivo de configuración delOpenLDAP, 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 lassiguientes 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 GOsaObjetivo: 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ísticasEs un proyecto basado en PHP que proporciona un poderoso marco para la gestión decuentas y los sistemas de bases de datos OpenLDAP. El uso del GOsa le permite aladministrador 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), GOsaes altamente automatizado, permite la instalación de sistemas preconfigurados. Por lotanto GOsa permite administrar grandes ambientes desde un solo punto en forma simpledesde una base de datos OpenLDAP, con lo que la administración de usuarios, de todoslos sistemas y los parámetros relacionados con el, son manejables y fácil.Instalación y configuraciónCOMUNTabla de versiones:Paquetes Versión Lenny Versión Squeezephp5 5.2.6.dfsg 5.3.3-7apache2 2.2.9-10+l 2.2.16-6libapache-mod-php5 5.2.6.dfsg 5.3.3-7gosa 2.5.16.1-4 2.6.11-3En 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 parapermitirnos 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-php5Luego de instalados los paquetes anteriores se procede a instalar la interfaz web GOsa.GNU/LINUX DEBIAN 5 (LENNY)# aptitude install gosa gosa-desktop gosa-schemaInstalado todo esto, se le añade los siguientes schema al OpenLDAP, el orden de losschema debe quedar de la siguiente forma:# nano /etc/ldap/slapd.confinclude /etc/ldap/schema/core.schemainclude /etc/ldap/schema/cosine.schemainclude /etc/ldap/schema/inetorgperson.schemainclude /etc/ldap/schema/openldap.schemainclude /etc/ldap/schema/nis.schemainclude /etc/ldap/schema/misc.schemainclude /etc/ldap/schema/samba3.schemainclude /etc/ldap/schema/gosystem.schemainclude /etc/ldap/schema/gofon.schemainclude /etc/ldap/schema/goto.schemainclude /etc/ldap/schema/gofax.schemainclude /etc/ldap/schema/goserver.schemainclude /etc/ldap/schema/gosa+samba3.schemapassword-hash {MD5} 9
    • El orden de estos include es importante y la opción “password-hash {MD5}” hace queLDAP 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 plugins 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-schemaCuando se tengan estos paquetes instalados se le añaden los schemas; ya que sontantos se parará el servicio. La forma que se verá a continuación es una de las formasque 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/convschemaDentro del archivo convschema se ponen los siguientes schemas:# nano /tmp/convschemainclude /etc/ldap/schema/core.schemainclude /etc/ldap/schema/cosine.schemainclude /etc/ldap/schema/inetorgperson.schemainclude /etc/ldap/schema/openldap.schemainclude /etc/ldap/schema/nis.schemainclude /etc/ldap/schema/misc.schemainclude /etc/ldap/schema/gosa/samba3.schemainclude /etc/ldap/schema/gosa/gosystem.schemainclude /etc/ldap/schema/gosa/gofon.schemainclude /etc/ldap/schema/gosa/goto.schemainclude /etc/ldap/schema/gosa/gofax.schemainclude /etc/ldap/schema/gosa/goserver.schemainclude /etc/ldap/schema/gosa/gosa-samba3.schemaLlego el momento de convertir estos schema en ldif y darles los permisos adecuados paraser 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/COMUNAhora se debe reiniciar el OpenLDAP.# invoke-rc.d slapd restartLlegado a este punto y realizado los cambios pertinentes se configurará el GOsa. Ahoraen 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 GOsaPrimera pantalla:Aquí para poder seguir con el proceso de configuración se debe de copiar lo señalado enrojo 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 austedes 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ónEsta pantalla es donde te pone si cargo bien todas las extensiones y módulos del PHPque se instalaron, si hasta ahora todo se ha hecho por este manual, debe de salir algosimilar a esto. Si hay alguno que no le ha cargado bien, fijase bien si lo instaló, sinoreinstale el módulo php que le dio error.Cuarta pantalla: Figura 2.4: Página donde muestra la LicenciaEsta pantalla es donde está la licencia del programa, luego que se la lea, si esta deacuerdo, debe de marcar donde está señalado en rojo. 12
    • Quinta pantalla: Figura 2.5: Página Configuración del LDAPSe 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:389DN 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_openldapSexta pantalla: Figura 2.6: Página de Comprobación de los esquemas LDAPAquí 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/3En esta pantalla empieza como tal la configuración del GOsa con respecto al directorioOpenLDAP, 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 Plande Seguridad Informática del organismo o empresa de cada uno. 14
    • Octava Pantalla: Figura 2.8: Página Configuración del GOsa 2/3En 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/3En esta pantalla solamente se realizarán cambios en la sección de Depurado, los mismosson:Mostrar errores PHP: SiRegistrar estadísticas LDAP: SiNivel de depuración: 1 Activado 16
    • Décima Pantalla: Figura 2.10: Página de Inspección LDAPEn esta pantalla el GOsa se encarga de comprobar algunos problemas que pueda tenernuestra base OpenLDAP. De paso se aprovechará y se arreglarán aquí para una mejoradministració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. Luegode que realicen todos sus cambios y creen su usuario se le da click a Comprobar denuevo.La pantalla sugerencias no se mostrará porque es especie de una encuesta para realizarmejoras al programa. Si quiere se participa y sino se da Siguiente.Onceava pantalla: Figura 2.11: Página para Terminar la ConfiguraciónAquí en esta pantalla lo primero es Descargar configuración y copiarla en el servidordonde se instaló este servicio, en la carpeta /etc/gosa/ y luego realizar lo mismo que seseñaló en rojo. Luego de terminar todo esto se le da a Siguiente para finalizar laconfiguración.El usuario y la contraseña para entrar, es la que se definió cuando se creo el usuarioGOsa en la pantalla anterior. 17
    • Crear un usuarioAquí veremos como crear un usuario sin activarle ningún servicio. Los servicios de cadausuario se irán activando a la par de su instalación y configuración con el OpenLDAP. Nose 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 GOsaLuego de dar clic sale el listado de usuarios del OpenLDAP y para crear un usuarios nevohay que ir a Acciones -->> Crear -->> Usuario. Figura 2.13: Página de Gestión de UsuariosDe ahí saldrá un formulario donde se pondrá la información personal y la del centro detrabajo del usuario. Los campos obligatorios son los que están resaltado con un *. Cuandose completen se dan OK y para acabar va a salir una página para definirle la contraseñaal nuevo usuario. Figura 2.14: Pestaña Genérico del Usuario 18
    • Crear un grupoAquí 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 GOsaLuego 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 GrupoAquí 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 servidorAquí es donde vamos a mostrar como añadir un servidor al directorio OpenLDAP, aquí nose va a mostrar como añadirle un servicio a ese servidor, los servicios se irán añadiendo amedida que se vayan vinculando con el OpenLDAP en los siguiente capítulos. No se va aespecificar 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 GOsaLuego de dar cilc sale la lista de los servidores y para crear uno nuevo servidor se va aAcciones -->> Crear -->> Server.De ahí saldrá un formulario pidiendo la información del servidor. Los campos obligatoriosson los que están resaltado con un *. Cuando se completen se da OK. Figura 2.17: Pestaña Genérico del ServidorAquí 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 Samba3Objetivo: 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 funcionesSamba 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 sistemasoperativos, 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 Unixen general se vean como servidores o actúen como clientes en redes de Windows. Entrelos sistemas tipo Unix en los que se puede ejecutar Samba, están las distribucionesGNU/Linux, Solaris y las diferentes variantes BSD entre las que podemos encontrar elMac OS X Server de Apple.Su surgimiento está relacionado con la idea de Andrew Tridgell, quien actualmente liderael equipo de desarrollo de Samba development desde su casa de Canberra, Australia. Elproyecto nació en 1991. Siendo originalmente desarrollado para Unix por Andrew Tridgellutilizando un sniffer o capturador de tráfico para entender el protocolo a través de laingeniería inversa. El nombre viene de insertar dos vocales al protocolo estándar queMicrosoft usa para sus redes, el SMB o server message block. En un principio Sambatomó el nombre de smbserver pero tuvieron que cambiarlo por problemas con una marcaregistrada. Tridgell busco en el diccionario de su máquina Unix alguna palabra queincluyera 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 yactualmente mantenidos por The SAMBA Team, bajo la Licencia Publica General GNU, yque implementan en sistemas basados sobre UNIX® el protocolo Server Message Block(o protocolo SMB). Este es algunas veces referido también como Common Internet FileSystem (CIFS), LanManager o protocolo NetBIOS. Sirve como reemplazo total paraWindows® 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 recursospara compartir a través de la red. Para los usuarios de Microsoft Windows, estos recursosaparecen como carpetas normales de red.Los usuarios de Linux pueden montar en sus sistemas de archivos estás unidades de redcomo si fueran dispositivos locales, o utilizar la orden smbcilent para conectarse a ellasmuy al estilo del cliente de la línea de órdenes ftp.Cada directorio puede tener diferentes permisos de acceso sobrepuestos a lasprotecciones del sistema de archivos que se esté usando en Linux. Por ejemplo, lascarpetas /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ónCOMUNTabla de versiones:Paquetes Versión Lenny Versión Squeezesamba 2:3.2.5-4l 2:3.5.6~dfsamba-tools 2:3.2.5-4l 2:3.5.6~dfsmbclient 2:3.2.5-4l 2:3.5.6~dfLo 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?: NoNuestra primera carpeta compartidaAhora 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.bkLuego de haber hecho la copia, se puede realizar los cambios que se quieran; en estecaso 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 = 0755Luego de esto se reinicia el servicio.# invokre-rc.d samba restartAhora desde otra computadora se comprobará de que todo esta bien. Lo que esta ennegrita son los comando que se teclean. 24
    • # smbclient //IP_server_samba/miprueba -NAnonymous login successfulDomain=[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 availablesmb: > exit-N se usa para definir que no pida contraseña.Carpeta compartida con usuario y contraseñaSiguiendo el mismo ejemplo anterior de configuración se mostrará como ponerleseguridad 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 = sambauserInsertado este parámetro se reinicia el samba y se crea el usuario declarado antes alsamba. Es importante aclarar que para crear un usuario samba primero tienes quedefinirlo 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 sambauserEnter rogelios 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 availablesmb: > quitYa con esto tenemos un samba funcionando perfectamente, pero el objetivo es crear unPDC Master.PDC Master: Concepto, instalación y configuraciónLuego 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 sedescribe aquí no pasarán mucho trabajo, aunque hay que destacar que es un pocotrabajoso.Lo primero que se hará es instalar tres paquetes (libpam-ldap, libnss-ldap y nscd) queservirán para que el sistema busque en el directorio OpenLDAP, osea, cuando un servicionecesite 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 seconfigurará el Samba3 como PDC Master vinculado con el OpenLDAP y por último secreará el usuario administrador en la Interfaz Web Gosa. A continuación se ilustra elprocedimiento 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_OpenLDAPPara terminar se edita el fichero /etc/nsswitch.conf y se le añade ldap, debe quedar de lasiguiente forma:# nano /etc/nsswitch.confpasswd: compat ldapgroup: compat ldapshadow: compat ldapYa en este punto el sistema esta reconociendo a todos los usuarios del OpenLDAP comosi pertenecieran al sistema.Antes de comenzar con la configuración del samba, se creará las carpetas profiles ydatos dentro de /home, aquí es donde se guardará la configuración del perfil y datos decada usuario respectivamente. Esto se hace da la siguiente forma:# mkdir /home/profiles# mkdir /home/datosAhora se configura el samba con la vinculación al OpenLDAP. En esta primera parte semostrará 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 restauraa 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 clienteencrypt 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 = yesadd 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 serviciopath = /home/%U/datosvalid users = %Sread only = nobrowseable = nodirectory mask = 0700# Los nuevos directorios heredan los permisos del directorio padreinherit permissions = yesPara chequear que el samba está ya configurado como un PDC master se ejecutará elcomando testparm y se deberá mostrar lo siguiente:Load smb config files from /etc/samba/smb.confProcessing section "[homes]"Processing section "[netlogon]"Processing section "[profiles]"Processing section "[printers]"Processing section "[print$]"Loaded services file OK.Server role: ROLE_DOMAIN_PDCPress enter to see a dump of your service definitionsAhora se creará el script user.sh# touch /bin/user.sh# nano /bin/user.sh#!/bin/bashif [ ! -d $1 ]thenmkdir /home/datos/$1mkdir /home/profiles/$1cp /etc/skel/.* /home/datos/$1fichown -R $1 /home/datos/$1chown -R $1 /home/profiles/$1Se le cambian los permisos al archivo /bin/user.sh# chmod 755 /bin/user.shLuego se le pasa a Samba la contraseña del usuario administrador se ServidorOpenLDAP ya que este necesita escribir algunos datos en el OpenLDAP, se hace de lasiguiente forma:# smbpasswd -WOjo 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 nolo 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.gzEn el fichero /etc/smbldap-tools/smbldap-tools lo mas importante es cambiar el valorde 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 verAnexo2.# nano /etc/smbldap-tools/smbldap-toolsSID=”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 quese debe conectar al servidor OpenLDAP.# nano /etc/smbldap-tools/smbldap_bind.confmasterDN="cn=admin,dc=dominio,dc=cu"masterPw="passwd_admin_OpenLDAP"Una vez realizado todo esto deberemos de introducir el siguiente comando:# smbldap-populateSi 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=cuadding new entry: uid=root,ou=people,dc=dominio,dc=cuadding new entry: uid=nobody,ou=people,dc=dominio,dc=cuadding new entry: cn=Domain Admins,ou=groups,dc=dominio,dc=cuadding new entry: cn=Domain Users,ou=groups,dc=dominio,dc=cuadding new entry: cn=Domain Guests,ou=groups,dc=dominio,dc=cuadding new entry: cn=Domain Computers,ou=groups,dc=dominio,dc=cuentry cn=Administrators,ou=groups,dc=dominio,dc=cu already exist.adding new entry: cn=Account Operators,ou=groups,dc=dominio,dc=cuadding new entry: cn=Print Operators,ou=groups,dc=dominio,dc=cuadding new entry: cn=Backup Operators,ou=groups,dc=dominio,dc=cuadding new entry: cn=Replicators,ou=groups,dc=dominio,dc=cuentry sambaDomainName=DOMINIO,dc=dominio,dc=cu already exist. Updating it...Please provide a password for the domain root:Changing UNIX and samba passwords for rootNew password:Retype new password: 29
    • Ahora se reinicia el Samba# invoke-rc.d samba restartAhora se comprobara si el mapeo de los usuarios se ha hecho correctamente de formaautomática:# net groupmap listDeberá mostrar algo parecido a esto:Domain Admins (S-1-5-21-859530851-107162760-3624729787-512) -> 512Domain Users (S-1-5-21-859530851-107162760-3624729787-513) -> 513Domain Guests (S-1-5-21-859530851-107162760-3624729787-514) -> 514Domain Computers (S-1-5-21-859530851-107162760-3624729787-515) -> 515Account Operators (S-1-5-32-548) -> 548Print Operators (S-1-5-32-550) -> 550Backup Operators (S-1-5-32-551) -> 551Replicators (S-1-5-32-552) -> 552También se chequeará si el sistema reconoce estos grupos:# getent groupMostrará lo siguiente:Domain Admins:*:512:rootDomain 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 MasterEn el Capítulo 2 se mostró como crear un usuario. Ahora se mostrará como activarle elservicio 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 vaa la pestaña Unix y luego de dar clic en Añadir características POSIX mostrará unformulario (Figura 3.1) donde se configura las distintas opciones del usuario. Lo másimportante aquí es poner en Grupo Primario que el usuario va a pertenecer a DomainAdmins 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 loque tiene que ver con la contraseña. 30
    • Figura 3.1: Pestaña Unix del UsuarioA continuación se va a la pestaña Samba que es donde se configura todo lo del sistemaoperativo Windows respecto al usuario, en este caso luego de dar clic en Añadircaracterísticas Samba se le da clic en el botón OK y si es un usuario ya creado seguardarán los cambios y sino saldrá para definirle la contraseña al nuevo usuario. Figura 3.2: Pestaña Samba del UsuarioTeniendo listo el usuario que permite a añadir las computadoras al dominio, solo restacrear los usuarios de la red al OpenLDAP, con la única diferencia que estos van a tener enGrupo Primario que va a pertenecer a Domain Users y en el Pertenencia a grupo vana 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 PostfixObjetivo: 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 estructuraPostfix es un servidor de correo de código abierto, un programa informático para elenrutamiento y envío de correo electrónico, creado con la intención de que sea unaalternativa más rápida, fácil de administrar y sobre todo seguro como el Sendmail. Es unMTA (Mail Transport Agent) originalmente escrito por Wietsa Venema durante su estanciaen 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 quecomponen Postfix: Figura 4.1: Elementos del postfixPostfix 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, queanaliza 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ánpendientes 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, comopueden ser local, smtp o pipe.El correo procedente de otros sistemas se atiende a través del proceso smtpd, utilizandoel protocolo SMTP, pudiendo utilizar accesos a servidores de RBL o tablas internas paraaplicar las políticas de acceso a cada mensaje entrante.Coloreadas de azul aparecen las tablas que, creadas por el administrador, sirven a losdiferentes procesos para concretar el tratamiento que debe darse a cada mensaje.Se usan seis tablas: access, aliases, canonical, relocated, transport y virtual. Aunque noes 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 debenaceptar o rechazar sus mensajes. La utiliza el proceso smptd. 34
    • La tabla aliases, al igual que en Sendmail, define una serie de nombres alternativos ausuarios locales, y la consulta el proceso local.El proceso cleanup, mediante la tabla canonical establece relaciones entre nombresalternativos y nombres reales, ya sean usuarios locales o no.El proceso qmgr utiliza la tabla relocated para devolver los mensajes de usuarios que hancambiado 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 deencaminamiento 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 dedominios completos. 35
    • Instalación y ConfiguraciónCOMUNTabla de versiones:Paquetes Versión Lenny Versión Squeezepostfix 2.5.5-1.1 2.7.1-1cyrus 2.2.13-14+ 2.2.13-19sasl 2.1.22.dfs 2.1.23.dfsAntes de comenzar hay que aclarar que la configuración que se realizará aquí, essuponiendo que ya se tiene un servidor de correo que sirva de Relay de Correo, en casocontrario en vez de poner la opción Internet con smarthost se deberá coger Sitio deInternet y se sigue la configuración igual a como se mostrará a continuación. Tampoco sepondrá la tabla de versiones porque esta configuración sirve para cualquier versión delpostfix. Solamente se diferenciará las versiones a la hora de añadir el servidor en elGOsa2.Postfix, Internet con smarthost.# aptitude install postfix postfix-ldapTipo genérico de configuración de correo: Internet con smarthost System mail name: nombServ.dominio.cu SMTP relay host (blank for none): ipServerRelayLuego 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(+) pordelante). Antes se hace una copia del archivo original, en caso de algo malo suceda sepueda 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 restartAhora se prueba que todo esta bien configurado enviando un correo mediante telnet. Loque está en negrita es lo que se tiene que teclear.# telnet IPServ 25Trying 192.168.1.13...Connected to 192.168.1.13.Escape character is ^].220 nombServ.dominio.cu ESMTP Postfix (Debian/GNU)ehlo nombServ250-nombServ.dominio.cu250-PIPELINING250-SIZE 10240000 36
    • 250-VRFY250-ETRN250-ENHANCEDSTATUSCODES250-8BITMIME250 DSNmail from: mail@dominio.cu250 2.1.0 Okrcpt to: correo@loquesea.com (yo use mi dirección de gmail por su rapidez)250 2.1.5 Okdata354 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 8F8D466A049quit221 2.0.0 ByeConnection closed by foreign host.En los logs 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 (2502.0.0 Ok: queued as 14B558B4A3)Apr 19 12:59:57 phil postfix/qmgr[3966]: 8F8D466A049: removedYa en este punto esta configurado para mandar correos, pero no para recibirlos.Característica e instalación del Cyrus2.2Antes de pasar a la instalación como tal se va a explicar el por qué se uso Cyrus. Seprocede a usarlo porque a diferencias de otros servidores POP/IMAP, Cyrus usa su propiométodo de almacenamiento de correo. Cada mensaje es almacenado en su propiofichero. Esto trae como ventaja que en caso de un error del servidor, solo se pierde unsolo mensaje. También trae el beneficio de que los mensajes son indexados, mejorandoasí el rendimiento del Cyrus. Por último, una de las características mas importante es queno son necesarias cuentas locales de GNU Linux para cada usuario, el Cyrus cuenta consu propia base de usuarios, esto lo convierte en una magnífica solución cuando se tieneuna gran cantidad de usuarios.Antes de pasar a la Instalación del Cyrus se tiene que instalar primero todo el soporteSASL.# aptitude install sasl2-bin libsasl2-modules libsasl2-modules-ldapLuego de que se instalen estos paquetes se configura el soporte SASL.# nano /etc/default/saslauthdSTART=yesDESC="SASL Authentication Daemon"NAME="saslauthd"MECHANISMS="sasldb"THREADS=5OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd"Ahora se crea y se le da los correspondientes permisos a la carpeta, y por último sereinicia 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 restartYa 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.2Aquí solo se mostrará lo cambiado. Para ver la configuración completa ver Anexo 5.# nano /etc/imapd.confunixhierarchysep: 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 soportarsasl_mech_list: PLAIN LOGIN# El valor por defecto es 0, que permite texto plano, en primera instancia. Una vez funcionando se puede# aumentar la seguridadsasl_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: sasldbLuego se reinicia el servicio y se crea el usuario Cyrus que fue el que se declaró comoadministrador. También se probará que el mismo este bien creado.# invoke-rc.d cyrus2.2 restart# saslpasswd2 -c cyrus# imtest -a cyrus localhostS: * OK phil Cyrus IMAP4 v2.2.13-Debian-2.2.13-14+lenny3 server readyC: C01 CAPABILITYS: * CAPABILITY IMAP4 IMAP4rev1 ACL QUOTA LITERAL+ NAMESPACE UIDPLUS IDNO_ATOMIC_RENAME UNSELECT CHILDREN MULTIAPPEND BINARY SORTTHREAD=ORDEREDSUBJECT THREAD=REFERENCES ANNOTATEMORE IDLES: C01 OK CompletedPlease enter your password: passwd_user_probandoC: L01 LOGIN cyrus {1}S: + go aheadC: <omitted>S: L01 OK User logged inAuthenticated.Security strength factor: 0Deberá mostrar algo como lo anterior, si es así, quiere decir que hasta el momento todoesta bien. Es hora de crear un usuario en cyrus y sasl para probarlo con el postfix.# cyradm -- user cyrus localhostIMAP Password:localhost>cm user/testlocalhost> exit# saslpasswd2 -c test 38
    • Postfix con Cyrus2.2 y el SASLYa llegado aquí, lo que se debe hacer es activar el soporte SASL y vincular el Cyrus2.2 alPostfix. 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 accesopwcheck_method: saslauthd# mecanismos de encriptación de la clave de acceso del usuario a utilizar para la autenticación ante una# conexión por smtpmech_list: plain loginAhora 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_interfaceslocal_recipient_maps = $alias_maps unix:passwd.bynamevirtual_alias_maps = hash:/etc/postfix/virtual# habilitar el soporte sasl en el postfixsmtpd_sasl_auth_enable = yessmtpd_sasl_authenticated_header = yes# no permitir usuarios anónimos en la autenticación mediante saslsmtpd_sasl_security_options = noanonymous# evitar que ciertos clientes no entiendan las líneas del saslbroken_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_hostnamesmtpd_sender_restrictions = reject_non_fqdn_sender, reject_unknown_sender_domain, permit_sasl_authenticated, permit_mynetworkssmtpd_recipient_restrictions = reject_non_fqdn_recipient, reject_unknown_recipient_domain, permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination, reject_unlisted_recipient, permitsmtpd_data_restrictions = reject_multi_recipient_bounce, reject_unauth_pipeliningmailbox_transport = cyrusTambié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.cfcyrus 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.cuLuego de tener los usuario en /etc/postfix/virtual se le debe hacer postmap para convertirel contenido de la tabla virtual en el fichero binario indexado necesario para que el postfixpueda leerla.# postmap /etc/postfix/virtualDespués de todo esto se reinicia y se prueba el postfix.# invoke-rc.d postfix restart# telnet IPServ 25Trying 192.168.1.13...Connected to nombServ.dominio.cu.Escape character is ^].220 nombServ.dominio.cu ESMTP Postfix (Debian/GNU)ehlo nombServ250-nombServ.dominio.cu250-PIPELINING250-SIZE 10240000250-VRFY250-ETRN250-AUTH PLAIN LOGIN250-AUTH=PLAIN LOGIN250-ENHANCEDSTATUSCODES250-8BITMIME250 DSNmail from: test@dominio.cu250 2.1.0 Okrcpt to: test@dominio.cu250 2.1.5 Okdata354 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 A2DC666A057quit221 2.0.0 ByeEn los logs 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.testApr 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: removedAhora se deberá verificar si el correo llego bien a su destino.# telnet IPServ 143Trying 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 readyx login nombuser passwdx OK User logged inx 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] Completedx fetch 1 (body[text])* 1 FETCH (BODY[TEXT] {30}Esta es mi segunda prueba.)x OK Completed (0.000 sec)x logout* BYE LOGOUT receivedx OK CompletedConnection closed by foreign host.Si hasta aquí todo se a hecho como se ha indicado aquí, se puede decir que ya se tieneun servidor de correo con Postfix, Cyrus-imap y SASL. Pero el verdadero objetivo esvincular todo esto con el Directorio OpenLDAP para tener a todos los usuarios de la redcentralizados.Postfix con OpenLDAP, Cyrus y SASLEste 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 + PAMAquí se verá como emplear el método PAM ya que se tiene el usuario reconocido por elsistema. Lo primero de todos es editar el archivo saslauthd y luego el imap.conf y ponerlo siguiente:# nano /etc/default/saslauthdSTART=yesMECHANISMS="ldap"PARAMS="-a pam"OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd"Luego se activa el mecanismo de autenticación PAM.# saslauthd -a pamMétodo de autenticación saslauthd + LDAPLo primero que se hará es que el SASL lea los usuarios del OpenLDAP, para lograr estohay 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 hastaahora, por si algo sale mal se pueda virar para atrás. 41
    • # touch /etc/saslauthd.conf# nano /etc/saslauthd.confldap_servers: ldap://IPServLDAPldap_bind_dn: cn=admin,dc=dominio,dc=culdap_bind_pw: passwd_uer_adminldap_search_base: ou=people,dc=dominio,dc=culdap_scope: subldap_auth_method: bindldap_filter: uid=%U# nano /etc/default/saslauthdSTART=yesMECHANISMS="ldap"PARAMS="-a ldap -O /etc/saslauthd.conf"OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd"Activación del mecanismo ldap.# saslauthd -a ldapA partir de ahora todo lo que viene a continuación es común para cualquiera de los dosmétodos de autenticación. Aplicado cualquiera de los dos métodos se reinicia el servicio yse prueba la configuración. Importante la prueba se hace con un usuario del OpenLDAP.# invoke-rc.d saslauthd restart# testsaslauthd -u user_ldap -p passwd0: OK "Success."Si muestra lo anterior quiere decir que el saslauthd esta reconociendo los usuarios deldirectorio OpenLDAP.Ahora se procede a modificar el archivo imapd.conf para que el cyrus reconozcamediante el mecanismo saslauthd los usuario del OpenLDAP, para esto se le añade losiguiente:# nano /etc/imapd.conf# En esta opción va el nombre del servidor.servername: nombServ.dominio.cusasl_pwcheck_method: saslauthd#esto se habilitará para poder crear las cuentas mediante el GOsa2imap_admins: cyrusComo es de costumbre ahora se prueba que la configuración que se ha hecho hasta elmomento, trabaje bien. Esta prueba también se realiza con un usuario del OpenLDAP ydeberá mostrar algo parecido a esto.# imtest -a user_ldap localhostS: * OK phil Cyrus IMAP4 v2.2.13-Debian-2.2.13-14+lenny3 server readyC: C01 CAPABILITYS: * CAPABILITY IMAP4 IMAP4rev1 ACL QUOTA LITERAL+ NAMESPACE UIDPLUS IDNO_ATOMIC_RENAME UNSELECT CHILDREN MULTIAPPEND BINARY SORTTHREAD=ORDEREDSUBJECT THREAD=REFERENCES ANNOTATEMORE IDLES: C01 OK CompletedPlease enter your password: passwd_userC: L01 LOGIN rogelio {8}S: + go aheadC: <omitted>S: L01 OK User logged inAuthenticated.Security strength factor: 0 42
    • Luego de todas estas configuraciones, se deberá crear el usuario administrador del cyrusen el OpenLDAP mediante el GOsa2, ya que es el mismo que se usará para todas lasconfiguraciones que se realizarán, el mismo debe de coincidir con el usuario que sedefinió en el parámetro imap_admins y luego a configurar el postfix de nuevo.# nano /etc/postfix/main.cfvirtual_alias_maps = ldap:/etc/postfix/openldap/virtual_alias_maps.cf, ldap:/etc/postfix/openldap/virtual_user_aliases.cfYa solo queda crear y configurar los dos archivos puesto arriba.virtual_alias_maps: archivo de configuración para que reconozca los correoselectrónicos de los usuarios.virtual_user_aliases: archivo de configuración para que reconozca el alias del correoelectrónico de los usuarios.# mkdir /etc/postfix/openldap# touch /etc/postfix/openldap/virtual_alias_maps.cf# nano /etc/postfix/openldap/virtual_alias_maps.cfserver_host = ip_server_ldapsearch_base = ou=people,dc=dominio,dc=cuquery_filter = (mail=%s)result_attribute = uidcache = nobind = yesbind_dn = cn=admin,dc=dominio,dc=cubind_pw = passwd_admin_ldap# touch /etc/postfix/openldap/virtual_user_aliases.cf# nano /etc/postfix/openldap/virtual_user_aliases.cfserver_host = ip_server_ldapsearch_base = ou=people,dc=dominio,dc=cuquery_filter = (gosaMailAlternateAddress=%s)result_attribute = uidcache = nobind = yesbind_dn = cn=admin,dc=dominio,dc=cubind_pw = passwd_admin_ldapYa 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 GOsaEn el Capítulo 2 se mostró como crear un servidor, ahora se mostrará como adicionarservicios 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 DatosEn 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 servidorLuego 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ñaServicios y de ahí se le da clic a Acciones -->> Crear -->> Servicio. Figura 4.4: Pestaña para añadir servicios a un servidorAhora se mostrará como añadir los servicios necesario para que funcione el OpenLDAPcon 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 leda clic al botón Continuar, donde mostrará el siguiente formulario. Figura 4.5: Pestaña Servicio IMAP/POP3Aquí 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 CorreoElectrónico (Postfix) de la misma forma que el anterior y a continuación mostrará elsiguiente 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 endetalles porque todo esta claro.Crear usuario de correo desde la Interfaz Web GosaEn 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 UsuarioAquí 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 DHCPObjetivo: 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. FuncionamientoProtocolo de configuración dinámica de host (en inglés Dynamic Host ConfigurationProtocolo) es un protocolo de red que permite a los clientes de una red IP obtener susparámetros de configuración automáticamente. Se trata de un protocolo de tipocliente/servidor en el que generalmente un servidor posee una lista de direcciones IPdinámicas y las va asignando a los clientes conforme éstas van estando libres, sabiendoen todo momento quién ha estado en posesión de esa IP, cuánto tiempo la ha tenido y aquién se la ha asignado después.El DHCP esta basado en el protocolo BootP (Bootstrap Protocol) de RFC-0951, conalgunas diferencias. El BootP fue de los primeros métodos para asignar direcciones IP deforma dinámica. Al ser las redes cada vez mas grandes, el BootP ya no era tan adecuadoy entonces es cuando se publica en octubre de 1993 el DHCP, estando documentadoactualmente 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 seinicia no tiene información sobre su configuración de red y no hay nada especial que elusuario deba hacer para obtener una dirección IP. Para esto, la técnica que se usa es latransmisión: para encontrar y comunicarse con un servidor DHCP, el equipo simplementeenviará un paquete especial de transmisión (transmisión en 255.255.255.255 coninformación adicional como el tipo de solicitud, los puertos de conexión, etc.) a través dela red local. Cuando el DHCP recibe el paquete de transmisión, contestará con otropaquete 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 solicitadapor el cliente.Se podría suponer que un único paquete es suficiente para que el protocolo funcione. Enrealidad, hay varios tipos de paquetes DHCP que pueden emitirse tanto desde el clientehacia 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. Elservidor responde con un paquete DHCPOFFER, fundamentalmente para enviarle unadirección IP al cliente. El cliente establece su configuración y luego realiza unDHCPREQUEST para validar su dirección IP (una solicitud de transmisión ya queDHCPOFFER no contiene la dirección IP) El servidor simplemente responde con unDHCPACK 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 tardarmás o menos en función de que el cliente acepte o no la dirección IP. En la Figura 5.1 semuestra el funcionamiento. Figura 5.1: Funcionamiento del DHCPModos de asignación de IP a otros equiposExisten 3 modos en DHCP para poder asignar direcciones IP a otros equipos:1 – Asignación manual: El administrador configura manualmente las direcciones IP delcliente en el servidor DCHP. Cuando la estación de trabajo del cliente pide una direcciónIP, 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 asignauna dirección IP cuando contacta por primera vez con el DHCP Server. En este método laIP 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 deforma temporal. Digamos que es entregada al cliente que hace la petición por un espaciode tiempo. Cuando este tiempo acaba, la IP es revocada y la estación de trabajo ya nopuede funcionar en la red hasta que no pida otra. 50
    • Instalación y configuración con soporte el OpenLDAPCOMUNTabla de versiones:Paquetes Versión Lenny Versión Squeezedhcp3-server 3.1.1-6+ledhcp3-server-ldap 3.1.1-6+leisc-dhcp-server 4.1.1-P1-1isc-dhcp-server-ldap 4.1.1-P1-1GNU/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-ldapLuego de instalado se copia el esquema del dhcp a la carpeta /etc/ldap/schema y se leañade al final de todos los includes, al archivo slapd.conf, todo esto se hace de lasiguiente 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 elatributo 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.confinclude /etc/ldap/schema/dhcp.schema# invoke-rc.d slapd restartAhora se configurará el servidor dhcp, pero lo primero que se hará es hacer una copia deseguridad 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.confddns-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 OpenLDAPldap-server "192.168.1.1";# Puerto del servidor OpenLDAPldap-port 389;# Usuario para acceder y realizar las búsquedas en el directorioldap-username "cn=admin,dc=dominio,dc=cu";# Passwd del OpenLDAPldap-password "passwd”;# A partir de donde se realizarán las busquedasldap-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 logsldap-debug-file "/var/log/dhcp-ldap.log";Ahora se va al fichero /etc/default/dhcp3-server para indicarle por cual interfaz de red va aescuchar.# nano /etc/default/dhcp3-serverINTERFACES = “ethx”En la x va el número de su eth.# touch /var/log/dhcp-ldap.logYa se puede reiniciar el servidor DHCP.# invoke-rc.d dhcp3-server restartCuando 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 -- exitinginvoke-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 unarchivo ldif, la configuración del DHCP.Esto se hará de esta forma porque como se quiere administrar desde el GOsa2, hay quepasarle el objeto dhcpServer mediante el ldif.# touch /etc/ldap/ldif/dhcp.ldif# nano /etc/ldap/ldif/dhcp.ldifdn: cn=laptopjudas.dominio.cu,ou=servers,ou=systems,dc=dominio,dc=cudescription: Servidor DHCP# ip del servidor DHCP.IpHostNumber : 192.168.1.1# mac del servidor DHCP.macAddress : 00:00:00:00:00:00gotoMode: activeobjectClass: topobjectClass: dhcpServerobjectClass: goServerobjectClass: GOhardcn: dhcp.dominio.cudhcpServiceDN: cn=dhcp,cn=ldaptopjudas.dominio.cu,ou=systems,dc=dominio,dc=cuAhora 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 -WSi 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 lospaquetes del servidor DHCP, se copia el ldif apropiado, se descomprime y se añade alOpenLDAP. 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 elantiguo 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.gzEste 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.schemaLuego de que se haga todo lo que se tenga que hacer para que el OpenLDAP reconozcael 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.confddns-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 OpenLDAPldap-server "192.168.1.1";# Puerto del servidor OpenLDAPldap-port 389;# Usuario para acceder y realizar las busquedas en el directorioldap-username "cn=admin,dc=dominio,dc=cu";# Passwd del OpenLDAPldap-password "passwd”;# A partir de donde se realizarán las busquedasldap-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 logsldap-debug-file "/var/log/dhcp-ldap.log";Luego de configurar el DHCP, se crea el archivo para los logs.# touch /var/log/dhcp-ldap.log 53
    • Configurando desde el GOsaAhora se mostrará como configurar el servidor dhcp desde el GOsa.GNU/LINUX DEBIAN 5 (LENNY)Para añadir el servicio de servidor de DHCP a un servidor es muy parecido a los demásque se han ido explicando, con la única diferencia que ahora se va a la pestaña DHCP yse da clic en el botón Añadir servicio DHCP.Luego de que se active el servicio saldrá algo muy parecido a la imagen mostrada abajodonde tendrán dos opciones Insertar nueva sección DHCP y Editar sección DHCP. Seda clic en Insertar nueva sección DHCP que es donde está señalando la flecha; esaopción es para añadir el pool de direcciones que otorgará el DHCP. Figura 5.2: Pestaña DHCPAhí pedirá que se elija uno de los diferentes tipos de sección DHCP. Seleccionan el tipode sección DHCP Subred y le dan al botón Crear y saldrá una imagen como la que semuestra Figura 5.3: Pestaña para la definición del Pool de direccionesAquí no se explicará nada, puesto que todo está bien detallado.Luego de configurar todo ya se tienen el servidor DHCP listo para se usado, solo quedareiniciar el servicio DHCP:# invoke-rc.d dhcp3-server restartAhora si no puede mostrar ningún error. 54
    • Tareas para el autoaprendizaje:1. Haga un resumen de las características del servicio DHCP.2. Estudie lo referente al funcionamiento del servicio de DHCP y los modos de asignación de IP a otros equipos. Haga un resumen de lo estudiado.3. Estudie el proceso de instalación de servicio DHCP en las diferentes versiones del GNU/LINUX Debian y haga un resumen de cada una.Tareas de autocontrol y autoevaluación:1. Explique brevemente los modos de asignación de IP a otros equipos. Esquematice.2. Compare los procedimientos de instalación y configuración del DHCP en cada una de las versiones del GNU/LINUX Debian descritas en el manual.3. Qué parámetros se debe configurar en el DHCP para que no reparta más IP, a no ser las que se le asignen desde el Directorio OpenLDAP.4. Configure el DHCP, según lo descrito en el manual y añada el servidor al Directorio OpenLDAP, mediante la interfaz Web GOsa. 55
    • Capitulo 6 SquidObjetivo: Profundizar en el servicio de red squid y su vinculación con el directorio OpenLDAP.Sistema de conocimientos:6.1.- Características distintivas.6.2.- Tipos de Proxy que existen. Particularidades.6.3.- Instalación y configuración.6.4.- Vinculación con el Directorio OpenLDAP.
    • Características distintivasSquid es un servidor proxy cache para clientes web que soporta HTTP, HTTPS, FTP ymucho más. Consume menos ancho de banda y mejora los tiempos de respuesta conalmacenamiento en caché de las paginas web solicitadas con más frecuencia. Tambiéncuenta con amplios controles de acceso lo que hace de el un gran servidor. Funciona enla mayoría de los sistemas operativos disponibles, incluyendo Windows y está disponiblebajo la licencia GNU GPL.Fue creado en la década de los 90 y esta basado en el Harvest Cache Daemon. Elproyecto Squid fue financiado por una NSF (NCR-9796082), que regulaba la investigaciónen tecnologías de almacenamiento en caché. El ircache se quedó sin financiación un parde años más tarde y el proyecto Squid continuó a través de donaciones voluntarias y lainversión comercial de manera ocasional.El mismo esta siendo actualmente desarrollado por un puñado de personas que donan sutiempo y esfuerzo a la creación actual y la siguiente generación de almacenamiento encaché y las tecnologías de la entrega. Un número cada vez mayor de empresas utilizan elSquid para ahorrar su tráfico de Internet, mejorar el rendimiento, ofrecer una navegaciónmás rápida a sus clientes finales y proporcionar contenido estático, dinámico y streaminga millones de usuarios de Internet en todo el mundo.Tipos de Proxy que existen. ParticularidadesAquí se explicará algunos de los proxies que existen y los mas usados:Proxy web: Su funcionamiento se basa en el del Proxy HTTP y HTTPs, pero la diferencia fundamental es que la petición se realiza mediante una Aplicación Web embebida en un Servidor HTTP al que se accede mediante una dirección DNS, esto es, una página web que permite estos servicios.Proxy caché: Su método de funcionamiento es similar al de un proxy HTTP o HTTPs. Su función es precargar el contenido web solicitado por el usuario para acelerar la respuesta Web en futuras peticiones de la misma información de la misma máquina u otras.Proxy transparente: Muchas organizaciones (incluyendo empresas, colegios y familias) usan los proxies para reforzar las políticas de uso de la red o para proporcionar seguridad y servicios de caché. Normalmente, un proxy Web o NAT no es transparente a la aplicación cliente: debe ser configurada para usar el proxy, manualmente. Por lo tanto, el usuario puede evadir el proxy cambiando simplemente la configuración. Una ventaja de tal es que se puede usar para redes de empresa. Un proxy transparente combina un servidor proxy con NAT (Network Address Translation) de manera que las conexiones son enrutadas dentro del proxy sin configuración por parte del cliente, y habitualmente sin que el propio cliente conozca de su existencia. Este es el tipo de proxy que utilizan los proveedores de servicios de internet (ISP). 57
    • Proxy NAT (Network Address Translation) / Enmascaramiento: Otro mecanismo para hacer de intermediario en una red es el NAT, también es conocida como enmascaramiento de IPs. Es una técnica mediante la cual las direcciones fuente o destino de los paquetes IP son reescritas, sustituidas por otras (de ahí el "enmascaramiento"). Esto es lo que ocurre cuando varios usuarios comparten una única conexión a Internet. Se dispone de una única dirección IP pública, que tiene que ser compartida. Dentro de la red de área local (LAN) los equipos emplean direcciones IP reservadas para uso privado y será el proxy el encargado de traducir las direcciones privadas a esa única dirección pública para realizar las peticiones, así como de distribuir las páginas recibidas a aquel usuario interno que la solicitó. Estas direcciones privadas se suelen elegir en rangos prohibidos para su uso en Internet como 192.168.x.x, 10.x.x.x, 172.16.x.x y 172.31.x.x. Esta situación es muy común en empresas y domicilios con varios ordenadores en red y un acceso externo a Internet. El acceso a Internet mediante NAT proporciona una cierta seguridad, puesto que en realidad no hay conexión directa entre el exterior y la red privada, y así nuestros equipos no están expuestos a ataques directos desde el exterior. Mediante NAT también se puede permitir un acceso limitado desde el exterior, y hacer que las peticiones que llegan al proxy sean dirigidas a una máquina concreta que haya sido determinada para tal fin en el propio proxy. La función de NAT reside en los Cortafuegos y resulta muy cómoda porque no necesita de ninguna configuración especial en los equipos de la red privada que pueden acceder a través de él como si fuera un mero encaminador..Hasta aquí se han visto algunos de los tipos de servidor proxies más utilizados, en estecaso se utilizará un proxy NAT / enmascaramiento que se autenticará con un servidorOpenLDAP (figura 6.1). 58
    • Instalación y configuraciónAhora se va a configurar un proxy funcional y luego se mostrará como vincularlo con elOpenLDAP. No se va a especificar la versión del GNU/Linux Debian porque es los mismopara las dos.# aptitiude install squid3A continuación se mostrará y explicará los principales parámetros que deben de sermodificados o añadidos para que funcione el squid. No obstante en el archivo deconfiguración del squid viene bien explicado para que es cada parámetro de estos. Parauna completa configuración ver Anexo 6.# nano /etc/squid3/squid.conf# Se define porque puerto va escuchar el proxy. Sus valores pueden ser: IP_server_squid:puerto_squid o# solamente el puerto_squid.http_port 8080# El parámetro que viene a continuación es por si el proxy esta detrás de otro.# Lo posterior se describe: cache_peer serverhost type http_port icp_port; serverhost es el nombre o IP del# servidor al que se le van hacer las peticiones, type esto es para definir la jerarquía de nuestra caché, este# parámetro puede ser parent, sibling o multicast, http_port es por el puesrto http que está escuchando el# serverhost, icp_port es por el puerto icp que esta escuchando el serverhost, en caso de no estra# configurado no se pone.cache_peer 200.55.x.x parent 8080 3130# CONFIGURACIÓN DE LOS RECURSOS DEL SISTEMA QUE TENDRÁ A DISPOSICIÓN EL SQUID.# Este parámetro debe de ser un cuarto de la memoria ram que se tiene, considerando un límite de 512MBcache_mem = 128 MB# El siguiente parámetro se usa para definir el tamaño que se desea que tenga el squid de caché en el# disco duro. Se puede incrementar el tamaño del caché hasta donde uno desee, teniendo presente que# mientras mas caché menos se usará el ancho de banda.cache_dir ufs /var/spool/squid 1024 16 256# Para entender mejor: /var/spool/squid3 es el directorio donde estará almacenada la caché, 1024 es la# cantidad en MB del tamaño máximo de la caché, 16 es el número máximo de subdirectorios que# contendrá el directorio antes declarado y 256 significa el número de niveles para cada subdirectorio. Es# aconsejable no modificar los números 16 y 256.# CONFIGURACIÓN DE LOS ARCHIVOS LOG´S.# Este parámetro muestra toda la actividad de los clientes que usen el este proxy.access_log /var/log/squid3/access.logcache_log /var/log/squid3/cache.logcache_store_log /var/log/squid3/store.log# AHORA SE CONFIGURARÁN LAS LISTAS DE ACCESOS (ACL).# A partir de aquí es muy difícil explicar como configurar un squid, por lo tanto se mostrarán lo mínimo de las# acl para que funcione el squid en una LANacl redlocal src 192.168.1.0/24# Lo anterior se describe: acl nombre_acl tipo_acl parámetro donde; nombre_acl es como se va a llamar la# regla acl, tipo_acl es el tipo de acl que se va a usar, a continuación se mostrará una lista de los más# usado y para que sirvén:# src: aquí se le puede definir IP o rango de IP, ej: acl rango src 10.0.0.0/24, acl unica src 10.0.0.1/32 o# acl listado src /etc/squid3/reglas/listadoIP.src, en listadoIP.src va unlistado de IP´s.#dstdomain: cuando se quiere o no que se acceda a determinado dominio o listado de los mismos, ej:# acl dominios dstdomain *.google.es o acl dominios dstdomain /etc/squid3/reglas/listadomain.dst#url_regex: para prohibir una url determinada.#time: esta se usa para definir días y horas en la que se quiere o no que una red navegue, ej:# acl hora_nav time MTWHF 8:00-16:30, en este ejemplo se va o no, a navegar de lunes a viernes# desde las 8:00 hasta las 16:30# ya para acaba las partes de un acl queda explicar parámetro que no es mas que la definición del acl_type# INSERT YOUR OWN RULES(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS# Es importante destacar que aquí el orden de las reglas si influyenhttp_access allow redlocal# Lo anterior se describe: http_access allow/deny nombre_acl; allow/deny aquí se define el permiso que va# a tener la regla, nombre_acl es el nombre del acl que se le declaró antes. 59
    • Luego se reinicia el servicio.# invoke-rc.d squid3 restartCon la configuración anterior ya se tiene un servidor proxy funcionando, pero el objetivono es ese, lo que se quiere es tener este servicio vinculado con el Directorio OpenLDAPpara así tener un mayor control de nuestros usuarios.Vinculación con el Directorio OpenLDAPPara esto lo primero que se hará es editar el archivo de configuración del squid y añadir omodificar los siguientes parámetros.# Nano /etc/squid3/squid.conf#Esto indica el número de procesos de autentificación (no tiene valor predeterminado).auth_param basic children 5#Parte del texto que el usuario verá cuando se le solicite su nombre de usuario y contraseña. No hay ningún#valor predeterminado.auth_param basic realm Servidor Proxy#Especifica un comando para la autenticación externa.auth_param basic program /usr/lib/squid3/squid_ldap_auth -h ip_server_ldap -bou=people,dc=dominio,dc=cu -v3 -f (&(uid=%s)(objectClass=gosaProxyAccount))#Esta opción define clases de acl externas utilizando un programa ayudante para identificar el estado.external_acl_type ldap_group %LOGIN /usr/lib/squid3/squid_ldap_group -R -b ou=groups,dc=infosoc,dc=cu-v3 -f "(&(objectClass=posixGroup)(cn=%g)(memberUid= %u))" -h ip_server_ldap#Especifica el tiempo de usuario y contraseña valido externamente.auth_param basic credentialsttl 5 minutesauth_param basic casesensitive on#Lo siguiente sirve para especificar el período de tiempo entre la recolección de basura a través de la caché#del usuario.authenticate_cache_garbage_interval 1 hour#Especifica el número de procesos redirector para desovarredirect_children 5#AÑADIR EN LAS ACLacl passwd proxy_auth REQUIRED# navegacion este es el grupo que se creó mediante la Interfaz Web GOsaacl internet external ldap_group navegacion# INSERT YOUR OWN RULES(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTShttp_access allow internet passwd nav_ip 60
    • Crear Usuario de Navegación desde el GosaEn el Capítulo 2 se mostró como crear un usuario. Ahora se mostrará como activarle elservicio Conectividad.Para esto se edita un usuario ya creado o se crea uno nuevo pero antes de dar OK se vaa la pestaña Conectividad donde se activará la opción Cuenta Proxy como se muestra Figura 6.1: Pestaña Conectividad.en la Figura 6.1.Tareas para el autoaprendizaje:1. Estudie los tipos de Proxy que existen y resuma las características que distinguen a cada uno.2. Hacer un resumen de los principales parámetros que deben ser modificados o añadidos para que funcione el squid.3. Hacer un resumen de los procedimientos para vincular el Squid al Directorio OpenLDAP.Tareas de autocontrol y autoevaluación:1. Cuáles son las características que distinguen a cada uno de los tipos de Proxy que se utilizan?2. Instale y configure el squid en su servidor y vincule el mismo al Directorio OpenLDAP, según el procedimiento descrito en el manual.3. Qué importancia tiene la vinculación de los diferentes servicios abordados en el manual con el Directorio OpenLDAP. Argumente.4. Cree un usuario en la Interfaz Web GOsa con todos los servicios de red que usted tenga vinculado con el directorio OpenLDAP. 61
    • Anexos
    • Anexo 1Configuración del archivo sm.conf.#======================= Global Settings =======================[global]#### Browsing/Identification #### workgroup = DOMINIO realm = DOMINIO.CU netbios name = DOMINIO server string = Samba PDC %v en (%h) wins support = no dns proxy = no name resolve order = lmhosts host wins bcast#### Networking #### hosts allow = 192.168.1.0/24 interfaces = eth0 lo bind interfaces only = yes#### Debugging/Accounting #### log file = /var/log/samba/log.%m max log size = 1000 syslog = 0 panic action = /usr/share/samba/panic-action %d#### Authentication #### security = user encrypt passwords = true null passwords = no passdb backend = ldapsam:ldap://192.168.1.1 ldap suffix = dc=dominio,dc=cu ldap machine suffix = ou=machines,ou=systems ldap user suffix = ou=people ldap group suffix = ou=groups ldap admin dn = cn=admin,dc=dominio,dc=cu ldap delete dn = no ldap ssl = off enable privileges = yes ldap password sync = yes obey pam restrictions = yes unix password sync = no pam password change = yes passwd program = /usr/bin/smbldap-passwd %u passwd chat = *New*UNIX*password* %nn *ReType*new*UNIX*password* %nn *password:*all*authentication*tokens*updated*successfully*#### Domains #### os level = 65 preferred master = yes local master = yes domain master = yes domain logons = yes logon drive = Z: logon home = %L%U.profile logon path = %Nprofiles%U logon script = netlogon.bat OR %U.bat 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" set primary group script = /usr/sbin/smbldap-usermod -g "%g" "%u" add user to group script = /usr/sbin/smbldap-groupmod -m "%u" "%g" 63
    • add machine script = /usr/sbin/useradd -d /dev/null -s /bin/false -d /var/lib/nobody %u#### Misc #### ldapsam:editposix = yes idmap uid = 10000-20000 idmap gid = 10000-20000 template shell = /bin/bash case sensitive = yes#======================= Share Definitions =======================[homes] root preexec = /bin/user.sh %U %S %I comment = Almacenamiento Usuario path = /home/datos/%U browseable = no writeable = yes create mask = 0700 directory mask = 0700 guest ok = no valid users = %S inherit permissions = yes[netlogon] comment = Network Logon Service path = /home/netlogon guest ok = yes read only = yes browseable =no[profiles] comment = Perfil Usuarios path = /home/profiles/%U writeable = yes browseable = no default case = lower preserve case = yes short preserve case = yes case sensitive = no hide files = /desktop.ini/ntuser.ini/NTUSER.*/.* create mask = 0600 directory mask = 0700 csc policy = disable[printers] comment = All Printers browseable = no path = /var/spool/samba printable = yes guest ok = no read only = yes create mask = 0700[print$] comment = Printer Drivers path = /var/lib/samba/printers browseable = yes read only = yes guest ok = no 64
    • Anexo 2Configuración del archive smbldap-tools################################################################################ General Configuration###############################################################################SID="S-1-5-21-2960879313-1784688266-788982729"sambaDomain="DOMINIO"################################################################################ LDAP Configuration###############################################################################masterLDAP="192.168.1.1"masterPort="389"ldapTLS="0"ldapSSL="0"#verify="require"#cafile="/etc/smbldap-tools/ca.pem"#clientcert="/etc/smbldap-tools/smbldap-tools.iallanis.info.pem"#clientkey="/etc/smbldap-tools/smbldap-tools.iallanis.info.key"suffix="dc=dominio,dc=cu"usersdn="ou=people,${suffix}"computersdn="ou=machines,ou=systems,${suffix}"groupsdn="ou=groups,${suffix}"#idmapdn="ou=Idmap,${suffix}"sambaUnixIdPooldn="sambaDomainName=${sambaDomain},${suffix}"scope="sub"hash_encrypt="MD5"crypt_salt_format="$1$%.8s"################################################################################ Unix Accounts Configuration###############################################################################userLoginShell="/bin/false"userHome="/home/datos/%U"userHomeDirectoryMode="700"userGecos="System User"defaultUserGid="513"defaultComputerGid="515"skeletonDir="/etc/skel"defaultMaxPasswordAge="45"################################################################################ SAMBA Configuration###############################################################################userSmbHome="DOMINIO%U"userProfile="DOMINIOprofiles%U"userHomeDrive="Z:" 65
    • userScript="netlogon.bat"mailDomain="dominio.cu"################################################################################ SMBLDAP-TOOLS Configuration (default are ok for a RedHat)###############################################################################with_smbpasswd="0"smbpasswd="/usr/bin/smbpasswd"with_slappasswd="0"slappasswd="/usr/sbin/slappasswd"# comment out the following line to get rid of the default banner# no_banner="1" 66
    • Anexo 3Posibles errores que pueden presentarse en el Samba3 y vía desolución. Error a la hora de ejecutar el comando testparmLoad smb config files from /etc/samba/smb.confrlimit_max: rlimit_max (1024) below minimum Windows limit (16384)Processing section "[homes]"Processing section "[netlogon]"Processing section "[profiles]"Processing section "[printers]"Processing section "[print$]"Loaded services file OK.Server role: ROLE_DOMAIN_PDCPress enter to see a dump of your service definitions Posible Soluciónulimit -n 16384 Posible error al ejecutar el comando net getlocalsid[2011/01/24 13:07:35.951488, 0] lib/smbldap.c:731(smb_ldap_start_tls) Failed to issue the StartTLS instruction: Protocol error[2011/01/24 13:07:36.955660, 0] lib/smbldap.c:731(smb_ldap_start_tls) Failed to issue the StartTLS instruction: Protocol error[2011/01/24 13:07:37.982874, 0] lib/smbldap.c:731(smb_ldap_start_tls) Failed to issue the StartTLS instruction: Protocol error[2011/01/24 13:07:38.984116, 0] lib/smbldap_util.c:310(smbldap_search_domain_info) smbldap_search_domain_info: Adding domain info for DOMINIO failed withNT_STATUS_UNSUCCESSFULSID for domain DOMINIO is: S-1-5-21-1932923334-321425335-1345031468 Posible Solucióneditas el smb.conf y añadir ldap ssl = off 67
    • Anexo 4Configuración del archivo main.cfsmtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)biff = noappend_dot_mydomain = no#delay_warning_time = 4hreadme_directory = /usr/share/doc/postfixmyhostname = phil.infosoc.cumydomain = infosoc.cumyorigin = $mydomainalias_maps = hash:/etc/aliasesalias_database = hash:/etc/aliasesvirtual_alias_maps = ldap:/etc/postfix/openldap/virtual_alias_maps.cf ldap:/etc/postfix/openldap/virtual_user_aliases.cfmydestination = $myhostname, localhost.$mydomain, localhost, $mydomainrelayhost = 200.200.200.178mynetworks = 200.200.200.178 192.168.1.1transport_maps = hash:/etc/postfix/transportlocal_recipient_maps = $alias_maps unix:passwd.bynamemailbox_command = procmail -a "$EXTENSION"mailbox_size_limit = 0recipient_delimiter = +inet_interfaces = allhtml_directory = /usr/share/doc/postfix/html## FILTROS DE CORREOS SPAM ##header_checks = regexp:/etc/postfix/filtros/header_checks.regexpbody_checks = regexp:/etc/postfix/filtros/body_checks.regexpsmtpd_sasl_auth_enable = yessmtpd_sasl_authenticated_header = yessmtpd_sasl_security_options = noanonymousbroken_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_hostnamesmtpd_sender_restrictions = reject_non_fqdn_sender, reject_unknown_sender_domain, permit_sasl_authenticated, permit_mynetworkssmtpd_recipient_restrictions = reject_non_fqdn_recipient, reject_unknown_recipient_domain, permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination, reject_unlisted_recipient, permitsmtpd_data_restrictions = reject_multi_recipient_bounce, 68
    • reject_unauth_pipeliningmailbox_transport = cyrusnotify_class = resource, software, policy#### LIMITAR EL TAMAÑO DE LOS CORREOS A 6MBmessage_size_limit = 6291456#### ESPECIFICAR TIMEOUT ####smtp_connect_timeout = 0smtp_connection_reuse_time_limit = 300ssmtp_data_done_timeout = 600ssmtp_data_init_timeout = 120ssmtp_data_xfer_timeout = 180ssmtp_helo_timeout = 300ssmtp_mail_timeout = 300ssmtp_quit_timeout = 300ssmtp_rcpt_timeout = 300ssmtpd_timeout = 300s 69
    • Anexo 5Configuración del archivo imapd.confconfigdirectory: /var/lib/cyrusdefaultpartition: defaultpartition-default: /var/spool/cyrus/mailpartition-news: /var/spool/cyrus/newsnewsspool: /var/spool/newsaltnamespace: noservername: latopjudas.dominio.cuunixhierarchysep: yeslmtp_downcase_rcpt: yesadmins: cyrusimap_admins: cyrusallowanonymouslogin: nopopminpoll: 0autocreatequota: 0umask: 077sieveusehomedir: falsesievedir: /var/spool/sievehashimapspool: trueallowplaintext: yessasl_mech_list: PLAIN LOGINsasl_minimum_layer: 0sasl_pwcheck_method: saslauthdsasl_auto_transition: nolmtpsocket: /var/run/cyrus/socket/lmtpidlemethod: pollidlesocket: /var/run/cyrus/socket/idlenotifysocket: /var/run/cyrus/socket/notifysyslog_prefix: cyrus/usr/lib/cyrus/bin/%s %d >/tmp/gdb-backtrace.cyrus.%1$s.%2$d <&- 2>&1 & 70
    • Anexo 6Configuración del archivo squid.conf# WELCOME TO SQUID 3.0.STABLE8# ----------------------------# OPTIONS FOR AUTHENTICATION# -----------------------------------------------------------------------------#Recommended minimum configuration per scheme:auth_param basic children 5auth_param basic realm Servidor Proxy ONIauth_param basic program /usr/lib/squid3/squid_ldap_auth -h 192.168.1.13 -b ou=people,dc=dominio,dc=cu-v3 -f (&(uid=%s)(objectClass=gosaProxyAccount))external_acl_type ldap_group %LOGIN /usr/lib/squid3/squid_ldap_group -R -b ou=groups,dc=dominio,dc=cu-v3 -f "(&(objectClass=posixGroup)(cn=%g)(memberUid=%u))" -h 192.168.1.13auth_param basic credentialsttl 5 minutesauth_param basic casesensitive onauthenticate_cache_garbage_interval 1 hourredirect_children 5# ACCESS CONTROLS# -----------------------------------------------------------------------------#Recommended minimum configuration:acl manager proto cache_objectacl passwd proxy_auth REQUIREDacl internet external ldap_group navegacionacl webserver src 192.168.1.4/255.255.255.255acl nav_ip src "/etc/squid3/ips_user"acl nav_den src "/etc/squid3/ips_denegar"acl ip_lib src "/etc/squid3/iplibre"acl chat url_regex -i "/etc/squid3/chats"acl localhost src 127.0.0.1/32acl to_localhost dst 127.0.0.0/8acl SSL_ports port 443 5223 5323acl Safe_ports port 80 # httpacl Safe_ports port 21 # ftpacl Safe_ports port 443 # httpsacl Safe_ports port 70 # gopheracl Safe_ports port 210 # waisacl Safe_ports port 1025-65535 # unregistered portsacl Safe_ports port 280 # http-mgmtacl Safe_ports port 488 # gss-httpacl Safe_ports port 591 # filemakeracl Safe_ports port 777 # multiling httpacl Safe_ports port 5222 # jabberacl Safe_ports port 5050 # Yahoo Mesengeracl CONNECT method CONNECT# http_access deny all#Recommended minimum configuration:http_access allow manager webserverhttp_access deny managerhttp_access deny !Safe_portshttp_access deny CONNECT !SSL_ports# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTShttp_access allow localhosthttp_access deny nav_denhttp_access deny chathttp_access allow ip_lib 71
    • http_access allow internet passwd nav_ip###http_access allow provhttp_access deny allicp_access allow allhtcp_access deny all# htcp_clr_access deny all# miss_access allow all# ident_lookup_access deny all# NETWORK OPTIONS# -----------------------------------------------------------------------------http_port 8080# OPTIONS WHICH AFFECT THE NEIGHBOR SELECTION ALGORITHM# -----------------------------------------------------------------------------hierarchy_stoplist cgi-bin ?# MEMORY CACHE OPTIONS# -----------------------------------------------------------------------------cache_mem 64 MB# DISK CACHE OPTIONS# -----------------------------------------------------------------------------# cache_replacement_policy lrucache_dir ufs /var/spool/squid3 1024 16 256maximum_object_size 4096 KB# LOGFILE OPTIONS# -----------------------------------------------------------------------------access_log /var/log/squid3/access.log squidcache_log /var/log/squid3/cache.logcache_store_log /var/log/squid3/store.loglogfile_rotate 0# OPTIONS FOR FTP GATEWAYING# -----------------------------------------------------------------------------ftp_user rogelio@dominio.cuftp_passive on# OPTIONS FOR TUNING THE CACHE# -----------------------------------------------------------------------------#Suggested default:refresh_pattern ^ftp: 1440 20% 10080refresh_pattern ^gopher: 1440 0% 1440refresh_pattern (cgi-bin|?) 0 0% 0refresh_pattern . 0 20% 4320# ADMINISTRATIVE PARAMETERS# -----------------------------------------------------------------------------cache_mgr rogelio@dominio.cucache_effective_group proxy# ICP OPTIONS# -----------------------------------------------------------------------------icp_port 3130# DNS OPTIONS# -----------------------------------------------------------------------------hosts_file /etc/hostscoredump_dir /var/spool/squid3 72
    • Bibliografíahttp://linuxemb.wikidot.com/sambahttp://www.arrakis.es/~pfabrega/t1.htmlhttp://linuxcommand.org/man_pages/adduser8.htmlhttp://zystrax.wordpress.com/2009/12/27/dhcp-dynamic-host-configuration-protocol-2/http://www.google.com/url?sa=t&source=web&cd=5&ved=0CD8QFjAE&url=http%3A%2F%2Fcarlos8rg.files.wordpress.com%2F2008%2F08%2Fonto_dhcp.pdf&ei=WJp_TaSPDJS5tgf6zPHsCA&usg=AFQjCNE-wnylx-oPeh695cbkPYqgka2GuA&sig2=2GHY4sPYsypi-UizVxR7YAhttp://www.google.com/url?sa=t&source=web&cd=2&ved=0CCQQFjAB&url=http%3A%2F%2Fclases.nuarlubre.es%2Fresources%2F04_DHCP.ppt&ei=WJp_TaSPDJS5tgf6zPHsCA&usg=AFQjCNE2gzaIAM1JfFEfeb77kh0OO_joVA&sig2=TnKBYFUt4qUTy_ER511irwhttp://es.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocolhttp://www.squid-cache.org/http://es.wikipedia.org/wiki/Proxy 73