lunes, 26 de marzo de 2012

INSTALACION Y CONFIGURACION DE UN SERVIDOR OPENLDAP en CentOS

PROCEDIMIENTO 1: INSTALACION Y CONFIGURACION DE UN SERVIDOR OPENLDAP

1.  1. Vamos a instalar los paquetes. El servidor opneLDAP y el cliente openLDAP.

2.  2. Generar un password para el usuario root del servidor del directorio. Este password será usado en el siguiente paso, cuando modifique el archivo de configuración para el openLDAP. El password ha sido cifrado usando el algoritmo SSHA. Ese password cifrado la vamos a copiar y a pegar más adelante en el siguiente paso. Si desea usar otro algoritmo debe usar el comando slappasswd –h.

3.  3. Modificar el archivo de configuración principal para openLDAP ldap.conf, ubicado en el directorio /etc/openldap. El archivo de slapd.conf debe modificarse para configurar las opciones de la base de datos ldap. A Continuación se numeran cada una de las líneas que deben modificarse:

Instalar Guest Additions en centOS 6

Instalación de GuestAdittion en centOS


1. Instalar RPMkernel-devel-2.6.32-71.el6.i686.rpm

Link de descarga 
http://rpm.pbone.net/index.php3/stat/4/idpl/15983922/dir/scientific_linux_6/com/kernel-devel-2.6.32-71.el6.i686.rpm.html


2. Instalar el REPO de Epel, vamos a la ruta /etc/yum.repos.d/
[root@localhost yum.repos.d]# wget http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-5.noarch.rpm
Instalamos:
[root@localhost yum.repos.d]# rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-5.noarch.rpm

3. Instalar los paquetes gcc y dkms
[root@localhost Escritorio]# yum install gcc dkms

4. Ir a Dispositivos / Instalar <<Guest Adittion>>

5. Ir en modo consola al lugar donde está montado, ejemplo
[root@localhost Escritorio]# cd /media/VBOXADDITIONS_4.1.8_75467/
[root@localhost VBOXADDITIONS_4.1.8_75467]#

6. Iniciar el VBoxLinuxAdditions.run
[root@localhost VBOXADDITIONS_4.1.8_75467]# ./VBoxLinuxAdditions.run

7. Reiniciar la máquina
[root@localhost VBOXADDITIONS_4.1.8_75467]# reboot

Comandos Basicos para CentOS Linux

La maquina que utilizaré para ejemplos será CentOS Linux...

Aquí dejo la lista de comandos más indispensables para Linux:

· Comando: ls

list: listar. Es el primer comando que todos deben aprender. Nos muestra el contenido de la carpeta que le indiquemos después. Por ejemplo. Si queremos que nos muestre lo que contiene /etc:

# ls /etc

Si no ponemos nada interpretará que lo que queremos ver es el contenido de la carpeta donde estamos actualmente:

# ls

Además acepta ciertos argumentos que pueden ser interesantes. Para mostrar todos los archivos y carpetas, incluyendo los ocultos:

# ls -a

Para mostrar los archivos y carpetas junto con lo que ocupa, etc:

# ls -l

Además se pueden observar los argumentos. Además de mostrar también los ocultos:

# ls -la

· Comando cd

change directory: cambiar directorio. Podemos usarlo con rutas absolutas o relativas. En las absolutas le indicamos toda la ruta desde la raíz (/). Por ejemplo, estemos donde estemos, si escribimos en consola…

# cd /etc/squid

…nos llevará a esa carpeta directamente. Del mismo modo si escribimos…

# cd /

…nos mandará a la raíz del sistema de ficheros.

Las rutas relativas son relativas a algo, y ese algo es la carpeta donde estemos actualmente. Imagine que estamos en /home y queremos ir a una carpeta que se llama temporal dentro de nuestra carpeta personal. Con escribir…

# cd /home/indiara/temporal


¿Y qué sucede si escribimos tan sólo…

# cd

Sí, sólo “cd”. Esto lo que hace es que te lleva a tu carpeta personal directamente y estemos donde estemos. Es algo realmente muy práctico, muy simple y que no todos conocen.

· Comando mkdir

make directory: hacer directorio. Crea una carpeta con el nombre que le indiquemos. Nuevamente podemos usar rutas absolutas y relativas.

Por ejm: creamos la carpeta prueba dentro de mi carpeta personal:

