Usando Linux para muchas cosas y disfrutando de videojuegos, en dispositivos moviles, consolas y pc. Using Linux for many things and enjoying video games, mobile devices, consoles and pc

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

Como instalar phpldapadmin en centos

Drivemeca instalando phpLDAPadmin en Linux Centos paso a paso
No todos tienen el conocimiento para manejar OpenLDAP desde la linea de comandos. Pero para eso existe phpldapadmin, una interfaz web que nos permitirá administrar nuestro OpenLDAP y la cual hoy les mostrare como instalar y configurar paso a paso.

Requerimientos para instalar phpLDAPadmin en Linux Centos

  • Servidor Linux Centos
  • Apache
  • Php
  • OpenLDAP
  • Nuestro servidor para este articulo esta en la ip 192.168.1.167
-Instalamos dependencias
yum install httpd php* wget

-Habilitamos y ejecutamos Apache
systemctl enable httpd
systemctl start httpd

-Nos cambiamos de directorio y descargamos la ultima versión de phpldapadmin, en este caso la 1.2.3 y la descomprimimos

cd /var/www/html
wget -c http://downloads.sourceforge.net/project/phpldapadmin/phpldapadmin-php5/1.2.3/phpldapadmin-1.2.3.tgz
tar xzvf phpldapadmin-1.2.3.tgz

-Cambiamos el nombre del directorio, entramos a el y renombramos el fichero de ejemplo de configuración
mv phpldapadmin-1.2.3 phpldapadmin
cd phpldapadmin
cp config/config.php.example config/config.php

-Activamos permisos de apache
chown -R apache.apache ../phpldapadmin

Uso de phpLDAPadmin

-Abrimos un browser y navegamos al url http://192.168.1.167/phpldapadmin/
Drivemeca instalando phpLDAPadmin en Linux Centos paso a paso

-Damos click al link Login y escribimos los datos del usuario administrativo de OpenLDAP, en este caso Manager del dominio test.com y damos click al botón Authenticate
Drivemeca instalando phpLDAPadmin en Linux Centos paso a paso

-Ya dentro veremos las opciones a la izquierda en un árbol desplegable
Drivemeca instalando phpLDAPadmin en Linux Centos paso a paso

-Si damos click a la primera rama del árbol, el usuario Manager, se nos mostraran las opciones que tenemos como por ejemplo agregar otro atributo
Drivemeca instalando phpLDAPadmin en Linux Centos paso a paso

-Si escogemos crear un nuevo objeto, se mostraran las plantillas (templates) que podemos usar
Drivemeca instalando phpLDAPadmin en Linux Centos paso a paso

-Y al terminar es recomendable cerrar la sección desde el botón logout
Drivemeca instalando phpLDAPadmin en Linux Centos paso a paso

Artículos recomendadosComo instalar Clamav y usarlo en Linux paso a paso
                                          Potencia tu Linux Centos e instala los repositorios RPMForge / Epel / Remi
                                           Como instalar Perl en Linux Centos 7 paso a paso
                                           Como administrar usuarios en Centos
                                           Como instalar Webmin en Linux Centos paso a paso
                                           Configurando servicios en Linux Centos / RedHat


Ya podemos administrar de una forma mas sencilla nuestro OpenLDAP sin necesidad de conocer tantos comandos. Que tal te pareció este articulo, sencilla la interfaz cierto? Te gusto el articulo? hazme un favor, compártelo en tus redes sociales (compartir es sexy). Escríbeme en los comentarios aquí debajo y pasa la voz compartiendo el tweet.
Sígueme en twitter google+facebook o email y podrás estar enterado de todas mis publicaciones.
Disfrútenlo.

Share/Bookmark

Como instalar y configurar OpenLDAP en Linux Centos 7

DriveMeca instalando y configurando OpenLDAP en Linux Centos 7 paso a paso
Cuenta para el email, cuenta para el CMS, mas y mas cuentas. Llega el momento que no recordamos una contraseña y seguimos duplicando información llegando muchas veces a tener un problema de seguridad por cuentas con contraseñas débiles, sin ellas o sin usar. Bien, para esto una forma elegante de atacar este problema es implementar un LDAP (Lightweight Directory Access Protocol, en español Protocolo Ligero/Simplificado de Acceso a Directorios) y es el tema de nuestro articulo del día de hoy, como instalar y configurar OpenLDAP en Linux Centos 7 paso a paso. El protocolo original es LDAP y de el se han derivado implementaciones como la que hoy veremos, OpenLDAP.
OpenLDAP podríamos decir que es el mas sencillo de implementar pero no entiendas por esto que le falta potencia, nada de eso. Comencemos entonces

Requerimientos



-Instalamos dependencias
yum install openssl gnutls cyrus-sasl-ldap krb5-server-ldap gcc make openssl-devel php httpd wget libtool-ltdl-devel

