• Like
How to tickets - Protocolos de Comunicación
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

How to tickets - Protocolos de Comunicación

  • 285 views
Published

Proyecto de estudiantes de la Universidad de El Salvador en la cátedra de Protocolos de Comunicación 2013.

Proyecto de estudiantes de la Universidad de El Salvador en la cátedra de Protocolos de Comunicación 2013.

Published in Self Improvement
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
285
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
21
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. UNIVERSIDAD DE EL SALVADORFACULTAD MULTIDISCIPLINARIA DE OCCIDENTEDEPARTAMENTO DE INGENIERIAY ARQUITECTURAPROTOCOLOS DE COMUNICACIÓNASESOR DE PROYECTO:ING. JUAN CARLOS PEÑATEMA:SISTEMA DETICKETS BASADOS EN CORREO ELECTRÓNICOSANTA ANA 21 DE JUNIO DE 2013ACERCA DE
  • 2. PROYECTO REALIZADO POR:- CHÁVEZVIGIL, LUIS JOSUÉ- CRUZ MARTÍNEZ, ERICK STANLEY- CISNEROS CENTE, ROLANDO ALEXIS- IBARRA BONILLA, LUIS ARMANDO- ORELLANAAGUIRRE, JOSUÉ DANIELCONTACTOS:- cobaincv.21@gmail.com- escm.1990@gmail.com- roland.centino@gmail.com- lichitoah@gmail.com- jdorellana207@gmail.com
  • 3. Configuración del Servicio DNS (Bind9)Para empezar la configuración del DNS hay que instalar el paquete bind9, bind9 es una distribuciónlibre y mayormente se usa para mover DNS.Hay que iniciar una terminal en modo root e instalar el paquete bind9:Se debe tener conexión a Internet para instalar el paquete. En este caso, ya estaba instalado y es larazón del por que aparece que bind9 ya esta instalado en su versión mas reciente.Ya que estén instalados los archivos de configuración estarán en el directorio /etc/bind, acá estaráncontenidos todos los archivos de configuración que se utilizan en este proyecto.Se edita el archivo named.conf.local para agregar las zonas de autoridad y crearemos una carpeta denombre proyecto para crear los archivos de configuración de las zonas usando:# mkdir /etc/bind/proyectoProcedemos a editar el archivo named.conf.local lo abrimos usando:# nano /etc/bind/named.conf.localO usando algún editor de textos como gedit y hasta abajo colocamos nuestras zonas.
  • 4. Se agregan 2 zonas, una de nombre callues.com que es la principal y otra de nombre254.168.192.in-addr.arpa, que se utiliza cuando al DNS se haga una petición preguntando por eldominio usando la dirección ip:192.168.254.X y los archivos de configuración de éstas zonas estaránen /etc/bind/proyecto.Ahora se crea el archivo de configuración db.proyeto en la carpeta /etc/bind/proyecto usando eleditor de texto de consola:# nano /etc/bind/proyecto/db.proyectoY se escribe lo siguiente:Nota: Se recomienda copiar un archivo de configuración que viene por defecto cuando se instalabind9 llamado db.local al directorio /etc/bind/proyecto y renombrarlo como db.proyecto usando elcomando:# cp /etc/bind/db.local /etc/bind/proyecto/db.proyectoEllo permite hacer más fácil su configuración.
  • 5. Se agregan 7 FQDNs para el dominio (ns1, ldap, interno, db, nfs y dos mail) y un registro de tipo MXcon parámetro 10 que servirá para aceptar peticiones que son de correos usando los protocolos SMTPe IMAP. Cabe mencionar que, como requerimiento del proyecto, se han agregado dos registros parael nombre “mail”, y solo existe un registro MX. Ello permite generar redundancia entre esosservidores y de ese modo, al fallar un servidor, el segundo permanece disponible y respondiendocomo si fuese el primer servidor.Ahora se procede a crear el archivo db.proyectorev la cual sera la inversa. Se crea este archivo de lamisma manera que el anterior al directorio /etc/bind/proyecto usando el editor de texto de consola:# nano /etc/bind/proyecto/db.proyectorev
  • 6. En este archivo se agregan 7 punteros indicando que las peticiones que se hagan por IP al servidorDNS se les devolverán el FQDN correspondiente.Ahora se debe probar si las zonas están correctas y reiniciar el servicio.Ahora, se debe probar si se alcanza al dominio. Para eso se asigna una IP en la interfaz por la que seescucharan las peticiones con el comando:# ifconfig eth0 192.168.254.1/24 upLuego, se edita el archivo resolv.conf mediante:
  • 7. # nano /etc/resolv.confSe debe escribir la siguiente línea:nameserver 127.0.0.1Luego, como se muestra en la siguiente imagen, se trata de obtener información del dominiomediante nslookup:Finalmente, se prueba de forma rápida la conexión al servidor:Si se muestra la información desplegada en la imagen, entonces el servidor DNS ya esta habilitado yfuncionando correctamente.
  • 8. Instalación del Servidor SMTP (Postfix)1. InstalaciónPostfix es el servidor que nos permite ejecutar el protocolo SMTP. Vamos a instalarlo desde consolade la siguiente manera:# apt-get install postfix postfix-ldapAhora bien, en la consola aparecerá la siguiente ventana en esta parte se debe escoger SITIO DEINTERNET:Luego se define el dominio de correo. Para este proyecto será callues.comLuego de unos cuantos mensajes más, se habrá instalado el servidor smtp en el ordenador.
  • 9. 2. ConfiguraciónAhora se deben modificar algunos archivos de configuración para que el servidor smtp funcione. Sinembargo, antes de comenzar a tocar cualquiera de los archivos de postfix, hay que hacer lo siguiente:Primero, crear en el sistema el grupo vmail: # groupadd – g 1005 vmailLuego, crear el usuario vmail, que fungirá como cartero de correo: # useradd – g 1005 -u 1005 vmailEl primer archivo que vamos a instalar es /etc/postfix/main.cfNo son muchos los cambios generados en este archivos; las modificaciones que se hacen a estearchivo son los siguientes:always_bcc=admin@callues.comdovecot_destination_recipient_limit = 1#TLS parameterssmtpd_tls_cert_file=/var/certs/CA/server.crtsmtpd_tls_key_file=/var/certs/CA/server.keysmtpd_use_tls=yessmtp_use_tls=yessmtpd_tls_security_level = encryptsmtpd_tls_auth_only = yessmtpd_tls_received_header = yessmtpd_tls_CAfile = /var/certs/CA/ca.crtsmtp_tls_CAfile = /var/certs/CA/ca.crtsmtpd_tls_loglevel = 2smtpd_tls_session_cache_timeout = 3600stls_random_source = dev:/dev/urandomsmtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scachesmtp_tls_session_cache_database = btree:${data_directory}/smtp_scache###Virtual Configurationsvirtual_mailbox_domains = callues.comvirtual_mailbox_maps = ldap:/etc/postfix/usuarios-ldapvirtual_mailbox_base = /home/mailvirtual_uid_maps = static:1005virtual_gid_maps = static:1005virtual_alias_maps = regexp:/etc/postfix/virtualaliasesvirtual_transport=dovecot###limitacionessmtpd_helo_required=yessmtpd_helo_restrictions=reject_invalid_helo_hostname,permitsmtpd_sasl_auth_enable = yes
  • 10. smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated,reject_unauth_destination### Sasl optionsqueue_directory=/var/spool/postfixsmtpd_sasl_type=dovecotsmtpd_sasl_path=private/authsmtpd_sasl_auth_enable=yesbroken_sasl_auth_clients=yessmtpd_sasl_security_options=noanonymoussmtpd_sasl_tls_security_options=$smtpd_sasl_security_optionssmtpd_sasl_local_domain=$myhostnamePosteriormente se modifica el archivo /etc/postfix/master.cf y se descomentará lo siguiente:smtp inet n - - - - smtpdsubmission inet n - - - - smtpd-o smtpd_tls_security_level=encrypt-o smtpd_sasl_auth_enable=yes-o smtpd_tls_wrappermode=yes-o smtpd_sasl_auth_enable=yes### AGREGAMOS ESTAS LINEASdovecot unix - n n - - pipeflags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -f ${sender} -d ${recipient}Se crea un archivo /etc/postfix/virtualaliases que contendrá lo siguiente (licky es un usuario que secreará posteriormente en el árbol):/^mailer-daemon@callues.com$/ licky@callues.com/^postmaster@callues.com$/ licky@callues.com/^abuse@callues.com$/ licky@callues.com/^(.*)@callues.com$/ ${1}@callues.comSe guarda el archivo y se le aplica postmap.Ahora es momento de conectarse al árbol LDAP. Se crea un archivo /etc/postfix/usuarios-ldapserver_host = localhostversion = 3search_base = cn=gerencia,ou=grupos,dc=callues,dc=comscope = subquery_filter = mail=%sresult_attribute = mailboxldap_bind = noFinalmente se edita /etc/postfix/sasl/smtpd.conf y lo único que llevará el archivo espwcheck_method: saslauthd
  • 11. Instalación del Servidor IMAP (Dovecot)1. InstalaciónDovecot es un servidor que permite el envío de correo a través del protocolo IMAP.# apt-get install dovecot-common dovecot-imapd dovecot-ldapCuando se instala, pide que se verifique la instalación y aparece en la consola el listado de archivosque se van creando dentro del directorio /etc/dovecot2. ConfiguraciónEntramos en el archivo /etc/dovecot/dovecot.conf y descomentamos lo siguiente:!include_try /usr/share/dovecot/protocols.d/*.protocollisten = *, ::login_greeting = Dovecot ready.!include conf.d/*.conf!include_try local.confCreamos un enlace simbólico dentro de /etc/dovecot#ln -s /etc/dovecot/dovecot-ldap.conf.ext /etc/dovecot/dovecot-ldap-userdb.conf.extEntramos en el archivo /etc/dovecot/dovecot-ldap-userdb.conf.ext y editamos las siguientes líneasde este archivo:hosts = ldap.callues.comdn = cn=admin,dc=callues,dc=comdnpass = ldap123debug_level = 1auth_bind = yesauth_bind_userdn = cn=noreply,ou=correo,dc=callues,dc=comldap_version = 3base = ou=correo,dc=callues,dc=comscope = subtreeuser_attrs = mailbox=mail=maildir:/home/mail/%$user_filter = (&(objectClass=CourierMailAccount)(uid=%u))pass_attrs = uid=user,userPassword=passwordpass_filter = (&(objectClass=CourierMailAccount)(mail=%u))Posteriormente se dirige al fichero /etc/dovecot/local.conf (si no existe se crea) y se edita en el losiguiente:
  • 12. protocol lda {postmaster_address = licky@callues.com}disable_plaintext_auth = yesssl = requiredssl_cert=</var/certs/CA/server.crtssl_key=</var/certs/CA/server.keyUna vez realizado este paso, se procederá a modificar el archivo /etc/dovecot/conf.d/10-auth.confdisable_plaintext_auth = yesauth_username_format = %Luauth_mechanisms = plain#!include auth-system.conf.ext!include auth-ldap.conf.extAhora se modificará el fichero /etc/dovecot/conf.d/10-master.conf y se le añade el siguiente bloquede código:unix_listener /var/spool/postfix/private/auth {mode = 0660# Assuming the default Postfix user and groupuser = postfixgroup = postfix}El archivo /etc/dovecot/conf.d/dovecot-ldap-conf.ext, en un bloque llamado userdb lleva losiguiente:default_fields = uid=1005 gid=1005Instalación de SASlAUTHD (Seguridad)1. InstalaciónSe procede a instalar saslauthd, con la cual se permite que se inicie TLS cuando se inicie el servicio depostfix.# apt-get install libsasl2-2 libsasl2-modules sasl2-bin2. ConfiguraciónSe modifica el archivo /etc/default/saslauthd y únicamente hay que buscar una línea llamadaSTART=no y se cambia esto por START=yes. Luego, se reinicia el servicio con:·# /etc/init.d/saslauthd restart.
  • 13. Configuración del servidor NSF (Sistema de archivos de red)NFS permite que una colección arbitraria de clientes comparta un sistema de archivos común,soportando sistemas heterogéneos, con clientes y servidores que tal vez ejecuten diferentes sistemasoperativos con un hardware distinto.NFS se encarga de crear una abstracción que permite a usuarios y programas acceder a archivosubicados en máquinas remotas como si fueran locales.Configuración del Servidor NFS:El servidor nfs almacenara los correos entrantes, para lo cual se realizara una simulación de clusterpues los servidores propiamente realizaran su función de servidor y los archivos los maildir y losarchivos de correo serán almacenados en el servidor NFS, con esto se tendrá optimización en cuandoal uso de almacenamiento y uso de recursos y sobrecarga de los servidoresInstalamos los siguientes paquetes:# apt-get install nfs-common nfswatch nfs-kernel-serverSe crea la carpeta que se compartirá:root@LuchoPC:/home/lichito# mkdir /var/correos
  • 14. Se edita el archivo /etc/exports (se utilizara en este caso el editor en consola llamado “nano”), seagrega la ip, mascara de subred y permisos en este caso la carpeta que se compartirá sera/var/correos en esta carpeta se almacenaran los correos entrantes la red sera 192.168.254.0/24 y lospermisos serán (rw) lectura/escritura y (syn) mantener sincronizada la transferencia estos cambios seven en la siguiente captura:
  • 15. Se tendrá que otorgar permisos para los usuarios en este caso:# chmod -R 777 /var/correosSe edita el archivo /etc/idmapd.conf en este archivo se especifica el dominio del servidor o ladireccion ip del mismo en este caso se colocara la direccion ip del servidor la cual es: 192.168.254.2
  • 16. Se reinician los servicios siguientes:root@LuchoPC:/home/lichito# /etc/init.d/nfs-kernel-server restartroot@LuchoPC:/home/lichito# /etc/init.d/rpcbind restart
  • 17. Las otras configuraciones se hacen en el cliente:se instala nfs-commonSe edita el archivo /etc/idmapd.conf donde se colocara la ip del servidor; la cual es: 192.168.254.2
  • 18. Montamos la carpeta en el cliente dicha carpeta sera la carpeta compartida en la red para ellointroducimos el siguiente comando :# mount -t nfs 192.168.254.2:/var/correos /home/mailEn este caso /home/mail sera la carpeta que el usuario vera en su estructura de directorios, contendralos correos del cliente, dichos archivos fisicamente estan en el servidor NFSLuego se realiza un ejemplo de copia de archivo a la carpeta compartida, esto se muestra en lacaptura siguiente:Si todo se ha realizado bien, se verá el archivo copiado en /var/correos del Servidor:
  • 19. Creación de Certificados con OpenSSL.En esta etapa del proyecto se explica paso a paso la manera de crear certificados para la organización.Estos certificados permiten a los sistemas a integrar trabajar con opciones de seguridad mejoradas,encriptado la información entre clientes y servidores.1. InstalaciónLa instalación de OpenSSL es algo sencillo. Basta con escribir en la terminal (usando sudo, su o laconsola de Root):# apt-get install openssl2. Creación del certificado de la CALa CA (Autoridad Certificadora) es la entidad que permite firmar certificados a otras organizaciones ypermite a los servicios confirmar que el origen de la conexión es una entidad confiable.Recomendación: Si un mismo equipo servidor utiliza muchos procesos que requieran SSL, serecomienda definir una carpeta de trabajo para los archivos del CA y otra para los certificados de losdemás servicios teniendo por seguro que las cuentas de usuario correspondientes a cada serviciotengan al menos permisos de lectura sobre los objetos.En este proyecto se trabaja como el usuario “Root”, por lo que, con esa cuenta hay que crear unaestructura de directorios (por ejemplo, dentro de /var) mediante los comandos:# mkdir /var/certs# mkdir /var/certs/CA# mkdir /var/certs/<nombre del servicio>Nota: Se recomienda que <nombre del servicio> sea un nombre corto pero que indique el propósitodel directorio, por ejemplo, www para un servicio HTTPS.Ya con los directorios necesarios creados, se procede a crear los certificados de la CA:# cd /var/certs/CA# openssl genrsa [-des3] –out CA_Key.pem 4096El comando opcional “-des3” es para indicar un método de cifrado en el cual, el certificado se protegecon una contraseña (aunque usando esta opción, al utilizar un certificado que implemente des3 en unservicio, obliga a utilizar la contraseña al momento de reiniciar el servicio. En este ejemplo no se usades3.Lo siguiente es crear la solicitud de certificado. Para ello ha de ejecutarse:
  • 20. # openssl req -new -key CA_Key.pem -out CA.csrEn esta etapa se pide que se ingrese alguna información sobre la CA, basta solamente con definir elpaís (es el código de dos letras correspondiente a cada país, en este ejemplo, se escribe SV), laprovincia y la localidad (que dependen del país donde se ubique la organización), el nombre de laorganización, la unidad de la organización y un nombre común o propio.Todos los demás datospueden obviarse sin problema.Finalmente se debe auto-firmar el certificado de la CA mediante:# openssl x509 -req -days <dias> -in -CA.csr -signkey CA_Key.pem -out CA_Cert.pemSe recomienda que el parámetro <días> sea lo suficientemente grande respecto de los certificados delos servicios restantes (que se crean posteriormente). En este ejemplo <días> tiene un valor de 3650días (10 años).Se puede notar que, si se ha usado el cifrado des3 a la hora de generar la llave, se pide la claveingresada para proteger la llave. Si no se utiliza des3, solo es de esperar que la salida arroje unmensaje diciendo “Signature ok”.3. Creación de los certificados para los serviciosEl proceso para estos certificados es similar a los de la CA, salvo que, a la hora de crear la solicitud(archivo CSR), se utiliza la llave destinada al servicio, y a la hora de firmar el certificado se utilizan losparámetros para firmar con la llave y el certificado de la CA. Sin embargo, se puede crear uncertificado auto-firmado para el servicio, de modo similar al de la CA, en este ejemplo se crea uncertificado firmado con la CA.A modo de ejemplo, se crea el certificado correspondiente al servicioWeb (referido como www)comenzando por la llave:# cd /var/certs/www# openssl genrsa -out WWW_Key.pem 4096Luego, se crea la solicitud (de modo similar al de la CA, se llenan los datos correspondientes) con elsiguiente comando:# openssl req -new -key WWW_Key.pem -out WWW.csrY finalmente basta ya con firmar el certificado utilizando a la CA:# openssl x509 -req -days 365 -CA /var/certs/CA/CA_Cert.pem -CAkey /var/certs/CA/CA_Key.pem-CAcreateserial -in WWW.csr -out WWW_Cert.pemSi todo sale bien, se muestra el mensaje “Signature ok” y con ello finaliza el proceso de creación decertificados. Si hay otros servicios en el mismo equipo, se debe repetir el paso 3 dependiendo de lacantidad de procesos.
  • 21. Instalación del servidor Web Apache2 y PHP51. Instalación del servicio de ApacheEl servidor Apache es el responsable de la publicación de los sitiosWeb de la organización. Sinembargo, este proyecto busca el acceso a un sitio web tanto desde fuera de la organización (Internet)como desde dentro de la misma (Intranet).Las librerías de PHP5 son un conjunto de módulos adaptables para Apache, los cuales permitendinamizar el contenido de un sitioWeb.PHP5 tiene conjuntos de paquetes para establecer conexión con diversos orígenes, los cualesincluyen LDAP y MySQL (que posteriormente se utilizaran en este proyecto).Para la instalación de Apache, basta con entrar a la consola como usuario Root y ejecutar el siguientecomando:# apt-get install apache2-mpm-preforkLo siguiente es ver si el sitio web por defecto funciona. Para ello con el navegador que esté disponiblese debe ingresar a la dirección http://localhost y el resultado debería verse como el siguiente:
  • 22. Por defecto, el sitio web se almacena en /var/www (Para que Apache pueda leer el contenido hay queasegurarse que otros usuarios puedan acceder a los archivos del sistema (posteriormente seconfigura Apache para prevenir acceso a ciertas zonas del sitioWeb).La forma de asegurarse es abrir el explorador del sistema de archivos instalado en el equipo (En esteejemplo, Nautilus) y verificar que en la pestaña “Permisos” la sección “Otro” especifique que se puedeacceder a archivos como se muestra en la siguiente imagen.2. Instalación del modulo PHP5Lo siguiente es instalar el paquete PHP5 desde la terminal mediante:# apt-get install php5Al finalizar, siempre como el usuario Root, lanza el editor de texto que este instalado en el sistema ydebe modificarse el archivo /var/www/index.html, borrar todo su contenido y escribir lo siguiente:<?php phpinfo(); ?>Luego, siempre en con el editor de texto, abrir el archivo /etc/apache2/sites-available/default y en lasección presentada a continuación, se debe agregar la linea en negritas:
  • 23. <Directory /var/www/>Options Indexes FollowSymLinks MultiViewsDirectoryIndex index.phpAllowOverride NoneOrder allow,denyallow from all</Directory>Se cierra el editor de texto y se ejecuta en la terminal:# /etc/init.d/apache2 restartYa reiniciado el servicio de Apache, lo siguiente es ir al navegador y recargar la página http://localhostpara ver el siguiente resultado:Si el navegador muestra esa pantalla, PHP5 esta correctamente instalado.El sitio web, por el momento, no requiere ser retocado, pues hacen falta otros servicios que agregar,como LDAP y MySQL. Cuando ambos estén configurados, se procede a configurar el sitio web y aagregar los módulos restantes de PHP5.
  • 24. Instalación y Configuración de OpenLDAPOpenLDAP es la implementación del protocolo LDAP (Protocolo Ligero de Acceso a Directorios), elcual funciona como una base de datos mucho mas veloz que una base de datos relacional y que a suvez, es utilizada por otros servicios, como SMTP e IMAP y HTTP.1. Instalación del servicio OpenLDAPPara instalar OpenLDAP se debe instalar el paquete slapd, desde terminal y como usuario Rootmediante:# apt-get install slapd ldap-utilsNótese que hay dos paquetes a instalar. El paquete ldap-utils es un conjunto de herramientas deconfiguración del servicio OpenLDAP.Para resumirlo, LDAP es un protocolo que almacena y comparte la información de un dominiomediante una estructura jerárquica llamada árbol, la cual se compone de ramas, las cuales a su vez,pueden ser hojas (si no tienen un nodo hijo) o simplemente rama.Al instalar OpenLDAP, se pide la contraseña del usuario raíz (del árbol LDAP), por ahora no esimportante y se puede escribir cualquier cosa. Al llegar a esa etapa, la terminal se mostrara asi:
  • 25. Ya con el servicio instalado, basta re configurar el paquete slapd mediante:# dpkg-reconfigure slapdDebe responder antes de establecer el dominio si desea omitir la configuración, a lo que se deberesponder con “No”.Ahora pregunta por el dominio de la organización. Puede escribir el nombre del dominio en suformato de FQDN o, como en este ejemplo, escribir: callues.comNota: Para este proyecto (este es el dominio de la organización) y el equipo que cuente con elservicio de LDAP debe contar con un DNS que contenga la zona de autoridad para el dominio a usar.Luego se pregunta por el nombre de la organización (no dominio), a lo que, en este proyecto, seresponde con “CallUES” (sin comillas).Ahora se pregunta por la contraseña del administrador, y debe confirmarse. Cuando se haga, seescribe en la base de datos del árbol dicha contraseña para el usuario (hoja en el árbol)cn=admin,dc=callues,dc=com.Para el motor de base de datos, se recomienda utilizar el “hdb”.Lo siguiente es si desea que se borre la base de datos cuando se purgue (elimine del sistema) elpaquete slapd, se puede responder que si. Luego, se debe decir que se mueva la base de datosanterior para evitar problemas de configuración.Luego debe indicar que no debe utilizarse el protocolo LDAP versión 2. Esto obliga al servicio autilizar la versión 3.Y con ello termina la re configuración del paquete slapd.3. Instalación de JxplorerLo siguiente es instalar el entorno visual para trabajar con slapd, instalando el paquete jxplorer(requiere tener instalado el JDK7 de Oracle) mediante el comando de terminal:# apt-get install jxplorerUna vez que se haya instalado jxplorer, para ejecutarlo desde la terminal de Root se utiliza elcomando:# jxplorerYa dentro de jxplorer, se debe iniciar una conexión con slapd, haciendo click en File y luego enConnect y aparecerá el siguiente dialogo:
  • 26. Hay que llenar los datos tal y como se muestra en la imagen para iniciar la conexión. Una vez hechoclick en OK, se muestra el árbol LDAP:
  • 27. El objeto “admin” que se muestra en el árbol, no es otro más que el “root” del servicio LDAP. Sinembargo, se puede eliminar del árbol sin problemas, pues en la base de datos de configuraciónpermanece seguro y libre de modificaciones desde el exterior. Para eliminarlo solo se debe hacer clickderecho sobre admin y luego click en Delete.Con ello se puede proceder a la siguiente estapa: el motor de bases de datos. Para ello se utilizara elmotor PostgreSQL 9.2.4.
  • 28. Instalación de PostgreSQLEl servicio de base de datos permite complementar al servicio LDAP con elementos que no puedentratarse fácilmente con un árbol LDAP. En esta etapa se muestra como instalar el servicio de bases dedatos relacionales.1. Descarga e instalación de PostgreSQLPara obtener la última versión de PostgreSQL, hay que seguir el siguiente enlace:Ahora, en consola, hay que dirigirse al directorio donde se descargó el archivo y ejecutar el comando:# ./postgresql-9.2.4-1-linux-x64.runNota: El nombre de archivo puede variar dependiendo de si se cambia en la descarga o la versión.Ya iniciado el asistente, se muestra una pantalla como la siguiente:
  • 29. En el siguiente paso se deja el directorio de instalación tal y como aparece por defecto. Se debe hacerdel mismo modo para el directorio de datos.El siguiente paso pide la contraseña del administrador de PostgreSQL. Hay que escribirla, confirmarlay continuar al siguiente paso.
  • 30. Luego se pide el puerto, por defecto debe dejarse el puertoTCP 5432, la configuración regional sedeja intacta y se procede a la instalación.Al finalizar pedirá la instalación de Stack Builder, pero solo hay que decir que no se quiere instalar y sefinaliza.2. Configuración de la instancia de PostgreSQLEl instalador de PostgreSQL incluye una herramienta visual para monitorear las bases de datos delsistema, llamada pgAdmin3. Mediante lanzadores puede ser ubicado y ejecutado, de modo que semuestra la siguiente ventana:
  • 31. Para probar una conexión hay que hacer click derecho en la instancia por defecto (aparece con una Xroja) y luego en la opción “Connect”. Pedirá la contraseña que se asignó en la instalación y si lacontraseña es correcta, se verá el esquema de la base de datos, indicando que PostgreSQL estácorrectamente instalado.
  • 32. Al explorar en la instancia se puede ver el esquema por defecto, llamado public. Es ahí dondeposteriormente se agregaran las tablas a utilizar en este proyecto.Con estos servicios instalados, se procede a planificar la forma en que deben funcionar. En esteproyecto, con respecto a los servicios de OpenSSL, Apache2, PHP5, OpenLDAP y PostgreSQL sedeben cumplir los siguientes objetivos:Para OpenSSL (ver seccion “Creacion de Certificados con OpenSSL):* Crear certificados de laCA* Crear certificados para los sitiosWebPara Apache2:* Habilitar un sitio público usando la interfaz (adaptador de red) que tenga acceso a Internet* Habilitar un sitio interno utilizando la interfaz destinada a labores dentro de la organización(Intranet)* Utilizar el certificado destinado para el servicioApache y acceder a ambos sitiosWeb utilizandoHTTPS* Habilitar el uso de AJAXPara PHP5:* Permitir la ejecución de contenido dinámico (scripts de PHP) en ambos sitiosWeb* Permitir a los sitios Web conectarse al servicio OpenLDAP* Permitir a los sitios Web conectarse al servicio PostgreSQL* Permitir a los sitios Web el envío y lectura de eMailPara OpenLDAP:* Crear el árbol del dominio callues.com* Configurar la cuenta raíz y una cuenta de lectura para acceder al árbol* Agregar el esquema “authldap.schema” para manipular cuentas de eMailPara PostgreSQL:* Crear una estructura de datos que permita el soporte de los datos que OpenLDAP no puedesoportar, esto incluye: eventos, etapas, servicios, etc.Dado que los certificados (ver sección “Creación de Certificados con OpenSSL”) ya deberían existir, seprocede a la configuración de los servicios para lograr los objetivos descritos anteriormente.
  • 33. Configuración de Servicios Web, LDAP y de Bases de Datos1. Definición del sitio público y el sitio internoAl instalar el servicio de Apache, en el directorio /etc/apache2/sites-available existen 2 sitios: defaulty default-ssl. El primer paso es editar el archivo default-ssl y crear dos copias, una para el sitiopúblico y otra para el sitio interno.Utilizando el explorador del sistema de archivos instalado en el sistema, como usuario Root, hay queexaminar el directorio /var/www y dentro de el hay que crear 2 carpetas: interno y público. Dentro decada una de las carpetas hay que copiar el archivo index.php que se encuentra dentro de /var/www yal copiarlo a ambos directorios, se debe eliminar del directorio original (eliminar de /var/www), con loque se debe tener una estructura de directorios como la siguiente:/var/www|------ publico| |------- index.php||------ interno|------- index.phpUtilizando (como usuario Root) el editor de texto que más convenga, se abre el archivo default-ssl ydebe agregarse o editarse lo que a continuación a aparecer en negritas:<VirtualHost 192.168.1.6:443>ServerAdmin webmaster@localhostDocumentRoot /var/www/publico<Directory /var/www/publico>Options Indexes FollowSymLinks MultiViewsDirectoryIndex index.phpAllowOverride NoneOrder allow,denyallow from all</Directory>Y luego, en el mismo archivo hay que definir los certificados tanto de la CA como los destinados alservicio Apache. Para ello hay que modificar las líneas que se muestran a continuación:Para los certificados del servicio Apache:SSLCertificateFile /var/certs/www/WWW_Cert.pemSSLCertificateKeyFile /var/certs/www/WWW_Key.pem
  • 34. Para los certificados de la CA (Estas líneas aparecen comentadas con un símbolo # al inicio, hay quequitar dicho símbolo para que hagan efecto):SSLCACertificatePath /var/certs/CASSLCACertificateFile /var/certs/CA/CA_Cert.pemHecho todo eso, se guarda el archivo como publico-ssl dentro del directorio/etc/apache2/sites-available. Para el sitio interno se sigue el mismo procedimiento, reemplazando lapalabra público por interno, por lo que sites-available debe tener los archivos público-ssl einterno-ssl.Luego de haber realizado este procedimiento, hay que editar el archivo ports.conf del directorio/etc/apache2 comentando (escribiendo el símbolo # al inicio) la línea:#NameVirtualHost *:80Listen 192.168.1.6:443Listen 192.168.254.2:443Las últimas dos líneas en negrita deben ser agregadas. Dentro del mismo archivo debe editarse lasección que se muestra a continuación, agregando o modificando las líneas en negrita:<IfModule mod_ssl.c># If you add NameVirtualHost *:443 here, you will also have to change# theVirtualHost statement in /etc/apache2/sites-available/default-ssl# to <VirtualHost *:443># Server Name Indication for SSL named virtual hosts is currently not# supported by MSIE on Windows XP.NameVirtualHost 192.168.1.6:443NameVirtualHost 192.168.254.2:443#Listen 443</IfModule>Lo siguiente, dentro de la terminal como Root, es deshabilitar el sitio web por defecto mediante:a2dissite defaultLuego hay que habilitar los dos sitios ssl que se acaban de crear mediante:a2ensite público-ssla2ensite interno-sslHabilitar el modulo SSL mediante:a2enmod sslY al final, reiniciar el servicio apache2 mediante:
  • 35. /etc/init.d/apache2 restartHecho esto, se procede a abrir en el navegador los sitios. En este proyecto, a modo de prueba, seutiliza la dirección https://HYPERLINK "https://192.168.254.2/" 192.168.254.2 para el sitio interno y ladirección https://HYPERLINK "https://192.168.0.17/"192.168.https://192.168.0.17/1https://192.168.0.17/.https://192.168.0.17/6 para el sitio público.Accediendo a cualquiera de esas direcciones, el navegador dará aviso de que no conoce a la entidadque emite el certificado. En este ejemplo, utilizando Mozilla Firefox se muestra la detección delcertificado:Al ver la opción “Añadir excepción...” se puede ver que se ha obtenido un certificado en lo y al hacerclick en “Ver...” se muestran los datos de la CA (cuadro verde) y del servicioWeb (cuadro rojo):
  • 36. Al confirmar la excepción de seguridad (agregar el certificado a la lista de certificados de confianzadel navegador), ya se puede ver que hay acceso al sitio al que se ha accedido, en este ejemplo, al sitioInterno:
  • 37. Si se muestra la página inicial del sitio al que se pretenda acceder, entonces se ha configuradocorrectamente el modulo SSL del servicio Apache, y ya debe contar con acceso a los dos sitios Web,es decir, el público y el interno.El siguiente objetivo de la configuración de Apache, es que los sitios soporten AJAX. Esto tiene 2propósitos clave; el primero, enviar consultas asíncronas mediante el método GET y el método POSTy el segundo, acceder a funciones escritas en PHP que la interfazWeb no mostrara.El proceso es muy sencillo: en la carpeta de cada sitio se crea una nueva carpeta a la que, en esteejemplo, ha de llamarse “js” y dentro de ella se agrega un archivo llamado ajax.js que contiene elsiguiente código:// Crea un objeto AJAX dependiendo del explorador. Si no es posible devuelve null.function CrearAJAX(){var ajaxRequest = null;try{ajaxRequest = new XMLHttpRequest();}catch (e){try{ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");}catch (e){try{ajaxRequest = newActiveXObject("Microsoft.XMLHTTP");}catch (e){ajaxRequest = null;}}}return ajaxRequest;}//Envía una petición AJAX via HTTP POST. Devuelve el resultado de la petición como texto.function EnviarPOST(AjaxObj, Url, Params){
  • 38. if (AjaxObj != null){AjaxObj.open("POST", Url, true);AjaxObj.setRequestHeader("Content-Type","application/x-www-form-urlencoded");AjaxObj.send(Params);}elsealert(Este navegador no soporta AJAX. Intente accesar a este sitio usando un navegador másreciente.);}//Envia una petición AJAX via HTTP GET. Devuelve el resultado de la petición como texto.function EnviarGET(AjaxObj, Url){if (AjaxObj != null){AjaxObj.open("GET", Url, true);AjaxObj.send(null);}elsealert(Este navegador no soporta AJAX. Intente accesar a este sitio usando un navegador masreciente.);}La primer función crea un objeto que trabaja con AJAX, dependiendo del navegador. Esta función hasido probada en Internet Explorer 7+, Mozilla Firefox 16+, Google Chrome 17+ y Opera 11+. Lasegunda función permite enviar parámetros a un script (en este proyecto, script escrito en PHP)usando el método GET (enviando consultas asíncronas con los parámetros en la URL) y la terceraenvía consultas usando el método POST (consultas asíncronas con los parámetros ocultos).Lo siguiente es configurar los servicios OpenLDAP y PostgreSQL y agregar al servicio Apache elsoporte para ambos mediante PHP5.
  • 39. 2. Instalación de los módulos LDAP, PostgreSQL e IMAP para PHP5Este proceso es realmente breve, pues solamente requiere ejecutar un solo comando en la terminalcomo Root:# apt-get install php5-ldap php5-imap php5-pgsqlPosteriormente se detalla un poco mas el uso de estos módulos pero por el momento se describe sucontenido:php5-ldap: permite el acceso a servidores LDAP, lo que será vital a la hora de trabajar con la cuentasde correo de este proyecto, pues se almacenaran en un árbol LDAP.php5-imap: permite acceder a un servidor IMAP, con el cual, se pueden obtener los mensajes deeMail del usuario deseado cuya cuenta se encuentre en el árbol LDAP.php5-pgsql: contiene funciones para trabajar con el servidor PostgreSQL, lo que es importante a lahora de trabajar con los servicios de la organización.3. Creación del árbol LDAP y configuración del esquema CourierEl esquema “courier” es un archivo que contiene la definición de unos tipos de objetos que permitenalmacenar información sobre cuentas de eMail. Para este proyecto, se ha ubicado una copia de dichoarchivo de esquema en el siguiente enlace:http://www.mediafire.com/?1evvy78pcuum5b5Debe ser descargado y posteriormente hay que copiarlo (como usuario Root) al directorio/etc/ldap/schema para su inclusion. Antes de proseguir hay que recordar que en esta etapa delproceso todo lo que se haga debe hacerse como usuario Root.El primer paso es crear con un editor de texto un archivo temporal (se recomienda hacerlo en eldirectorio donde este ubicada la terminal) llamado courier.conf que contenga lo siguiente:include /etc/ldap/schema/core.schemainclude /etc/ldap/schema/cosine.schemainclude /etc/ldap/schema/nis.schemainclude /etc/ldap/schema/inetorgperson.schemainclude /etc/ldap/schema/authldap.schemaLo siguiente es crear un directorio de salida para la prueba de configuración de esquemas de LDAPmediante:
  • 40. # mkdir /var/slapd.dY ya con ello, ejecutar la prueba de configuración mediante el comando:# slaptest -f courier.conf -F /var/slapd.d/Si el comando tuvo éxito, se muestra un mensaje diciendo “config file testing succeeded”. Con loque resta copiar la nueva configuracion al directorio original de OpenLDAP.Posteriormente hay que desplazarse al directorio de pruebas mediante:# cd /var/slapd.d/cn=config/cn=schema/Mediante un comando ls hay que verificar que exista un archivo cuyo nombre termina enauthldap.ldif, hay que copiar tal archivo al directorio de OpenLDAP mediante:# cp "/var/slapd.d/cn=config/cn=schema/cn={4}authldap.ldif""/etc/ldap/slapd.d/cn=config/cn=schema/cn={4}authldap.ldif"Nota: El nombre del archivo ldif comienza con cn={4}, pero ello puede cambiar dependiendo de losesquemas instalados. Por lo tanto, al copiar al destino, hay que asegurarse que el número entre llavesno choque con alguno ya existente. Si hay un archivo con el mismo número, se debe cambiar elnúmero del archivo de destino por el número más alto encontrado mas uno, es decir, si ya existe unarchivo 4, el archivo destino debe ser el 5, quedando al final del comando como cn={5}authldap.ldif.Hecho esto, lo siguiente es desplazarse al directorio de OpenLDAP mediante:# cd "/etc/ldap/slapd.d/cn=config/cn=schema/”Y posteriormente ejecutar los comandos:# chown openldap: cn={4}authldap.ldif# /etc/init.d/slapd restartPara comprobar si el proceso ha tenido éxito, hay que abrir Jxplorer como Root e iniciar sesion comoel administrador del árbol (ver seccion “Instalacion y Configuracion de OpenLDAP”, parte 3).Ya iniciada la sesion, hay que hacer click en la ficha Schema y buscar las clases marcadas en rojo en lasiguiente imagen:
  • 41. Si estas tres clases aparecen en el listado, entonces el esquema Courier ha sido instaladocorrectamente.Valga mencionar que, en caso de que se vuelva a configurar el servicio de OpenLDAP,este esquema se pierde, por lo que para rehabilitarlo, hay que ejecutar todo el proceso de instalacióndel esquema de nuevo.Ya dentro de Jxplorer, hay que preparar el árbol agregando los siguientes elementos:* Una unidad organizacional (OU) llamada “correo”* Una unidad organizacional (OU) llamada “grupos”, que contenga a los grupos “ingenieros”,“técnicos” y “gerencia”*Una unidad organizacional (OU) llamada “clientes”* Una cuenta de correo (CourierMailAccount + inetOrgPerson) llamada noreply, cuya dirección deeMail sea noreply@callues.com y que solamente pueda ser modificada por el usuario raíz del árbol oel mismo.* Un objeto de tipo inetOrgPerson llamado “lector” que solo pueda obtener acceso de lectura a todoel árbol y que solamente pueda ser modificado por el usuario raíz del árbol o el mismo.*Permitir que las cuentas de correo puedan modificarse con su misma credencial, pero que nopuedan leer el resto del árbol.La estructura del árbol (dc=callues, dc=com) hasta el momento es la siguiente:com|--- calluesY se desea obtener algo como lo siguiente:com|--- callues|--- clientes|
  • 42. |--- correo| |--- noreply||--- grupos| |--- ingenieros| |--- técnicos| |--- gerencia||--- lectorPara comenzar a agregar un nodo a una rama, basta con seleccionar el nodo contenedor (en estecaso se selecciona el nodo “callues”) y se presiona Ctrl+N (o se hace click derecho y luego click en laopción New. A continuación se muestra la pantalla para agregar nuevos elementos:
  • 43. Describiendo los parámetros de la pantalla se tiene que:Parent DN (donde DN significa Nombre Distinguido) es el nodo contenedor del nuevo objeto. Eneste caso, el contenedor es, como se esperaba, dc=callues,dc=com.Enter RDN (Donde RDN significa Nombre Distinguido Relativo) es el identificador del objeto a crear.Cuando se crea una unidad organizacional, el RDN comienza con ou=<nombre de la OU> y <nombrede la OU> es un nombre arbitrario. Como primer ejemplo, puede ser la OU llamara “correo”.Available Classes es el listado de clases (obtenidas desde los esquemas instalados) disponibles. Paraagregar una clase, se debe seleccionar una de la lista de la izquierda y presionar el boton Add. Si en lalista de la derecha hay una clase que no fuese necesaria, basta con seleccionarla y presionar el botonRemove.Para crear una OU:Con los parámetros mencionados, para crear una OU basta con hacer lo siguiente en la pantallamostrada en la imagen anterior (tomando como ejemplo la OU llamada “correo”):* Escribir como RDN: ou=correo* Buscar la clase “organizationalUnit”, marcarla y presionar Add* Presionar OKUna vez hecho esto, aparecerá una tabla como la siguiente:Como se puede apreciar, el objectClass es “organizationalUnit”, aunque hay un valor duplicado quedice “top”. Ello es, porque organizationalUnit “hereda” los atributos de la clase top, de modo similar ala programacion orientada a objetos, salvo que LDAP permite que un atributo tenga más de un valor.
  • 44. Por el momento, los datos se dejan intactos y se presiona el boton Submit para agregar la OU al árbol(panel izquierdo de la ventana de Jxplorer).Se realiza el mismo proceso para la OU llamada “grupos” a modo de obtener una estructura como lasiguiente:Para crear al usuario “lector”:El proceso es el mismo que para las OU, con la diferencia que la clase a agregar no esorganizationalUnit, sino que se utiliza la clase “inetOrgPerson”. El RDN del usuario lector debe sercn=lector y debe agregarse en el nodo callues. Cuando se cree, se debe llenar la tabla de la siguienteforma:
  • 45. Se puede apreciar un campo llamado userPassword. Cuando se intente editar ese campo, pedirá unacontraseña y su verificación además de un método de encriptación. Se recomienda utilizar el métodoMD5 y al escribir la contraseña, confirme el cambio y para que el lector aparezca en el árbol, se haceclick en Submit, bajo la tabla.Para crear los grupos:De igual modo que con las OU, los grupos siguen el mismo proceso, salvo que debe agregarse en elnodo “grupo” en vez del nodo “callues” y la clase a utilizar no es organizationalUnit, sino que se debeutilizar o bien sea groupOfNames o groupOfUniqueNames.A la hora de definir cuál clase utilizar se debe considerar que al utilizar groupOfUniqueNames no sepermite definir permisos en el árbol para objetos de esta clase, aunque posee la ventaja de queverifica automáticamente si un nodo ya existe en el grupo.En este ejemplo, se utilizara la clase groupOfNames, pues hay que establecer permisos quesolamente con esta clase se pueden lograr.A modo de ejemplo, se crea el grupo “ingenieros”Se crea el grupo como cuando se inicia la creación de una OU, asegurándose que el Parent DN seaou=grupos,dc=callues,dc=com, que el RDN sea cn=ingenieros y que la clase sea groupOfNames.Una vez hecho esto deben llenarse los datos como se muestra en la siguiente imagen:
  • 46. Se puede notar que el campo “member” (que es multivaluado, es decir, puede almacenar mas de unsolo valor), debe tener al menos un valor, por lo que, aprovechando que ya existe el usuario “lector”se utiliza el DN completo de dicho usuario. Para hacerlo se hace click derecho en el usuario “lector” yse selecciona Copy DN y se pega el valor en el campo “member” (para agregar un nuevo valor amember, en la tabla, se hace click derecho sobre el campo “member” y se selecciona “Add anothervalue”).Nota: Hay que recordar que el valor member debe contener solamente DN completos. No puedenutilizarse Parent DN ni componentes individuales de un DN.Hecho esto, se presiona Submit y el grupo “ingenieros” aparece ya en el árbol dentro del nodo“grupos”.Para los otros grupos (técnicos y gerencia) se sigue el mismo procedimiento.Para la cuenta noreply:El proceso es exactamente el mismo que para el usuario “lector” con dos diferencias: debe agregarseen el nodo “correo” y además de la clase inetOrgPerson debe contener la clase CourierMailAccount.El RDN para el correo noreply es cn=noreply. Se presiona OK y se llena la tabla tal como se muestraen la siguiente imagen:
  • 47. Notese que ya existen los 3 grupos (gerencia, ingenieros y tecnicos). Debe llenarse lo que se muestraen la imagen para el correo noreply, aunque, los campos homeDirectory y mailbox no se utilizan porel momento, por lo que solo solamente basta con dejar indicados unos valores temporales. Sepresiona Submit y el correo noreply esta ya en el árbol.Para finalizar la configuracion del servicio OpenLDAP hay que configurar los permisos de acceso alárbol.En el directorio /etc/ldap/slapd.d/cn=config existe el archivo olcDatabase={1}hdb.ldif. Dicho archivocontiene las directivas de control y acceso del árbol de callues.com.Los permisos se configuran en las directivas olcAccess: {indice} donde índice corresponde a unnúmero correlativo que, aunque no es necesario, se recomienda escribirlo para una mejorcomprensión de los permisos.En dicho archivo, hay que eliminar todas las directivas olcAccess (se recomienda crear un respaldodel archivo primero) y escribir las siguientes directivas que serán los sustitutos:olcAccess: {0}to *by self writeby dn="cn=admin,dc=callues,dc=com" writeby dn="cn=lector,dc=callues,dc=com" readby * noneLo que esto significa es que, al momento de accesar al árbol, si quien accede es el usuario que hizologin y examina su propia cuenta, puede modificarse; si quien acceda es el usuario raíz del árbol
  • 48. (cn=admin), puede escribir y leer todo el árbol; si acceda el lector, puede modificar su propia cuentapero solo puede leer las demás cuentas y si quien acceda es cualquier otro usuario, no tiene permisopara nada más que su propia cuenta. Hecho eso, se guarda el archivo original y se ejecuta en laterminal:# /etc/init.d/slapd restartPosteriormente se comprueba que los permisos se han hecho efectivos.Al finalizar todo, el árbol LDAP debería lucir así:EL servicio restante por configurar es el PostgreSQL. Este proyecto exige trabajar con datos queLDAP no puede utilizar, por lo que una base de datos relacional es un complemento que se adecua alos requerimientos del proyecto.
  • 49. 4. Definición de la Base de Datos de PostgreSQLA modo de resumir, se muestra la estructura de la base de datos implementada en el servidorPostgreSQL.Dado que el servicio OpenLDAP posee estructuras que permiten almacenar datos de los clientes, lasestructuras de las tablas son bastante sencillas. A continuación se define el contenido y el propósitode cada tabla:Cliente: Contiene solamente el identificador del cliente (Id) y un campo llamado Cliente de tipo texto,que almacena el eMail del cliente dentro de la base de datos. Esta tabla es vital pues es el clientequien genera el ticket (implementado en las tablas Evento y Etapa).Servicio: Es cualquier servicio que el cliente pueda solicitar mediante el sistema. Consta de unidentificador (Id) que identifica al servicio, un identificador secundario (Pid) que indica si el servicio esuna parte de otro servicio principal, un nombre y los detalles para dar una breve descripción delservicio.Evento: Es el ticket que el cliente genera al ingresar al sistema y solicitar un servicio. Solamentecuenta con un identificador principal (Id), un identificador del cliente que lanzo el ticket, elidentificador del servicio para el cual fue lanzado el ticket, la fecha en que inicia el servicio solicitado yla fecha en que finaliza el servicio.Etapa: Es cada fase del servicio solicitado por el cliente, en el que se incluye el identificador delusuario (empleado de la organización que brinda el servicio directamente), el identificador del evento(ticket), identificador principal (Id), la fecha en que se inicia dicha etapa, un campo que indica si laetapa actual fue la que finalizo el servicio, un nombre descriptivo (tipo) de la etapa y los detalles
  • 50. (opcionales).Solicitud: Esta tabla esta destinada a la labor de referir un servicio de un empleado a otro del mismorango o superior. Se define mediante un identificador principal y los identificadores del usuario(empleado) solicitante (o quien brinda actualmente el servicio) y del destinatario (empleado a quiense le asignara el servicio a brindar) y las fechas en que se realiza la solicitud y la fecha en que esaprobada.Usuario: Es la tabla que identifica a un usuario del árbol LDAP (ver la sección “Creación del árbolLDAP y configuración del esquema Courier”) y, dado que ya existen las cuentas en el árbol LDAP, estatabla solamente contiene el identificador principal del usuario.