# mkdir /home/indiara/prueba

Si ya estamos en nuestra carpeta personal. Por ejem: /home/indiara

# mkdir prueba

· Comando rm

remove: borrar. Borra el archivo o la carpeta que le indiquemos. Como antes se puede indicar la ruta completa o el nombre del archivo. Para borrar un archivo.

Por ejem: borramos la carpeta anteriormente creada:

# rm /home/indiara/prueba

Si ya estamos en nuestra carpeta personal: /home/ indiara

# rm prueba (todo esto con una carpeta vacía)

Para borrar una carpeta que contiene archivos y/o otras carpetas que pueden incluso contener más:

# rm -r nombre_carpeta

Otras opciones: “-f” no te pide una confirmación para eliminar o “-v” va mostrando lo que va borrando.

· Comando cp

copy: copiar. Copia el archivo indicado donde le digamos. Aquí podemos también jugar con las rutas, tanto para el fichero origen, como en el del destino. También podemos poner el nombre que le queremos poner a la copia. Por ejemplo, si estuviéramos en /etc/squid y quisiéramos hacer una copia de seguridad de squid .conf en nuestra carpeta personal:

# cp squid.conf /home/carpetapersonal/squid.conf.backup

· Comando mv
move: mover. Es igual que el anterior, sólo que en lugar de hacer una copia, mueve directamente el archivo con el nombre que le indiquemos, puede ser otro distinto al original:

# mv /etc/prueba.html /home/carpetapersonal/prueba.html

Otro uso muy práctico que se le puede dar es para renombrar un archivo. Basta con indicar el nuevo nombre en el segundo argumento con la misma ruta del primero. En este ejemplo suponemos que ya estamos en la carpeta que lo contiene:

# mv prueba.html prueba1.html

· Comando find

find: encontrar. Busca el archivo o carpeta que le indiques:

# find / -name prueba

El comando anterior buscaría en todos los sitios las carpetas y archivos que se llamen prueba. Si tuviéramos la seguridad de que se encuentra en /var por ejemplo, se lo indicaríamos:

# find /var -name prueba

Si no estamos muy seguros del nombre podemos indicárselo con comodines. Supongamos que el nombre de lo que buscamos contiene “prue”, en la misma carpeta de antes:

# find /var -name *prue*

Tiene otras opciones. Por ejemplo podemos decirle que encuentre los archivos/carpetas de más de 1500 KB:

# find / -size +1500

O los archivos/carpetas contienen el nombre “prue” y tienen menos de 1000 KB:

# find / -name *prue* -size -1000

· Comando clear

clear: despejar. Limpia la pantalla/consola quedándola como si acabáramos de abrirla.

# clear

· Comando ps

process status: estado de los procesos. Nos muestra lo que queramos saber de los procesos que están corriendo en nuestro sistema. Cada proceso está identificado con un número llamado PID. Si hacemos…

# ps -A

…nos mostrará un listado de todos los procesos, su PID a la izquierda y su nombre a la derecha. Si queremos más información:

# ps aux

· Comando kill

kill: matar. Elimina el proceso que le indiquemos con su PID:

# kill

En ocasiones el proceso no “muere” del todo, pero se le puede forzar al sistema para que lo mate con seguridad del siguiente modo:

# kill -9 (numero de proceso)

· Comando useradd

useradd: permite añadir nuevos usuarios al sistema, además de establecer la información por defecto de los nuevos usuarios que se añadan. Se encuentra enlazado simbólicamente por el nombre adduser. Ambos se pueden usar indistintamente:

Por ejm: crear los usuarios:  indiara  y pablo

# useradd  indiara  …crea el usuario  indiara  con las propiedades por defecto.
# useradd pablo …crea el usuario pablo con las propiedades por defecto.

· Comando userdel

userdel: estecomando permite eliminar definitivamente un usuario del sistema.

# userdel  indiara  …eliminar el usuario  indiara  y borra su directorio base.

· Comando passwd

passwd: este comando permite cambiar el password de un usuario. Si se invoca sin argumentos se asume el usuario actual.

# passwd  indiara  …coloca una contraseña para el usuario  indiara .

Codigos de error en OPENLDAP

Significado de Codigo de errores de OPENLDAP

H.1. Non-Error Result Codes------ Error no Códigos de Resultados