-En Linux Centos 7 ya no se puede compilar OpenLDAP con db4 por ello instalamos libdb
rpm -vi ftp://ftp.muug.mb.ca/mirror/centos/7.2.1511/os/x86_64/Packages/libdb-5.3.21-19.el7.x86_64.rpm
rpm -vi ftp://ftp.muug.mb.ca/mirror/centos/7.2.1511/os/x86_64/Packages/libdb-devel-5.3.21-19.el7.x86_64.rpm

Descargamos OpenLDAP para Linux Centos 7

-Descargamos la ultima version estable de OpenLDAP de su ftp
wget -c ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release.tgz

Artículos recomendadosConfigurando servicios en Linux Centos / RedHat                                    
                                           15 minutos para configurar un Linux Centos 7 LAMP
                                           Como cambiar zona horaria Linux paso a paso

-Descomprimimos el tgz y entramos a su directorio
tar xzvf openldap-release.tgz
cd openldap-2.4.44

Compilamos el código de OpenLDAP en Linux Centos

-Comenzamos a compilar OpenLDAP, hora de ir por un cafe ;-)
./configure
make depend
make

-Probamos este todo ok, repetimos la dosis de cafe
make test

Instalamos OpenLDAP en Linux Centos

-Si todo esta ok, instalamos
make install

-Agregamos enlaces dinamicos
vi /etc/ld.so.conf
/usr/local/lib

-Activamos cambios
ldconfig

-Editamos la configuracion de slapd y agregamos los datos de nuestro dominio
vi /usr/local/etc/openldap/slapd.conf
database        mdb
maxsize         1073741824
suffix          "dc=test,dc=com"
rootdn          "cn=Manager,dc=test,dc=com"

-Ejecutamos el daemon de OpenLDAP
/usr/local/libexec/slapd

-Lo activamos para que se ejecute cada vez que hagamos boot del servidor
vi /etc/rc.local
/usr/local/libexec/slapd

-Verificamos nuestra configuracion haciendo una búsqueda
/usr/local/bin/ldapsearch -x -b '' -s base '(objectclass=*)' namingContexts
# extended LDIF
#
# LDAPv3
# base <> with scope baseObject
# filter: (objectclass=*)
# requesting: namingContexts 
#

#
dn:
namingContexts: dc=test,dc=com

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1

-Creamos un ldif cuidando no de no dejar espacios en blanco al final de cada linea
vi drivemeca.ldif
dn: dc=test,dc=com
objectclass: dcObject
objectclass: organization
o: DriveMeca Blog 
dc: test


dn: cn=Manager,dc=test,dc=com 
objectclass: organizationalRole
cn: Manager

-Generamos una contraseña
slappasswd
New password: 
Re-enter new password: 
{SSHA}Y3DTO4viBEaGexuGohtQjJhRhrArs5t5

-Agregamos la contraseña a la configuracion
vi /usr/local/etc/openldap/slapd.conf
rootpw          {SSHA}Y3DTO4viBEaGexuGohtQjJhRhrArs5t5

-Buscamos el proceso, lo matamos y lo volvemos a ejecutar para que tome el cambio
ps -ax|grep slapd
20440 ?        Ssl    0:00 /usr/local/libexec/slapd
20443 pts/0    S+     0:00 grep --color=auto slapd

kill -9 20440

/usr/local/libexec/slapd

Verificamos configuracion de OpenLDAP en Linux Centos

-Probamos a agregar una entrada usando el archivo ldif que creamos antes y escribimos la contraseña que ya hemos generado
/usr/local/bin/ldapadd -x -D "cn=Manager,dc=test,dc=com" -W -f drivemeca.ldif
Enter LDAP Password: 
adding new entry "dc=test,dc=com"

adding new entry "cn=Manager,dc=test,dc=com"

-Hacemos una búsqueda verificando funcione
/usr/local/bin/ldapsearch -x -b 'dc=test,dc=com' '(objectclass=*)'
# extended LDIF
#
# LDAPv3
# base <dc=test,dc=com> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#

# test.com
dn: dc=test,dc=com
objectClass: dcObject
objectClass: organization
o: DriveMeca Blog
dc: test

# Manager, test.com
dn: cn=Manager,dc=test,dc=com
objectClass: organizationalRole
cn: Manager

# search result
search: 2
result: 0 Success

# numResponses: 3
# numEntries: 2

-Abrimos el puerto en el firewall y dejamos el cambio permanente sin importar si el servidor linux es reiniciado
firewall-cmd --add-service=ldap --permanent
firewall-cmd --reload

Ya conocías OpenLDAP?, lo usas?, escríbeme en los comentarios aquí debajo y pasa la voz compartiendo el tweet.

Sígueme en twitter google+facebook o email y podrás estar enterado de todas mis publicaciones.
Disfrútenlo.

