====== OpenLDAP Server on Debian ======
This will be based on [[https://www.howtoforge.com/how-to-install-openldap-server-on-debian-and-ubuntu|this article at HowToForge]].
Starting from a fresh (template) Debian install, we'll have to use one **Bridged adapter** on this VM since it has to be accessible from outside the hypervisor's sub-networks.
> nano /etc/network/interfaces
...
# The primary network interface
auto eth0
iface eth0 inet static
#dns-nameservers 8.8.8.8
address 192.168.1.XXX
netmask 255.255.255.0
broadcast 192.168.1.255
network 192.168.1.0
...
==== Install OpenLDAP packages ====
> apt-get update
> apt-get install slapd ldap-utils
Configure LDAP:
> nano /etc/ldap/ldap.conf
#
# LDAP Defaults
#
# See ldap.conf(5) for details
# This file should be world readable but not world writable.
BASE dc=home,dc=brussels
URI ldap://192.168.1.201 ldap://192.168.1.201:666
#SIZELIMIT 12
#TIMELIMIT 15
#DEREF never
# TLS certificates (needed for GnuTLS)
TLS_CACERT /etc/ssl/certs/ca-certificates.crt
Then we reconfigure the LDAP package with the newly introduced values:
> dpkg-reconfigure slapd
* Omit: NO
* DNS domain name: home.brussels
* Organisation: Family
* Password: *****
* Database: HDB
* Remove when purged: YES
* Move old: YES
* LDAPv2: NO
Check install with:
> ldapsearch -x
==== Install phpLDAPadmin ====
We need an Apache server, php and MySQL installed to run phpLDAPadmin Web GUI:
> apt-get install apache2 php5 php5-mysql
> apt-get install phpldapadmin
Then we configure phpLDAPadmin:
> nano -c /etc/phpldapadmin/config.php
[line 85] $config->custom->appearance['timezone'] = 'Europe/Brussels';
[line 161] $config->custom->appearance['hide_template_warning'] = true;
[line 286] $servers->setValue('server','name','Home LDAP Server');
[line 300] $servers->setValue('server','base',array('dc=home,dc=brussels'));
[line 326] $servers->setValue('login','bind_id','cn=admin,dc=home,dc=brussels');
Now we should be able to access the phpLDAPadmin Web GUI at http://192.168.1.201/phpldapadmin
==== Securing access with a self-signed certificate ====
This comes from [[https://www.rosehosting.com/blog/install-and-configure-openldap-and-phpldapadmin-on-ubuntu-14-04/|this article]].
Create a directory to hold your certificate and key:
> mkdir /etc/apache2/ssl
> openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt
After you answer the questions, your certificate and key will be written to the **/etc/apache2/ssl** directory. We need to activate the apache ssl module, and we'll redirect all http requests to https:
> a2enmod ssl
> nano /etc/apache2/sites-enabled/000-default
...
DocumentRoot /var/www
Redirect permanent /phpldapadmin https://192.168.1.201/phpldapadmin
...
Now let's enable the default ssl apache configuration:
> nano -c /etc/apache2/sites-available/default-ssl
...
ServerAdmin webmaster@localhost
ServerName 192.168.1.211
...
[line 43/44]
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
...
> a2ensite default-ssl
> service apache2 restart
We now have an encrypted connection to our LDAP server. [[http://www.linux.com/learn/tutorials/377952:manage-ldap-data-with-phpldapadmin|This article]] gives a basic example of creating and managing groups and users.