These result codes (called "non-error" result codes) do not indicate an error condition: Estos códigos de resultado (llamado "no-error" los códigos de resultado) no indican una condición de error
        success (0), éxito (0),
        compareFalse (5), compareFalse (5),
        compareTrue (6), compareTrue (6),
        referral (10), and derivación (10), y
        saslBindInProgress (14). saslBindInProgress (14).
The success , compareTrue , and compareFalse result codes indicate successful completion (and, hence, are referred to as "successful" result codes). El éxito, compareTrue, y los códigos de resultado compareFalse indicar la finalización exitosa (y, por tanto, se conocen como los códigos de "éxito" de resultados). 
The referral and saslBindInProgress result codes indicate the client needs to take additional action to complete the operation. La referencia y los códigos de saslBindInProgress resultado indica que el cliente debe tomar medidas adicionales para completar la operación.


H.2. Result Codes---- Códigos de Resultados

Existing LDAP result codes are described as follows: Existentes códigos de resultado LDAP se describen como sigue: 


H.3. H.3. success (0)---- el éxito (0)

Indicates the successful completion of an operation. Indica la finalización con éxito de una operación. 
Note: this code is not used with the Compare operation. Nota: este código no se utiliza con la operación de comparación

H.4. operationsError (1)----- operationsError (1)

Indicates that the operation is not properly sequenced with relation to other operations (of same or different type).Indica que la operación no está correctamente secuenciado con relación a otras operaciones (del mismo tipo o diferentes).  For example, this code is returned if the client attempts to StartTLS ( RFC4511 Section 4.14) while there are other uncompleted operations or if a TLS layer was already installed. Por ejemplo, este código se devuelve si el cliente intenta STARTTLS ( RFC4511 Sección 4.14), mientras que hay otras operaciones incompletos o si una capa TLS ya estaba instalado. 

H.5. A.5. protocolError (2)----- ProtocolError (2)

Indicates the server received data that is not well-formed. Indica que el servidor ha recibido los datos que no están bien formados.  For Bind operation only, this code is also used to indicate that the server does not support the requested protocol version. Para la operación de enlace única, este código también se utiliza para indicar que el servidor no es compatible con la versión del protocolo solicitada.  For Extended operations only, this code is also used to indicate that the server does not support (by design or configuration) the Extended operation associated with the requestName . Para las operaciones extendidas sólo, este código se utiliza también para indicar que el servidor no admite (por diseño o configuración) la operación de extendido asociado con el requestName.  For request operations specifying multiple controls, this may be used to indicate that the server cannot ignore the order of the controls as specified, or that the combination of the specified controls is invalid or unspecified. Para las operaciones de solicitud especificando varios controles, esto puede ser utilizado para indicar que el servidor no se puede ignorar el orden de los controles como se especifica, o que la combinación de los controles especificados no es válido o no especificado. 

H.6. A.6. timeLimitExceeded (3)---- timeLimitExceeded (3)

Indicates that the time limit specified by the client was exceeded before the operation could be completed. Indica que el límite de tiempo especificado por el cliente se ha superado antes de la operación se pudo completar. 

H.7. A.7. sizeLimitExceeded (4)---- sizeLimitExceeded (4)

Indicates that the size limit specified by the client was exceeded before the operation could be completed. Indica que el límite de tamaño especificado por el cliente se ha superado antes de la operación se pudo completar. 

H.8. A.8. compareFalse (5)----- compareFalse (5)

Indicates that the Compare operation has successfully completed and the assertion has evaluated to FALSE or Undefined. Indica que la operación de comparación se ha completado con éxito y la afirmación se ha evaluado a false o undefined. 

H.9. A.9. compareTrue (6)----- compareTrue (6)

Indicates that the Compare operation has successfully completed and the assertion has evaluated to TRUE. Indica que la operación de comparación se ha completado con éxito y la afirmación se ha evaluado en TRUE. 

H.10. A.10. authMethodNotSupported (7)----- authMethodNotSupported (7)

Indicates that the authentication method or mechanism is not supported. Indica que el método de autenticación o el mecanismo no es compatible. 

H.11. A.11. strongerAuthRequired (8)------ strongerAuthRequired (8)

Indicates the server requires strong(er) authentication in order to complete the operation. Indica que el servidor requiere una fuerte (o) de autenticación con el fin de completar la operación.  When used with the Notice of Disconnection operation, this code indicates that the server has detected that an established security association between the client and server has unexpectedly failed or been compromised.Cuando se utiliza con el anuncio de la operación de desconexión, este código indica que el servidor ha detectado que una asociación de seguridad que se establece entre el cliente y el servidor finalizó inesperadamente fallado o se ha comprometido. 

