Syftet med denna guide är inte en säker installation – snarare en fungerande sådan. För att säkra installationen krävs exempelvis att LDAPS eller StartTLS konfigureras för LDAP, samt att HTTPS konfigueras för NGINX.

Guiden kommer att gå igenom hur OpenLDAP installeras på en Raspberry Pi, som kör Raspbian. Den bör även vara användbar för operativsystem som kör Debian. Övrigt som installeras är en webbserver, samt en frontend som hanterar användarna i LDAP för enkelhetens skull.

Installera paket

Till att börja med, så installeras de viktigaste paketen. I och med att jag föredrar vim framför nano, så väljer jag att även lägga till det bland de andra paketen.

sudo apt-get install vim slapd ldap-utils php5-fpm php5-cli php5-ldap php-apc phpldapadmin nginx

Därefter kommer man att ombedas att ge ett lösenord för LDAP-administratören. Just denna gång behöver man inte ange ett lösenord som man ska komma ihåg, eftersom att lösenordet kommer bli omskrivet när paketen konfigureras.

Konfigurera paket

Nu måste paketen konigureras innan de kan användas.

OpenLDAP

Först konfigureras LDAP, eftersom att hela dess konfiguration inte gås igenom vid installationen. Kör kommandot:

sudo dpkg-reconfigure slapd

Nu måste du komma ihåg lösenordet för administratörskontot för LDAP.

Phpldapadmin

Därefter konfigurerar vi Phpldapadmin. Börja med att modifiera filen /etc/phpldapadmin/config.php så att de motsvarar domänens inställningar.

vim /etc/phpldapadmin/config.php

Leta där efter följande rader:

$servers->setValue('server','base',array(''));
# ...
$servers->setValue('login','bind_id','cn=admin,dc=example,dc=com');
# ...
$servers->setValue('login','bind_pass','secret');

Ändra raderna till det som gäller för din domän. Skulle din domän exempelvis vara qvi.st, så ändras raderna till följande:

Med ”binding” till administratörskontot

$servers->setValue('server','base',array('dc=qvi,dc=st'));
# ...
$servers->setValue('login','bind_id','cn=admin,dc=qvi,dc=st');
# ...
$servers->setValue('login','bind_pass','MittLösenord');

Det går även att använda s.k. Anonymous bind, lämna då både bind_id och bind_pass tomt, som visas nedan.

Utan ”bind”

$servers->setValue('server','base',array('dc=qvi,dc=st'));
# ...
$servers->setValue('login','bind_id','');
# ...
$servers->setValue('login','bind_pass','');

Nginx

Skapa en server-fil för phpLDAPadmin

sudo vim /etc/nginx/sites-available/phpldapadmin

Skriv in följande rader kod i filen:

server {
  listen 80;
  root /usr/share/phpldapadmin/htdocs;
  index index.php index.html;
  server_name _;

  location ~ \.php$ {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    try_files $uri =404;
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  }

  error_log /var/log/nginx/phpldapadmin_error.log;
  access_log /var/log/nginx/phpldapadmin_access.log;
}

Och skapa en symbolsik länk (soft link) av filen som skapades nyss:

sudo ln -s /etc/nginx/sites-available/phpldapadmin /etc/nginx/sites-enabled/phpldapadmin

Därefter avlänkas filen /etc/nginx/sites-enabled/default:

sudo unlink /etc/nginx/sites-enabled/default

Till slut startas webbservern om, och då bör du komma åt det grafiska gränssnittet för phpLDAPadmin.

sudo service nginx restart

Nu går det att även grafiskt konfigurera LDAP, peka då en webbläsare till IP-adressen av din LDAP-server.