Mostrando entradas con la etiqueta CentOS. Mostrar todas las entradas
Mostrando entradas con la etiqueta CentOS. Mostrar todas las entradas

miércoles, 15 de mayo de 2013

Configurar Sudo con LDAP y PHPLdapAdmin.


Necesitamos permitir, que los usuarios que accedan por LDAP a los clientes, puedan hacer sudo su en las máquinas.


Para ello, hay 2 formas, o agregamos el usuario al fichero /etc/sudoers de cada máquina cliente o lo hacemos a través del LDAP.


Nosotros lo haremos vía LDAP para tenerlo centralizado.


En primer lugar, accederemos al servidor de LDAP y crearemos el “schema” SUDOers para LDAP en la siguiente ruta:


cd /etc/openldap/schema/
#vi sudo.schema


Agregaremos la siguiente información:


######################################################
###Se crea sudo.schema para que sea el LDAP el que ###
###permita hacer sudo en los hosts del LDAP.        ###
######################################################

attributetype ( 1.3.6.1.4.1.15953.9.1.1
 NAME 'sudoUser'
 DESC 'User(s) who may  run sudo'
 EQUALITY caseExactIA5Match
 SUBSTR caseExactIA5SubstringsMatch
 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )

attributetype ( 1.3.6.1.4.1.15953.9.1.2
 NAME 'sudoHost'
 DESC 'Host(s) who may run sudo'
 EQUALITY caseExactIA5Match
 SUBSTR caseExactIA5SubstringsMatch
 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )

attributetype ( 1.3.6.1.4.1.15953.9.1.3
 NAME 'sudoCommand'
 DESC 'Command(s) to be executed by sudo'
 EQUALITY caseExactIA5Match
 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )

attributetype ( 1.3.6.1.4.1.15953.9.1.4
 NAME 'sudoRunAs'
 DESC 'User(s) impersonated by sudo'
 EQUALITY caseExactIA5Match
 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )

attributetype ( 1.3.6.1.4.1.15953.9.1.5
 NAME 'sudoOption'
 DESC 'Options(s) followed by sudo'
 EQUALITY caseExactIA5Match
 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )

attributetype ( 1.3.6.1.4.1.15953.9.1.6
 NAME 'sudoRunAsUser'
 DESC 'User(s) impersonated by sudo'
 EQUALITY caseExactIA5Match
 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )

attributetype ( 1.3.6.1.4.1.15953.9.1.7
 NAME 'sudoRunAsGroup'
 DESC 'Group(s) impersonated by sudo'
 EQUALITY caseExactIA5Match
 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )

attributetype ( 1.3.6.1.4.1.15953.9.1.8
 NAME 'sudoNotBefore'
 DESC 'Start of time interval for which the entry is valid'
 EQUALITY generalizedTimeMatch
 ORDERING generalizedTimeOrderingMatch
 SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 )

attributetype ( 1.3.6.1.4.1.15953.9.1.9
NAME 'sudoNotAfter'
 DESC 'End of time interval for which the entry is valid'
 EQUALITY generalizedTimeMatch
 ORDERING generalizedTimeOrderingMatch
 SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 )

attributeTypes ( 1.3.6.1.4.1.15953.9.1.10
  NAME 'sudoOrder'
  DESC 'an integer to order the sudoRole entries'
  EQUALITY integerMatch
  ORDERING integerOrderingMatch
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 )

objectclass ( 1.3.6.1.4.1.15953.9.2.1 NAME 'sudoRole' SUP top AUXILIARY
 DESC 'Sudoer Entries'
 MUST ( cn )
 MAY ( sudoUser $ sudoHost $ sudoCommand $ sudoRunAs $ sudoRunAsUser $ sudoRunAsGroup $ sudoOption $ sudoNotBefore $ sudoNotAfter $ sudoOrder $ description )
      )



Esta información define el esquema del rol SUDOers, si comenzamos desde arriba, veremos todos los atributos de los que disponemos, las últimas líneas, pertenecen al Objeto SudoRole, si os fijáis he puesto AUXILIARY, si buscáis mas info sobre este esquema, encontraréis que pone ESTRUCTURAL, con ambos funciona, pero si usáis PHPLdapAdmin, os recomiendo que pongáis AUXILIARY, ya que si no, hay posibilidades de que el ROL no aparezca para elegirlo, pero si aparecerá en la estructura.