H.12. A.12. referral (10)----- referencia (10)

Indicates that a referral needs to be chased to complete the operation (see RFC4511 Section 4.1.10). Indica que la remisión debe ser perseguido para completar la operación (ver RFC4511 sección 4.1.10). 

H.13. H.13. adminLimitExceeded (11)----- adminLimitExceeded (11)

Indicates that an administrative limit has been exceeded. Indica que un límite administrativo se ha superado. 

H.14. H.14. unavailableCriticalExtension (12)----- unavailableCriticalExtension (12)

Indicates a critical control is unrecognized (see RFC4511 Section 4.1.11). Indica que un crítico de control no se reconoce (ver RFC4511 sección 4.1.11). 

H.15. H.15. confidentialityRequired (13)----- confidentialityRequired (13)

Indicates that data confidentiality protections are required. Indica que la protección de confidencialidad de datos son obligatorios. 

H.16. H.16. saslBindInProgress (14)----- saslBindInProgress (14)

Indicates the server requires the client to send a new bind request, with the same SASL mechanism, to continue the authentication process (see RFC4511 Section 4.2). Indica que el servidor requiere que el cliente envíe una solicitud de enlace nuevo, con el mismo mecanismo SASL, para continuar con el proceso de autenticación (verRFC4511 sección 4.2). 

H.17. H.17. noSuchAttribute (16)----- noSuchAttribute (16)

Indicates that the named entry does not contain the specified attribute or attribute value. Indica que la entrada llamada no contiene el atributo o el valor del atributo. 

H.18. H.18. undefinedAttributeType (17)----- undefinedAttributeType (17)

Indicates that a request field contains an unrecognized attribute description. Indica que un campo de solicitud contiene una descripción del atributo desconocido. 

H.19. H.19. inappropriateMatching (18)----- inappropriateMatching (18)

Indicates that an attempt was made (eg, in an assertion) to use a matching rule not defined for the attribute type concerned. Indica que se hizo un intento (por ejemplo, en una afirmación) para utilizar una regla de juego no está definido para el tipo de atributo que se trate. 

H.20. A.20. constraintViolation (19)----- constraintViolation (19)

Indicates that the client supplied an attribute value that does not conform to the constraints placed upon it by the data model. Indica que el cliente suministra un valor de atributo que no se ajusten a las limitaciones que le imponen el modelo de datos.  For example, this code is returned when multiple values are supplied to an attribute that has a SINGLE-VALUE constraint. Por ejemplo, este código se devuelve cuando se suministran varios valores a un atributo que tiene una restricción UN VALOR. 

H.21. H.21. attributeOrValueExists (20)----- attributeOrValueExists (20)

Indicates that the client supplied an attribute or value to be added to an entry, but the attribute or value already exists. Indica que el cliente ha suministrado un atributo o un valor que se añade a una entrada, pero el atributo o el valor que ya existe. 

H.22. H.22. invalidAttributeSyntax (21)----- invalidAttributeSyntax (21)

Indicates that a purported attribute value does not conform to the syntax of the attribute. Indica que el valor del atributo supuestamente no se ajusta a la sintaxis del atributo. 

H.23. H.23. noSuchObject (32)----- noSuchObject (32)

Indicates that the object does not exist in the DIT. Indica que el objeto no existe en el DIT. 

H.24. H.24. aliasProblem (33)----- aliasProblem (33)

Indicates that an alias problem has occurred. Indica que un problema de alias se ha producido. For example, the code may used to indicate an alias has been dereferenced that names no object. Por ejemplo, el código puede utilizarse para indicar un alias se ha dereferenced que los nombres de ningún objeto. 

H.25. H.25. invalidDNSyntax (34)----- invalidDNSyntax (34)

Indicates that an LDAPDN or RelativeLDAPDN field (eg, search base, target entry, ModifyDN newrdn, etc.) of a request does not conform to the required syntax or contains attribute values that do not conform to the syntax of the attribute's type. Indica que un campo o LDAPDN RelativeLDAPDN (por ejemplo, la base de búsqueda, entrada de destino, ModifyDN newrdn, etc) de una solicitud no se ajusta a la sintaxis necesaria o contiene valores de los atributos que no se ajustan a la sintaxis del tipo del atributo. 

