389 Directory Server
389 Directory Server
The 389 directory server is a LDAP (Lightweight directory access protocol) server developed by
Red Hat. The name 389 is derived from the LDAP port number. Though 389 server is being built
on top of fedora, it supports many operating system such as CentOS, Scientific Linux, Debian
and solaris etc.
Features:
Prerequistes:
1. Make sure that your server is properly configured with DNS server with proper FQDN.
Navigate to this link to congure your DNS server.
2. Configure the firewall to allow LDAP ports in your server. To do that open the iptables
config file and enter the lines as shown below. Changes which i have made in the config
files are shown in bold letters.
[root@server ~]# nano /etc/sysconfig/iptables
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
-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
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9830 -j ACCEPT
COMMIT
[
[
[
[
OK
OK
OK
OK
]
]
]
]
1. Before start to install and configure 389 directory server we should adjust some
performance and security settings in the server.
5.1. Open the /etc/sysctl.conf file and add the lines as shown below. Changes which i have made
in the config files are shown in bold letters.
[root@server ~]# nano /etc/sysctl.conf
#
# Kernel sysctl configuration file for Red Hat Linux
# For binary values, 0 is disabled, 1 is enabled. See sysctl(8) and
# sysctl.conf(5) for more details.
# Controls IP packet forwarding
net.ipv4.ip_forward = 0
# Controls source route verification
net.ipv4.conf.default.rp_filter = 1
# Do not accept source routing
net.ipv4.conf.default.accept_source_route = 0
# Controls the System Request debugging functionality of the kernel
kernel.sysrq = 0
# Controls whether core dumps will append the PID to the core filename.
# Useful for debugging multi-threaded applications.
kernel.core_uses_pid = 1
5.2. Edit the file descriptors in /etc/security/limits.conf file and add the lines as shown below at
the end. Changes which i have made in the config files are shown in bold letters.
[root@server ~]# nano /etc/security/limits.conf
# /etc/security/limits.conf
#
#Each line describes a limit for a user in the form:
#
#<domain>
<type> <item> <value>
#
#Where:
#<domain> can be:
#
- an user name
#
- a group name, with @group syntax
#
- the wildcard *, for default entry
#
- the wildcard %, can be also used with %group syntax,
#
for maxlogin limit
#
#<type> can have the two values:
#
- "soft" for enforcing the soft limits
#
- "hard" for enforcing hard limits
#
#<item> can be one of the following:
#
- core - limits the core file size (KB)
#
- data - max data size (KB)
#
- fsize - maximum filesize (KB)
#
- memlock - max locked-in-memory address space (KB)
#
- nofile - max number of open files
#
- rss - max resident set size (KB)
#
- stack - max stack size (KB)
#
- cpu - max CPU time (MIN)
#
- nproc - max number of processes
#
- as - address space limit (KB)
#
- maxlogins - max number of logins for this user
#
- maxsyslogins - max number of logins on the system
#
- priority - the priority to run user process with
#
- locks - max number of file locks the user can hold
#
- sigpending - max number of pending signals
#
- msgqueue - max memory used by POSIX message queues (bytes)
#
- nice - max nice priority allowed to raise to values: [-20, 19]
#
- rtprio - max realtime priority
#
#<domain>
<type> <item>
<value>
#
#*
soft
core
0
#*
hard
rss
10000
#@student
hard
nproc
20
#@faculty
soft
nproc
20
#@faculty
hard
nproc
50
#ftp
hard
nproc
0
#@student
maxlogins
4
# End of file
*softnofile8192
*hardnofile8192
5.3. Open the /etc/profile file and add the line as shown below. Changes are shown in bold.
[root@server ~]# nano /etc/profile
# /etc/profile
# System wide environment and startup programs, for login setup
# Functions and aliases go in /etc/bashrc
# It's NOT a good idea to change this file unless you know what you
# are doing. It's much better to create a custom.sh shell script in
# /etc/profile.d/ to make custom changes to your environment, as this
# will prevent the need for merging in future updates.
pathmunge () {
case ":${PATH}:" in
*:"$1":*)
;;
*)
if [ "$2" = "after" ] ; then
PATH=$PATH:$1
else
PATH=$1:$PATH
fi
esac
}
if [ -x /usr/bin/id ]; then
if [ -z "$EUID" ]; then
# ksh workaround
EUID=`id -u`
UID=`id -ru`
fi
USER="`id -un`"
LOGNAME=$USER
MAIL="/var/spool/mail/$USER"
fi
# Path manipulation
if [ "$EUID" = "0" ]; then
pathmunge /sbin
pathmunge /usr/sbin
pathmunge /usr/local/sbin
else
pathmunge /usr/local/sbin after
pathmunge /usr/sbin after
pathmunge /sbin after
fi
HOSTNAME=`/bin/hostname 2>/dev/null`
HISTSIZE=1000
if [ "$HISTCONTROL" = "ignorespace" ] ; then
export HISTCONTROL=ignoreboth
else
export HISTCONTROL=ignoredups
fi
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL
# By default, we want umask to get set. This sets it for login shell
# Current threshold for system reserved uid/gids is 200
# You could check uidgid reservation validity in
# /usr/share/doc/setup-*/uidgid file
if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
umask 002
else
umask 022
fi
for i in /etc/profile.d/*.sh ; do
if [ -r "$i" ]; then
if [ "${-#*i}" != "$-" ]; then
. "$i"
else
. "$i" >/dev/null 2>&1
fi
fi
done
unset i
unset pathmunge
ulimit-n8192
5.4. Add the following to the end of your /etc/pam.d/login file as shown below. Changes which i
have made in the config files are shown in bold letters.
[root@server ~]# nano /etc/pam.d/login
#%PAM-1.0
auth [user_unknown=ignore success=ok ignore=ignore default=bad]
pam_securetty.so
auth
include
system-auth
account
required
pam_nologin.so
account
include
system-auth
password
include
system-auth
# pam_selinux.so close should be the first session rule
session
required
pam_selinux.so close
session
required
pam_loginuid.so
session
optional
pam_console.so
# pam_selinux.so open should only be followed by sessions to be executed in
the user context
session
required
pam_selinux.so open
session
required
pam_namespace.so
session
optional
pam_keyinit.so force revoke
session
include
system-auth
-session
optional
pam_ck_connector.so
session
required
/lib/security/pam_limits.so
etc. The following output is a report of the items found that need to
be addressed before running this software in a production
environment.
389 Directory Server system tuning analysis version 10-AUGUST-2007.
NOTICE : System is i686-unknown-linux2.6.32-279.el6.i686 (1 processor).
WARNING: 622MB of physical memory is available on the system. 1024MB is
recommended for best performance on large production system.
WARNING: There are only 1024 file descriptors (soft limit) available, which
limit the number of simultaneous connections.
WARNING : The warning messages above should be reviewed before proceeding.
Would you like to continue? [no]: yes ##type yes and press enter##
=============================================================================
=
Choose a setup type:
1. Express
Allows you to quickly set up the servers using the most
common options and pre-defined defaults. Useful for quick
evaluation of the products.
2. Typical
Allows you to specify common defaults and options.
3. Custom
Allows you to specify more advanced options. This is
recommended for experienced server administrators only.
To accept the default shown in brackets, press the Enter key.
Choose a setup type [2]: 2 ##type 2 and press enter##
=============================================================================
=
Enter the fully qualified domain name of the computer
on which you're setting up server software. Using the form
<hostname>.<domainname>
Example: eros.example.com.
To accept the default shown in brackets, press the Enter key.
Warning: This step may take a few minutes if your DNS servers
can not be reached or if DNS is not configured correctly. If
you would rather not wait, hit Ctrl-C and run this program again
with the following command line option to specify the hostname:
General.FullMachineName=your.hostname.domain.name
Computer name [server.ostechnix.com]: ##press enter##
=============================================================================
=
The servers must run as a specific user in a specific group.
It is strongly recommended that this user should have no privileges
on the computer (i.e. a non-root user). The setup procedure
will give this user/group some permissions in specific paths/files
to perform server-specific operations.
If you have not yet created a user and group for the servers,
create this user and group using your native operating
system utilities.
System User [nobody]: fedora-ds ##input your yourname which you created
earlier and press enter##
System Group [nobody]: fedora-ds
=============================================================================
=
Server information is stored in the configuration directory server.
This information is used by the console and administration server to
configure and manage your servers. If you have already set up a
configuration directory server, you should register any servers you
# filter: (objectclass=*)
# requesting: ALL
#
# ostechnix.com
dn: dc=ostechnix,dc=com
objectClass: top
objectClass: domain
dc: ostechnix
# Directory Administrators, ostechnix.com
dn: cn=Directory Administrators,dc=ostechnix,dc=com
objectClass: top
objectClass: groupofuniquenames
cn: Directory Administrators
uniqueMember: cn=Directory Manager
# Groups, ostechnix.com
dn: ou=Groups,dc=ostechnix,dc=com
objectClass: top
objectClass: organizationalunit
ou: Groups
# People, ostechnix.com
dn: ou=People,dc=ostechnix,dc=com
objectClass: top
objectClass: organizationalunit
ou: People
# Special Users, ostechnix.com
dn: ou=Special Users,dc=ostechnix,dc=com
objectClass: top
objectClass: organizationalUnit
ou: Special Users
description: Special Administrative Accounts
# Accounting Managers, Groups, ostechnix.com
dn: cn=Accounting Managers,ou=Groups,dc=ostechnix,dc=com
objectClass: top
objectClass: groupOfUniqueNames
cn: Accounting Managers
ou: groups
description: People who can manage accounting entries
uniqueMember: cn=Directory Manager
# HR Managers, Groups, ostechnix.com
dn: cn=HR Managers,ou=Groups,dc=ostechnix,dc=com
objectClass: top
objectClass: groupOfUniqueNames
cn: HR Managers
ou: groups
description: People who can manage HR entries
uniqueMember: cn=Directory Manager
# QA Managers, Groups, ostechnix.com
dn: cn=QA Managers,ou=Groups,dc=ostechnix,dc=com
objectClass: top
objectClass: groupOfUniqueNames
cn: QA Managers
ou: groups
description: People who can manage QA entries
uniqueMember: cn=Directory Manager
# PD Managers, Groups, ostechnix.com
dn: cn=PD Managers,ou=Groups,dc=ostechnix,dc=com
objectClass: top
objectClass: groupOfUniqueNames
cn: PD Managers
ou: groups
description: People who can manage engineer entries
uniqueMember: cn=Directory Manager
# search result
search: 2
result: 0 Success
# numResponses: 10
# numEntries: 9
If you get search: 2 anywhere in the above result youre done. LDAP server is working now.
Make the LDAP server to start automatically on every reboot.
[root@server ~]# chkconfig dirsrv on
http://sysads.co.uk/2014/05/install-apache-directory-server-2-0-0-m16-ubuntu-14-04/
https://help.ubuntu.com/community/ApacheDS%20-%20LDAP%20-%20Kerberos%20-%20NFS4
https://www.microsoft.com/en-us/download/details.aspx?id=7887
http://www.turnkeylinux.org/domain-controller
Fully functional Samba 4 active directory domain controller installed and operational. (Please
see my Samba 4 howto for further information)
You have attached at least one Windows 7/8 client to the domain.
Remote Server Administration Tools is installed on your Windows host that will be accessing
your domain controller.
You have a basic understanding of Active Directory and working with group policy.
Do not delete 'netlogon' or 'sysvol' as they are required for your domain controller!
7. Right-click on 'Users' and choose 'Properties', then click on the 'Security' tab. Configure
exactly as follows:
Configure the folder to not inherit permissions and remove all existing permissions. This means
removing ALL groups or usernames. You may need to use the 'Advanced' button.
Add the file servers local Administrators group with Full Control of This Folder, Subfolders, and
Files. You will need to click the 'Advanced' button 'For special permissions or advanced settings'
and then 'Change Permissions'.
Add the Domain Admins domain security group with Full Control of This Folder, Subfolders, and
Files.
Add the SYSTEM account with Full Control of This Folder, Subfolders, and Files.
Add the Creator/Owner with Full Control of Subfolders and Files only.
Add the Authenticated Users group with both List Folder/Read Data and Create Folders/Append
Data This Folder Only rights. The Authenticated Users group can be replaced with the desired
group, but do not choose the Everyone group as a best practice. NOTE: Since I am using Samba4
I also needed to add, 'Traverse folder / execute file', 'Create files / write data', and 'Change
permissions'. This is important or else folder redirection will not work!
Now make sure you 'Apply' all changes and click 'OK'. Double, triple check these permissions as
this is the main cause of the folder redirection failure!
8. Right-click on the 'Users' folder and enable 'Always available offline'. This will allow offline
files to work and then sync any files once the client logs back onto the domain (good for laptop
users). Do not enable this if it violates your company's security policy.
9. As a precaution, restart Samba or reboot the server to make sure settings will stick. Once the
Samba4 server has rebooted, double check all the permissions again and make sure 'Always
available offline' is still enabled.
If everything appears to be okay, you can now create the GPO for folder redirection.
3. Either select an already existing GPO that is applied to an OU or create a new one. Right-click
the GPO and choose 'Edit'. Then go to:
User Configuration -> Policies -> Windows Settings -> Folder Redirection
4. Right-click on 'Documents' and select 'Properties'. On the 'Target' tab configure as follows:
Setting: Basic - Redirect everyone's folder to the same location
Target folder location: Create a folder for each user under the root path
Root Path: \\samba.mydomain.com\Users
NOTE: You should notice a preview at the bottom showing 'For user Clair, this folder will be
redirected to: \\samba.mydomain.com\Users\Clair\Documents'
5. At the top select the 'Settings' tab and uncheck the 'Grant the User Exclusive Rights to
Documents' check box. Leave the remaining check boxes unchanged.
6. Click OK to complete the folder redirection configuration. A pop-up opens that states that this
policy will not display the Folder Redirection node if an administrator or user attempts to
configure or view this group policy using policy management tools from Windows 2000,
Windows XP, or Windows Server 2003. Click Yes to accept this warning and configure the
folder redirection.
7. Back in the 'Group Policy Management Editor' window, close the GPO.
8. Make sure that the GPO has 'Authenticated Users' (or another security group you're using)
listed in 'Security Filtering'.
9. Link the new GPO policy (if not done already) to an OU with a user account that can be used
to test this policy. This user must log on to a Windows Vista/7/8 computer to allow proper
processing of this policy.
10. Log on to a Windows Vista/7/8 system with the test user account. After the profile completes
loading, click the Start button, and locate and right-click the Documents folder and then select
Properties. Select the Location tab and verify the path. For example, for a user named Tom, the
path should be \\samba.mydomain.com\Users\Tom\Documents.
Your folder redirection should now work. If you continue to have your 'Documents' folder path
showing C:\Users\xxx and not the server share, it is most likely due to permissions on the root
'Users' folder. The NTFS permissions must be set correctly on the server share or folder
redirection will fail.
Having the correct permissions set on the server share also protects users from accessing another
user's files. If you set the permissions correctly as outlined in this howto you should be able to
test this successfully.
Troubleshooting
You may have to run 'gpupdate' as an admin from the command line on the windows 7 client.
However, a reboot should force the GPO to update on the Windows host.
I noticed I had to reboot the Win 7 client twice in a row after logging in as the test user. Once I
did this twice then my redirections worked.
You may need to reboot the Samba 4 AD DC for permissions to stick on the 'Users\username'
folders. This may not be necessary but worth an attempt if you experience problems.
I must give credit where credit is due. I found this excellent article which details configuring the
NTFS share and creating the group policy object for Windows Server 2008:
Configuring Folder Redirection in Windows Server 2008
Fully functional Samba 4 active directory domain controller installed and operational. (Please
see my Samba 4 howto for further information)
You have attached at least one Windows 7/8 client to the domain.
Remote Server Administration Tools is installed on your Windows host that will be accessing
your domain controller.
You have a basic understanding of Active Directory and working with group policy.
Do not delete 'netlogon' or 'sysvol' as they are required for your domain controller!
7. Right-click on 'Users' and choose 'Properties', then click on the 'Security' tab. Configure
exactly as follows:
Configure the folder to not inherit permissions and remove all existing permissions. This means
removing ALL groups or usernames. You may need to use the 'Advanced' button.
Add the file servers local Administrators group with Full Control of This Folder, Subfolders, and
Files. You will need to click the 'Advanced' button 'For special permissions or advanced settings'
and then 'Change Permissions'.
Add the Domain Admins domain security group with Full Control of This Folder, Subfolders, and
Files.
Add the SYSTEM account with Full Control of This Folder, Subfolders, and Files.
Add the Creator/Owner with Full Control of Subfolders and Files only.
Add the Authenticated Users group with both List Folder/Read Data and Create Folders/Append
Data This Folder Only rights. The Authenticated Users group can be replaced with the desired
group, but do not choose the Everyone group as a best practice. NOTE: Since I am using Samba4
I also needed to add, 'Traverse folder / execute file', 'Create files / write data', and 'Change
permissions'. This is important or else folder redirection will not work!
Now make sure you 'Apply' all changes and click 'OK'. Double, triple check these permissions as
this is the main cause of the folder redirection failure!
8. Right-click on the 'Users' folder and enable 'Always available offline'. This will allow offline
files to work and then sync any files once the client logs back onto the domain (good for laptop
users). Do not enable this if it violates your company's security policy.
9. As a precaution, restart Samba or reboot the server to make sure settings will stick. Once the
Samba4 server has rebooted, double check all the permissions again and make sure 'Always
available offline' is still enabled.
If everything appears to be okay, you can now create the GPO for folder redirection.
3. Either select an already existing GPO that is applied to an OU or create a new one. Right-click
the GPO and choose 'Edit'. Then go to:
User Configuration -> Policies -> Windows Settings -> Folder Redirection
4. Right-click on 'Documents' and select 'Properties'. On the 'Target' tab configure as follows:
Setting: Basic - Redirect everyone's folder to the same location
Target folder location: Create a folder for each user under the root path
Root Path: \\samba.mydomain.com\Users
NOTE: You should notice a preview at the bottom showing 'For user Clair, this folder will be
redirected to: \\samba.mydomain.com\Users\Clair\Documents'
5. At the top select the 'Settings' tab and uncheck the 'Grant the User Exclusive Rights to
Documents' check box. Leave the remaining check boxes unchanged.
6. Click OK to complete the folder redirection configuration. A pop-up opens that states that this
policy will not display the Folder Redirection node if an administrator or user attempts to
configure or view this group policy using policy management tools from Windows 2000,
Windows XP, or Windows Server 2003. Click Yes to accept this warning and configure the
folder redirection.
7. Back in the 'Group Policy Management Editor' window, close the GPO.
8. Make sure that the GPO has 'Authenticated Users' (or another security group you're using)
listed in 'Security Filtering'.
9. Link the new GPO policy (if not done already) to an OU with a user account that can be used
to test this policy. This user must log on to a Windows Vista/7/8 computer to allow proper
processing of this policy.
10. Log on to a Windows Vista/7/8 system with the test user account. After the profile completes
loading, click the Start button, and locate and right-click the Documents folder and then select
Properties. Select the Location tab and verify the path. For example, for a user named Tom, the
path should be \\samba.mydomain.com\Users\Tom\Documents.
Your folder redirection should now work. If you continue to have your 'Documents' folder path
showing C:\Users\xxx and not the server share, it is most likely due to permissions on the root
'Users' folder. The NTFS permissions must be set correctly on the server share or folder
redirection will fail.
Having the correct permissions set on the server share also protects users from accessing another
user's files. If you set the permissions correctly as outlined in this howto you should be able to
test this successfully.
Troubleshooting
You may have to run 'gpupdate' as an admin from the command line on the windows 7 client.
However, a reboot should force the GPO to update on the Windows host.
I noticed I had to reboot the Win 7 client twice in a row after logging in as the test user. Once I
did this twice then my redirections worked.
You may need to reboot the Samba 4 AD DC for permissions to stick on the 'Users\username'
folders. This may not be necessary but worth an attempt if you experience problems.
http://www.linuxscrew.com/2008/07/04/openldap-samba-domain-controller-on-debian-or-ubuntu/
http://www.topbestalternatives.com/2014/top-5-alternatives-to-microsoft-active-directory/
http://www.mactech.com/articles/mactech/Vol.25/25.01/IntegratingOSXWithOpenLDAPandSambaPart2/index.html
http://www.shabangs.net/zentyal/centralizing-usergroup-management-for-mac-osx-with-zentyal/
http://blog.pluralsight.com/join-mac-to-windows-domain
http://macosx.com/threads/join-to-a-samba-pdc.273499/
https://4sysops.com/archives/how-to-join-a-mac-os-x-computer-to-active-directory/
My scenario:
My domain controller is on a remote location and I've got my router
(Mikrotik) setup to create a PPTP tunnel to the w2k8 server as a domain
user, NAT and routes setup accordingly, not covered here.
Desktop computer running OSX ML 10.8.4 (mine is a custom build)
Domain: example.local
PDC: samba.example.local (10.10.10.5) Samba4
BDC1: bdc.example.local (10.10.10.20) Samba4
BDC2: w2k8.example.local (10.10.10.15) W2K8 R2
Now for the exciting part
1. Configure OSX for Kerberos authentication
Copy krb5.conf from your Samba4 Domain controller to your Mac then
from a Terminal:
|$ sudo mv /Path/To/krb5.conf /etc/|
|$ sudo chown root:wheel /etc/krb5.conf|
|$ sudo chmod ||644| |/etc/krb5.conf|
Confirm that you can successfully obtain a Kerberos Ticket Granting
Ticket (TGT):
Use "kinit" with your username to generate a ticket. Use "kilst" to show
that your userID has a "krbtgt" ticket, then use "kdestroy" to
destroy/invalidate the ticket.
Last login: Sat Jun 22 20:59:53 on console
localhost:~ dave$ kinit david [PRESS ENTER]
david at EXAMPLE.LOCAL's Password: [ENTER USER'S PASSWORD]
localhost:~ dave$ klist [PRESS ENTER]
Credentials cache: API:501:5
Principal: david at EXAMPLE.LOCAL
Issued
Expires
Jun 23 15:02:28 2013 Jun 24 01:02:20 2013
krbtgt/EXAMPLE.LOCAL at EXAMPLE.LOCAL
Principal
Use a Terminal.app text editor like 'vi' or 'nano', use a GUI editor
like TextWrangler, BBEdit, or TextMate, or use this terminal command:
/usr/bin/perl -pi -e 's/auth
optional
pam_krb5.so
use_first_pass use_kcminit/auth
optional
pam_krb5.so
use_first_pass use_kcminit default_principal
auth
sufficient
pam_krb5.so use_first_pass
default_principal/g' "/etc/pam.d/authorization"
Check the /etc/pam.d/authorization looks like the following example:
$ cat /etc/pam.d/authorization
# authorization: auth account
auth
optional
pam_krb5.so use_first_pass use_kcminit
default_principal
auth
sufficient
pam_krb5.so use_first_pass default_principal
auth
optional
pam_ntlm.so use_first_pass
auth
required
pam_opendirectory.so use_first_pass nullok
account
required
pam_opendirectory.so
4) Test Logins
Restart, login with your Penn State Access ID, open terminal and verify
that you have a ticket with "klist". Open System Preferences and
"Accounts" to verify you are a network user.
If you have some users that can login and others that can't, it's
possible that they are not yet listed in LDAP, OR their LDAP attributes
might be missing or have the wrong case. To check for a userid, do the
follow from the command line (terminal.app):
$ ldapsearch -h example.local -x -b "dc=example,dc=local" "uid=david" >
/tmp/ldap-data.txt
$ grep "uid:" /tmp/ldap-data.txt ; grep "psDirIDN:" /tmp/ldap-data.txt ;
http://apple.stackexchange.com/questions/21246/mac-os-binding-to-samba-pdc
https://hermanbanken.nl/2011/01/22/openldap-server-mac-osx-clients/
https://derflounder.wordpress.com/2012/03/02/binding-to-a-linux-based-openldap-server-from-10-6-xand-10-7-x/
http://vuksan.com/linux/mac-os-x-ldap/openldap-mac-os-x-authentication.html
http://hermanbanken.nl/2011/01/22/openldap-server-mac-osx-clients/#script
http://www.dummies.com/how-to/content/how-to-bind-mac-os-x-clients-to-a-shared-domain.html
https://www.hawaii.edu/bwiki/display/UHIAM/LDAP+authentication+for+Mac+OS+X+10.7
http://www.drchaos.com/configuring-apple-os-x-with-active-directory/
http://rajeev.name/2006/09/09/integrating-mac-os-x-into-unix-ldap-environment-with-nfs-homedirectories/
http://blog.michael.kuron-germany.de/2009/04/building-your-own-opendirectory-server-on-linux/