Share/Bookmark

Como agregar un cliente Fedora 16 o sin cliente a FreeIPA

En anteriores artículos creamos un servidor FreeIPA y un servidor replica FreeIPA. Hoy veremos como agregar y conectar un cliente Linux Fedora.
Los comandos los ejecutaremos desde la cuenta root en un Fedora 16 actualizado al día de hoy.

-Instalamos el cliente
yum install freeipa-client --enablerepo=updates-testing

-En caso de ser nuestra estacion de trabajo o de una persona que requerira trabajar con la administración de FreeIPA, el comando seria:

yum install freeipa-client freeipa-admintools --enablerepo=updates-testing

-Ejecutamos el script

ipa-client-install --server ipatest.example.com --domain example.com
DNS domain 'example.com' is not configured for automatic KDC address lookup.
KDC address will be set to fixed value.

Discovery was successful!
Hostname: vefemeca.example.com
Realm: EXAMPLE.COM
DNS Domain: example.com
IPA Server: ipatest.example.com
BaseDN: dc=example,dc=com


Continue to configure the system with these values? [no]:yes

User authorized to enroll computers: admin
Synchronizing time with KDC...
Password for admin@EXAMPLE.COM:

Enrolled in IPA realm EXAMPLE.COM
Created /etc/ipa/default.conf
New SSSD config will be created.
Configured /etc/sssd/sssd.conf
Configured /etc/krb5.conf for IPA realm EXAMPLE.COM
Warning: Hostname (vefemeca.example.com) not found in DNS
Failed to update DNS A record. (Command '/usr/bin/nsupdate -g /etc/ipa/.dns_update.txt' returned non-zero exit status 1)
SSSD enabled
NTP enabled
Client configuration complete.

En este caso da un warning debido a que no tengo (ni quiero) un campo A en la zona DNS para esta pc con Fedora. Pero no es problema.

-Abrimos firefox y apuntamos a https://ipatest.example.com. En caso de no mostrar la interfaz administrativa de FreeIPA si no da el siguiente error mostrado en la imagen

-Le damos click a "follow these directions"
-Importamos el certificado del server FreeIPA dando click en el link mostrado
-Activamos las opciones mostradas y damos click en Ok
-Damos click en el botón "Configure Firefox" y con esto nos queda configurado nuestro browser.

En caso de tener otro equipo al que no le hemos instalado el cliente FreeIPA o no es nuestro, ejemplo, el pc en la casa, que no es de la oficina.

Opción 1

-Para conectarnos desde un equipo que no tenga el cliente kerberos de FreeIPA. Comenzamos copiando la conf de kerberos al equipo que no tiene el cliente.

scp root@ipa.example.com:/etc/krb5.conf /etc/krb5_ipa.conf

-Activamos la variable apuntando a este conf

export KRB5_CONFIG=/etc/krb5_ipa.conf

Opción 2

-Modificamos la conf de apache en el server FreeIPA para que permita logearse con contraseña desde un browser sin kerberos

vi /etc/httpd/conf.d/ipa.conf
# Protect /ipa with Kerberos
<Location "/ipa">
  AuthType Kerberos
  AuthName "Kerberos Login"
  KrbMethodNegotiate on
  KrbMethodK5Passwd on
  KrbServiceName HTTP
  KrbAuthRealms TMG.COM
  Krb5KeyTab /etc/httpd/conf/ipa.keytab
  KrbSaveCredentials on
  Require valid-user
  ErrorDocument 401 /ipa/errors/unauthorized.html
</Location>

-Reiniciamos apache

service httpd restart

-Hacemos el anterior cambio en el servidor replica.

-La interfaz Web de FreeIPA


Disfrútenlo
Share/Bookmark

FreeIPA en tu oficina

Algo común es tener varias contraseñas para varios servicios y a la hora de cambiarlas o agregar o sacar a un usuario, es un dolor de cabeza. Por eso existe LDAP pero si vamos un poco mas allá, tenemos a Kerberos, dándole mas seguridad al proceso de autenticación. NTP y DNS aseguran que todos tengan la misma información.
Hoy veremos FreeIPA, una solución muy asequible que poco a poco a ido ganando madurez.
Debido a que es un proyecto para RedHat probado en Fedora, haremos nuestra instalación en un Fedora 16 con lo mínimo instalado y actualizado al día.

-Requerimientos:
Server con ip publica
Zona DNS que apunte al hostname del server, no funcionara con una ip privada o con localhost. Si tiene dudas de como generar la zona DNS al instalar puede usar --setup-dns para que se genere una que pueda colocar en su DNS

-Abrimos los puertos necesitados en iptables.

vi /etc/sysconfig/iptables