H.26. H.26. aliasDereferencingProblem (36)------ aliasDereferencingProblem (36)

Indicates that a problem occurred while dereferencing an alias. Indica que ha ocurrido un problema al mismo tiempo eliminar la referencia de un alias. Typically, an alias was encountered in a situation where it was not allowed or where access was denied. Por lo general, un alias que se encontró en una situación donde no se permite o donde el acceso fue negado. 

H.27. H.27. inappropriateAuthentication (48)------ inappropriateAuthentication (48)

Indicates the server requires the client that had attempted to bind anonymously or without supplying credentials to provide some form of credentials. Indica que el servidor requiere que el cliente que había intentado unir de forma anónima o sin proporcionar las credenciales para proporcionar algún tipo de credenciales. 

H.28. H.28. invalidCredentials (49)------ invalidCredentials (49)

Indicates that the provided credentials (eg, the user's name and password) are invalid. Indica que las credenciales proporcionadas (por ejemplo, el nombre del usuario y la contraseña) no son válidos. 

H.29. H.29. insufficientAccessRights (50)------ insufficientAccessRights (50)

Indicates that the client does not have sufficient access rights to perform the operation. Indica que el cliente no tiene suficientes derechos de acceso para realizar la operación. 

H.30. H.30. busy (51)----- ocupados (51)

Indicates that the server is too busy to service the operation. Indica que el servidor está demasiado ocupado para atender la operación. 

H.31. H.31. unavailable (52)---- disponible (52)

Indicates that the server is shutting down or a subsystem necessary to complete the operation is offline. Indica que el servidor está cerrando o un subsistema es necesario para completar la operación está en línea. 

H.32. H.32. unwillingToPerform (53)----- unwillingToPerform (53)

Indicates that the server is unwilling to perform the operation. Indica que el servidor no está dispuesto a realizar la operación. 

H.33. H.33. loopDetect (54)----- loopDetect (54)

Indicates that the server has detected an internal loop (eg, while dereferencing aliases or chaining an operation).Indica que el servidor ha detectado un bucle interno (por ejemplo, mientras que desreferenciar alias o el encadenamiento de una operación). 

H.34. H.34. namingViolation (64)----- namingViolation (64)

Indicates that the entry's name violates naming restrictions. Indica que el nombre de la entrada viola las restricciones de nomenclatura. 

H.35. H.35. objectClassViolation (65)----- objectClassViolation (65)

Indicates that the entry violates object class restrictions. Indica que la entrada viola las restricciones de clase de objeto. 

H.36. H.36. notAllowedOnNonLeaf (66)------ notAllowedOnNonLeaf (66)

Indicates that the operation is inappropriately acting upon a non-leaf entry. Indica que la operación es inadecuada atendiendo a una entrada no hoja. 

H.37. H.37. notAllowedOnRDN (67)----- notAllowedOnRDN (67)

Indicates that the operation is inappropriately attempting to remove a value that forms the entry's relative distinguished name. Indica que la operación es inapropiada de intentar quitar un valor que forma la entrada del nombre completo relativo. 

H.38. H.38. entryAlreadyExists (68)----- entryAlreadyExists (68)

Indicates that the request cannot be fulfilled (added, moved, or renamed) as the target entry already exists. Indica que la solicitud no puede ser cumplida (añadido, movido o cambiado de nombre) como la entrada de destino ya existe. 

H.39. H.39. objectClassModsProhibited (69)------ objectClassModsProhibited (69)

Indicates that an attempt to modify the object class(es) of an entry's 'objectClass' attribute is prohibited. Indica que un intento de modificar la clase de objeto (s) de un atributo de una entrada 'objectClass' está prohibido.  For example, this code is returned when a client attempts to modify the structural object class of an entry. Por ejemplo, este código se devuelve cuando un cliente intenta modificar la clase de objeto estructural de una entrada. 

H.40. H.40. affectsMultipleDSAs (71)----- affectsMultipleDSAs (71)

Indicates that the operation cannot be performed as it would affect multiple servers (DSAs). Indica que la operación no se puede realizar ya que afectaría a múltiples servidores (DSC). 

H.41. H.41. other (80)----- otros (80)

Indicates the server has encountered an internal error. Indica que el servidor ha encontrado un error interno.