Instalar Open Ldap
Editamos el archivo /etc/hostname
sudo hostnamectl set-hostname srvldap210.empresa210.local
Edito el archivo /etc/hosts
127.0.0.1 srvldap210.empresa210.local
172.22.210.17 srvldap210.empresa210.local
En caso de eroor, desinstalar ldap
$ dpkg --remove --force-remove-reinstreq slapd
$ dpkg --purge slapd
Instalo software
sudo apt update -y && sudo apt upgrade -y && sudo apt dist-upgrade -y
sudo apt install slapd ldap-utils -y
Compruebo instalación
sudo slapcat
Instalar qemu-guest-agent
sudo apt -y install qemu-guest-agent
sudo systemctl enable qemu-guest-agent
sudo systemctl start qemu-guest-agent
Configuracion de la estructura del directorio
Creo la estructura de directorio
sudo nano unidades210.ldif
dn: ou=grupos,dc=empresa210,dc=local
objectClass: top
objectClass: organizationalUnit
ou: grupos
dn: ou=usuarios,dc=empresa210,dc=local
objectClass: top
objectClass: organizationalUnit
ou: usuarios
sudo ldapadd -x -D cn=admin,dc=empresa210,dc=local -W -f unidades210.ldif
compruebo
sudo slapcat
Creo los grupos en otro fichero ldif
sudo nano grupos210.ldif
dn: ou=SIR1,ou=grupos,dc=empresa210,dc=local
objectClass: top
objectClass: posixGroup
gidNumber: 1003
cn: grupo
dn: ou=SIR2,ou=grupos,dc=empresa210,dc=local
objectClass: top
objectClass: posixGroup
gidNumber: 1004
cn: grupo
sudo ldapadd -x -D cn=admin,dc=empresa210,dc=local -W -f grupos210.ldif
compruebo
sudo slapcat
Genero los hashes para cada usuario
slappasswd
creo el fichero ldif para usuarios
dn: uid=melerom,ou=usuarios,dc=empresa210,dc=local
objectClass: top
objectClass: posixAccount
objectClass: inetOrgPerson
objectClass: person
cn: melerom
uid: melerom
ou: tecnologia
uidNumber: 3000
gidNumber: 5000
homeDirectory: /home/melerom
loginShell: /bin/bash
userPassword: {SSHA}IJQuaPyiyT2akQL50AqBCciLLLflGKqU
sn: Melero
mail: melerom@empresa210.local
givenName: melerom
dn: uid=bhill,ou=usuarios,dc=empresa210,dc=local
objectClass: top
objectClass: posixAccount
objectClass: inetOrgPerson
objectClass: person
cn: bhill
uid: bhill
ou: usuarios
uidNumber: 3001
gidNumber: 5001
homeDirectory: /home/bhill
loginShell: /bin/bash
userPassword: {SSHA}SQ0N7dlh45xqy6gumzLpdafXwNouFwYx
sn: Hill
mail: bhill@empresa210.local
givenName: bhill
sudo ldapadd -x -D cn=admin,dc=empresa210,dc=local -W -f usuarios210.ldif
Comandos para buscar el openldap
ldapsearch -x -b "dc=empresa210,dc=local" uid=melerom sn givenName
Cambios: Creamos el fichero cambios.lidf
sudo nano cambios.ldif
dn: uid=melerom,ou=usuarios,dc=empresa210,dc=local
changetype: modify
replace: mail
mail: melero.m@empresa210.local
ldapmodify -x -D cn=admin,dc=empresa210,dc=local -W -f cambios.ldif
Instalar Interfaz web
Instalar Ldap Account Manager
sudo apt-get install libnss-ldap libpam-ldap ldap-utils -y
escribiremos la dirección IP del servidor y sustituiremos el protocolo ldapi:/// por ldap://.
En el siguiente paso, debemos indicar: dc=empresa210,dc=local
ldap version 3
Si
No
Ya sólo nos queda indicar el nombre de la cuenta LDAP que tendrá privilegios para realizar cambios en las contraseñas
(cn=admin,dc=empresa210,dc=local). Contraseña de administrador
sudo apt install ldap-account-manager
modifico el archivo nsswitch
sudo nano /etc/nsswitch.conf
Añado ldap:
passwd files ldap
group files ldap
shadow files ladap
Añado la última línea al archivo de configuracion /etc/pam.d/common-session esta línea hara que cada usuarios que se cree tenga los permisos 700 sobre su directorio home
session optional pam_mkhomedir.so skel=/etc/skel umask=077
session optional pam_mkhomedir.so skel=/etc/skel umask=077
$ ldapsearch -xH ldap://172.22.210.17 -b “dc=empresa210,dc=local”
instalo nslcd
sudo apt install nslcd
ldap://172.22.210.17/
sudo reboot
Instalo
sudo apt install apache2 php php-cgi libapache2-mod-php php-mbstring php-common php-pear -y
Me aseguto que la version de php sea la correcta
sudo a2enconf php7.4-cgi
sudo systemctl reload apache2
Instalo LAM
sudo apt install ldap-account-manager -y
sudo nano /etc/apache2/conf-enabled/ldap-account-manager.conf
Una vez que tengamos el contenido del archivo en pantalla, localizamos una línea con el siguiente contenido:
# Require all granted
Cuando la hayamos localizado, insertamos un carácter almohadilla (#) delante, para comentarla. A continuación, añadimos una línea debajo con un texto similar al siguiente:
# Require all granted
Require ip 127.0.0.1 172.22.210.17/16
sudo systemctl restart apache2
Iniciar LAM en el 'cliente' si estamos en el server hay que ejecutar tambien el siguiente comando
sudo apt install ldap-account-manager
Escribo en el navegador
172.22.210.17/lam/templates/login.php
A continuacion configuro LAM, cambio la contraseña que viene por defecto (lam) y pongo los datos de mi dominio
Alternativa a LAM
Instalamos phplampadmin
sudo apt install phpldapadmin
Cambiamos algunos parametros de configuración
sudo nano /etc/phpldapadmin/config.php
$servers->setValue('sever', 'host', '172.22.210.17');
$servers->setValue('sever', 'base', array('dc=empresa210,dc=local');
$servers->setValue('login', 'bind:id', 'cn=admin,dc=empresa210,dc=local');
$config->custom->appearance['hide_template_warning'] = true;
Escribir en la barra de direciones del navegador:
172.22.210.17/phpldapadmin
entro en la configuración desde el navegador
Añado mediante ficheros ldif unidad210.ldif
Añado mediante ficheros ldif usuarios210.ldif
hago alguna búsqueda
Conexion con aplicacion Kanboard
Primero instalo el servidor y activo apache y php7.4
sudo a2enconf php7.4-cgi
sudo systemctl restart apache2
sudo systemctl status apache2
Descargo una version compatible con php7.4
wget https://github.com/kanboard/kanboard/archive/refs/tags/v1.2.28.tar.gz
descomprimo y extraigo
tar -xvf v1.2.28.tar.gz
usando snap installo snap y wekan
sudo apt install snap
sudo snap install wekan
Le asigno el puerto 3001 y compruebo que esta a la escucha
sudo snap set wekan port='3001'
systemctl status snap.wekan.wekan
Vuelvo a la carpeta de kanboard que esta en /var/www/html y procedo a cambiar el propietareo para que éste sea www/data con el objetivo de que pueda ejecutarse
sudo chown -R www-data:www-data data
instalo mysql
sudo apt install mysql-server
sudo service mysql status
Entro en el archivo de configuracio de mysql y descomento la línea de bind address, apuntando la de la máquina cliente donde tengo instalada la aplicación.
sudo nano /etc/msql/mysql.conf.d/mysqld.cnf
añado la ip de mi server:
bind-address = 172.20.210.17
mysqlx-bind-address = 127.0.0.1
sudo systemctl restart mysql.service
como root Comandos en mysql para la creaión de un usuario y su password
>create user ‘melerom’@’localhost’ ;
>grant all privileges on *.* to ‘mmelero’@’localhost’ with grant option;
>flush privileges;
Incidencias, Al intentar conectar desde la máquina cliente, he tenido que solucionar un fallo inesperado. Ya que con este proceso de instalación, todo deberia de funcionar según la documentación oficial, pero me he encontrado con que me faltaba un módulo.
sudo apt-get install php7.4-sqlite
sudo phpenmod -v 7.4 sqlsrv pdo_sqlsrv
accedo desde el navegador
Lo siguiente será configurarlo, primero cambiare el password de admin que viene por defecto 'admin', le pondre el mio
A continuacion importo la base de datos desde un fichero ldif para que conecte con mi ldap
Le añado la sabe de datos, user name y password de mi ldap
Me conecto por primera vez con mi usuario
Ahora ya puedo entrar y crear tableros y asignarselo a otros usuarios de mi ldap
Creo tateas como administrador, las veo en el tablero:
Tareas hechas como un usuario
Ahora he subido un pdf y creado una tarea con un usuario sin privilegios
Final mente veo los tres proyectos que se han creado desde los distintos usuarios
Creo otra tarea conun usuario con permisos