#http/https
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
#LDAP/LDAPS
-A INPUT -m state --state NEW -m tcp -p tcp --dport 389 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 636 -j ACCEPT
#Kerberos
-A INPUT -m state --state NEW -m tcp -p tcp --dport 88 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 88 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 464 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 464 -j ACCEPT
#DNS
-A INPUT -m state --state NEW -m tcp -p tcp --dport 53 -j ACCEPT
# NTP
-A INPUT -m state --state NEW -m udp -p udp --dport 123 -j ACCEPT
# Dogtag
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9180 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9443 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9444 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9445 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9446 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9701 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 7389 -j ACCEPT

-Salimos salvando y reiniciamos el servicio

service iptables restart

-Verificamos ports
iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination        
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
ACCEPT     icmp --  anywhere             anywhere           
ACCEPT     all  --  anywhere             anywhere           
ACCEPT     all  --  anywhere             anywhere           
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:http
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:https
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:ldap
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:ldaps
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:kerberos
ACCEPT     udp  --  anywhere             anywhere             state NEW udp dpt:kerberos
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:kpasswd
ACCEPT     udp  --  anywhere             anywhere             state NEW udp dpt:kpasswd
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:domain
ACCEPT     udp  --  anywhere             anywhere             state NEW udp dpt:domain
ACCEPT     udp  --  anywhere             anywhere             state NEW udp dpt:ntp
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:9180
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:tungsten-https
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:wso2esb-console
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:9445
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:9446
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:9701
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:7389
REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination        
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
ACCEPT     icmp --  anywhere             anywhere           
ACCEPT     all  --  anywhere             anywhere           
ACCEPT     all  --  anywhere             anywhere           
REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

-Verificamos nuestro file hosts, ejemplo de uno bien configurado. OJO, cambiar la ip privada por la publica que usen.

cat /etc/hosts

127.0.0.1    localhost.localdomain    localhost
::1        localhost6.localdomain6    localhost6
192.168.1.1    ipatest.example.com    ipatest

-Desactivamos NetworkManager y activamos network

chkconfig NetworkManager off
service NetworkManager stop
chkconfig NetworkManagerDispatcher off
service NetworkManagerDispatcher stop
chkconfig network on
service network start

-Reiniciamos el server
reboot

-Instalamos, hora de ir por un cafe ;-)
yum install freeipa-server --enablerepo=updates-testing

-En caso de presentarse un error con libipa_hbac eliminarlo para que instale otra version

rpm -e libipa_hbac-1.8.2-10.fc16.i686 --nodeps

-Comenzamos a configurar. Para aceptar los defaults damos ENTER

ipa-server-install

Si todo marcha bien, después de un largo proceso terminara creándonos una zona de ejemplo para DNS en /tmp y diciéndonos que ports debemos abrir en el firewall.
Un motivo común de error es no tener el server en una ip publica con un domain valido en nuestros DNS y la ip con una reverse zone. Para eso agregamos el hostname a una zona que ya tengamos con nuestro domain y verificamos que tengamos una reverse zone para la ip publica que estamos usando. Si no tenemos esto, el script simplemente abortara. Lo podremos ejecutar nuevamente cuando tengamos esto listo.
Agregamos a nuestra zona DNS los parámetros que nos da en la zona de ejemplo:

ipatest            IN A            192.168.1.1
;
; ldap servers
_ldap._tcp        IN SRV 0 100 389    ipatest
;kerberos realm
_kerberos        IN TXT EXAMPLE.COM
; kerberos servers
_kerberos._tcp        IN SRV 0 100 88        ipatest
_kerberos._udp        IN SRV 0 100 88        ipatest
_kerberos-master._tcp    IN SRV 0 100 88        ipatest
_kerberos-master._udp    IN SRV 0 100 88        ipatest
_kpasswd._tcp        IN SRV 0 100 464    ipatest
_kpasswd._udp        IN SRV 0 100 464    ipatest
;ntp server
_ntp._udp        IN SRV 0 100 123    ipatest
; ldap servers
;kerberos realm
;ntp server

-Reiniciamos el servicio sshd para que lea los cambios.

service sshd restart

-Probamos la configuración. El pass es el que colocamos a Directory Manager

/usr/bin/kinit admin

-Verificamos haya creado un ticket

/usr/bin/klist

-Verificamos usuario

/usr/bin/ipa user-find admin
--------------
1 user matched
--------------
  User login: admin
  Last name: Administrator
  Home directory: /home/admin
  Login shell: /bin/bash
  UID: 878200000
  GID: 878200000
  Account disabled: False
  Keytab: True
  Password: True
----------------------------
Number of entries returned 1
----------------------------

-Hacemos un backup de ca-agent.p12 y cacert.p12

mkdir ca-backup
cp ca-agent.p12 cacert.p12 ca-backup

Con esto ya tenemos instalado y configurado un server Fedora con FreeIPA, en proximos articulos les mostrare como configurar una replica y conectar clientes.
Disfrútenlo
Share/Bookmark