Una vez guardado el fichero, le indicaremos al LDAP su existencia:


#vi /etc/openldap/slapd.conf

include         /etc/openldap/schema/sudo.schema


Reiniciamos el servicio de LDAP:


#/etc/init.d/ldap restart


Aquí es donde si no tenéis PHPLdapAdmin, tendréis que pasaros a otra guía, ya sabéis que no me gusta subir cosas que no he probado.


Pero sólo podrán hacer “sudo su” los usuarios que se encuentren en el grupo SUDOers del LDAP.


Para ello, abriremos el PHPLdapAdmin y crearemos la OU “SUDOers”, una vez creado, agregaremos un nuevo ObjectClass, este será SudoRole, que con los cambios realizados anteriormente, debería aparecer.


Al agregarlo, nos obligará a identificar un CN, este CN sería el nombre del grupo, por decirlo de algún modo.


Ahora podremos agregar los atributos que necesitamos:


sudoCommand
sudoHost
sudoUser
sudoOption


En sudoCommand, pondremos ALL para poder ejecutar cualquier comando, se pueden poner comandos específicos o ![comando] para denegar la ejecución de un comando específico.


En sudoHost, podemos poner ALL para cualquier PC o la ip o nombre del host.


En sudoUser pondremos los nombres de los usuarios que puedan acceder.


En sudoOption podemos indicar que o hace falta password al hacer “sudo su” con un NOPASSWD.




Ya tenemos finalizada la configuración del servidor, ahora pasemos a la de los clientes.


En el cliente, editamos el siguiente fichero:


#vi /etc/ldap.conf


Y agregamos estas líneas al final:


sudoers_base ou=SUDOers,dc=dominio,dc=raíz
#sudoers_debug 2


Con esto, indicamos la ruta de búsqueda de los usuarios que pueden realizar un “sudo su”. La línea de sudoers, la descomentaremos, si tenemos algún problema al realizar el sudo y que nos muestre si la conexión se está realizando correctamente o donde puede estar el fallo.

Con esto se finaliza la configuración de Sudo desde LDAP.

martes, 14 de mayo de 2013

Conf. cliente para usar LDAP.


***Actualmente esta guía es para toda la versión 5 de CentOS***


Necesitamos configurar nuestros equipos clientes y servidores para que el login se realice vía LDAP, ya disponemos del LDAP, por lo que simplemente realizaremos los siguientes cambios en la configuración de los equipos:


Si es posible, se recomienda instalar estos paquetes, para evitar problemas y tener siempre la versión más actualizada (en caso de que no se pudiera, revisar al final del texto las compatibilidades):

#yum install openldap  openldap-clients nss_ldap

Modificaremos los siguientes ficheros:

#vi /etc/sysconfig/autofs

LDAP_URI=”ldap://URLoIPdelServidor”

SEARCH_BASE=”dc=dominio,dc=raiz”         (p.e: “dc=google,dc=com”)

Con esto indicamos la dirección del LDAP y la ruta donde ha de buscar los grupos y usuarios.

Continuamos modificando ficheros:

#vi /etc/pam.d/sshd

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


#vi /etc/pam.d/login

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

Esta modificación en ambos ficheros, permite que al hacer login con un usuario “nuevo”, se genere su home si esta no existe.

Ahora ejecutaremos el siguiente comando, que con la información que le demos, nos configurará automáticamente los ficheros /etc/ldap.conf y /etc/openldap/ldap.conf:

#authconfig-tui
- Marcaremos:
* Utilizar LDAP
* Utilizar contraseña MD5
* Utilizar contraseñas ocultas (shadow)
* Utilizar Autenticación LDAP
- Vamos a Siguiente:
* Servidor: ldap://URLoIPdelServidor
* DN base: dc=dominio,dc=raíz
Al finalizar, si revisamos los ficheros /etc/ldap.conf y /etc/openldap/ldap.conf podremos comprobar que se han añadido estas líneas.

Para ir finalizando, agregaremos el servicio nscd al inicio:

chkconfig --add nscd
chkconfig nscd on

# chkconfig --list |grep nscd
nscd            0:desactivado 1:desactivado 2:activo 3:activo 4:activo 5:activo 6:desactivado

Y reiniciaremos los siguientes servicios:

#/etc/init.d/autofs restart
#/etc/init.d/nscd restart

Si ahora intentamos logarnos con un usuario del LDAP, deberíamos poder acceder sin problemas.

Puede ser, que en alguna máquina nos muestre el siguiente error “This account is currently not available.”
Esto puede deberse a que en el local de la máquina esté nuestro usuario y esté configurado como /sbin/nologin, para ello, cambiaremos esto por un /bin/bash:

#usermod -s /bin/bash NombreUsuario

Como comentario final, indicar que esto es una guía básica, ya que vosotros deberíais tener el LDAP en modo seguro, eso implica que a los clientes tienes que copiarles los certificados del servidor LDAP e indicarlo en los ficheros /etc/ldap.conf y /etc/openldap/ldap.conf
Sobre esta configuración si que hay 200.000 guías, así que seguidlas, por que yo he juntado diferentes guías para montar estos posts.

viernes, 10 de agosto de 2012

Extender disco de un CentOS sobre Hyper-V.

Buenas:

En mi pelea con GIT, decidí instalárlo ayer en mi casa con Virtual PC, debido a que no tengo mucho espacio, opté por ponerle un disco dinámico de 17 GB aproximadamente, al finalizar el GITy ver que funcionaba, los 2GB que ocupaban los guarde en un USB y ale, al curro.

Ya una vez aquí, los formatos de Virtual PC son perfectamente compatibles con Hyper-v (como no!), así que creé una máquina nueva y le puse este disco; terminada esta parte, tenía que darle mas tamaño al disco, así que después de pegarme con la tarjeta de red y ya dejarla configuradita, desde el mismo Hyper-V, extendí el disco y la máquina se levanto correctamente.

Ahora bien, hacía un fdisk -l y me mostraba una partición extraña que no podía montar ni hacer nada de nada.....después de darle vueltas y usar el Gparted (nunca me gustó esta herramienta y me sigue singustar), no conseguí hacer las cosas bien, también culpa mía que no le puse el formato adecuado, así que, después de bucar, encontré "EL POST" con todo lo que necesitaba:

http://www.pedroventura.com/linux/anadir-y-dar-formato-a-un-nuevo-disco-duro-en-linux/

Os resumo los comandos a usar para tenerlos a mano siempre:

Primero listamos todos los discos duros que ha reconocido el sistema operativo con
/sbin/fdisk -l
/sbin/mkfs.ext3 /dev/sda1
Hemos formateado el disco o particón que deseemos como ext3; ahora creamos un directorio donde montar la partición, y la montamos.

mkdir /media/almacen
mount /dev/sda1 /media/almacen/
Lo configuramos en el /etc/fstab para que se quede permanente:
vi /etc/fstab
Al final del fichero  añadimos el punto de montaje para hacerlo permanente
/dev/sda1 /media/almacen ext3 defaults 0 0



      

Seguí los pasos exactos que indicaban en el blog y funcionó a la primera.

Con esto, formateé la partición, le puse de tipo ext3 y la monté sin problemas.

Pues ale! otra chuletilla más!

Un saludo!!

jueves, 22 de marzo de 2012

Como ver la tarjeta de red al instalar CentOS en Hyper-v.


Por defecto, las distribuciones Linux no llevan instaladas los servicios de instalación, es por ello, al instalar una máquina Linux, no se detecte la tarjeta de red correctamente, para que esto no falle y se pueda ver dicha interfaz de red, antes de instalar la máquina, aparte de tenerle asignado una tarjeta de red “física”, le tenemos que agregar desde la configuración de la máquina, una tarjeta de red heredada, con esto, el sistema operativo reconocerá perfectamente la tarjeta de red.

 Por ejemplo si es CentOS, una vez instalado, ejecutamos el

#system-config-network-tui

Y veremos desde la herramienta que detecta perfectamente la tarjeta de red, ahora podemos configurarlo desde aquí o desde /etc/sysconfig/network-scripts.