Friday, July 1, 2011

LDAP server

Just follow step by step to configure open LDAP server on centos 5 for email clients contact list.
Step1: yum install openldap-server
Step2: vi /etc/openldap/slabd.conf
the following entry you will in your file
#
# See slapd.conf(5) for details on configuration options.
# This file should NOT be world readable.
#
include         /etc/openldap/schema/core.schema
include         /etc/openldap/schema/cosine.schema
include         /etc/openldap/schema/inetorgperson.schema
include         /etc/openldap/schema/nis.schema

# Allow LDAPv2 client connections.  This is NOT the default.
allow bind_v2

# Do not enable referrals until AFTER you have a working directory
# service AND an understanding of referrals.
#referral       ldap://root.openldap.org

pidfile         /var/run/openldap/slapd.pid
argsfile        /var/run/openldap/slapd.args

# Load dynamic backend modules:
# modulepath    /usr/lib/openldap

# Modules available in openldap-servers-overlays RPM package
# Module syncprov.la is now statically linked with slapd and there
# is no need to load it here
# moduleload accesslog.la
# moduleload auditlog.la
# moduleload denyop.la
# moduleload dyngroup.la
# moduleload dynlist.la
# moduleload lastmod.la
# moduleload pcache.la
# moduleload ppolicy.la
# moduleload refint.la
# moduleload retcode.la
# moduleload rwm.la
# moduleload smbk5pwd.la
# moduleload translucent.la
# moduleload unique.la
# moduleload valsort.la

# modules available in openldap-servers-sql RPM package:
# moduleload back_sql.la

# The next three lines allow use of TLS for encrypting connections using a
# dummy test certificate which you can generate by changing to
# /etc/pki/tls/certs, running "make slapd.pem", and fixing permissions on
# slapd.pem so that the ldap user or group can read it.  Your client software
# may balk at self-signed certificates, however.
# TLSCACertificateFile /etc/pki/tls/certs/ca-bundle.crt
# TLSCertificateFile /etc/pki/tls/certs/slapd.pem
# TLSCertificateKeyFile /etc/pki/tls/certs/slapd.pem

# Sample security restrictions
#       Require integrity protection (prevent hijacking)
#       Require 112-bit (3DES or better) encryption for updates
#       Require 63-bit encryption for simple bind
# security ssf=1 update_ssf=112 simple_bind=64

# Sample access control policy:
#       Root DSE: allow anyone to read it
#       Subschema (sub)entry DSE: allow anyone to read it
#       Other DSEs:
#               Allow self write access
#               Allow authenticated users read access
#               Allow anonymous users to authenticate
#       Directives needed to implement policy:
 access to dn.base="" by * read
 access to dn.base="cn=Subschema" by * read
 access to *
        by self write
        by users read
        by anonymous auth
#
# if no access controls are present, the default policy
# allows anyone and everyone to read anything but restricts
# updates to rootdn.  (e.g., "access to * by * read")
#
# rootdn can always read and write EVERYTHING!

#######################################################################
# ldbm and/or bdb database definitions
#######################################################################

database        bdb
suffix          "dc=yourserver,dc=com"
rootdn          "cn=root,dc=yourserver,dc=com"
rootpw          {MD5}X03MO1qnZdYdgyfeuILPmQ==
# Cleartext passwords, especially for the rootdn, should
# be avoided.  See slappasswd(8) and slapd.conf(5) for details.
# Use of strong authentication encouraged.
# rootpw                secret
# rootpw                {crypt}ijFYNcSNctBYg

# The database directory MUST exist prior to running slapd AND
# should only be accessible by the slapd and slap tools.
# Mode 700 recommended.
directory       /var/lib/ldap

# Indices to maintain for this database
index objectClass                       eq,pres
index ou,cn,mail,surname,givenname      eq,pres,sub
index uidNumber,gidNumber,loginShell    eq,pres
index uid,memberUid                     eq,pres,sub
index nisMapName,nisMapEntry            eq,pres,sub
# Replicas of this database
#replogfile /var/lib/ldap/openldap-master-replog
#replica host=ldap-1.example.com:389 starttls=critical
#     bindmethod=sasl saslmech=GSSAPI
#     authcId=host/ldap-master.example.com@EXAMPLE.COM

Make changes in the following file

Step3: vi /usr/share/openldap/migration/migrate_common.ph

# Default DNS domain
$DEFAULT_MAIL_DOMAIN = "yourserver.com";

# Default base
$DEFAULT_BASE = "dc=yourserver,dc=com";

and save the file with  :wq! enter
Stape4: cd /usr/share/openldap/migration/
Step5: ./migrate_base.pl > base.ldif
Step6: vi base.ldif  <--- You can edit the file as your requirement.
Step7:ldapadd -x -W -D "cn=root,dc=yourdomain,dc=com" -f base.ldif
Step8: install phpldapadmin to manager your server graphical
yum  -y install phpldapadmin
Step9: vi /etc/phpldapadmin/config.php
find the following lines in the file.
$ldapservers->SetValue($i,'login','attr','uid');
and change to $ldapservers->SetValue($i,'login','attr','dn'); <--this will allow to use dn as username and password which you used in slabd.conf for root.

Step10: Now start the following services:
chkconfig httpd on
chkconfig ldap on

/etc/init.d/httpd start
/etc/init.d/ldap start
Now open the ldap url  http://localhost/phpldapadmin

2 comments:

  1. Please do tell me some details regarding iptables. I am uncomfortable in its change of settings...

    ReplyDelete
  2. Can you please give here your purpose of your iptables so that we can help you to implement.

    ReplyDelete