<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://k5wiki.kerberos.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Haoqili</id>
		<title>K5Wiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://k5wiki.kerberos.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Haoqili"/>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki/Special:Contributions/Haoqili"/>
		<updated>2026-05-13T02:49:30Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.27.4</generator>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=User_talk:Haoqili&amp;diff=3843</id>
		<title>User talk:Haoqili</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=User_talk:Haoqili&amp;diff=3843"/>
				<updated>2011-03-23T18:18:45Z</updated>
		
		<summary type="html">&lt;p&gt;Haoqili: I moved the notes I had from my personal wiki here. I'm destroying my personal wiki.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Thanks to Tom, Zhanna, Greg, and Will for helping me find the solutions.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;strong&amp;gt;我能, 我能!&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Things to do==&lt;br /&gt;
* figure out why:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
My password for ldap is &amp;quot;a&amp;quot; I have tried both upper and lower cases, but I always get:&lt;br /&gt;
&lt;br /&gt;
$ /usr/local/sbin/kdb5_ldap_util -D cn=admin,dc=example,dc=com -w a -H ldapi:/// create -r EXAMPLE.COM -sf /usr/local/var/krb5kdc/admin.stash -s&lt;br /&gt;
kdb5_ldap_util: Invalid credentials while initializing database&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ldapsearch -H ldapi:/// -x -W -D cn=admin,dc=example,dc=com -LLL =b dc=example,dc=com&lt;br /&gt;
Enter LDAP Password: &lt;br /&gt;
ldap_bind: Invalid credentials (49)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* make keystash in mkm py the right place&lt;br /&gt;
&lt;br /&gt;
==Kerberos Little Bugs I've encountered and fixed (started loggin since Jun 24th).==&lt;br /&gt;
&lt;br /&gt;
* When trying to ''kinit username''&lt;br /&gt;
: ERROR: ''kinit: Cannot contact any KDC for realm [your realm fqdn] while getting initial credentials''&lt;br /&gt;
: SOLUTION: make sure KDC is running. ''/usr/local/sbin/krb5kdc''&lt;br /&gt;
: SOLUTION: 1. check log file.  I looked in /var/log/auth.log.  The bottom of it says: ''Cannot create reply cache file /var/tmp/krb5kdc_rcache: File exits''.  2. ''sudo rm /var/tmp/krb5kdc_rcache.&lt;br /&gt;
&lt;br /&gt;
* Can't start krb5kdc and in auth.log it says:&lt;br /&gt;
: ERROR: ''Address already in use - Cannot bind server socket to port [#] address [IP address]''&lt;br /&gt;
: ERROR: ''&amp;lt;open file '&amp;lt;fdopen&amp;gt;', mode 'rb' at 0x9a38660&amp;gt;''&lt;br /&gt;
: SOLUTION: 1. see if it is true that port [#] is in use by ''netstat -nap | grep [#]'' (I also did ''pgrep -x krb5kdc'').  2. kill the process: ''pkill -x krb5kdc''.  note the &amp;quot;-x&amp;quot; is for matching exactly the process &amp;quot;krb5kdc&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* When changing password 'kpasswd', ''Cannot contact any KDC for realm [your realm fqdn]''&lt;br /&gt;
* and/or Can't start kadmind (know because echo $? = 1).  The last chunk of auth.log says:&lt;br /&gt;
: ERROR: &lt;br /&gt;
::&amp;lt;pre&amp;gt;&lt;br /&gt;
::kadmind[6924]: No dictionary file specified, continuing without one.&lt;br /&gt;
::kadmind[6924]: setting up network...&lt;br /&gt;
::kadmind[6924]: Permission denied - Cannot bind server socket to port 464 address 0.0.0.0&lt;br /&gt;
::kadmind[6924]: setsockopt(6,IPV6_V6ONLY,1) worked&lt;br /&gt;
::kadmind[6924]: Permission denied - Cannot bind server socket to port 464 address ::&lt;br /&gt;
::kadmind[6924]: skipping unrecognized local address family 17&lt;br /&gt;
::kadmind[6924]: skipping unrecognized local address family 17&lt;br /&gt;
::kadmind[6924]: Permission denied - Cannot bind server socket to port 464 address 192.168.165.145&lt;br /&gt;
::kadmind[6924]: setsockopt(6,IPV6_V6ONLY,1) worked&lt;br /&gt;
::kadmind[6924]: Permission denied - Cannot bind TCP server socket on ::.464&lt;br /&gt;
::kadmind[6924]: Permission denied - Cannot bind RPC server socket on 0.0.0.0.749&lt;br /&gt;
::kadmind[6924]: set up 0 sockets&lt;br /&gt;
::kadmind[6924]: no sockets set up?&lt;br /&gt;
::&amp;lt;/pre&amp;gt;&lt;br /&gt;
: Reason (provided by tlyu): It is trying to bind to a privileged port. you need to give it a different port number. actually, two different port numbers: one for password changing and one for normal kadmin.&lt;br /&gt;
: SOLUTION:&lt;br /&gt;
::&amp;lt;pre&amp;gt;&lt;br /&gt;
::In kdc.conf inserted the last two lines here&lt;br /&gt;
::&lt;br /&gt;
::kdc_ports = 8888&lt;br /&gt;
::kpasswd_port = 8887&lt;br /&gt;
::kadmind_port = 8886&lt;br /&gt;
::&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;pre&amp;gt;&lt;br /&gt;
::In krb5.conf modify/insert the lines:&lt;br /&gt;
::&lt;br /&gt;
::admin_server = yourComputerName.domain:8886&lt;br /&gt;
::kpasswd_server = yourComputerName.domain:8887&lt;br /&gt;
::&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Purge key (''kdb5_util purge_mkeys'') gives an error&lt;br /&gt;
: ERROR:&lt;br /&gt;
::&amp;lt;pre&amp;gt;&lt;br /&gt;
::kdb5_util: Invalid argument while updating actkvno data for master principal entry&lt;br /&gt;
::&amp;lt;/pre&amp;gt;&lt;br /&gt;
: SOLUTION:&lt;br /&gt;
::&amp;lt;pre&amp;gt;&lt;br /&gt;
:: #you must activate the keys that have not been &amp;quot;used&amp;quot; like this:&lt;br /&gt;
:: kdb5_util use_mkey kvno [time]&lt;br /&gt;
:: #i.e. kdb5_util use_mkey 2 'now+2days'&lt;br /&gt;
::&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* when running a kadmin command.  Runs into operation requires xx privilege error&lt;br /&gt;
: ERROR:&lt;br /&gt;
::&amp;lt;pre&amp;gt;&lt;br /&gt;
:: $ kadmin -p haoqili/admin -w test123 -q 'listprincs'&lt;br /&gt;
:: Authenticating as principal haoqili/admin with password.&lt;br /&gt;
:: get_principals: Operation requires ``list'' privilege while retrieving list.&lt;br /&gt;
::&amp;lt;/pre&amp;gt;&lt;br /&gt;
: SOLUTION:&lt;br /&gt;
: I didn't create my acl file yet.  In kdc.conf, I have specified ''acl_file = /home/haoqili/kdcfiles/kadm5.acl'' and now I need to create the kadm5.acl&lt;br /&gt;
::&amp;lt;pre&amp;gt;&lt;br /&gt;
:: #kadm5.acl, setting up my &amp;quot;admin&amp;quot; principal with all rights, i.e. *&lt;br /&gt;
:: haoqili/admin *&lt;br /&gt;
::&amp;lt;/pre&amp;gt;&lt;br /&gt;
: Also, before I created the kadm5.acl, I used ''echo $?'' to check the command.  However, it gave me a 0 even though there were stderr.  Tom says: &amp;quot;kadmin is meant to be an interactive program, so exit status might not be as meaningful.&amp;quot;&lt;br /&gt;
:: P.S. I later changed the line in my acl file to be ''*/admin *'' to allow others&lt;br /&gt;
&lt;br /&gt;
==Python Bugs I've encountered and fixed==&lt;br /&gt;
&lt;br /&gt;
* When talking to the terminal shell, a command (in my case, ''kdbt_util add_mkey'') asks for password twice (second time is confirmation).  I first tried:&lt;br /&gt;
::&amp;lt;pre&amp;gt;&lt;br /&gt;
::p = Popen(command.split(), stdin=PIPE, stdout=PIPE, stderr=PIPE)&lt;br /&gt;
::(out, err) = p.communicate('password')&lt;br /&gt;
::(out2, err2) = p.communicate('password')&lt;br /&gt;
::&amp;lt;/pre&amp;gt;&lt;br /&gt;
:When I ran it, I got a chunk of error that ends with: ''ValueError: I/O operation on closed file''.  So what happens is that communicate closes the pipe, it breaks (even if it only runs once).  &amp;lt;br&amp;gt;&lt;br /&gt;
:Solution code:&lt;br /&gt;
::&amp;lt;pre&amp;gt;&lt;br /&gt;
::p = Popen(command.split(), stdin=PIPE, stdout=PIPE, stderr=PIPE)&lt;br /&gt;
::p.stdin.write('password'+'\n')&lt;br /&gt;
::p.stdin.write('password'+'\n')&lt;br /&gt;
::&amp;lt;/pre&amp;gt;&lt;br /&gt;
:Note don't forget the new line at the end.&lt;br /&gt;
&lt;br /&gt;
==Tips.  Useful little things to know==&lt;br /&gt;
=== Kerberos ===&lt;br /&gt;
* [http://web.mit.edu/kerberos/krb5-1.7/krb5-1.7/doc/krb5-admin.html Good link]&lt;br /&gt;
* '' kadmin.local -q 'modprinc +needchange [princname]' '', the flag ''needchange'' forces the principal to change its password upon kinit.&lt;br /&gt;
* '' kadmin.local -q 'modprinc -policy [policyname] [princname]' '' Sets up a policy for the principal.  This &amp;quot;policy&amp;quot; can store previous passwords and ensures that new passwords are not used before.&lt;br /&gt;
* There is a bug in the code 6507    kdb5_util update_princ_encryption uses latest mkey instead of mkey &lt;br /&gt;
* AES has replaced Triple DES but there are still places taht have Triple DES set as the default (such as in ''klist -ekt [path of stash, such as /home/haoqili/kdcfiles/keyStashFile]'')&lt;br /&gt;
* Test date.  Navigate to src/kadmin/cli &lt;br /&gt;
** delete 2nd argument in main of getdate.y&lt;br /&gt;
** ''rm getdate.c''&lt;br /&gt;
** ''make getdate.c''&lt;br /&gt;
** ''gcc -o datetest -DTEST getdate.c -I../../include''&lt;br /&gt;
** ./datetest&lt;br /&gt;
&lt;br /&gt;
* ''kadmind -nofork'' is useful in python because it tells it to wait first so that later processes can happen later and don't have to get timed out.&lt;br /&gt;
::&amp;lt;pre&amp;gt;&lt;br /&gt;
::l0b = self.parentpath+'kadmind -nofork'&lt;br /&gt;
::pl0b = Popen(l0b.split(), stdin=PIPE, stdout=PIPE, stderr=PIPE)&lt;br /&gt;
::        print &amp;quot;kadmind -nofork&amp;quot;&lt;br /&gt;
::        while (True):&lt;br /&gt;
::            l = pl0b.stderr.readline()&lt;br /&gt;
::            if l.find(&amp;quot;starting&amp;quot;) &amp;gt; -1: #for kadmind: starting ...&lt;br /&gt;
::                print l.strip()          &lt;br /&gt;
::                break &lt;br /&gt;
::&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu ===&lt;br /&gt;
* Change computer name: &amp;lt;code&amp;gt;gksudo gedit /etc/hostname&amp;lt;/code&amp;gt;&lt;br /&gt;
* Change Colors&lt;br /&gt;
** Change color of background is easy.  Just go to &amp;quot;Edit&amp;quot; and &amp;quot;Profile Preferences&amp;quot;&lt;br /&gt;
** Change color of the prompt line is more difficult.  [http://ubuntuforums.org/showthread.php?t=614743 Here is a good guide], but it is in a lot more detail than I needed.  You can read that if you don't want the prompt color to be green or want to know how it works. But most basically:&lt;br /&gt;
**# Navigate to home. &amp;lt;code&amp;gt;cd ~/&amp;lt;/code&amp;gt;&lt;br /&gt;
**# &amp;lt;code&amp;gt;vim .bashrc&amp;lt;/code&amp;gt;&lt;br /&gt;
**# Un-comment: &amp;lt;code&amp;gt;#force_color_prompt=yes&amp;lt;/code&amp;gt; by deleting the #&lt;br /&gt;
**# Open a new terminal to see the result&lt;br /&gt;
** I have:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# uncomment for a colored prompt, if the terminal has the capability; turned&lt;br /&gt;
# off by default to not distract the user: the focus in a terminal window&lt;br /&gt;
# should be on the output of commands, not on the prompt&lt;br /&gt;
force_color_prompt=yes&lt;br /&gt;
&lt;br /&gt;
if [ -n &amp;quot;$force_color_prompt&amp;quot; ]; then&lt;br /&gt;
    if [ -x /usr/bin/tput ] &amp;amp;&amp;amp; tput setaf 1 &amp;gt;&amp;amp;/dev/null; then&lt;br /&gt;
        # We have color support; assume it's compliant with Ecma-48&lt;br /&gt;
        # (ISO/IEC-6429). (Lack of such support is extremely rare, and such&lt;br /&gt;
        # a case would tend to support setf rather than setaf.)&lt;br /&gt;
        color_prompt=yes&lt;br /&gt;
    else&lt;br /&gt;
        color_prompt=&lt;br /&gt;
    fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# ANSI color codes&lt;br /&gt;
RS=&amp;quot;\[\033[0m\]&amp;quot;    # reset&lt;br /&gt;
HC=&amp;quot;\[\033[1m\]&amp;quot;    # hicolor&lt;br /&gt;
UL=&amp;quot;\[\033[4m\]&amp;quot;    # underline&lt;br /&gt;
INV=&amp;quot;\[\033[7m\]&amp;quot;   # inverse background and foreground&lt;br /&gt;
FBLK=&amp;quot;\[\033[30m\]&amp;quot; # foreground black&lt;br /&gt;
FRED=&amp;quot;\[\033[31m\]&amp;quot; # foreground red&lt;br /&gt;
FGRN=&amp;quot;\[\033[32m\]&amp;quot; # foreground green&lt;br /&gt;
FYEL=&amp;quot;\[\033[33m\]&amp;quot; # foreground yellow&lt;br /&gt;
FBLE=&amp;quot;\[\033[34m\]&amp;quot; # foreground blue&lt;br /&gt;
FMAG=&amp;quot;\[\033[35m\]&amp;quot; # foreground magenta&lt;br /&gt;
FCYN=&amp;quot;\[\033[36m\]&amp;quot; # foreground cyan&lt;br /&gt;
FWHT=&amp;quot;\[\033[37m\]&amp;quot; # foreground white&lt;br /&gt;
BBLK=&amp;quot;\[\033[40m\]&amp;quot; # background black&lt;br /&gt;
BRED=&amp;quot;\[\033[41m\]&amp;quot; # background red&lt;br /&gt;
BGRN=&amp;quot;\[\033[42m\]&amp;quot; # background green&lt;br /&gt;
BYEL=&amp;quot;\[\033[43m\]&amp;quot; # background yellow&lt;br /&gt;
BBLE=&amp;quot;\[\033[44m\]&amp;quot; # background blue&lt;br /&gt;
BMAG=&amp;quot;\[\033[45m\]&amp;quot; # background magenta&lt;br /&gt;
BCYN=&amp;quot;\[\033[46m\]&amp;quot; # background cyan&lt;br /&gt;
BWHT=&amp;quot;\[\033[47m\]&amp;quot; # background white&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$color_prompt&amp;quot; = yes ]; then&lt;br /&gt;
    # PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '&lt;br /&gt;
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u@\h\[\033[00m\]:\[\033[01;32m\]\w\[\033[00m\]\$ '&lt;br /&gt;
&lt;br /&gt;
    #PS1=&amp;quot;[ ${debian_chroot:+($debian_chroot)}\u: \w ]\\$ &amp;quot;&lt;br /&gt;
    #PS2=&amp;quot;&amp;gt; &amp;quot;&lt;br /&gt;
    #PS1=&amp;quot; $FRED${debian_chroot:+($debian_chroot)}&amp;quot;&lt;br /&gt;
    #PS2=&amp;quot;&amp;gt; &amp;quot;&lt;br /&gt;
else&lt;br /&gt;
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '&lt;br /&gt;
fi&lt;br /&gt;
unset color_prompt force_color_prompt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Change root password:&lt;br /&gt;
** Reboot&lt;br /&gt;
** ESC to Recovery Mode&lt;br /&gt;
** (wait)&lt;br /&gt;
** click: root Drop to root shell prompt&lt;br /&gt;
** &amp;lt;code&amp;gt;ls /home&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;passwd ''username''&amp;lt;/code&amp;gt;&lt;br /&gt;
** change your password&lt;br /&gt;
** &amp;lt;code&amp;gt;exit&amp;lt;/code&amp;gt;&lt;br /&gt;
** click: resume&lt;br /&gt;
* The Caps Lock light is reversed.  &lt;br /&gt;
: Reset Caps  Lock: &amp;lt;code&amp;gt;xmodmap -e &amp;quot;remove Lock = Caps_Lock&amp;quot;&amp;lt;/code&amp;gt; and then &amp;lt;code&amp;gt;xmodmap -e &amp;quot;add Lock = Caps_Lock&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Shell ===&lt;br /&gt;
* [http://www.unixprogram.com/grep/using_egrep.html grep vs. egrep]&lt;br /&gt;
::&amp;lt;pre&amp;gt;&lt;br /&gt;
::The following characters have special meanings in grep or egrep:&lt;br /&gt;
::&lt;br /&gt;
:: In egrep:&lt;br /&gt;
::         | ^ $ . * + ? ( ) [ { } \&lt;br /&gt;
:: In grep:&lt;br /&gt;
::         ^ $ . * \( \) [ \{ \} \&lt;br /&gt;
::&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* 0 = STDIN, 1 = STDOUT, 2 = STDERR.  Like '' blah 2&amp;gt; /dev/null'' puts blah's STDERR into /dev/null&lt;br /&gt;
&lt;br /&gt;
* &amp;gt; overwrites, &amp;gt;&amp;gt; appends&lt;br /&gt;
:: not see what's writing: ''ksh filename &amp;gt; writefilename 2&amp;gt;&amp;amp;1'', the 2&amp;gt;&amp;amp;1 writes the errors as well&lt;br /&gt;
:: see what's writing: ''ksh filename 2&amp;gt;&amp;amp;1 | tee writefilename''&lt;br /&gt;
&lt;br /&gt;
* ksh: typeset'ing vars in a function makes those vars local to the function.&lt;br /&gt;
&lt;br /&gt;
* Avoid typing in sudo password everytime:&lt;br /&gt;
*: Edit &amp;lt;code&amp;gt;/etc/sudoers&amp;lt;/code&amp;gt; such that under the line &amp;lt;code&amp;gt; root ALL=(ALL) ALL&amp;lt;/code&amp;gt;, this line is added: &amp;lt;code&amp;gt; [username] ALL=(ALL) ALL&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Add a path as the first option in a path&lt;br /&gt;
*: e.g. slapd's path.  Currently when you do &amp;lt;code&amp;gt;echo $PATH&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;/usr/local/sbin&amp;lt;/code&amp;gt; shows in front.  I want to add &amp;lt;code&amp;gt;/usr/local/libexec&amp;lt;/code&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export PATH=/usr/local/libexec:$PATH&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Now I have &amp;lt;code&amp;gt;/usr/local/libexec&amp;lt;/code&amp;gt; as the first option under &amp;lt;code&amp;gt;echo $PATH&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;pkill&amp;lt;/code&amp;gt; doesn't always work.  Use &amp;lt;code&amp;gt;pkill -9&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;pkill -15&amp;lt;/code&amp;gt; instead.  Same with &amp;lt;code&amp;gt;sudo kill&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* A Debugger! :D  &amp;lt;code&amp;gt;gdb [command]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Python ===&lt;br /&gt;
&amp;lt;br&amp;gt;Common Stuff&lt;br /&gt;
* Cannot do ''[print line for line in linelist]'' must have a function that prints the line, call it, printl(), and do ''[printl(line) for line in linelist]''&lt;br /&gt;
&lt;br /&gt;
More Specific Stuff&lt;br /&gt;
*''p = Popen('blah', stdin=PIPE, stdout=PIPE, stderr=PIPE)''&lt;br /&gt;
:''(out, err) = p.communicate('inputThing\n')'' &amp;lt;-- don't forget the return &amp;quot;\n&amp;quot; at the end!&lt;br /&gt;
* When you're doing a bunch of p=Popen('shell command') be careful because Popen starts a new branch so the next Popen might start without the previous one having completed.  To fix this problem, put in:&lt;br /&gt;
::&amp;lt;pre&amp;gt;&lt;br /&gt;
::if int(p.wait()) != 0: #meaning that it's not executed&lt;br /&gt;
::    print &amp;quot;error message&amp;quot;&lt;br /&gt;
::    exit&lt;br /&gt;
::&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Two ways to display outputs after Popen( a command that has to get into something, in my case, getting into kadmin.local) 06262009&lt;br /&gt;
:Way 1:&lt;br /&gt;
::&amp;lt;pre&amp;gt;&lt;br /&gt;
::p = Popen(['commannd', 'all', 'in', 'one', 'line'], stdin=PIPE, stdout=PIPE, stderr=PIPE) #e.g. ['kadmin.local', '-q', 'listprincs']&lt;br /&gt;
::if int(p.wait()) != 0:&lt;br /&gt;
::print p.stdout.readlines()&lt;br /&gt;
::&amp;lt;/pre&amp;gt;&lt;br /&gt;
:Way 2:&lt;br /&gt;
::&amp;lt;pre&amp;gt;&lt;br /&gt;
::p = Popen(['command', 'front', 'chunk'], stdin=PIPE, stdout=PIPE, stderr=PIPE) #e.g. ['kadmin.local']&lt;br /&gt;
::(out, err) = p.communicate('rest of command') #e.g. 'listprincs'&lt;br /&gt;
::print out&lt;br /&gt;
::&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Not type in a chunk of common code every time, i.e.&lt;br /&gt;
:: ''p = Popen(cmd, stdin=PIPE, stdout=PIPE, stderr=PIPE)''&lt;br /&gt;
:This can be changed to:&lt;br /&gt;
::&amp;lt;pre&amp;gt;&lt;br /&gt;
:: s = {stdin:PIPE, stdout=PIPE, stderr=PIPE}&lt;br /&gt;
:: p = Popen(cmd, **s)&lt;br /&gt;
::&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* For putting in a shell command directly, can turn shell=True.  Note the command here can be a single line of string, not split up.&lt;br /&gt;
:: '' p = Popen(command, shell=True, stdin=PIPE, stdout=PIPE, stderr=PIPE)&lt;br /&gt;
&lt;br /&gt;
* The p.stdout.readlines() can be read only once&lt;br /&gt;
&lt;br /&gt;
* Print current time in python:&lt;br /&gt;
::&amp;lt;pre&amp;gt;&lt;br /&gt;
:: from time import strftime&lt;br /&gt;
:: print &amp;quot;current time: &amp;quot;+strftime(&amp;quot;%Y-%m-%d %H:%M:%S&amp;quot;)&lt;br /&gt;
::&amp;lt;/pre&amp;gt;&lt;br /&gt;
: Output: ''current time: 2009-07-06 22:00:54''&lt;br /&gt;
&lt;br /&gt;
* Sleep for 7 seconds.  &lt;br /&gt;
::&amp;lt;pre&amp;gt;&lt;br /&gt;
:: import time&lt;br /&gt;
:: time.sleep(7)&lt;br /&gt;
::&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Popen( env=blah ) this argument only needs to be specified when the environment is changing&lt;br /&gt;
&lt;br /&gt;
* To terminate a while loop after 3 seconds do: &amp;lt;code&amp;gt;while time.clock() &amp;lt; 3: blah&amp;lt;/code&amp;gt; remember to &amp;lt;code&amp;gt;import time&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Kadmin's wait() number (exit number) failed to point out that there is an error.  The chunk below was generated when I tested it manually.  It clearly pointed out that the acl file is missing (documented before).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ kadmin -p haoqili/admin -w test123 -q 'getprinc test'&lt;br /&gt;
Authenticating as principal haoqili/admin with password.&lt;br /&gt;
get_principal: Operation requires ``get'' privilege while retrieving &amp;quot;test@K.MIT.EDU&amp;quot;.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
: What I saw in the output of the test was just the line &amp;quot;Authenticating ...&amp;quot;, because wait() = 0, I only printed out stdout.  However the last line was in the stderr.  So I asked Tom if the existence of a stderr message is a better indicator of the success/failure of a command compared to the exit number.  The answer is &amp;quot;not necessarily&amp;quot;.  &lt;br /&gt;
:Tom: Some programs write things to stderr even when there's not an error.&amp;lt;br&amp;gt;&lt;br /&gt;
:Me: why would they do that?&amp;lt;br&amp;gt;&lt;br /&gt;
:Tom: various reasons. sometimes prompts are written to stderr so they won't end up in redirected output by default.&lt;br /&gt;
&lt;br /&gt;
* Ordering of stdout/stderr messages:&lt;br /&gt;
: Tom: if you use separate pipes for stderr and stdout, you may get the relative ordering of the messages mixed up if you print all stdout, then print all stderr.&lt;br /&gt;
: Me: right now I have stdin=PIPE, stdout=PIPE, stderr=PIPE. Is this separate pipes or the same pipe?&lt;br /&gt;
: Tom: separate pipes, i think.&lt;br /&gt;
: Tom: so to get program output in order, i would make stderr=STDOUT when creating the subprocess, and check the value of wait()&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
p = Popen('/bin/sh stdouterr.sh', shell=True, stdin=PIPE, stdout=PIPE,&lt;br /&gt;
         stderr=PIPE)&lt;br /&gt;
&lt;br /&gt;
This gives all outputs together, and all errors together&lt;br /&gt;
&lt;br /&gt;
= = = &lt;br /&gt;
&lt;br /&gt;
p = Popen('/bin/sh stdouterr.sh', shell=True, stdin=PIPE, stdout=PIPE,&lt;br /&gt;
         stderr=STDOUT)&lt;br /&gt;
&lt;br /&gt;
This gives the outputs and errors in the order they come.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MKM Errors Put Aside ==&lt;br /&gt;
* Adding the 1058th master key gives a memory error&lt;br /&gt;
&lt;br /&gt;
* getdate.y has problems:&lt;br /&gt;
::&amp;lt;pre&amp;gt;&lt;br /&gt;
::/trunk/src/kadmin/cli$ ./datetest&lt;br /&gt;
::Enter date, or blank line to exit.&lt;br /&gt;
::	&amp;gt; 6 months&lt;br /&gt;
::Sat Jan  9 14:22:36 2010&lt;br /&gt;
::	&amp;gt; 12/31/2009&lt;br /&gt;
::Wed Dec 30 23:00:00 2009&lt;br /&gt;
::	&amp;gt; 07/10/2009&lt;br /&gt;
::Thu Jul  9 23:00:00 2009&lt;br /&gt;
::	&amp;gt; 01/01/2009&lt;br /&gt;
::Wed Dec 31 23:00:00 2008&lt;br /&gt;
::	&amp;gt; 01/01/2009 00:00:00&lt;br /&gt;
::Wed Dec 31 23:00:00 2008&lt;br /&gt;
::&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Phantom list_mkey error after adding ''-e aes128-cts-hmac-sha1-96''.  The error went away after I ran the ksh equivalent of the python test.  I don't know why it went away because everything seemed to be the same.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;pre&amp;gt;&lt;br /&gt;
::for lines 283-289:&lt;br /&gt;
::print &amp;quot;Testing add_mkey with aes128 enctype&lt;br /&gt;
::==============================================&amp;quot;&lt;br /&gt;
::kdb5_util add_mkey -e aes128-cts-hmac-sha1-96 &amp;lt;&amp;lt;EOF&lt;br /&gt;
::abcde&lt;br /&gt;
::abcde&lt;br /&gt;
::EOF&lt;br /&gt;
::kdb5_util list_mkeys&lt;br /&gt;
::print &amp;quot;Testing add_mkey with aes128 enctype done&lt;br /&gt;
::==============================================&amp;quot;&lt;br /&gt;
::&lt;br /&gt;
::The list_mkeys at the bottom is giving the following error:&lt;br /&gt;
::&lt;br /&gt;
::kdb5_util: Unable to decrypt latest master key with the provided master key&lt;br /&gt;
:: while getting master key list&lt;br /&gt;
::kdb5_util: Warning: proceeding without master key list&lt;br /&gt;
::kdb5_util: master keylist not initialized&lt;br /&gt;
:&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Getting LDAP Running ==&lt;br /&gt;
&lt;br /&gt;
[http://web.mit.edu/kerberos/krb5-1.6/krb5-1.6.3/doc/krb5-admin.html#Configuring-Kerberos-with-OpenLDAP-back_002dend configure kerberos with LDAP backend]&lt;br /&gt;
&lt;br /&gt;
[http://quark.humbug.org.au/publications/ldap/ldap_tut.html Nice looking LDAP tutorial]&lt;br /&gt;
&lt;br /&gt;
* (DON'T FORLLOW THESE STEPS, WILL HAVE CONFLICTS, follow Greg's steps) I followed the directions on this website http://openldap.org/doc/admin24/quickstart.html&lt;br /&gt;
* Install BerkeleyDB&lt;br /&gt;
** Download berkeleydb4.7&lt;br /&gt;
** cd to folder&lt;br /&gt;
** ''cd build_unix'' (on my Ubuntu)&lt;br /&gt;
** ''../dist/configure''&lt;br /&gt;
** ''make''&lt;br /&gt;
** ''sudo make install''&lt;br /&gt;
* Install Open LDAP&lt;br /&gt;
** ''./configure'' (fails)&lt;br /&gt;
:ERROR: DBD/HDB:BerkeleyDB not available&lt;br /&gt;
:Fixed: ''CPPFLAGS=&amp;quot;-I/usr/local/BerkeleyDB4.7/include&amp;quot;'' then ''export CPPFLAGS''&lt;br /&gt;
:* ''./configure''&lt;br /&gt;
:* ''make depend''&lt;br /&gt;
:* ''make'' (fails)&lt;br /&gt;
:ERROR: getpeereid.c:65: error: storage size of ‘peercred’ isn’t known&lt;br /&gt;
:FIXED: ''CPPFLAGS=-D_GNU_SOURCE'' then ''export CPPFLAGS''&lt;br /&gt;
:* ''make''&lt;br /&gt;
:* ''make test'' (takes a while)&lt;br /&gt;
:* ''sudo make install'' (installed in /usr/local/etc/openldap)&lt;br /&gt;
* Change configuration file at /usr/local/etc/openldap/slapd.conf&lt;br /&gt;
:* &amp;lt;my-domain&amp;gt; &amp;lt;-- example&lt;br /&gt;
:* &amp;lt;com&amp;gt; &amp;lt;-- com&lt;br /&gt;
:* password is still &amp;quot;secret&amp;quot;&lt;br /&gt;
:* cn is still &amp;quot;Manager&amp;quot;&lt;br /&gt;
* Start SLAPD: ''sudo /usr/local/libexec/slapd''&lt;br /&gt;
** Check if it works by a search: ldapsearch blah&lt;br /&gt;
* Add entries.  Consult link above.&lt;br /&gt;
&lt;br /&gt;
What I should have done.  Faster, simpler.  &amp;lt;b&amp;gt;Directions given by Greg Hudson.&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;1.&amp;lt;/b&amp;gt; ''sudo apt-get install slapd'' (for server program)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;2.&amp;lt;/b&amp;gt; ''sudo apt-get install ldap-utils'' (for ldapsearch)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;3.&amp;lt;/b&amp;gt; copy src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema into /etc/ldap/schema&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;4.&amp;lt;/b&amp;gt; In /etc/default/slapd, change SLAPD_SERVICES=&amp;quot;ldapi:///&amp;quot;, to restrict access to the local machine&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;5.&amp;lt;/b&amp;gt; ldapsearch test:&amp;lt;br&amp;gt;&lt;br /&gt;
:: ''ldapsearch -H ldapi:/// -x -W -D cn=Manager,dc=example,dc=com -LLL -b dc=example,dc=com''&lt;br /&gt;
:::''-H ldapi:///'' indicate the URI for the LDAP server&lt;br /&gt;
:::''-x'' simple authentication&lt;br /&gt;
:::''-W'' password prompt&lt;br /&gt;
:::''-D cn=Manager,dc=example,dc=com'' specify the &amp;quot;bind DN&amp;quot;, like a username&lt;br /&gt;
:::''-LLL'' shortens output&lt;br /&gt;
:::''-b'' specify base of query to restrict the scope of the query&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;6.&amp;lt;/b&amp;gt; ''sudo apt-get install libldap2-dev''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;7.&amp;lt;/b&amp;gt; Modify kdc.conf to include:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbmodules]&lt;br /&gt;
LDAP = {&lt;br /&gt;
     db_library = kldap&lt;br /&gt;
     ldap_kerberos_container_dn = cn=krbcontainer,dc=example,dc=com&lt;br /&gt;
     ldap_kdc_dn = cn=admin,dc=example,dc=com&lt;br /&gt;
     ldap_kadmind_dn = cn=admin,dc=example,dc=com&lt;br /&gt;
     ldap_service_password_file = /usr/local/var/krb5kdc/admin.stash&lt;br /&gt;
     ldap_servers = ldapi:///&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;8.&amp;lt;/b&amp;gt; Build krb5 from source with a different configure command: &amp;lt;code&amp;gt;./configure --with-ldap&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;9.&amp;lt;/b&amp;gt; Create your database not with &amp;lt;code&amp;gt;kdb5_util&amp;lt;/code&amp;gt;, but with &amp;lt;code&amp;gt;kdb5_ldap_util&amp;lt;/code&amp;gt; like this:&lt;br /&gt;
&amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=com -H ldapi:/// create -r EXAMPLE.COM -sf /usr/local/var/krb5kdc/admin.stash -s&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;@ end of step 6.  I thought I didn't have to do steps 1 and 2 since I installed the whole thing.  However, I got stuck on step 4 because /etc/default/slapd doesn't exist. So I tried to install 1 and 2, but got the following &amp;lt;br&amp;gt;&lt;br /&gt;
ERROR:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo apt-get install slapd&lt;br /&gt;
Reading package lists... Done&lt;br /&gt;
Building dependency tree       &lt;br /&gt;
Reading state information... Done&lt;br /&gt;
slapd is already the newest version.&lt;br /&gt;
0 upgraded, 0 newly installed, 0 to remove and 169 not upgraded.&lt;br /&gt;
1 not fully installed or removed.&lt;br /&gt;
After this operation, 0B of additional disk space will be used.&lt;br /&gt;
Setting up slapd (2.4.15-1ubuntu3) ...&lt;br /&gt;
  Creating initial slapd configuration... Loading the initial configuration from the ldif file (/tmp/slapd_init.ldif.FZDOiAlAPo) failed with the following&lt;br /&gt;
error while running slapadd:&lt;br /&gt;
    str2entry: invalid value for attributeType objectClass #0 (syntax 1.3.6.1.4.1.1466.115.121.1.38)&lt;br /&gt;
    slapadd: could not parse entry (line=16)&lt;br /&gt;
dpkg: error processing slapd (--configure):&lt;br /&gt;
 subprocess post-installation script returned error exit status 1&lt;br /&gt;
Errors were encountered while processing:&lt;br /&gt;
 slapd&lt;br /&gt;
E: Sub-process /usr/bin/dpkg returned an error code (1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It's okay, the previously missing /etc/default/slapd now exists so that I can do step 4.&lt;br /&gt;
&lt;br /&gt;
SOLUTION: I fixed this error by removing a slapd to avoid conflicts in the slapd already installed from source: &amp;lt;code&amp;gt;sudo apt-get remove slapd&amp;lt;/code&amp;gt;  Note how in the top of the error it says that whatever I was installing &amp;quot;is already the newest version&amp;quot;, but there was the rest of the stuff because of the slapd conflict.&lt;br /&gt;
&lt;br /&gt;
Step 5 then failed with error: &lt;br /&gt;
&amp;lt;pre&amp;gt;ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It can be fixed if slapd is started more specifically:&lt;br /&gt;
''sudo /usr/local/libexec/slapd -h ldapi:///''&lt;br /&gt;
&lt;br /&gt;
=== Everything was a mess! But here are some of things I did despite of the mess ===&lt;br /&gt;
&lt;br /&gt;
* Zhanna got slapd and ldapsearch working on my computer.  I have not been able to replicate it.  But here are the steps she used.&lt;br /&gt;
*# Kill an existing slapd: &amp;lt;code&amp;gt; ps -ef | grep slapd &amp;lt;/code&amp;gt; and then &amp;lt;code&amp;gt; sudo kill -9 [the left side number]&amp;lt;/code&amp;gt;&lt;br /&gt;
*# Set up new slapd: &amp;lt;code&amp;gt; sudo /usr/local/libexec/slapd -h ldap://127.0.0.1:667 &amp;lt;/code&amp;gt;  (667, a bigger number works, 389 a smaller number wouldn't work. &lt;br /&gt;
*# Test if slapd is running by doing a search: &amp;lt;code&amp;gt; ldapsearch -H ldapi:/// -x -D cn=Manager,dc=example,dc=com -w secret&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Adding LDAP Entries ====&lt;br /&gt;
&lt;br /&gt;
* Then I created 2 new LDAP entries:&lt;br /&gt;
** Create this file named &amp;lt;code&amp;gt;example.ldif&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dn: dc=example,dc=com&lt;br /&gt;
objectclass: dcObject&lt;br /&gt;
objectclass: organization&lt;br /&gt;
o: HaoQiCompany&lt;br /&gt;
dc: example&lt;br /&gt;
&lt;br /&gt;
dn: cn=Manager,dc=example,dc=com&lt;br /&gt;
objectclass: organizationalRole&lt;br /&gt;
cn: Manager&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
**:Note that the objectclass names cannot be changed, they have been predetermined&lt;br /&gt;
** Add them: &amp;lt;code&amp;gt; ldapadd -H ldapi:/// -x -D &amp;quot;cn=Manager,dc=example,dc=com&amp;quot; -w secret -f example.ldif&lt;br /&gt;
** Search them: &amp;lt;code&amp;gt; ldapsearch -H ldapi:/// -x -b 'dc=example,dc=com' '(objectclass=*)'&amp;lt;/code&amp;gt;&lt;br /&gt;
**: result:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# extended LDIF&lt;br /&gt;
#&lt;br /&gt;
# LDAPv3&lt;br /&gt;
# base &amp;lt;dc=example,dc=com&amp;gt; with scope subtree&lt;br /&gt;
# filter: (objectclass=*)&lt;br /&gt;
# requesting: ALL&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
# example.com&lt;br /&gt;
dn: dc=example,dc=com&lt;br /&gt;
objectClass: dcObject&lt;br /&gt;
objectClass: organization&lt;br /&gt;
o: HaoQiCompany&lt;br /&gt;
dc: example&lt;br /&gt;
&lt;br /&gt;
# Manager, example.com&lt;br /&gt;
dn: cn=Manager,dc=example,dc=com&lt;br /&gt;
objectClass: organizationalRole&lt;br /&gt;
cn: Manager&lt;br /&gt;
&lt;br /&gt;
# search result&lt;br /&gt;
search: 2&lt;br /&gt;
result: 0 Success&lt;br /&gt;
&lt;br /&gt;
# numResponses: 3&lt;br /&gt;
# numEntries: 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* An important thing I learned is that I can't randomly put entries.  The object classes are all specified and so are the other entries that comes with each object class.  For example, the objectclass &amp;quot;person&amp;quot; must have &amp;quot;objectclass&amp;quot;, &amp;quot;sn&amp;quot; for surname, and &amp;quot;cn&amp;quot; for common name.  Objectclass &amp;quot;person&amp;quot; may also have these entries: &amp;quot;description&amp;quot;, &amp;quot;seeAlso&amp;quot;, &amp;quot;telephoneNumber&amp;quot;, and &amp;quot;userPassword.&amp;quot; &lt;br /&gt;
** I ran into some errors when I followed the examples for adding &amp;quot;person&amp;quot; on some websites because they included a &amp;quot;title&amp;quot; entry, which is not allowed&lt;br /&gt;
** [http://www.it.ufl.edu/projects/directory/ldap-schema/oc-PERSON.html Here is where I learned which entries are allowed]&lt;br /&gt;
* With this knowledge, I made &amp;lt;code&amp;gt; example3.ldif&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dn: cn=Zhanna Tsitkova,dc=example,dc=com&lt;br /&gt;
objectclass: person&lt;br /&gt;
cn: Zhanna&lt;br /&gt;
cn: Zhanna Tsitkova&lt;br /&gt;
sn: Tsitkova&lt;br /&gt;
description: kind boss&lt;br /&gt;
telephoneNumber: 6171231234&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Add this entry: &amp;lt;code&amp;gt; ldapadd -H ldapi:/// -x -w secret -D &amp;quot;cn=Manager,dc=example,dc=com&amp;quot; -f example3.ldif&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Now, the search result of all object classes look like this:&lt;br /&gt;
*:&amp;lt;code&amp;gt; ldapsearch -H ldapi:/// -x -b 'dc=example,dc=com' '(objectclass=*)'&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# extended LDIF&lt;br /&gt;
#&lt;br /&gt;
# LDAPv3&lt;br /&gt;
# base &amp;lt;dc=example,dc=com&amp;gt; with scope subtree&lt;br /&gt;
# filter: (objectclass=*)&lt;br /&gt;
# requesting: ALL&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
# example.com&lt;br /&gt;
dn: dc=example,dc=com&lt;br /&gt;
objectClass: dcObject&lt;br /&gt;
objectClass: organization&lt;br /&gt;
o: HaoQiCompany&lt;br /&gt;
dc: example&lt;br /&gt;
&lt;br /&gt;
# Manager, example.com&lt;br /&gt;
dn: cn=Manager,dc=example,dc=com&lt;br /&gt;
objectClass: organizationalRole&lt;br /&gt;
cn: Manager&lt;br /&gt;
&lt;br /&gt;
# Zhanna Tsitkova, example.com&lt;br /&gt;
dn: cn=Zhanna Tsitkova,dc=example,dc=com&lt;br /&gt;
objectClass: person&lt;br /&gt;
cn: Zhanna&lt;br /&gt;
cn: Zhanna Tsitkova&lt;br /&gt;
sn: Tsitkova&lt;br /&gt;
description: kind boss&lt;br /&gt;
telephoneNumber: 6171231234&lt;br /&gt;
&lt;br /&gt;
# HaoQi Li, example.com&lt;br /&gt;
dn: cn=HaoQi Li,dc=example,dc=com&lt;br /&gt;
objectClass: person&lt;br /&gt;
cn: HaoQi&lt;br /&gt;
cn: HaoQi Li&lt;br /&gt;
sn: Li&lt;br /&gt;
description: happy intern&lt;br /&gt;
telephoneNumber: 7031231234&lt;br /&gt;
&lt;br /&gt;
# search result&lt;br /&gt;
search: 2&lt;br /&gt;
result: 0 Success&lt;br /&gt;
&lt;br /&gt;
# numResponses: 5&lt;br /&gt;
# numEntries: 4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*: Search for just &amp;quot;person&amp;quot; object class: &amp;lt;code&amp;gt; ldapsearch -H ldapi:/// -x -b 'dc=example,dc=com' '(objectclass=person)'&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# extended LDIF&lt;br /&gt;
#&lt;br /&gt;
# LDAPv3&lt;br /&gt;
# base &amp;lt;dc=example,dc=com&amp;gt; with scope subtree&lt;br /&gt;
# filter: (objectclass=person)&lt;br /&gt;
# requesting: ALL&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
# Zhanna Tsitkova, example.com&lt;br /&gt;
dn: cn=Zhanna Tsitkova,dc=example,dc=com&lt;br /&gt;
objectClass: person&lt;br /&gt;
cn: Zhanna&lt;br /&gt;
cn: Zhanna Tsitkova&lt;br /&gt;
sn: Tsitkova&lt;br /&gt;
description: kind boss&lt;br /&gt;
telephoneNumber: 6171231234&lt;br /&gt;
&lt;br /&gt;
# HaoQi Li, example.com&lt;br /&gt;
dn: cn=HaoQi Li,dc=example,dc=com&lt;br /&gt;
objectClass: person&lt;br /&gt;
cn: HaoQi&lt;br /&gt;
cn: HaoQi Li&lt;br /&gt;
sn: Li&lt;br /&gt;
description: happy intern&lt;br /&gt;
telephoneNumber: 7031231234&lt;br /&gt;
&lt;br /&gt;
# search result&lt;br /&gt;
search: 2&lt;br /&gt;
result: 0 Success&lt;br /&gt;
&lt;br /&gt;
# numResponses: 3&lt;br /&gt;
# numEntries: 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*: Search for just one entry: &amp;lt;code&amp;gt;ldapsearch -H ldapi:/// -x -b 'dc=example,dc=com' 'cn=HaoQi'&amp;lt;/code&amp;gt;.  Note that the &amp;quot;cn=HaoQi&amp;quot; is not in the first set of single quotes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# extended LDIF&lt;br /&gt;
#&lt;br /&gt;
# LDAPv3&lt;br /&gt;
# base &amp;lt;dc=example,dc=com&amp;gt; with scope subtree&lt;br /&gt;
# filter: cn=HaoQi&lt;br /&gt;
# requesting: ALL&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
# HaoQi Li, example.com&lt;br /&gt;
dn: cn=HaoQi Li,dc=example,dc=com&lt;br /&gt;
objectClass: person&lt;br /&gt;
cn: HaoQi&lt;br /&gt;
cn: HaoQi Li&lt;br /&gt;
sn: Li&lt;br /&gt;
description: happy intern&lt;br /&gt;
telephoneNumber: 7031231234&lt;br /&gt;
&lt;br /&gt;
# search result&lt;br /&gt;
search: 2&lt;br /&gt;
result: 0 Success&lt;br /&gt;
&lt;br /&gt;
# numResponses: 2&lt;br /&gt;
# numEntries: 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Starting LDAP ===&lt;br /&gt;
&lt;br /&gt;
Starting from a specific IP address and port number:&lt;br /&gt;
: &amp;lt;code&amp;gt;sudo /usr/local/libexec/slapd -h ldap://127.0.0.1:677&amp;lt;/code&amp;gt; Note that it's &amp;quot;ldap&amp;quot;, not &amp;quot;ldapi.&amp;quot; The port number 677 was chosen arbitrarily. &lt;br /&gt;
: To search to check that it works: &lt;br /&gt;
: &amp;lt;code&amp;gt;ldapsearch -h 127.0.0.1 -p 677 -x -D cn=manager,dc=example,dc=com -w secret&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Starting from /:&lt;br /&gt;
: &amp;lt;code&amp;gt;sudo /usr/local/libexec/slapd -h ldapi:///&amp;lt;/code&amp;gt; Note that it's &amp;quot;ldapi&amp;quot;, not &amp;quot;ldap&amp;quot;&lt;br /&gt;
: To search to check that it works:&lt;br /&gt;
: &amp;lt;code&amp;gt;ldapsearch -H ldapi:/// -x -D cn=manager,dc=example,dc=com -w secret&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To kill a slapd and start again:&lt;br /&gt;
: &amp;lt;code&amp;gt;ps -ef | grep slapd&amp;lt;/code&amp;gt; look for the left most number&lt;br /&gt;
: &amp;lt;code&amp;gt;sudo kill -9 [left most number]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Things I had to fix ===&lt;br /&gt;
* I first did step 9 without doing step 8.  So I got an kdb5_ldap_util not found error, but I was recommended by the computer to install krb5-kdc-ldap. DON'T DO THAT!  because it is not what I want for the krb5 development, I want it to be running from the build (step 8).  So I had to do a &amp;lt;code&amp;gt;sudo apt-get remove krb5-kdc-ldap&amp;lt;/code&amp;gt;.  In the end, the kdb5_ldap_util we want should be in &amp;lt;code&amp;gt;/usr/local/sbin/kdb5_ldap_util&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* @ step 8. while doing &amp;lt;code&amp;gt;./configure --with-ldap&amp;lt;/code&amp;gt; it stopped with this:&amp;lt;br&amp;gt;&lt;br /&gt;
:ERROR: &amp;lt;code&amp;gt;configure: error: libldap not found or missing ldap_init&amp;lt;/code&amp;gt;.  &amp;lt;br&amp;gt;&lt;br /&gt;
:Greg told me to check if /usr/lib/libldap.so exists, and it does.  Then I looked at config.log from the ./configure:  Here are chunks of it, found in the middle of the log:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
configure:24570: checking for ldap_init in -lldap&lt;br /&gt;
configure:24605: gcc -o conftest -g -O2 conftest.c -lldap -lresolv &amp;gt;&amp;amp;5&lt;br /&gt;
/usr/lib/gcc/i486-linux-gnu/4.3.3/../../../../lib/libldap.so: undefined reference to `ber_pvt_sb_do_write@OPENLDAP_2.4_2'&lt;br /&gt;
/usr/lib/gcc/i486-linux-gnu/4.3.3/../../../../lib/libldap.so: undefined reference to `ber_free@OPENLDAP_2.4_2'&lt;br /&gt;
/usr/lib/gcc/i486-linux-gnu/4.3.3/../../../../lib/libldap.so: undefined reference to `ber_skip_data@OPENLDAP_2.4_2'&lt;br /&gt;
/usr/lib/gcc/i486-linux-gnu/4.3.3/../../../../lib/libldap.so: undefined reference to `ber_reset@OPENLDAP_2.4_2'&lt;br /&gt;
... 50 more lines like so ...&lt;br /&gt;
/usr/lib/gcc/i486-linux-gnu/4.3.3/../../../../lib/libldap.so: undefined reference to `ber_sockbuf_alloc@OPENLDAP_2.4_2'&lt;br /&gt;
collect2: ld returned 1 exit status&lt;br /&gt;
configure:24612: $? = 1&lt;br /&gt;
configure: failed program was:&lt;br /&gt;
| /* confdefs.h. */&lt;br /&gt;
| #define PACKAGE_NAME &amp;quot;Kerberos 5&amp;quot;&lt;br /&gt;
| #define PACKAGE_TARNAME &amp;quot;krb5&amp;quot;&lt;br /&gt;
| #define PACKAGE_VERSION &amp;quot;1.7-prerelease&amp;quot;&lt;br /&gt;
| #define PACKAGE_STRING &amp;quot;Kerberos 5 1.7-prerelease&amp;quot;&lt;br /&gt;
| #define PACKAGE_BUGREPORT &amp;quot;krb5-bugs@mit.edu&amp;quot;&lt;br /&gt;
| #define STDC_HEADERS 1&lt;br /&gt;
| #define HAVE_SYS_TYPES_H 1&lt;br /&gt;
| #define HAVE_SYS_STAT_H 1&lt;br /&gt;
| #define HAVE_STDLIB_H 1&lt;br /&gt;
... continues ...&lt;br /&gt;
| #define HAVE_GETHOSTBYNAME_R 1&lt;br /&gt;
| #define HAVE_GETSERVBYNAME_R 1&lt;br /&gt;
| #define HAVE_GMTIME_R 1&lt;br /&gt;
| #define HAVE_LOCALTIME_R 1&lt;br /&gt;
| #define HAVE_LDAP_H 1&lt;br /&gt;
| #define HAVE_LBER_H 1&lt;br /&gt;
| /* end confdefs.h. */&lt;br /&gt;
|&lt;br /&gt;
| /* Override any GCC internal prototype to avoid an error.&lt;br /&gt;
| Use char because int might match the return type of a GCC&lt;br /&gt;
| builtin and then its argument prototype would still apply. */&lt;br /&gt;
| #ifdef __cplusplus&lt;br /&gt;
| extern &amp;quot;C&amp;quot;&lt;br /&gt;
| #endif&lt;br /&gt;
| char ldap_init ();&lt;br /&gt;
| int&lt;br /&gt;
| main ()&lt;br /&gt;
| {&lt;br /&gt;
| return ldap_init ();&lt;br /&gt;
| ;&lt;br /&gt;
| return 0;&lt;br /&gt;
| }&lt;br /&gt;
configure:24633: result: no&lt;br /&gt;
configure:24638: error: libldap not found or missing ldap_init&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:So Greg says: &amp;quot;I think maybe your OpenLDAP source installation in /usr/local/lib is messing up the system library.&amp;quot;  So it might be better if I start a new Ubuntu virtual machine without being stupid and compiling the entire OpenLDAP.&lt;br /&gt;
&lt;br /&gt;
 NOTE: One of the solutions is to change the default configuration from /usr/local/lib to /usr/lib   in /etc/ld.so.conf.d/libc.conf. Then run /sbin/ldconfig. &lt;br /&gt;
&lt;br /&gt;
=== Starting Over ===&lt;br /&gt;
I ran into some more troubles.  So I decided to start again, with a brand new virtual machine&lt;br /&gt;
&lt;br /&gt;
The bolded lines are for ldap.  The non-bolded ones are for general make krb5 from source&lt;br /&gt;
* To start again if you screwed up anywhere, do &amp;lt;code&amp;gt;make distclean&amp;lt;/code&amp;gt; if you want to remove &amp;quot;make&amp;quot; or &amp;lt;code&amp;gt;make clean&amp;lt;/code&amp;gt; if you don't want to remove &amp;quot;make&amp;quot; (sometimes you have to do &amp;lt;code&amp;gt;rm config.cache&amp;lt;/code&amp;gt;), and then proceed to &amp;lt;code&amp;gt;util/reconf&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Stuff you need to install for the krb5 build&lt;br /&gt;
** subversion: &amp;lt;code&amp;gt;sudo apt-get install subversion&amp;lt;/code&amp;gt;&lt;br /&gt;
** autoconf: &amp;lt;code&amp;gt;sudo apt-get install autoconf&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;sudo apt-get install ncurses-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
** yacc: &amp;lt;code&amp;gt;sudo apt-get install byacc&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;svn checkout svn://anonsvn.mit.edu/krb5/trunk&amp;lt;/code&amp;gt;&lt;br /&gt;
* Navigate to trunk/src&lt;br /&gt;
* &amp;lt;code&amp;gt;util/reconf&amp;lt;/code&amp;gt;&lt;br /&gt;
* 1: &amp;lt;code&amp;gt;&amp;lt;b&amp;gt;sudo apt-get install slapd&amp;lt;/b&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* 2: &amp;lt;code&amp;gt;&amp;lt;b&amp;gt;sudo apt-get install ldap-utils&amp;lt;/b&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* 3: &amp;lt;b&amp;gt;Navigate to /etc/ldap/scheme and then do: &amp;lt;code&amp;gt;sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema&amp;lt;/code&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
* 4: &amp;lt;b&amp;gt;&amp;lt;code&amp;gt;sudo vim /etc/default/slapd&amp;lt;/code&amp;gt; and change SLAPD_SERVICES to: &amp;lt;code&amp;gt;SLAPD_SERVICES=&amp;quot;ldapi:///&amp;quot;&amp;lt;/code&amp;gt; to restrict access to the local machine&amp;lt;/b&amp;gt;&lt;br /&gt;
* 5: &amp;lt;b&amp;gt;Test to see if it works by: &amp;lt;code&amp;gt;ldapsearch -H ldapi:/// -x -W -D cn=admin,dc=example,dc=com -LLL -b dc=example,dc=com&amp;lt;/code&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
* 6: &amp;lt;b&amp;gt;&amp;lt;code&amp;gt;sudo apt-get install libldap2-dev&amp;lt;/code&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
* 8: &amp;lt;b&amp;gt;&amp;lt;code&amp;gt;./configure --with-ldap&amp;lt;/code&amp;gt;&amp;lt;/b&amp;gt; Skipping step 7 intentionally.  It can be done later.  If you are not doing ldap stuff, just do &amp;lt;code&amp;gt;./configure&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;sudo make install&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
(I didn't do &amp;lt;code&amp;gt;make check&amp;lt;/code&amp;gt;)&lt;br /&gt;
* 7: &amp;lt;b&amp;gt; Change kdc.conf according to 7. above&amp;lt;/b&amp;gt;&lt;br /&gt;
* 9: &amp;lt;b&amp;gt; To run it: &amp;lt;code&amp;gt;sudo /usr/local/sbin/kdb5_ldap_util -D cn=admin,dc=example,dc=com -H ldapi:/// create -r EXAMPLE.COM -sf /usr/local/var/krb5kdc/admin.stash -s&amp;lt;/code&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Figuring out stuff ===&lt;br /&gt;
* [ https://help.ubuntu.com/9.04/serverguide/C/serverguide.pdf good guide]&lt;br /&gt;
** Locate the kerberos schema: &lt;br /&gt;
:: /etc/ldap/schema/kerberos.schema&lt;br /&gt;
:* Create this file:&lt;br /&gt;
:: sudo vim /etc/ldap/schema/schema_testing.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
include /etc/ldap/schema/core.schema&lt;br /&gt;
include /etc/ldap/schema/collective.schema&lt;br /&gt;
include /etc/ldap/schema/corba.schema&lt;br /&gt;
include /etc/ldap/schema/cosine.schema&lt;br /&gt;
include /etc/ldap/schema/duaconf.schema&lt;br /&gt;
include /etc/ldap/schema/dyngroup.schema&lt;br /&gt;
include /etc/ldap/schema/inetorgperson.schema&lt;br /&gt;
include /etc/ldap/schema/java.schema&lt;br /&gt;
include /etc/ldap/schema/kerberos.schema&lt;br /&gt;
include /etc/ldap/schema/nis.schema&lt;br /&gt;
include /etc/ldap/schema/openldap.schema&lt;br /&gt;
include /etc/ldap/schema/ppolicy.schema&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:* Make the temp dir to hold output: &lt;br /&gt;
:: mkdir /tmp/ldifoutput&lt;br /&gt;
:* Convert schema --&amp;gt; LDIF with slaptest:&lt;br /&gt;
:: slaptest -f schema_testing.conf -F /tmp/ldifoutput&lt;br /&gt;
:* Edit /tmp/ldifoutput/cn=config/cn=schema/cn={8}kerberos.ldif&lt;br /&gt;
:: sudo vi /tmp/ldifoutput/cn\=config/cn\=schema/cn\=\{8\}kerberos.ldif &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
change dn: cn={8}kerberos into&lt;br /&gt;
dn: dn: cn=kerberos,cn=schema,cn=config&lt;br /&gt;
&lt;br /&gt;
change cn: {8}kerberos into&lt;br /&gt;
cn: kerberos&lt;br /&gt;
&lt;br /&gt;
remove lines:&lt;br /&gt;
structuralObjectClass: olcsch... &lt;br /&gt;
till end&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
:* Start the slapd&lt;br /&gt;
:: sudo slpad -h ldapi:/// -F /etc/ldap/slapd.d/ &lt;br /&gt;
:: The &amp;quot;-F&amp;quot; is for slapd-config-directory&lt;br /&gt;
:*&lt;br /&gt;
=== LDAP notes ===&lt;br /&gt;
&lt;br /&gt;
* Man pages&lt;br /&gt;
** [http://docs.sun.com/app/docs/doc/816-5166/kdb5-ldap-util-1m?a=view good man page]&lt;br /&gt;
** [http://linux.die.net/man/8/kdb5_ldap_util another one]&lt;br /&gt;
&lt;br /&gt;
* If you can't start slapd, try &amp;lt;code&amp;gt;sudo&amp;lt;/code&amp;gt;&lt;br /&gt;
* [http://www.openldap.org/doc/admin21/runningslapd.html bug level, -d #]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Level 	Description&lt;br /&gt;
-1 	enable all debugging&lt;br /&gt;
0 	no debugging&lt;br /&gt;
1 	trace function calls&lt;br /&gt;
2 	debug packet handling&lt;br /&gt;
4 	heavy trace debugging&lt;br /&gt;
8 	connection management&lt;br /&gt;
16 	print out packets sent and received&lt;br /&gt;
32 	search filter processing&lt;br /&gt;
64 	configuration file processing&lt;br /&gt;
128 	access control list processing&lt;br /&gt;
256 	stats log connections/operations/results&lt;br /&gt;
512 	stats log entries sent&lt;br /&gt;
1024 	print communication with shell backends&lt;br /&gt;
2048 	print entry parsing debugging &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* src/kadmin/dbutil/kdb5_ldap_util&lt;br /&gt;
* src/plugins/kdb/ldap/ldap_util/kdb5_ldap_util&lt;br /&gt;
&lt;br /&gt;
== Ldap notes (from notes I saved elsewhere) ==&lt;br /&gt;
=== 1. Information about the system ===&lt;br /&gt;
- packages&lt;br /&gt;
* Version of ubuntu&lt;br /&gt;
       lsb_release -a&lt;br /&gt;
       No LSB modules are available.&lt;br /&gt;
       Distributor ID:        Ubuntu&lt;br /&gt;
       Description:        Ubuntu 9.04&lt;br /&gt;
       Release:        9.04&lt;br /&gt;
       Codename:        jaunty&lt;br /&gt;
* Version of slapd: 2.4.15 (Mar 19 2009)&lt;br /&gt;
       slapd -V&lt;br /&gt;
       @(#) $OpenLDAP: slapd 2.4.15 (Mar 19 2009 10:08:25) $&lt;br /&gt;
       buildd@palmer:/build/buildd/openldap-2.4.15/debian/build/servers/slapd&lt;br /&gt;
&lt;br /&gt;
* Version of ldap-utils: 2.4.15&lt;br /&gt;
       dpkg -l ldap-utils&lt;br /&gt;
&lt;br /&gt;
=== 2. Kerb Schema Operations ===&lt;br /&gt;
[https://help.ubuntu.com/9.04/serverguide/C/serverguide.pdf loosely following section 6.4]&lt;br /&gt;
&lt;br /&gt;
[[kerberos.schema]]&lt;br /&gt;
schema --&amp;gt; ldif&lt;br /&gt;
populate all the directories&lt;br /&gt;
&lt;br /&gt;
=== 3. ldap/slapd configuration changes ===&lt;br /&gt;
take out lines, modify lines&lt;br /&gt;
&lt;br /&gt;
=== 4. Extract krb conf files ===&lt;br /&gt;
&lt;br /&gt;
=== 5. Env ===&lt;br /&gt;
&lt;br /&gt;
=== 6. Build kerb. config ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* You'll need a test OpenLDAP server.  To get this, you'll need to&lt;br /&gt;
install the slapd package (for the server program) and the ldap-utils&lt;br /&gt;
package (for ldapsearch).  You can set the &amp;quot;domain&amp;quot; of your LDAP server&lt;br /&gt;
using &amp;quot;sudo dpkg-reconfigure slapd&amp;quot;.  I will assume example.com below.&lt;br /&gt;
I believe this will also prompt you for an admin password.&lt;br /&gt;
&lt;br /&gt;
* You'll need to copy kerberos.schema from the source tree&lt;br /&gt;
(src/plugins/kdb/ldap/libkdb_&lt;br /&gt;
ldap/kerberos.schema)&lt;br /&gt;
into /etc/ldap/schema.&lt;br /&gt;
&lt;br /&gt;
* In /etc/default/slapd, search for SLAPD_SERVICES and set it to:&lt;br /&gt;
&lt;br /&gt;
       SLAPD_SERVICES=&amp;quot;ldapi:///&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 This will restrict access to the local machine.&lt;br /&gt;
&lt;br /&gt;
* You may want to get familiar with the ldapsearch program.  Here's an&lt;br /&gt;
example of how to use it against the test server installed above:&lt;br /&gt;
&lt;br /&gt;
 ldapsearch -H ldapi:/// -x -W -D cn=admin,dc=example,dc=com -LLL -b&lt;br /&gt;
dc=example,dc=com&lt;br /&gt;
&lt;br /&gt;
 This command displays all of the entries in your LDAP database.  The&lt;br /&gt;
-H option and argument indicate the URI of the LDAP server; ldapi:///&lt;br /&gt;
means &amp;quot;a Unix-domain socket on the local machine&amp;quot;.  -x means to use&lt;br /&gt;
simple authentication and -W means to prompt for a password (the admin&lt;br /&gt;
password you chose previously).  The -D option and argument specify the&lt;br /&gt;
&amp;quot;bind DN&amp;quot;, which you can think of as a username.  The -LLL option&lt;br /&gt;
shortens the output format a bit; you can leave that out if you want.&lt;br /&gt;
The -b option specifies the base of the query; in this case, the whole&lt;br /&gt;
thing.  It's also worth reading the man page for the meaning of the -s&lt;br /&gt;
option (restrict the scope of the query) and for the filter syntax.&lt;br /&gt;
&lt;br /&gt;
* To build Kerberos with LDAP back end support, you need to install the&lt;br /&gt;
libldap2-dev package, and configure with --with-ldap.&lt;br /&gt;
&lt;br /&gt;
* Configuring your KDC is similar to setting up a normal KDC, but your&lt;br /&gt;
dbmodule directive will look something like this:&lt;br /&gt;
&lt;br /&gt;
 [dbmodules]&lt;br /&gt;
   LDAP = {&lt;br /&gt;
     db_library = kldap&lt;br /&gt;
     ldap_kerberos_container_dn = cn=krbcontainer,dc=example,dc=com&lt;br /&gt;
     ldap_kdc_dn = cn=admin,dc=example,dc=com&lt;br /&gt;
     ldap_kadmind_dn = cn=admin,dc=example,dc=com&lt;br /&gt;
     ldap_service_password_file = /usr/local/var/krb5kdc/admin.stash&lt;br /&gt;
     ldap_servers = ldapi:///&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
(In a real deployment, you would probably create user DNs for the KDC&lt;br /&gt;
and kadmin rather than using the admin DN, and grant them the minimum&lt;br /&gt;
necessary access.  But creating users in an OpenLDAP database didn't&lt;br /&gt;
appear straightforward to me, so I skipped that step in my testing.)&lt;br /&gt;
&lt;br /&gt;
* When you create your database, instead of using kdb5_util, you use&lt;br /&gt;
kdb5_ldap_util, like so:&lt;br /&gt;
&lt;br /&gt;
 kdb5_ldap_util -D cn=admin,dc=example,dc=com -H ldapi:/// create \&lt;br /&gt;
 -r EXAMPLE.COM -sf /usr/local/var/krb5kdc/admin.stash -s&lt;br /&gt;
&lt;br /&gt;
You'll have to enter your OpenLDAP admin pasword, which will be stored&lt;br /&gt;
in the admin.stash file for use by the KDC and kadmind.&lt;br /&gt;
&lt;br /&gt;
There is more information in the krb5 admin guide (see the doc subdir of&lt;br /&gt;
your source tree).&lt;/div&gt;</summary>
		<author><name>Haoqili</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2208</id>
		<title>LDAP on Kerberos</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2208"/>
				<updated>2009-08-26T15:46:52Z</updated>
		
		<summary type="html">&lt;p&gt;Haoqili: /* Errors */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==About==&lt;br /&gt;
A guide to set up ldap backend for kerberos.&lt;br /&gt;
&lt;br /&gt;
== To Do ==&lt;br /&gt;
* Slapd in sandbox, not /etc&lt;br /&gt;
* Simpler Domain names D.COM, R.COM&lt;br /&gt;
* Different domain names&lt;br /&gt;
* Figure out required schemas&lt;br /&gt;
* Figure out: In Kerb Schema Operations, I can do &amp;quot;or update slapd.conf with kerb schema or ldif&amp;quot; in some ubuntu&lt;br /&gt;
* Play around to get minimum set of requirement&lt;br /&gt;
&lt;br /&gt;
* update tree too, got a fix&lt;br /&gt;
&lt;br /&gt;
== 0. Sample code to follow ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
    8  mkdir krb5kdc&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
   16  make distclean&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
   19  make&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
   29  krb5kdc -n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 1. Information about the system ==&lt;br /&gt;
- packages&lt;br /&gt;
* Version of ubuntu&lt;br /&gt;
       lsb_release -a&lt;br /&gt;
       No LSB modules are available.&lt;br /&gt;
       Distributor ID:        Ubuntu&lt;br /&gt;
       Description:        Ubuntu 9.04&lt;br /&gt;
       Release:        9.04&lt;br /&gt;
       Codename:        jaunty&lt;br /&gt;
* Version of slapd: 2.4.15 (Mar 19 2009)&lt;br /&gt;
       slapd -V&lt;br /&gt;
       @(#) $OpenLDAP: slapd 2.4.15 (Mar 19 2009 10:08:25) $&lt;br /&gt;
       buildd@palmer:/build/buildd/openldap-2.4.15/debian/build/servers/slapd&lt;br /&gt;
&lt;br /&gt;
* Version of ldap-utils: 2.4.15&lt;br /&gt;
       dpkg -l ldap-utils&lt;br /&gt;
&lt;br /&gt;
== 2. Extract krb conf files ==&lt;br /&gt;
* It is crucial to have correct, consistent domain names.  You must have the dbmodules in krb5.conf.&lt;br /&gt;
* Save [[krb5.conf]]&lt;br /&gt;
* Save [[kdc.conf]]&lt;br /&gt;
* Save [[kadm5.acl]]&lt;br /&gt;
&lt;br /&gt;
== 3. Env and Setup==&lt;br /&gt;
You need to export these lines into your env. Based on where you saved these files.&lt;br /&gt;
&lt;br /&gt;
*export KRB5_CONFIG=/tmp/sandbox/krb5.conf&lt;br /&gt;
&lt;br /&gt;
*export KRB5_KDC_PROFILE=/tmp/sandbox/kdc.conf&lt;br /&gt;
&lt;br /&gt;
* make a krb5kdc folder: mkdir /tmp/sandbox/krb5kdc)&lt;br /&gt;
&lt;br /&gt;
Whatever you do, be consistent&lt;br /&gt;
&lt;br /&gt;
== 4. Build kerb. config ==&lt;br /&gt;
&lt;br /&gt;
# Install Packages:&lt;br /&gt;
#* &amp;lt;code&amp;gt; sudo apt-get install slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
#* for ldapsearch: &amp;lt;code&amp;gt;sudo apt-get install ldap-utils&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo apt-get install libldap2-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
# Set &amp;quot;domain&amp;quot; of your LDAP server &lt;br /&gt;
#* Option 1, Interactive Option: &amp;lt;code&amp;gt;sudo dpkg-reconfigure slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
#*: Indented are the debconf-get-selections lines&lt;br /&gt;
#*# Omit OpenLDAP server configuration: No&lt;br /&gt;
#*#: slapd   slapd/no_configuration  boolean false&lt;br /&gt;
#*# DNS domain name: example.org&lt;br /&gt;
#*#: slapd   slapd/domain    string  example.org&lt;br /&gt;
#*# Organization name: example.org [note: i used the same name for simplicity]&lt;br /&gt;
#*#: slapd   shared/organization     string  example.org&lt;br /&gt;
#*# Databases backend to use: HDB, instead of BDB&lt;br /&gt;
#*#: slapd   slapd/backend   select  HDB&lt;br /&gt;
#*# Do you want the database to be removed when slapd is purge: Yes&lt;br /&gt;
#*#: slapd   slapd/purge_database    boolean true&lt;br /&gt;
#*# Move old database: Yes&lt;br /&gt;
#*#: slapd   slapd/move_old_database boolean true&lt;br /&gt;
#*# Admin password: [your pwd]&lt;br /&gt;
#*#: slapd   slapd/password1 password&lt;br /&gt;
#*#: [I'm not sure about the debconf-get-selection line here.  There are 5 different password lines!]&lt;br /&gt;
#*# Confirm password: [your pwd]&lt;br /&gt;
#*#: slapd   slapd/password2 password&lt;br /&gt;
#*# Allow LDAPv2 protocol: No&lt;br /&gt;
#*#: slapd   slapd/allow_ldap_v2     boolean false&lt;br /&gt;
#* Option 2, Noninteractive Option&lt;br /&gt;
#*# &amp;lt;code&amp;gt;sudo apt-get install debconf-utils&amp;lt;/code&amp;gt;&lt;br /&gt;
#*# Save this file in /tmp/debconfile: [[debconfile]]&lt;br /&gt;
#*# &amp;lt;code&amp;gt;sudo debconf-set-selections /tmp/debconfile&amp;lt;/code&amp;gt;&lt;br /&gt;
#*# &amp;lt;code&amp;gt;sudo dpkg-reconfigure --frontend=noninteractive slapd&amp;lt;/code&amp;gt; &lt;br /&gt;
#* Checkpoint:  If you are successful, you should see as output:&lt;br /&gt;
#*: ''Stopping OpenLDAP: slapd.''&lt;br /&gt;
#*:  ''Moving old database directory to /var/backups:''&lt;br /&gt;
#*:  ''- directory unknown... done.''&lt;br /&gt;
#*:  ''Creating initial slapd configuration... done.''&lt;br /&gt;
#*:  ''Creating initial LDAP directory... done.''&lt;br /&gt;
#*: ''* Reloading AppArmor profiles ''&lt;br /&gt;
#*:  ''...                                               [ OK ]'' &lt;br /&gt;
#*:  ''Starting OpenLDAP: slapd.''&lt;br /&gt;
# If you haven't done so already, please copy kerberos.schema from your kerberos trunk into /etc/ldap/schema: &amp;lt;code&amp;gt;sudo cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
# To restrict access to the local machine, &amp;lt;code&amp;gt;sudo vim /etc/default/slapd&amp;lt;/code&amp;gt;, search for SLAPD_SERVICES and set it to: &amp;lt;pre&amp;gt;SLAPD_SERVICES=&amp;quot;ldapi:///&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Reconfigure your kerberos&lt;br /&gt;
#* Navigate to kerberos src&lt;br /&gt;
#* &amp;lt;code&amp;gt;make distclean&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;util/reconf&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;./configure --with-ldap&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo make install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 5. Kerb Schema Operations ==&lt;br /&gt;
Loosely followed [http://ajuda.ubuntu.cat/9.04/serverguide/kerberos-ldap.html Ubuntu Guide] and [http://web.mit.edu/kerberos/krb5-1.7/krb5-1.7/doc/krb5-admin.html#Configuring-Kerberos-with-OpenLDAP-back_002dend Kerberos V5 System Admin Guide]&lt;br /&gt;
&lt;br /&gt;
# You have not done so already, locate the kerberos.schema.  [[kerberos.schema]] which should be in /etc/ldap/schema/kerberos.schema.  If it is not there, please copy it there from your kerberos trunk: &amp;lt;code&amp;gt;cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Checkpoint: Make sure there is a list of different schemas in /etc/ldap/schema.  Such as&lt;br /&gt;
#:* core.schema&lt;br /&gt;
#:* inetorgperson.schema&lt;br /&gt;
#:* kerberos.schema&lt;br /&gt;
#:* misc.schema&lt;br /&gt;
#:* openldap.schema&lt;br /&gt;
# Make this [[schema_convert.conf]] at /tmp/schema_convert.conf.  Note! This is different from the schema_convert.conf in the Ubuntu Guide.&lt;br /&gt;
# Make the directory to hold output: &amp;lt;code&amp;gt;mkdir /tmp/ldif_output &amp;lt;/code&amp;gt;&lt;br /&gt;
# Convert schema --&amp;gt; LDIF with slaptest: &amp;lt;code&amp;gt;slaptest -f tmp/schema_convert.conf -F /tmp/ldif_output&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: &amp;quot;config file testing succeeded&amp;quot;&lt;br /&gt;
#: Checkpoint: If you &amp;lt;code&amp;gt;sudo ls /tmp/ldif_output/cn\=config/cn\=schema&amp;lt;/code&amp;gt;, you should see:&lt;br /&gt;
#:: cn={0}core.ldif       &lt;br /&gt;
#:: cn={1}corba.ldif          &lt;br /&gt;
#:: cn={2}cosine.ldif   &lt;br /&gt;
#:: cn={3}duaconf.ldif  &lt;br /&gt;
#:: cn={4}inetorgperson.ldif&lt;br /&gt;
#:: cn={5}java.ldif	&lt;br /&gt;
#:: cn={6}kerberos.ldif&lt;br /&gt;
#:: cn={7}misc.ldif&lt;br /&gt;
#:: cn={8}openldap.ldif&lt;br /&gt;
#:: cn={9}nis.ldif&lt;br /&gt;
# Need to modify kerberos.ldif. &lt;br /&gt;
#* Find which number kerberos.ldif is listed as: &amp;lt;code&amp;gt;sudo ls /tmp/ldif_output/cn\=config/cn\=schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Edit it: &amp;lt;code&amp;gt; sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn={6}kerberos.ldif&amp;lt;/code&amp;gt;&lt;br /&gt;
#** change ''dn: cn={6}kerberos'' into ''dn: cn=kerberos,cn=schema,cn=config''&lt;br /&gt;
#** change ''cn: {6}kerberos'' into ''cn: kerberos''&lt;br /&gt;
#** Delete the bottom lines: from ''structuralObjectClasses: olcSchemaConfig'' to ''modifyTimestamp: 20090811205313Z''&lt;br /&gt;
# load new schema: &amp;lt;code&amp;gt;sudo ldapadd -x -D cn=admin,cn=config -W -f /tmp/ldif_output/cn\=config/cn\=schema/cn\={6}kerberos.ldif -H ldapi:///&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Note if you get a &amp;quot;Can't contact LDAP server&amp;quot; error, check your &amp;lt;code&amp;gt;ps -ef | grep slapd&amp;lt;/code&amp;gt; to see its details and change accordingly.  A common way to fix it is to sudo ldapadd with ldap:/// instead of ldapi:///&lt;br /&gt;
#: Output: ''adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
== 6. Starting ==&lt;br /&gt;
* Create your database with kdb5_ldap_util instead of kdb5_util:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -H ldapi:/// create  -s&lt;br /&gt;
*: note that if you have ldapadd with ldap:/// instead of ldapi:///, it should also be ldap:/// here&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Initializing database for realm 'EXAMPLE.ORG'&lt;br /&gt;
You will be prompted for the database Master Password.&lt;br /&gt;
It is important that you NOT FORGET this password.&lt;br /&gt;
Enter KDC database master key: &lt;br /&gt;
Re-enter KDC database master key to verify: &lt;br /&gt;
&lt;br /&gt;
Kerberos container is missing. Creating now...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Stash the password:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -W -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&amp;lt;/code&amp;gt;&lt;br /&gt;
*: Checkpoint: If it works, you can do:&lt;br /&gt;
*:* &amp;lt;code&amp;gt;kadmin.local&amp;lt;/code&amp;gt;, try &amp;lt;code&amp;gt;listprincs&amp;lt;/code&amp;gt;, quit by typing &amp;lt;code&amp;gt;quit&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;krb5kdc&amp;lt;/code&amp;gt; &lt;br /&gt;
*: Checkpoint: &amp;lt;code&amp;gt;ps -ef | grep krb5kdc&amp;lt;/code&amp;gt; should show it running&lt;br /&gt;
&lt;br /&gt;
* Command to destroy kdb5_ldap_util: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -W -H ldapi:/// destroy&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Scratch Pad ==&lt;br /&gt;
&lt;br /&gt;
===Assume People have done===&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
&lt;br /&gt;
   16  make distclean&lt;br /&gt;
&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
&lt;br /&gt;
   19  make&lt;br /&gt;
&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
&lt;br /&gt;
    8  mkdir /tmp/krb5kdc (or should it be /tmp/sandbox/krb5kdc)?&lt;br /&gt;
&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
&lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
&lt;br /&gt;
   29  krb5kdc -n&lt;br /&gt;
&lt;br /&gt;
== Errors ==&lt;br /&gt;
* sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
*: ERROR: ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)&lt;br /&gt;
*: SOLUTION: Make sure that you have slapd started, and make sure that the -H ldapi:/// is consistent.&lt;br /&gt;
*: sudo /usr/sbin/slapd -H ldap:/// -g openldap -u openldap -F /etc/ldap/slapd.d/&lt;br /&gt;
*: openldap  5716     1  0 11:55 ?        00:00:00 /usr/sbin/slapd -h ldap:/// ldapi:/// -g openldap -u openldap -F /etc/ldap/slapd.d/&lt;br /&gt;
&lt;br /&gt;
** sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldap:///&lt;br /&gt;
**:Output: adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openldap 11434     1  0 12:06 ?        00:00:00 /usr/sbin/slapd -h ldap:/// -g openldap -u openldap -F /etc/ldap/slapd.d/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -h ldap:///&lt;br /&gt;
*: ERROR: Could not create LDAP session handle for URI=ldap://ldap:%2F%2F%2F (-9): Bad parameter to an ldap routine&lt;br /&gt;
*: SOLUTION: Change &amp;quot;-h&amp;quot; to &amp;quot;-H&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
haoqili@reach-my-dream:~/trunk/src$ ps -ef | grep sla&lt;br /&gt;
haoqili  12228  4371  0 12:26 pts/0    00:00:00 grep sla&lt;br /&gt;
haoqili@reach-my-dream:~/trunk/src$ sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldap:///&lt;br /&gt;
ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)&lt;br /&gt;
haoqili@reach-my-dream:~/trunk/src$ sudo /usr/sbin/slapd -h ldap:/// ldapi:/// -g openldap -u openldap -F /etc/ldap/slapd.d/ &lt;br /&gt;
haoqili@reach-my-dream:~/trunk/src$ sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldap:///&lt;br /&gt;
adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;&lt;br /&gt;
ldap_add: Other (e.g., implementation specific) error (80)&lt;br /&gt;
	additional info: olcAttributeTypes: Duplicate attributeType: &amp;quot;2.16.840.1.113719.1.301.4.1.1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* DbDriver is locked&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo debconf-set-selections /tmp/debconfile &lt;br /&gt;
[sudo] password for haoqili: &lt;br /&gt;
debconf: DbDriver &amp;quot;config&amp;quot;: /var/cache/debconf/config.dat is locked by another process: Resource temporarily unavailable&lt;br /&gt;
&lt;br /&gt;
OR &lt;br /&gt;
&lt;br /&gt;
sudo dpkg-reconfigure --frontend=noninteractive&lt;br /&gt;
[sudo] password for haoqili: &lt;br /&gt;
debconf: DbDriver &amp;quot;config&amp;quot;: /var/cache/debconf/config.dat is locked by another process: Resource temporarily unavailable&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*: SOLUTION: This will tell what is locking it: &amp;lt;code&amp;gt;fuser -v /var/cache/debconf/config.dat&amp;lt;/code&amp;gt;.  [http://spiralinks.blogspot.com/2009/07/debian-apt-get-interrupted-leaves-files.html From here.]&lt;br /&gt;
&lt;br /&gt;
* Here is a series of steps, some with errors that I got when I am changing the domain name (specified from sudo dpkg-reconfigure slapd) from &amp;quot;example.org&amp;quot; to &amp;quot;D.COM.&amp;quot; The errors might be helpful in pointing people to the right direction if they encounter the same errors.&lt;br /&gt;
** With my config files still with realms set to &amp;quot;example.org&amp;quot;, after I did&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ldapadd -x -D cn=admin,cn=config -W -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
Enter LDAP Password: &lt;br /&gt;
adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
** I then did &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -H ldapi:/// create -s &amp;lt;/code&amp;gt;&lt;br /&gt;
**: ERROR: kdb5_ldap_util: Invalid credentials while initializing database&lt;br /&gt;
**: Explaination: this is because the dc is no longer example.org anymore.  So I did:&lt;br /&gt;
** Changing this command to reflect the correct domain: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=D,dc=COM -H ldapi:/// create -s&amp;lt;/code&amp;gt;&lt;br /&gt;
**: Output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Password for &amp;quot;cn=admin,dc=D,dc=COM&amp;quot;: &lt;br /&gt;
Initializing database for realm 'EXAMPLE.ORG'&lt;br /&gt;
You will be prompted for the database Master Password.&lt;br /&gt;
It is important that you NOT FORGET this password.&lt;br /&gt;
Enter KDC database master key: &lt;br /&gt;
Re-enter KDC database master key to verify: &lt;br /&gt;
&lt;br /&gt;
Kerberos container is missing. Creating now...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
**: ERROR: kdb5_ldap_util: Kerberos Container create FAILED: Server is unwilling to perform while creating realm 'EXAMPLE.ORG'&lt;br /&gt;
**: Explaination: this is because even though the command domain names have changed, the config files (krb5.conf, kdc.conf) also need to reflect the correct domain name.&lt;br /&gt;
* After changing all the example.org's into d.com's, the create command worked.  So I proceeded to: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -H ldapi:/// stashsrvpw cn=admin,dc=D,dc=COM&amp;lt;/code&amp;gt;, I entered my passwords&lt;br /&gt;
* kadmin.local and krb5kdc failed with errors:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ kadmin.local&lt;br /&gt;
Authenticating as principal haoqili/admin@D.COM with password.&lt;br /&gt;
kadmin.local: Server error while initializing kadmin.local interface&lt;br /&gt;
&lt;br /&gt;
$ krb5kdc&lt;br /&gt;
krb5kdc: cannot initialize realm D.COM - see log file for details&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
** I looked at the kdc log file, it says: ''krb5kdc: Error reading password from stash:  Bind DN entry missing in stash file - while initializing database for realm D.COM''&lt;br /&gt;
*$ kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
*: Password for &amp;quot;cn=admin,dc=example,dc=org&amp;quot;: &lt;br /&gt;
*: Re-enter password for &amp;quot;cn=admin,dc=example,dc=org&amp;quot;: &lt;br /&gt;
*: ERROR: kdb5_ldap_util: Permission denied Failed to open file /usr/local/var/service_passwd: Permission denied&lt;br /&gt;
*: SOLUTION: make sure your config files are exported in the terminal you use to do this command.&lt;/div&gt;</summary>
		<author><name>Haoqili</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=Debconfile&amp;diff=2185</id>
		<title>Debconfile</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=Debconfile&amp;diff=2185"/>
				<updated>2009-08-24T22:26:43Z</updated>
		
		<summary type="html">&lt;p&gt;Haoqili: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;save in /tmp/debconfile&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
slapd   slapd/no_configuration  boolean false&lt;br /&gt;
slapd   slapd/domain    string  example.org&lt;br /&gt;
slapd   shared/organization     string  My Organization&lt;br /&gt;
slapd   slapd/backend   select  HDB&lt;br /&gt;
slapd   slapd/purge_database    boolean true&lt;br /&gt;
slapd   slapd/move_old_database boolean true&lt;br /&gt;
slapd   slapd/password1 password [YOUR PASSWORD]&lt;br /&gt;
slapd   slapd/password2 password [YOUR PASSWORD]&lt;br /&gt;
slapd   slapd/allow_ldap_v2     boolean false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Haoqili</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2184</id>
		<title>LDAP on Kerberos</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2184"/>
				<updated>2009-08-24T19:51:21Z</updated>
		
		<summary type="html">&lt;p&gt;Haoqili: /* Errors */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==About==&lt;br /&gt;
A guide to set up ldap backend for kerberos.&lt;br /&gt;
&lt;br /&gt;
== To Do ==&lt;br /&gt;
* Slapd in sandbox, not /etc&lt;br /&gt;
* Simpler Domain names D.COM, R.COM&lt;br /&gt;
* Different domain names&lt;br /&gt;
* Figure out required schemas&lt;br /&gt;
* Figure out: In Kerb Schema Operations, I can do &amp;quot;or update slapd.conf with kerb schema or ldif&amp;quot; in some ubuntu&lt;br /&gt;
* Play around to get minimum set of requirement&lt;br /&gt;
&lt;br /&gt;
* update tree too, got a fix&lt;br /&gt;
&lt;br /&gt;
== 0. Sample code to follow ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
    8  mkdir krb5kdc&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
   16  make distclean&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
   19  make&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
   29  krb5kdc -n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 1. Information about the system ==&lt;br /&gt;
- packages&lt;br /&gt;
* Version of ubuntu&lt;br /&gt;
       lsb_release -a&lt;br /&gt;
       No LSB modules are available.&lt;br /&gt;
       Distributor ID:        Ubuntu&lt;br /&gt;
       Description:        Ubuntu 9.04&lt;br /&gt;
       Release:        9.04&lt;br /&gt;
       Codename:        jaunty&lt;br /&gt;
* Version of slapd: 2.4.15 (Mar 19 2009)&lt;br /&gt;
       slapd -V&lt;br /&gt;
       @(#) $OpenLDAP: slapd 2.4.15 (Mar 19 2009 10:08:25) $&lt;br /&gt;
       buildd@palmer:/build/buildd/openldap-2.4.15/debian/build/servers/slapd&lt;br /&gt;
&lt;br /&gt;
* Version of ldap-utils: 2.4.15&lt;br /&gt;
       dpkg -l ldap-utils&lt;br /&gt;
&lt;br /&gt;
== 2. Extract krb conf files ==&lt;br /&gt;
* It is crucial to have correct, consistent domain names.  You must have the dbmodules in krb5.conf.&lt;br /&gt;
* Save [[krb5.conf]]&lt;br /&gt;
* Save [[kdc.conf]]&lt;br /&gt;
* Save [[kadm5.acl]]&lt;br /&gt;
&lt;br /&gt;
== 3. Env and Setup==&lt;br /&gt;
You need to export these lines into your env. Based on where you saved these files.&lt;br /&gt;
&lt;br /&gt;
*export KRB5_CONFIG=/tmp/sandbox/krb5.conf&lt;br /&gt;
&lt;br /&gt;
*export KRB5_KDC_PROFILE=/tmp/sandbox/kdc.conf&lt;br /&gt;
&lt;br /&gt;
* make a krb5kdc folder: mkdir /tmp/sandbox/krb5kdc)&lt;br /&gt;
&lt;br /&gt;
Whatever you do, be consistent&lt;br /&gt;
&lt;br /&gt;
== 4. Build kerb. config ==&lt;br /&gt;
&lt;br /&gt;
# Install Packages:&lt;br /&gt;
#* &amp;lt;code&amp;gt; sudo apt-get install slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
#* for ldapsearch: &amp;lt;code&amp;gt;sudo apt-get install ldap-utils&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo apt-get install libldap2-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
# Set &amp;quot;domain&amp;quot; of your LDAP server &lt;br /&gt;
#* Option 1, Interactive Option: &amp;lt;code&amp;gt;sudo dpkg-reconfigure slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
#*: Indented are the debconf-get-selections lines&lt;br /&gt;
#*# Omit OpenLDAP server configuration: No&lt;br /&gt;
#*#: slapd   slapd/no_configuration  boolean false&lt;br /&gt;
#*# DNS domain name: example.org&lt;br /&gt;
#*#: slapd   slapd/domain    string  example.org&lt;br /&gt;
#*# Organization name: example.org [note: i used the same name for simplicity]&lt;br /&gt;
#*#: slapd   shared/organization     string  example.org&lt;br /&gt;
#*# Databases backend to use: HDB, instead of BDB&lt;br /&gt;
#*#: slapd   slapd/backend   select  HDB&lt;br /&gt;
#*# Do you want the database to be removed when slapd is purge: Yes&lt;br /&gt;
#*#: slapd   slapd/purge_database    boolean true&lt;br /&gt;
#*# Move old database: Yes&lt;br /&gt;
#*#: slapd   slapd/move_old_database boolean true&lt;br /&gt;
#*# Admin password: [your pwd]&lt;br /&gt;
#*#: slapd   slapd/password1 password&lt;br /&gt;
#*#: [I'm not sure about the debconf-get-selection line here.  There are 5 different password lines!]&lt;br /&gt;
#*# Confirm password: [your pwd]&lt;br /&gt;
#*#: slapd   slapd/password2 password&lt;br /&gt;
#*# Allow LDAPv2 protocol: No&lt;br /&gt;
#*#: slapd   slapd/allow_ldap_v2     boolean false&lt;br /&gt;
#* Option 2, Noninteractive Option&lt;br /&gt;
#*# &amp;lt;code&amp;gt;sudo apt-get install debconf-utils&amp;lt;/code&amp;gt;&lt;br /&gt;
#*# Save this file in /tmp/debconfile: [[debconfile]]&lt;br /&gt;
#*# &amp;lt;code&amp;gt;sudo debconf-set-selections /tmp/debconfile&amp;lt;/code&amp;gt;&lt;br /&gt;
#*# &amp;lt;code&amp;gt;sudo dpkg-reconfigure --frontend=noninteractive slapd&amp;lt;/code&amp;gt; &lt;br /&gt;
#* Checkpoint:  If you are successful, you should see as output:&lt;br /&gt;
#*: ''Stopping OpenLDAP: slapd.''&lt;br /&gt;
#*:  ''Moving old database directory to /var/backups:''&lt;br /&gt;
#*:  ''- directory unknown... done.''&lt;br /&gt;
#*:  ''Creating initial slapd configuration... done.''&lt;br /&gt;
#*:  ''Creating initial LDAP directory... done.''&lt;br /&gt;
#*: ''* Reloading AppArmor profiles ''&lt;br /&gt;
#*:  ''...                                               [ OK ]'' &lt;br /&gt;
#*:  ''Starting OpenLDAP: slapd.''&lt;br /&gt;
# If you haven't done so already, please copy kerberos.schema from your kerberos trunk into /etc/ldap/schema: &amp;lt;code&amp;gt;sudo cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
# To restrict access to the local machine, &amp;lt;code&amp;gt;sudo vim /etc/default/slapd&amp;lt;/code&amp;gt;, search for SLAPD_SERVICES and set it to: &amp;lt;pre&amp;gt;SLAPD_SERVICES=&amp;quot;ldapi:///&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Reconfigure your kerberos&lt;br /&gt;
#* Navigate to kerberos src&lt;br /&gt;
#* &amp;lt;code&amp;gt;make distclean&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;util/reconf&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;./configure --with-ldap&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo make install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 5. Kerb Schema Operations ==&lt;br /&gt;
Loosely followed [http://ajuda.ubuntu.cat/9.04/serverguide/kerberos-ldap.html Ubuntu Guide] and [http://web.mit.edu/kerberos/krb5-1.7/krb5-1.7/doc/krb5-admin.html#Configuring-Kerberos-with-OpenLDAP-back_002dend Kerberos V5 System Admin Guide]&lt;br /&gt;
&lt;br /&gt;
# You have not done so already, locate the kerberos.schema.  [[kerberos.schema]] which should be in /etc/ldap/schema/kerberos.schema.  If it is not there, please copy it there from your kerberos trunk: &amp;lt;code&amp;gt;cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Checkpoint: Make sure there is a list of different schemas in /etc/ldap/schema.  Such as&lt;br /&gt;
#:* core.schema&lt;br /&gt;
#:* inetorgperson.schema&lt;br /&gt;
#:* kerberos.schema&lt;br /&gt;
#:* misc.schema&lt;br /&gt;
#:* openldap.schema&lt;br /&gt;
# Make this [[schema_convert.conf]] at /tmp/schema_convert.conf.  Note! This is different from the schema_convert.conf in the Ubuntu Guide.&lt;br /&gt;
# Make the directory to hold output: &amp;lt;code&amp;gt;mkdir /tmp/ldif_output &amp;lt;/code&amp;gt;&lt;br /&gt;
# Convert schema --&amp;gt; LDIF with slaptest: &amp;lt;code&amp;gt;slaptest -f tmp/schema_convert.conf -F /tmp/ldif_output&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: &amp;quot;config file testing succeeded&amp;quot;&lt;br /&gt;
#: Checkpoint: If you &amp;lt;code&amp;gt;sudo ls /tmp/ldif_output/cn\=config/cn\=schema&amp;lt;/code&amp;gt;, you should see:&lt;br /&gt;
#:: cn={0}core.ldif       &lt;br /&gt;
#:: cn={1}corba.ldif          &lt;br /&gt;
#:: cn={2}cosine.ldif   &lt;br /&gt;
#:: cn={3}duaconf.ldif  &lt;br /&gt;
#:: cn={4}inetorgperson.ldif&lt;br /&gt;
#:: cn={5}java.ldif	&lt;br /&gt;
#:: cn={6}kerberos.ldif&lt;br /&gt;
#:: cn={7}misc.ldif&lt;br /&gt;
#:: cn={8}openldap.ldif&lt;br /&gt;
#:: cn={9}nis.ldif&lt;br /&gt;
# Need to modify kerberos.ldif. &lt;br /&gt;
#* Find which number kerberos.ldif is listed as: &amp;lt;code&amp;gt;sudo ls /tmp/ldif_output/cn\=config/cn\=schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Edit it: &amp;lt;code&amp;gt; sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn={6}kerberos.ldif&amp;lt;/code&amp;gt;&lt;br /&gt;
#** change ''dn: cn={6}kerberos'' into ''dn: cn=kerberos,cn=schema,cn=config''&lt;br /&gt;
#** change ''cn: {6}kerberos'' into ''cn: kerberos''&lt;br /&gt;
#** Delete the bottom lines: from ''structuralObjectClasses: olcSchemaConfig'' to ''modifyTimestamp: 20090811205313Z''&lt;br /&gt;
# load new schema: &amp;lt;code&amp;gt;sudo ldapadd -x -D cn=admin,cn=config -W -f /tmp/ldif_output/cn\=config/cn\=schema/cn\={6}kerberos.ldif -H ldapi:///&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Note if you get a &amp;quot;Can't contact LDAP server&amp;quot; error, check your &amp;lt;code&amp;gt;ps -ef | grep slapd&amp;lt;/code&amp;gt; to see its details and change accordingly.  A common way to fix it is to sudo ldapadd with ldap:/// instead of ldapi:///&lt;br /&gt;
#: Output: ''adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
== 6. Starting ==&lt;br /&gt;
* Create your database with kdb5_ldap_util instead of kdb5_util:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -H ldapi:/// create  -s&lt;br /&gt;
*: note that if you have ldapadd with ldap:/// instead of ldapi:///, it should also be ldap:/// here&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Initializing database for realm 'EXAMPLE.ORG'&lt;br /&gt;
You will be prompted for the database Master Password.&lt;br /&gt;
It is important that you NOT FORGET this password.&lt;br /&gt;
Enter KDC database master key: &lt;br /&gt;
Re-enter KDC database master key to verify: &lt;br /&gt;
&lt;br /&gt;
Kerberos container is missing. Creating now...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Stash the password:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -W -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&amp;lt;/code&amp;gt;&lt;br /&gt;
*: Checkpoint: If it works, you can do:&lt;br /&gt;
*:* &amp;lt;code&amp;gt;kadmin.local&amp;lt;/code&amp;gt;, try &amp;lt;code&amp;gt;listprincs&amp;lt;/code&amp;gt;, quit by typing &amp;lt;code&amp;gt;quit&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;krb5kdc&amp;lt;/code&amp;gt; &lt;br /&gt;
*: Checkpoint: &amp;lt;code&amp;gt;ps -ef | grep krb5kdc&amp;lt;/code&amp;gt; should show it running&lt;br /&gt;
&lt;br /&gt;
* Command to destroy kdb5_ldap_util: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -W -H ldapi:/// destroy&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Scratch Pad ==&lt;br /&gt;
&lt;br /&gt;
===Assume People have done===&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
&lt;br /&gt;
   16  make distclean&lt;br /&gt;
&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
&lt;br /&gt;
   19  make&lt;br /&gt;
&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
&lt;br /&gt;
    8  mkdir /tmp/krb5kdc (or should it be /tmp/sandbox/krb5kdc)?&lt;br /&gt;
&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
&lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
&lt;br /&gt;
   29  krb5kdc -n&lt;br /&gt;
&lt;br /&gt;
== Errors ==&lt;br /&gt;
* sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
*: ERROR: ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)&lt;br /&gt;
*: SOLUTION: Make sure that you have slapd started, and make sure that the -H ldapi:/// is consistent.&lt;br /&gt;
*: sudo /usr/sbin/slapd -H ldap:/// -g openldap -u openldap -F /etc/ldap/slapd.d/&lt;br /&gt;
*: openldap  5716     1  0 11:55 ?        00:00:00 /usr/sbin/slapd -h ldap:/// ldapi:/// -g openldap -u openldap -F /etc/ldap/slapd.d/&lt;br /&gt;
&lt;br /&gt;
** sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldap:///&lt;br /&gt;
**:Output: adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openldap 11434     1  0 12:06 ?        00:00:00 /usr/sbin/slapd -h ldap:/// -g openldap -u openldap -F /etc/ldap/slapd.d/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -h ldap:///&lt;br /&gt;
*: ERROR: Could not create LDAP session handle for URI=ldap://ldap:%2F%2F%2F (-9): Bad parameter to an ldap routine&lt;br /&gt;
*: SOLUTION: Change &amp;quot;-h&amp;quot; to &amp;quot;-H&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
haoqili@reach-my-dream:~/trunk/src$ ps -ef | grep sla&lt;br /&gt;
haoqili  12228  4371  0 12:26 pts/0    00:00:00 grep sla&lt;br /&gt;
haoqili@reach-my-dream:~/trunk/src$ sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldap:///&lt;br /&gt;
ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)&lt;br /&gt;
haoqili@reach-my-dream:~/trunk/src$ sudo /usr/sbin/slapd -h ldap:/// ldapi:/// -g openldap -u openldap -F /etc/ldap/slapd.d/ &lt;br /&gt;
haoqili@reach-my-dream:~/trunk/src$ sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldap:///&lt;br /&gt;
adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;&lt;br /&gt;
ldap_add: Other (e.g., implementation specific) error (80)&lt;br /&gt;
	additional info: olcAttributeTypes: Duplicate attributeType: &amp;quot;2.16.840.1.113719.1.301.4.1.1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* DbDriver is locked&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo debconf-set-selections /tmp/debconfile &lt;br /&gt;
[sudo] password for haoqili: &lt;br /&gt;
debconf: DbDriver &amp;quot;config&amp;quot;: /var/cache/debconf/config.dat is locked by another process: Resource temporarily unavailable&lt;br /&gt;
&lt;br /&gt;
OR &lt;br /&gt;
&lt;br /&gt;
sudo dpkg-reconfigure --frontend=noninteractive&lt;br /&gt;
[sudo] password for haoqili: &lt;br /&gt;
debconf: DbDriver &amp;quot;config&amp;quot;: /var/cache/debconf/config.dat is locked by another process: Resource temporarily unavailable&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*: SOLUTION: This will tell what is locking it: &amp;lt;code&amp;gt;fuser -v /var/cache/debconf/config.dat&amp;lt;/code&amp;gt;.  [http://spiralinks.blogspot.com/2009/07/debian-apt-get-interrupted-leaves-files.html From here.]&lt;br /&gt;
&lt;br /&gt;
* Here is a series of steps, some with errors that I got when I am changing the domain name (specified from sudo dpkg-reconfigure slapd) from &amp;quot;example.org&amp;quot; to &amp;quot;D.COM.&amp;quot; The errors might be helpful in pointing people to the right direction if they encounter the same errors.&lt;br /&gt;
** With my config files still with realms set to &amp;quot;example.org&amp;quot;, after I did&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ldapadd -x -D cn=admin,cn=config -W -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
Enter LDAP Password: &lt;br /&gt;
adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
** I then did &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -H ldapi:/// create -s &amp;lt;/code&amp;gt;&lt;br /&gt;
**: ERROR: kdb5_ldap_util: Invalid credentials while initializing database&lt;br /&gt;
**: Explaination: this is because the dc is no longer example.org anymore.  So I did:&lt;br /&gt;
** Changing this command to reflect the correct domain: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=D,dc=COM -H ldapi:/// create -s&amp;lt;/code&amp;gt;&lt;br /&gt;
**: Output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Password for &amp;quot;cn=admin,dc=D,dc=COM&amp;quot;: &lt;br /&gt;
Initializing database for realm 'EXAMPLE.ORG'&lt;br /&gt;
You will be prompted for the database Master Password.&lt;br /&gt;
It is important that you NOT FORGET this password.&lt;br /&gt;
Enter KDC database master key: &lt;br /&gt;
Re-enter KDC database master key to verify: &lt;br /&gt;
&lt;br /&gt;
Kerberos container is missing. Creating now...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
**: ERROR: kdb5_ldap_util: Kerberos Container create FAILED: Server is unwilling to perform while creating realm 'EXAMPLE.ORG'&lt;br /&gt;
**: Explaination: this is because even though the command domain names have changed, the config files (krb5.conf, kdc.conf) also need to reflect the correct domain name.&lt;br /&gt;
* After changing all the example.org's into d.com's, the create command worked.  So I proceeded to: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -H ldapi:/// stashsrvpw cn=admin,dc=D,dc=COM&amp;lt;/code&amp;gt;, I entered my passwords&lt;br /&gt;
* kadmin.local and krb5kdc failed with errors:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ kadmin.local&lt;br /&gt;
Authenticating as principal haoqili/admin@D.COM with password.&lt;br /&gt;
kadmin.local: Server error while initializing kadmin.local interface&lt;br /&gt;
&lt;br /&gt;
$ krb5kdc&lt;br /&gt;
krb5kdc: cannot initialize realm D.COM - see log file for details&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
** I looked at the kdc log file, it says: ''krb5kdc: Error reading password from stash:  Bind DN entry missing in stash file - while initializing database for realm D.COM''&lt;/div&gt;</summary>
		<author><name>Haoqili</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2183</id>
		<title>LDAP on Kerberos</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2183"/>
				<updated>2009-08-24T19:37:20Z</updated>
		
		<summary type="html">&lt;p&gt;Haoqili: /* Errors */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==About==&lt;br /&gt;
A guide to set up ldap backend for kerberos.&lt;br /&gt;
&lt;br /&gt;
== To Do ==&lt;br /&gt;
* Slapd in sandbox, not /etc&lt;br /&gt;
* Simpler Domain names D.COM, R.COM&lt;br /&gt;
* Different domain names&lt;br /&gt;
* Figure out required schemas&lt;br /&gt;
* Figure out: In Kerb Schema Operations, I can do &amp;quot;or update slapd.conf with kerb schema or ldif&amp;quot; in some ubuntu&lt;br /&gt;
* Play around to get minimum set of requirement&lt;br /&gt;
&lt;br /&gt;
* update tree too, got a fix&lt;br /&gt;
&lt;br /&gt;
== 0. Sample code to follow ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
    8  mkdir krb5kdc&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
   16  make distclean&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
   19  make&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
   29  krb5kdc -n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 1. Information about the system ==&lt;br /&gt;
- packages&lt;br /&gt;
* Version of ubuntu&lt;br /&gt;
       lsb_release -a&lt;br /&gt;
       No LSB modules are available.&lt;br /&gt;
       Distributor ID:        Ubuntu&lt;br /&gt;
       Description:        Ubuntu 9.04&lt;br /&gt;
       Release:        9.04&lt;br /&gt;
       Codename:        jaunty&lt;br /&gt;
* Version of slapd: 2.4.15 (Mar 19 2009)&lt;br /&gt;
       slapd -V&lt;br /&gt;
       @(#) $OpenLDAP: slapd 2.4.15 (Mar 19 2009 10:08:25) $&lt;br /&gt;
       buildd@palmer:/build/buildd/openldap-2.4.15/debian/build/servers/slapd&lt;br /&gt;
&lt;br /&gt;
* Version of ldap-utils: 2.4.15&lt;br /&gt;
       dpkg -l ldap-utils&lt;br /&gt;
&lt;br /&gt;
== 2. Extract krb conf files ==&lt;br /&gt;
* It is crucial to have correct, consistent domain names.  You must have the dbmodules in krb5.conf.&lt;br /&gt;
* Save [[krb5.conf]]&lt;br /&gt;
* Save [[kdc.conf]]&lt;br /&gt;
* Save [[kadm5.acl]]&lt;br /&gt;
&lt;br /&gt;
== 3. Env and Setup==&lt;br /&gt;
You need to export these lines into your env. Based on where you saved these files.&lt;br /&gt;
&lt;br /&gt;
*export KRB5_CONFIG=/tmp/sandbox/krb5.conf&lt;br /&gt;
&lt;br /&gt;
*export KRB5_KDC_PROFILE=/tmp/sandbox/kdc.conf&lt;br /&gt;
&lt;br /&gt;
* make a krb5kdc folder: mkdir /tmp/sandbox/krb5kdc)&lt;br /&gt;
&lt;br /&gt;
Whatever you do, be consistent&lt;br /&gt;
&lt;br /&gt;
== 4. Build kerb. config ==&lt;br /&gt;
&lt;br /&gt;
# Install Packages:&lt;br /&gt;
#* &amp;lt;code&amp;gt; sudo apt-get install slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
#* for ldapsearch: &amp;lt;code&amp;gt;sudo apt-get install ldap-utils&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo apt-get install libldap2-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
# Set &amp;quot;domain&amp;quot; of your LDAP server &lt;br /&gt;
#* Option 1, Interactive Option: &amp;lt;code&amp;gt;sudo dpkg-reconfigure slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
#*: Indented are the debconf-get-selections lines&lt;br /&gt;
#*# Omit OpenLDAP server configuration: No&lt;br /&gt;
#*#: slapd   slapd/no_configuration  boolean false&lt;br /&gt;
#*# DNS domain name: example.org&lt;br /&gt;
#*#: slapd   slapd/domain    string  example.org&lt;br /&gt;
#*# Organization name: example.org [note: i used the same name for simplicity]&lt;br /&gt;
#*#: slapd   shared/organization     string  example.org&lt;br /&gt;
#*# Databases backend to use: HDB, instead of BDB&lt;br /&gt;
#*#: slapd   slapd/backend   select  HDB&lt;br /&gt;
#*# Do you want the database to be removed when slapd is purge: Yes&lt;br /&gt;
#*#: slapd   slapd/purge_database    boolean true&lt;br /&gt;
#*# Move old database: Yes&lt;br /&gt;
#*#: slapd   slapd/move_old_database boolean true&lt;br /&gt;
#*# Admin password: [your pwd]&lt;br /&gt;
#*#: slapd   slapd/password1 password&lt;br /&gt;
#*#: [I'm not sure about the debconf-get-selection line here.  There are 5 different password lines!]&lt;br /&gt;
#*# Confirm password: [your pwd]&lt;br /&gt;
#*#: slapd   slapd/password2 password&lt;br /&gt;
#*# Allow LDAPv2 protocol: No&lt;br /&gt;
#*#: slapd   slapd/allow_ldap_v2     boolean false&lt;br /&gt;
#* Option 2, Noninteractive Option&lt;br /&gt;
#*# &amp;lt;code&amp;gt;sudo apt-get install debconf-utils&amp;lt;/code&amp;gt;&lt;br /&gt;
#*# Save this file in /tmp/debconfile: [[debconfile]]&lt;br /&gt;
#*# &amp;lt;code&amp;gt;sudo debconf-set-selections /tmp/debconfile&amp;lt;/code&amp;gt;&lt;br /&gt;
#*# &amp;lt;code&amp;gt;sudo dpkg-reconfigure --frontend=noninteractive slapd&amp;lt;/code&amp;gt; &lt;br /&gt;
#* Checkpoint:  If you are successful, you should see as output:&lt;br /&gt;
#*: ''Stopping OpenLDAP: slapd.''&lt;br /&gt;
#*:  ''Moving old database directory to /var/backups:''&lt;br /&gt;
#*:  ''- directory unknown... done.''&lt;br /&gt;
#*:  ''Creating initial slapd configuration... done.''&lt;br /&gt;
#*:  ''Creating initial LDAP directory... done.''&lt;br /&gt;
#*: ''* Reloading AppArmor profiles ''&lt;br /&gt;
#*:  ''...                                               [ OK ]'' &lt;br /&gt;
#*:  ''Starting OpenLDAP: slapd.''&lt;br /&gt;
# If you haven't done so already, please copy kerberos.schema from your kerberos trunk into /etc/ldap/schema: &amp;lt;code&amp;gt;sudo cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
# To restrict access to the local machine, &amp;lt;code&amp;gt;sudo vim /etc/default/slapd&amp;lt;/code&amp;gt;, search for SLAPD_SERVICES and set it to: &amp;lt;pre&amp;gt;SLAPD_SERVICES=&amp;quot;ldapi:///&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Reconfigure your kerberos&lt;br /&gt;
#* Navigate to kerberos src&lt;br /&gt;
#* &amp;lt;code&amp;gt;make distclean&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;util/reconf&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;./configure --with-ldap&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo make install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 5. Kerb Schema Operations ==&lt;br /&gt;
Loosely followed [http://ajuda.ubuntu.cat/9.04/serverguide/kerberos-ldap.html Ubuntu Guide] and [http://web.mit.edu/kerberos/krb5-1.7/krb5-1.7/doc/krb5-admin.html#Configuring-Kerberos-with-OpenLDAP-back_002dend Kerberos V5 System Admin Guide]&lt;br /&gt;
&lt;br /&gt;
# You have not done so already, locate the kerberos.schema.  [[kerberos.schema]] which should be in /etc/ldap/schema/kerberos.schema.  If it is not there, please copy it there from your kerberos trunk: &amp;lt;code&amp;gt;cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Checkpoint: Make sure there is a list of different schemas in /etc/ldap/schema.  Such as&lt;br /&gt;
#:* core.schema&lt;br /&gt;
#:* inetorgperson.schema&lt;br /&gt;
#:* kerberos.schema&lt;br /&gt;
#:* misc.schema&lt;br /&gt;
#:* openldap.schema&lt;br /&gt;
# Make this [[schema_convert.conf]] at /tmp/schema_convert.conf.  Note! This is different from the schema_convert.conf in the Ubuntu Guide.&lt;br /&gt;
# Make the directory to hold output: &amp;lt;code&amp;gt;mkdir /tmp/ldif_output &amp;lt;/code&amp;gt;&lt;br /&gt;
# Convert schema --&amp;gt; LDIF with slaptest: &amp;lt;code&amp;gt;slaptest -f tmp/schema_convert.conf -F /tmp/ldif_output&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: &amp;quot;config file testing succeeded&amp;quot;&lt;br /&gt;
#: Checkpoint: If you &amp;lt;code&amp;gt;sudo ls /tmp/ldif_output/cn\=config/cn\=schema&amp;lt;/code&amp;gt;, you should see:&lt;br /&gt;
#:: cn={0}core.ldif       &lt;br /&gt;
#:: cn={1}corba.ldif          &lt;br /&gt;
#:: cn={2}cosine.ldif   &lt;br /&gt;
#:: cn={3}duaconf.ldif  &lt;br /&gt;
#:: cn={4}inetorgperson.ldif&lt;br /&gt;
#:: cn={5}java.ldif	&lt;br /&gt;
#:: cn={6}kerberos.ldif&lt;br /&gt;
#:: cn={7}misc.ldif&lt;br /&gt;
#:: cn={8}openldap.ldif&lt;br /&gt;
#:: cn={9}nis.ldif&lt;br /&gt;
# Need to modify kerberos.ldif. &lt;br /&gt;
#* Find which number kerberos.ldif is listed as: &amp;lt;code&amp;gt;sudo ls /tmp/ldif_output/cn\=config/cn\=schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Edit it: &amp;lt;code&amp;gt; sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn={6}kerberos.ldif&amp;lt;/code&amp;gt;&lt;br /&gt;
#** change ''dn: cn={6}kerberos'' into ''dn: cn=kerberos,cn=schema,cn=config''&lt;br /&gt;
#** change ''cn: {6}kerberos'' into ''cn: kerberos''&lt;br /&gt;
#** Delete the bottom lines: from ''structuralObjectClasses: olcSchemaConfig'' to ''modifyTimestamp: 20090811205313Z''&lt;br /&gt;
# load new schema: &amp;lt;code&amp;gt;sudo ldapadd -x -D cn=admin,cn=config -W -f /tmp/ldif_output/cn\=config/cn\=schema/cn\={6}kerberos.ldif -H ldapi:///&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Note if you get a &amp;quot;Can't contact LDAP server&amp;quot; error, check your &amp;lt;code&amp;gt;ps -ef | grep slapd&amp;lt;/code&amp;gt; to see its details and change accordingly.  A common way to fix it is to sudo ldapadd with ldap:/// instead of ldapi:///&lt;br /&gt;
#: Output: ''adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
== 6. Starting ==&lt;br /&gt;
* Create your database with kdb5_ldap_util instead of kdb5_util:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -H ldapi:/// create  -s&lt;br /&gt;
*: note that if you have ldapadd with ldap:/// instead of ldapi:///, it should also be ldap:/// here&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Initializing database for realm 'EXAMPLE.ORG'&lt;br /&gt;
You will be prompted for the database Master Password.&lt;br /&gt;
It is important that you NOT FORGET this password.&lt;br /&gt;
Enter KDC database master key: &lt;br /&gt;
Re-enter KDC database master key to verify: &lt;br /&gt;
&lt;br /&gt;
Kerberos container is missing. Creating now...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Stash the password:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -W -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&amp;lt;/code&amp;gt;&lt;br /&gt;
*: Checkpoint: If it works, you can do:&lt;br /&gt;
*:* &amp;lt;code&amp;gt;kadmin.local&amp;lt;/code&amp;gt;, try &amp;lt;code&amp;gt;listprincs&amp;lt;/code&amp;gt;, quit by typing &amp;lt;code&amp;gt;quit&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;krb5kdc&amp;lt;/code&amp;gt; &lt;br /&gt;
*: Checkpoint: &amp;lt;code&amp;gt;ps -ef | grep krb5kdc&amp;lt;/code&amp;gt; should show it running&lt;br /&gt;
&lt;br /&gt;
* Command to destroy kdb5_ldap_util: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -W -H ldapi:/// destroy&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Scratch Pad ==&lt;br /&gt;
&lt;br /&gt;
===Assume People have done===&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
&lt;br /&gt;
   16  make distclean&lt;br /&gt;
&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
&lt;br /&gt;
   19  make&lt;br /&gt;
&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
&lt;br /&gt;
    8  mkdir /tmp/krb5kdc (or should it be /tmp/sandbox/krb5kdc)?&lt;br /&gt;
&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
&lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
&lt;br /&gt;
   29  krb5kdc -n&lt;br /&gt;
&lt;br /&gt;
== Errors ==&lt;br /&gt;
* sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
*: ERROR: ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)&lt;br /&gt;
*: SOLUTION: Make sure that you have slapd started, and make sure that the -H ldapi:/// is consistent.&lt;br /&gt;
*: sudo /usr/sbin/slapd -H ldap:/// -g openldap -u openldap -F /etc/ldap/slapd.d/&lt;br /&gt;
*: openldap  5716     1  0 11:55 ?        00:00:00 /usr/sbin/slapd -h ldap:/// ldapi:/// -g openldap -u openldap -F /etc/ldap/slapd.d/&lt;br /&gt;
&lt;br /&gt;
** sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldap:///&lt;br /&gt;
**:Output: adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openldap 11434     1  0 12:06 ?        00:00:00 /usr/sbin/slapd -h ldap:/// -g openldap -u openldap -F /etc/ldap/slapd.d/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -h ldap:///&lt;br /&gt;
*: ERROR: Could not create LDAP session handle for URI=ldap://ldap:%2F%2F%2F (-9): Bad parameter to an ldap routine&lt;br /&gt;
*: SOLUTION: Change &amp;quot;-h&amp;quot; to &amp;quot;-H&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
haoqili@reach-my-dream:~/trunk/src$ ps -ef | grep sla&lt;br /&gt;
haoqili  12228  4371  0 12:26 pts/0    00:00:00 grep sla&lt;br /&gt;
haoqili@reach-my-dream:~/trunk/src$ sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldap:///&lt;br /&gt;
ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)&lt;br /&gt;
haoqili@reach-my-dream:~/trunk/src$ sudo /usr/sbin/slapd -h ldap:/// ldapi:/// -g openldap -u openldap -F /etc/ldap/slapd.d/ &lt;br /&gt;
haoqili@reach-my-dream:~/trunk/src$ sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldap:///&lt;br /&gt;
adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;&lt;br /&gt;
ldap_add: Other (e.g., implementation specific) error (80)&lt;br /&gt;
	additional info: olcAttributeTypes: Duplicate attributeType: &amp;quot;2.16.840.1.113719.1.301.4.1.1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* DbDriver is locked&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo debconf-set-selections /tmp/debconfile &lt;br /&gt;
[sudo] password for haoqili: &lt;br /&gt;
debconf: DbDriver &amp;quot;config&amp;quot;: /var/cache/debconf/config.dat is locked by another process: Resource temporarily unavailable&lt;br /&gt;
&lt;br /&gt;
OR &lt;br /&gt;
&lt;br /&gt;
sudo dpkg-reconfigure --frontend=noninteractive&lt;br /&gt;
[sudo] password for haoqili: &lt;br /&gt;
debconf: DbDriver &amp;quot;config&amp;quot;: /var/cache/debconf/config.dat is locked by another process: Resource temporarily unavailable&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*: SOLUTION: This will tell what is locking it: &amp;lt;code&amp;gt;fuser -v /var/cache/debconf/config.dat&amp;lt;/code&amp;gt;.  [http://spiralinks.blogspot.com/2009/07/debian-apt-get-interrupted-leaves-files.html From here.]&lt;br /&gt;
&lt;br /&gt;
* Here is a series of steps, some with errors that I got when I am changing the domain name (specified from sudo dpkg-reconfigure slapd) from &amp;quot;example.org&amp;quot; to &amp;quot;D.COM.&amp;quot; The errors might be helpful in pointing people to the right direction if they encounter the same errors.&lt;br /&gt;
** With my config files still with realms set to &amp;quot;example.org&amp;quot;, after I did&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ldapadd -x -D cn=admin,cn=config -W -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
Enter LDAP Password: &lt;br /&gt;
adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
** I then did &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -H ldapi:/// create -s &amp;lt;/code&amp;gt;&lt;br /&gt;
**: ERROR: kdb5_ldap_util: Invalid credentials while initializing database&lt;br /&gt;
**: Explaination: this is because the dc is no longer example.org anymore.  So I did:&lt;br /&gt;
** Changing this command to reflect the correct domain: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=D,dc=COM -H ldapi:/// create -s&amp;lt;/code&amp;gt;&lt;br /&gt;
**: Output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Password for &amp;quot;cn=admin,dc=D,dc=COM&amp;quot;: &lt;br /&gt;
Initializing database for realm 'EXAMPLE.ORG'&lt;br /&gt;
You will be prompted for the database Master Password.&lt;br /&gt;
It is important that you NOT FORGET this password.&lt;br /&gt;
Enter KDC database master key: &lt;br /&gt;
Re-enter KDC database master key to verify: &lt;br /&gt;
&lt;br /&gt;
Kerberos container is missing. Creating now...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
**: ERROR: kdb5_ldap_util: Kerberos Container create FAILED: Server is unwilling to perform while creating realm 'EXAMPLE.ORG'&lt;br /&gt;
**: Explaination: this is because even though the command domain names have changed, the config files (krb5.conf, kdc.conf) also need to reflect the correct domain name.&lt;/div&gt;</summary>
		<author><name>Haoqili</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2182</id>
		<title>LDAP on Kerberos</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2182"/>
				<updated>2009-08-24T15:48:38Z</updated>
		
		<summary type="html">&lt;p&gt;Haoqili: /* 6. Starting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==About==&lt;br /&gt;
A guide to set up ldap backend for kerberos.&lt;br /&gt;
&lt;br /&gt;
== To Do ==&lt;br /&gt;
* Slapd in sandbox, not /etc&lt;br /&gt;
* Simpler Domain names D.COM, R.COM&lt;br /&gt;
* Different domain names&lt;br /&gt;
* Figure out required schemas&lt;br /&gt;
* Figure out: In Kerb Schema Operations, I can do &amp;quot;or update slapd.conf with kerb schema or ldif&amp;quot; in some ubuntu&lt;br /&gt;
* Play around to get minimum set of requirement&lt;br /&gt;
&lt;br /&gt;
* update tree too, got a fix&lt;br /&gt;
&lt;br /&gt;
== 0. Sample code to follow ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
    8  mkdir krb5kdc&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
   16  make distclean&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
   19  make&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
   29  krb5kdc -n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 1. Information about the system ==&lt;br /&gt;
- packages&lt;br /&gt;
* Version of ubuntu&lt;br /&gt;
       lsb_release -a&lt;br /&gt;
       No LSB modules are available.&lt;br /&gt;
       Distributor ID:        Ubuntu&lt;br /&gt;
       Description:        Ubuntu 9.04&lt;br /&gt;
       Release:        9.04&lt;br /&gt;
       Codename:        jaunty&lt;br /&gt;
* Version of slapd: 2.4.15 (Mar 19 2009)&lt;br /&gt;
       slapd -V&lt;br /&gt;
       @(#) $OpenLDAP: slapd 2.4.15 (Mar 19 2009 10:08:25) $&lt;br /&gt;
       buildd@palmer:/build/buildd/openldap-2.4.15/debian/build/servers/slapd&lt;br /&gt;
&lt;br /&gt;
* Version of ldap-utils: 2.4.15&lt;br /&gt;
       dpkg -l ldap-utils&lt;br /&gt;
&lt;br /&gt;
== 2. Extract krb conf files ==&lt;br /&gt;
* It is crucial to have correct, consistent domain names.  You must have the dbmodules in krb5.conf.&lt;br /&gt;
* Save [[krb5.conf]]&lt;br /&gt;
* Save [[kdc.conf]]&lt;br /&gt;
* Save [[kadm5.acl]]&lt;br /&gt;
&lt;br /&gt;
== 3. Env and Setup==&lt;br /&gt;
You need to export these lines into your env. Based on where you saved these files.&lt;br /&gt;
&lt;br /&gt;
*export KRB5_CONFIG=/tmp/sandbox/krb5.conf&lt;br /&gt;
&lt;br /&gt;
*export KRB5_KDC_PROFILE=/tmp/sandbox/kdc.conf&lt;br /&gt;
&lt;br /&gt;
* make a krb5kdc folder: mkdir /tmp/sandbox/krb5kdc)&lt;br /&gt;
&lt;br /&gt;
Whatever you do, be consistent&lt;br /&gt;
&lt;br /&gt;
== 4. Build kerb. config ==&lt;br /&gt;
&lt;br /&gt;
# Install Packages:&lt;br /&gt;
#* &amp;lt;code&amp;gt; sudo apt-get install slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
#* for ldapsearch: &amp;lt;code&amp;gt;sudo apt-get install ldap-utils&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo apt-get install libldap2-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
# Set &amp;quot;domain&amp;quot; of your LDAP server &lt;br /&gt;
#* Option 1, Interactive Option: &amp;lt;code&amp;gt;sudo dpkg-reconfigure slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
#*: Indented are the debconf-get-selections lines&lt;br /&gt;
#*# Omit OpenLDAP server configuration: No&lt;br /&gt;
#*#: slapd   slapd/no_configuration  boolean false&lt;br /&gt;
#*# DNS domain name: example.org&lt;br /&gt;
#*#: slapd   slapd/domain    string  example.org&lt;br /&gt;
#*# Organization name: example.org [note: i used the same name for simplicity]&lt;br /&gt;
#*#: slapd   shared/organization     string  example.org&lt;br /&gt;
#*# Databases backend to use: HDB, instead of BDB&lt;br /&gt;
#*#: slapd   slapd/backend   select  HDB&lt;br /&gt;
#*# Do you want the database to be removed when slapd is purge: Yes&lt;br /&gt;
#*#: slapd   slapd/purge_database    boolean true&lt;br /&gt;
#*# Move old database: Yes&lt;br /&gt;
#*#: slapd   slapd/move_old_database boolean true&lt;br /&gt;
#*# Admin password: [your pwd]&lt;br /&gt;
#*#: slapd   slapd/password1 password&lt;br /&gt;
#*#: [I'm not sure about the debconf-get-selection line here.  There are 5 different password lines!]&lt;br /&gt;
#*# Confirm password: [your pwd]&lt;br /&gt;
#*#: slapd   slapd/password2 password&lt;br /&gt;
#*# Allow LDAPv2 protocol: No&lt;br /&gt;
#*#: slapd   slapd/allow_ldap_v2     boolean false&lt;br /&gt;
#* Option 2, Noninteractive Option&lt;br /&gt;
#*# &amp;lt;code&amp;gt;sudo apt-get install debconf-utils&amp;lt;/code&amp;gt;&lt;br /&gt;
#*# Save this file in /tmp/debconfile: [[debconfile]]&lt;br /&gt;
#*# &amp;lt;code&amp;gt;sudo debconf-set-selections /tmp/debconfile&amp;lt;/code&amp;gt;&lt;br /&gt;
#*# &amp;lt;code&amp;gt;sudo dpkg-reconfigure --frontend=noninteractive slapd&amp;lt;/code&amp;gt; &lt;br /&gt;
#* Checkpoint:  If you are successful, you should see as output:&lt;br /&gt;
#*: ''Stopping OpenLDAP: slapd.''&lt;br /&gt;
#*:  ''Moving old database directory to /var/backups:''&lt;br /&gt;
#*:  ''- directory unknown... done.''&lt;br /&gt;
#*:  ''Creating initial slapd configuration... done.''&lt;br /&gt;
#*:  ''Creating initial LDAP directory... done.''&lt;br /&gt;
#*: ''* Reloading AppArmor profiles ''&lt;br /&gt;
#*:  ''...                                               [ OK ]'' &lt;br /&gt;
#*:  ''Starting OpenLDAP: slapd.''&lt;br /&gt;
# If you haven't done so already, please copy kerberos.schema from your kerberos trunk into /etc/ldap/schema: &amp;lt;code&amp;gt;sudo cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
# To restrict access to the local machine, &amp;lt;code&amp;gt;sudo vim /etc/default/slapd&amp;lt;/code&amp;gt;, search for SLAPD_SERVICES and set it to: &amp;lt;pre&amp;gt;SLAPD_SERVICES=&amp;quot;ldapi:///&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Reconfigure your kerberos&lt;br /&gt;
#* Navigate to kerberos src&lt;br /&gt;
#* &amp;lt;code&amp;gt;make distclean&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;util/reconf&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;./configure --with-ldap&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo make install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 5. Kerb Schema Operations ==&lt;br /&gt;
Loosely followed [http://ajuda.ubuntu.cat/9.04/serverguide/kerberos-ldap.html Ubuntu Guide] and [http://web.mit.edu/kerberos/krb5-1.7/krb5-1.7/doc/krb5-admin.html#Configuring-Kerberos-with-OpenLDAP-back_002dend Kerberos V5 System Admin Guide]&lt;br /&gt;
&lt;br /&gt;
# You have not done so already, locate the kerberos.schema.  [[kerberos.schema]] which should be in /etc/ldap/schema/kerberos.schema.  If it is not there, please copy it there from your kerberos trunk: &amp;lt;code&amp;gt;cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Checkpoint: Make sure there is a list of different schemas in /etc/ldap/schema.  Such as&lt;br /&gt;
#:* core.schema&lt;br /&gt;
#:* inetorgperson.schema&lt;br /&gt;
#:* kerberos.schema&lt;br /&gt;
#:* misc.schema&lt;br /&gt;
#:* openldap.schema&lt;br /&gt;
# Make this [[schema_convert.conf]] at /tmp/schema_convert.conf.  Note! This is different from the schema_convert.conf in the Ubuntu Guide.&lt;br /&gt;
# Make the directory to hold output: &amp;lt;code&amp;gt;mkdir /tmp/ldif_output &amp;lt;/code&amp;gt;&lt;br /&gt;
# Convert schema --&amp;gt; LDIF with slaptest: &amp;lt;code&amp;gt;slaptest -f tmp/schema_convert.conf -F /tmp/ldif_output&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: &amp;quot;config file testing succeeded&amp;quot;&lt;br /&gt;
#: Checkpoint: If you &amp;lt;code&amp;gt;sudo ls /tmp/ldif_output/cn\=config/cn\=schema&amp;lt;/code&amp;gt;, you should see:&lt;br /&gt;
#:: cn={0}core.ldif       &lt;br /&gt;
#:: cn={1}corba.ldif          &lt;br /&gt;
#:: cn={2}cosine.ldif   &lt;br /&gt;
#:: cn={3}duaconf.ldif  &lt;br /&gt;
#:: cn={4}inetorgperson.ldif&lt;br /&gt;
#:: cn={5}java.ldif	&lt;br /&gt;
#:: cn={6}kerberos.ldif&lt;br /&gt;
#:: cn={7}misc.ldif&lt;br /&gt;
#:: cn={8}openldap.ldif&lt;br /&gt;
#:: cn={9}nis.ldif&lt;br /&gt;
# Need to modify kerberos.ldif. &lt;br /&gt;
#* Find which number kerberos.ldif is listed as: &amp;lt;code&amp;gt;sudo ls /tmp/ldif_output/cn\=config/cn\=schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Edit it: &amp;lt;code&amp;gt; sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn={6}kerberos.ldif&amp;lt;/code&amp;gt;&lt;br /&gt;
#** change ''dn: cn={6}kerberos'' into ''dn: cn=kerberos,cn=schema,cn=config''&lt;br /&gt;
#** change ''cn: {6}kerberos'' into ''cn: kerberos''&lt;br /&gt;
#** Delete the bottom lines: from ''structuralObjectClasses: olcSchemaConfig'' to ''modifyTimestamp: 20090811205313Z''&lt;br /&gt;
# load new schema: &amp;lt;code&amp;gt;sudo ldapadd -x -D cn=admin,cn=config -W -f /tmp/ldif_output/cn\=config/cn\=schema/cn\={6}kerberos.ldif -H ldapi:///&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Note if you get a &amp;quot;Can't contact LDAP server&amp;quot; error, check your &amp;lt;code&amp;gt;ps -ef | grep slapd&amp;lt;/code&amp;gt; to see its details and change accordingly.  A common way to fix it is to sudo ldapadd with ldap:/// instead of ldapi:///&lt;br /&gt;
#: Output: ''adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
== 6. Starting ==&lt;br /&gt;
* Create your database with kdb5_ldap_util instead of kdb5_util:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -H ldapi:/// create  -s&lt;br /&gt;
*: note that if you have ldapadd with ldap:/// instead of ldapi:///, it should also be ldap:/// here&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Initializing database for realm 'EXAMPLE.ORG'&lt;br /&gt;
You will be prompted for the database Master Password.&lt;br /&gt;
It is important that you NOT FORGET this password.&lt;br /&gt;
Enter KDC database master key: &lt;br /&gt;
Re-enter KDC database master key to verify: &lt;br /&gt;
&lt;br /&gt;
Kerberos container is missing. Creating now...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Stash the password:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -W -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&amp;lt;/code&amp;gt;&lt;br /&gt;
*: Checkpoint: If it works, you can do:&lt;br /&gt;
*:* &amp;lt;code&amp;gt;kadmin.local&amp;lt;/code&amp;gt;, try &amp;lt;code&amp;gt;listprincs&amp;lt;/code&amp;gt;, quit by typing &amp;lt;code&amp;gt;quit&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;krb5kdc&amp;lt;/code&amp;gt; &lt;br /&gt;
*: Checkpoint: &amp;lt;code&amp;gt;ps -ef | grep krb5kdc&amp;lt;/code&amp;gt; should show it running&lt;br /&gt;
&lt;br /&gt;
* Command to destroy kdb5_ldap_util: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -W -H ldapi:/// destroy&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Scratch Pad ==&lt;br /&gt;
&lt;br /&gt;
===Assume People have done===&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
&lt;br /&gt;
   16  make distclean&lt;br /&gt;
&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
&lt;br /&gt;
   19  make&lt;br /&gt;
&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
&lt;br /&gt;
    8  mkdir /tmp/krb5kdc (or should it be /tmp/sandbox/krb5kdc)?&lt;br /&gt;
&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
&lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
&lt;br /&gt;
   29  krb5kdc -n&lt;br /&gt;
&lt;br /&gt;
== Errors ==&lt;br /&gt;
* sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
*: ERROR: ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)&lt;br /&gt;
*: SOLUTION: Make sure that you have slapd started, and make sure that the -H ldapi:/// is consistent.&lt;br /&gt;
*: sudo /usr/sbin/slapd -H ldap:/// -g openldap -u openldap -F /etc/ldap/slapd.d/&lt;br /&gt;
*: openldap  5716     1  0 11:55 ?        00:00:00 /usr/sbin/slapd -h ldap:/// ldapi:/// -g openldap -u openldap -F /etc/ldap/slapd.d/&lt;br /&gt;
&lt;br /&gt;
** sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldap:///&lt;br /&gt;
**:Output: adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openldap 11434     1  0 12:06 ?        00:00:00 /usr/sbin/slapd -h ldap:/// -g openldap -u openldap -F /etc/ldap/slapd.d/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -h ldap:///&lt;br /&gt;
*: ERROR: Could not create LDAP session handle for URI=ldap://ldap:%2F%2F%2F (-9): Bad parameter to an ldap routine&lt;br /&gt;
*: SOLUTION: Change &amp;quot;-h&amp;quot; to &amp;quot;-H&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
haoqili@reach-my-dream:~/trunk/src$ ps -ef | grep sla&lt;br /&gt;
haoqili  12228  4371  0 12:26 pts/0    00:00:00 grep sla&lt;br /&gt;
haoqili@reach-my-dream:~/trunk/src$ sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldap:///&lt;br /&gt;
ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)&lt;br /&gt;
haoqili@reach-my-dream:~/trunk/src$ sudo /usr/sbin/slapd -h ldap:/// ldapi:/// -g openldap -u openldap -F /etc/ldap/slapd.d/ &lt;br /&gt;
haoqili@reach-my-dream:~/trunk/src$ sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldap:///&lt;br /&gt;
adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;&lt;br /&gt;
ldap_add: Other (e.g., implementation specific) error (80)&lt;br /&gt;
	additional info: olcAttributeTypes: Duplicate attributeType: &amp;quot;2.16.840.1.113719.1.301.4.1.1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* DbDriver is locked&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo debconf-set-selections /tmp/debconfile &lt;br /&gt;
[sudo] password for haoqili: &lt;br /&gt;
debconf: DbDriver &amp;quot;config&amp;quot;: /var/cache/debconf/config.dat is locked by another process: Resource temporarily unavailable&lt;br /&gt;
&lt;br /&gt;
OR &lt;br /&gt;
&lt;br /&gt;
sudo dpkg-reconfigure --frontend=noninteractive&lt;br /&gt;
[sudo] password for haoqili: &lt;br /&gt;
debconf: DbDriver &amp;quot;config&amp;quot;: /var/cache/debconf/config.dat is locked by another process: Resource temporarily unavailable&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*: SOLUTION: This will tell what is locking it: &amp;lt;code&amp;gt;fuser -v /var/cache/debconf/config.dat&amp;lt;/code&amp;gt;.  [http://spiralinks.blogspot.com/2009/07/debian-apt-get-interrupted-leaves-files.html From here.]&lt;/div&gt;</summary>
		<author><name>Haoqili</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2181</id>
		<title>LDAP on Kerberos</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2181"/>
				<updated>2009-08-24T15:14:46Z</updated>
		
		<summary type="html">&lt;p&gt;Haoqili: /* 5. Kerb Schema Operations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==About==&lt;br /&gt;
A guide to set up ldap backend for kerberos.&lt;br /&gt;
&lt;br /&gt;
== To Do ==&lt;br /&gt;
* Slapd in sandbox, not /etc&lt;br /&gt;
* Simpler Domain names D.COM, R.COM&lt;br /&gt;
* Different domain names&lt;br /&gt;
* Figure out required schemas&lt;br /&gt;
* Figure out: In Kerb Schema Operations, I can do &amp;quot;or update slapd.conf with kerb schema or ldif&amp;quot; in some ubuntu&lt;br /&gt;
* Play around to get minimum set of requirement&lt;br /&gt;
&lt;br /&gt;
* update tree too, got a fix&lt;br /&gt;
&lt;br /&gt;
== 0. Sample code to follow ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
    8  mkdir krb5kdc&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
   16  make distclean&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
   19  make&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
   29  krb5kdc -n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 1. Information about the system ==&lt;br /&gt;
- packages&lt;br /&gt;
* Version of ubuntu&lt;br /&gt;
       lsb_release -a&lt;br /&gt;
       No LSB modules are available.&lt;br /&gt;
       Distributor ID:        Ubuntu&lt;br /&gt;
       Description:        Ubuntu 9.04&lt;br /&gt;
       Release:        9.04&lt;br /&gt;
       Codename:        jaunty&lt;br /&gt;
* Version of slapd: 2.4.15 (Mar 19 2009)&lt;br /&gt;
       slapd -V&lt;br /&gt;
       @(#) $OpenLDAP: slapd 2.4.15 (Mar 19 2009 10:08:25) $&lt;br /&gt;
       buildd@palmer:/build/buildd/openldap-2.4.15/debian/build/servers/slapd&lt;br /&gt;
&lt;br /&gt;
* Version of ldap-utils: 2.4.15&lt;br /&gt;
       dpkg -l ldap-utils&lt;br /&gt;
&lt;br /&gt;
== 2. Extract krb conf files ==&lt;br /&gt;
* It is crucial to have correct, consistent domain names.  You must have the dbmodules in krb5.conf.&lt;br /&gt;
* Save [[krb5.conf]]&lt;br /&gt;
* Save [[kdc.conf]]&lt;br /&gt;
* Save [[kadm5.acl]]&lt;br /&gt;
&lt;br /&gt;
== 3. Env and Setup==&lt;br /&gt;
You need to export these lines into your env. Based on where you saved these files.&lt;br /&gt;
&lt;br /&gt;
*export KRB5_CONFIG=/tmp/sandbox/krb5.conf&lt;br /&gt;
&lt;br /&gt;
*export KRB5_KDC_PROFILE=/tmp/sandbox/kdc.conf&lt;br /&gt;
&lt;br /&gt;
* make a krb5kdc folder: mkdir /tmp/sandbox/krb5kdc)&lt;br /&gt;
&lt;br /&gt;
Whatever you do, be consistent&lt;br /&gt;
&lt;br /&gt;
== 4. Build kerb. config ==&lt;br /&gt;
&lt;br /&gt;
# Install Packages:&lt;br /&gt;
#* &amp;lt;code&amp;gt; sudo apt-get install slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
#* for ldapsearch: &amp;lt;code&amp;gt;sudo apt-get install ldap-utils&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo apt-get install libldap2-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
# Set &amp;quot;domain&amp;quot; of your LDAP server &lt;br /&gt;
#* Option 1, Interactive Option: &amp;lt;code&amp;gt;sudo dpkg-reconfigure slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
#*: Indented are the debconf-get-selections lines&lt;br /&gt;
#*# Omit OpenLDAP server configuration: No&lt;br /&gt;
#*#: slapd   slapd/no_configuration  boolean false&lt;br /&gt;
#*# DNS domain name: example.org&lt;br /&gt;
#*#: slapd   slapd/domain    string  example.org&lt;br /&gt;
#*# Organization name: example.org [note: i used the same name for simplicity]&lt;br /&gt;
#*#: slapd   shared/organization     string  example.org&lt;br /&gt;
#*# Databases backend to use: HDB, instead of BDB&lt;br /&gt;
#*#: slapd   slapd/backend   select  HDB&lt;br /&gt;
#*# Do you want the database to be removed when slapd is purge: Yes&lt;br /&gt;
#*#: slapd   slapd/purge_database    boolean true&lt;br /&gt;
#*# Move old database: Yes&lt;br /&gt;
#*#: slapd   slapd/move_old_database boolean true&lt;br /&gt;
#*# Admin password: [your pwd]&lt;br /&gt;
#*#: slapd   slapd/password1 password&lt;br /&gt;
#*#: [I'm not sure about the debconf-get-selection line here.  There are 5 different password lines!]&lt;br /&gt;
#*# Confirm password: [your pwd]&lt;br /&gt;
#*#: slapd   slapd/password2 password&lt;br /&gt;
#*# Allow LDAPv2 protocol: No&lt;br /&gt;
#*#: slapd   slapd/allow_ldap_v2     boolean false&lt;br /&gt;
#* Option 2, Noninteractive Option&lt;br /&gt;
#*# &amp;lt;code&amp;gt;sudo apt-get install debconf-utils&amp;lt;/code&amp;gt;&lt;br /&gt;
#*# Save this file in /tmp/debconfile: [[debconfile]]&lt;br /&gt;
#*# &amp;lt;code&amp;gt;sudo debconf-set-selections /tmp/debconfile&amp;lt;/code&amp;gt;&lt;br /&gt;
#*# &amp;lt;code&amp;gt;sudo dpkg-reconfigure --frontend=noninteractive slapd&amp;lt;/code&amp;gt; &lt;br /&gt;
#* Checkpoint:  If you are successful, you should see as output:&lt;br /&gt;
#*: ''Stopping OpenLDAP: slapd.''&lt;br /&gt;
#*:  ''Moving old database directory to /var/backups:''&lt;br /&gt;
#*:  ''- directory unknown... done.''&lt;br /&gt;
#*:  ''Creating initial slapd configuration... done.''&lt;br /&gt;
#*:  ''Creating initial LDAP directory... done.''&lt;br /&gt;
#*: ''* Reloading AppArmor profiles ''&lt;br /&gt;
#*:  ''...                                               [ OK ]'' &lt;br /&gt;
#*:  ''Starting OpenLDAP: slapd.''&lt;br /&gt;
# If you haven't done so already, please copy kerberos.schema from your kerberos trunk into /etc/ldap/schema: &amp;lt;code&amp;gt;sudo cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
# To restrict access to the local machine, &amp;lt;code&amp;gt;sudo vim /etc/default/slapd&amp;lt;/code&amp;gt;, search for SLAPD_SERVICES and set it to: &amp;lt;pre&amp;gt;SLAPD_SERVICES=&amp;quot;ldapi:///&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Reconfigure your kerberos&lt;br /&gt;
#* Navigate to kerberos src&lt;br /&gt;
#* &amp;lt;code&amp;gt;make distclean&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;util/reconf&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;./configure --with-ldap&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo make install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 5. Kerb Schema Operations ==&lt;br /&gt;
Loosely followed [http://ajuda.ubuntu.cat/9.04/serverguide/kerberos-ldap.html Ubuntu Guide] and [http://web.mit.edu/kerberos/krb5-1.7/krb5-1.7/doc/krb5-admin.html#Configuring-Kerberos-with-OpenLDAP-back_002dend Kerberos V5 System Admin Guide]&lt;br /&gt;
&lt;br /&gt;
# You have not done so already, locate the kerberos.schema.  [[kerberos.schema]] which should be in /etc/ldap/schema/kerberos.schema.  If it is not there, please copy it there from your kerberos trunk: &amp;lt;code&amp;gt;cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Checkpoint: Make sure there is a list of different schemas in /etc/ldap/schema.  Such as&lt;br /&gt;
#:* core.schema&lt;br /&gt;
#:* inetorgperson.schema&lt;br /&gt;
#:* kerberos.schema&lt;br /&gt;
#:* misc.schema&lt;br /&gt;
#:* openldap.schema&lt;br /&gt;
# Make this [[schema_convert.conf]] at /tmp/schema_convert.conf.  Note! This is different from the schema_convert.conf in the Ubuntu Guide.&lt;br /&gt;
# Make the directory to hold output: &amp;lt;code&amp;gt;mkdir /tmp/ldif_output &amp;lt;/code&amp;gt;&lt;br /&gt;
# Convert schema --&amp;gt; LDIF with slaptest: &amp;lt;code&amp;gt;slaptest -f tmp/schema_convert.conf -F /tmp/ldif_output&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: &amp;quot;config file testing succeeded&amp;quot;&lt;br /&gt;
#: Checkpoint: If you &amp;lt;code&amp;gt;sudo ls /tmp/ldif_output/cn\=config/cn\=schema&amp;lt;/code&amp;gt;, you should see:&lt;br /&gt;
#:: cn={0}core.ldif       &lt;br /&gt;
#:: cn={1}corba.ldif          &lt;br /&gt;
#:: cn={2}cosine.ldif   &lt;br /&gt;
#:: cn={3}duaconf.ldif  &lt;br /&gt;
#:: cn={4}inetorgperson.ldif&lt;br /&gt;
#:: cn={5}java.ldif	&lt;br /&gt;
#:: cn={6}kerberos.ldif&lt;br /&gt;
#:: cn={7}misc.ldif&lt;br /&gt;
#:: cn={8}openldap.ldif&lt;br /&gt;
#:: cn={9}nis.ldif&lt;br /&gt;
# Need to modify kerberos.ldif. &lt;br /&gt;
#* Find which number kerberos.ldif is listed as: &amp;lt;code&amp;gt;sudo ls /tmp/ldif_output/cn\=config/cn\=schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Edit it: &amp;lt;code&amp;gt; sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn={6}kerberos.ldif&amp;lt;/code&amp;gt;&lt;br /&gt;
#** change ''dn: cn={6}kerberos'' into ''dn: cn=kerberos,cn=schema,cn=config''&lt;br /&gt;
#** change ''cn: {6}kerberos'' into ''cn: kerberos''&lt;br /&gt;
#** Delete the bottom lines: from ''structuralObjectClasses: olcSchemaConfig'' to ''modifyTimestamp: 20090811205313Z''&lt;br /&gt;
# load new schema: &amp;lt;code&amp;gt;sudo ldapadd -x -D cn=admin,cn=config -W -f /tmp/ldif_output/cn\=config/cn\=schema/cn\={6}kerberos.ldif -H ldapi:///&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Note if you get a &amp;quot;Can't contact LDAP server&amp;quot; error, check your &amp;lt;code&amp;gt;ps -ef | grep slapd&amp;lt;/code&amp;gt; to see its details and change accordingly.  A common way to fix it is to sudo ldapadd with ldap:/// instead of ldapi:///&lt;br /&gt;
#: Output: ''adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
== 6. Starting ==&lt;br /&gt;
* Create your database with kdb5_ldap_util instead of kdb5_util:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -W -H ldapi:/// create  -s&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Initializing database for realm 'EXAMPLE.ORG'&lt;br /&gt;
You will be prompted for the database Master Password.&lt;br /&gt;
It is important that you NOT FORGET this password.&lt;br /&gt;
Enter KDC database master key: &lt;br /&gt;
Re-enter KDC database master key to verify: &lt;br /&gt;
&lt;br /&gt;
Kerberos container is missing. Creating now...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Stash the password:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -W -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&amp;lt;/code&amp;gt;&lt;br /&gt;
*: Checkpoint: If it works, you can do:&lt;br /&gt;
*:* &amp;lt;code&amp;gt;kadmin.local&amp;lt;/code&amp;gt;, try &amp;lt;code&amp;gt;listprincs&amp;lt;/code&amp;gt;, quit by typing &amp;lt;code&amp;gt;quit&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;krb5kdc&amp;lt;/code&amp;gt; &lt;br /&gt;
*: Checkpoint: &amp;lt;code&amp;gt;ps -ef | grep krb5kdc&amp;lt;/code&amp;gt; should show it running&lt;br /&gt;
&lt;br /&gt;
* Command to destroy kdb5_ldap_util: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -W -H ldapi:/// destroy&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Scratch Pad ==&lt;br /&gt;
&lt;br /&gt;
===Assume People have done===&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
&lt;br /&gt;
   16  make distclean&lt;br /&gt;
&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
&lt;br /&gt;
   19  make&lt;br /&gt;
&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
&lt;br /&gt;
    8  mkdir /tmp/krb5kdc (or should it be /tmp/sandbox/krb5kdc)?&lt;br /&gt;
&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
&lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
&lt;br /&gt;
   29  krb5kdc -n&lt;br /&gt;
&lt;br /&gt;
== Errors ==&lt;br /&gt;
* sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
*: ERROR: ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)&lt;br /&gt;
*: SOLUTION: Make sure that you have slapd started, and make sure that the -H ldapi:/// is consistent.&lt;br /&gt;
*: sudo /usr/sbin/slapd -H ldap:/// -g openldap -u openldap -F /etc/ldap/slapd.d/&lt;br /&gt;
*: openldap  5716     1  0 11:55 ?        00:00:00 /usr/sbin/slapd -h ldap:/// ldapi:/// -g openldap -u openldap -F /etc/ldap/slapd.d/&lt;br /&gt;
&lt;br /&gt;
** sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldap:///&lt;br /&gt;
**:Output: adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openldap 11434     1  0 12:06 ?        00:00:00 /usr/sbin/slapd -h ldap:/// -g openldap -u openldap -F /etc/ldap/slapd.d/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -h ldap:///&lt;br /&gt;
*: ERROR: Could not create LDAP session handle for URI=ldap://ldap:%2F%2F%2F (-9): Bad parameter to an ldap routine&lt;br /&gt;
*: SOLUTION: Change &amp;quot;-h&amp;quot; to &amp;quot;-H&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
haoqili@reach-my-dream:~/trunk/src$ ps -ef | grep sla&lt;br /&gt;
haoqili  12228  4371  0 12:26 pts/0    00:00:00 grep sla&lt;br /&gt;
haoqili@reach-my-dream:~/trunk/src$ sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldap:///&lt;br /&gt;
ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)&lt;br /&gt;
haoqili@reach-my-dream:~/trunk/src$ sudo /usr/sbin/slapd -h ldap:/// ldapi:/// -g openldap -u openldap -F /etc/ldap/slapd.d/ &lt;br /&gt;
haoqili@reach-my-dream:~/trunk/src$ sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldap:///&lt;br /&gt;
adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;&lt;br /&gt;
ldap_add: Other (e.g., implementation specific) error (80)&lt;br /&gt;
	additional info: olcAttributeTypes: Duplicate attributeType: &amp;quot;2.16.840.1.113719.1.301.4.1.1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* DbDriver is locked&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo debconf-set-selections /tmp/debconfile &lt;br /&gt;
[sudo] password for haoqili: &lt;br /&gt;
debconf: DbDriver &amp;quot;config&amp;quot;: /var/cache/debconf/config.dat is locked by another process: Resource temporarily unavailable&lt;br /&gt;
&lt;br /&gt;
OR &lt;br /&gt;
&lt;br /&gt;
sudo dpkg-reconfigure --frontend=noninteractive&lt;br /&gt;
[sudo] password for haoqili: &lt;br /&gt;
debconf: DbDriver &amp;quot;config&amp;quot;: /var/cache/debconf/config.dat is locked by another process: Resource temporarily unavailable&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*: SOLUTION: This will tell what is locking it: &amp;lt;code&amp;gt;fuser -v /var/cache/debconf/config.dat&amp;lt;/code&amp;gt;.  [http://spiralinks.blogspot.com/2009/07/debian-apt-get-interrupted-leaves-files.html From here.]&lt;/div&gt;</summary>
		<author><name>Haoqili</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2180</id>
		<title>LDAP on Kerberos</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2180"/>
				<updated>2009-08-24T15:06:47Z</updated>
		
		<summary type="html">&lt;p&gt;Haoqili: /* 4. Build kerb. config */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==About==&lt;br /&gt;
A guide to set up ldap backend for kerberos.&lt;br /&gt;
&lt;br /&gt;
== To Do ==&lt;br /&gt;
* Slapd in sandbox, not /etc&lt;br /&gt;
* Simpler Domain names D.COM, R.COM&lt;br /&gt;
* Different domain names&lt;br /&gt;
* Figure out required schemas&lt;br /&gt;
* Figure out: In Kerb Schema Operations, I can do &amp;quot;or update slapd.conf with kerb schema or ldif&amp;quot; in some ubuntu&lt;br /&gt;
* Play around to get minimum set of requirement&lt;br /&gt;
&lt;br /&gt;
* update tree too, got a fix&lt;br /&gt;
&lt;br /&gt;
== 0. Sample code to follow ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
    8  mkdir krb5kdc&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
   16  make distclean&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
   19  make&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
   29  krb5kdc -n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 1. Information about the system ==&lt;br /&gt;
- packages&lt;br /&gt;
* Version of ubuntu&lt;br /&gt;
       lsb_release -a&lt;br /&gt;
       No LSB modules are available.&lt;br /&gt;
       Distributor ID:        Ubuntu&lt;br /&gt;
       Description:        Ubuntu 9.04&lt;br /&gt;
       Release:        9.04&lt;br /&gt;
       Codename:        jaunty&lt;br /&gt;
* Version of slapd: 2.4.15 (Mar 19 2009)&lt;br /&gt;
       slapd -V&lt;br /&gt;
       @(#) $OpenLDAP: slapd 2.4.15 (Mar 19 2009 10:08:25) $&lt;br /&gt;
       buildd@palmer:/build/buildd/openldap-2.4.15/debian/build/servers/slapd&lt;br /&gt;
&lt;br /&gt;
* Version of ldap-utils: 2.4.15&lt;br /&gt;
       dpkg -l ldap-utils&lt;br /&gt;
&lt;br /&gt;
== 2. Extract krb conf files ==&lt;br /&gt;
* It is crucial to have correct, consistent domain names.  You must have the dbmodules in krb5.conf.&lt;br /&gt;
* Save [[krb5.conf]]&lt;br /&gt;
* Save [[kdc.conf]]&lt;br /&gt;
* Save [[kadm5.acl]]&lt;br /&gt;
&lt;br /&gt;
== 3. Env and Setup==&lt;br /&gt;
You need to export these lines into your env. Based on where you saved these files.&lt;br /&gt;
&lt;br /&gt;
*export KRB5_CONFIG=/tmp/sandbox/krb5.conf&lt;br /&gt;
&lt;br /&gt;
*export KRB5_KDC_PROFILE=/tmp/sandbox/kdc.conf&lt;br /&gt;
&lt;br /&gt;
* make a krb5kdc folder: mkdir /tmp/sandbox/krb5kdc)&lt;br /&gt;
&lt;br /&gt;
Whatever you do, be consistent&lt;br /&gt;
&lt;br /&gt;
== 4. Build kerb. config ==&lt;br /&gt;
&lt;br /&gt;
# Install Packages:&lt;br /&gt;
#* &amp;lt;code&amp;gt; sudo apt-get install slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
#* for ldapsearch: &amp;lt;code&amp;gt;sudo apt-get install ldap-utils&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo apt-get install libldap2-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
# Set &amp;quot;domain&amp;quot; of your LDAP server &lt;br /&gt;
#* Option 1, Interactive Option: &amp;lt;code&amp;gt;sudo dpkg-reconfigure slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
#*: Indented are the debconf-get-selections lines&lt;br /&gt;
#*# Omit OpenLDAP server configuration: No&lt;br /&gt;
#*#: slapd   slapd/no_configuration  boolean false&lt;br /&gt;
#*# DNS domain name: example.org&lt;br /&gt;
#*#: slapd   slapd/domain    string  example.org&lt;br /&gt;
#*# Organization name: example.org [note: i used the same name for simplicity]&lt;br /&gt;
#*#: slapd   shared/organization     string  example.org&lt;br /&gt;
#*# Databases backend to use: HDB, instead of BDB&lt;br /&gt;
#*#: slapd   slapd/backend   select  HDB&lt;br /&gt;
#*# Do you want the database to be removed when slapd is purge: Yes&lt;br /&gt;
#*#: slapd   slapd/purge_database    boolean true&lt;br /&gt;
#*# Move old database: Yes&lt;br /&gt;
#*#: slapd   slapd/move_old_database boolean true&lt;br /&gt;
#*# Admin password: [your pwd]&lt;br /&gt;
#*#: slapd   slapd/password1 password&lt;br /&gt;
#*#: [I'm not sure about the debconf-get-selection line here.  There are 5 different password lines!]&lt;br /&gt;
#*# Confirm password: [your pwd]&lt;br /&gt;
#*#: slapd   slapd/password2 password&lt;br /&gt;
#*# Allow LDAPv2 protocol: No&lt;br /&gt;
#*#: slapd   slapd/allow_ldap_v2     boolean false&lt;br /&gt;
#* Option 2, Noninteractive Option&lt;br /&gt;
#*# &amp;lt;code&amp;gt;sudo apt-get install debconf-utils&amp;lt;/code&amp;gt;&lt;br /&gt;
#*# Save this file in /tmp/debconfile: [[debconfile]]&lt;br /&gt;
#*# &amp;lt;code&amp;gt;sudo debconf-set-selections /tmp/debconfile&amp;lt;/code&amp;gt;&lt;br /&gt;
#*# &amp;lt;code&amp;gt;sudo dpkg-reconfigure --frontend=noninteractive slapd&amp;lt;/code&amp;gt; &lt;br /&gt;
#* Checkpoint:  If you are successful, you should see as output:&lt;br /&gt;
#*: ''Stopping OpenLDAP: slapd.''&lt;br /&gt;
#*:  ''Moving old database directory to /var/backups:''&lt;br /&gt;
#*:  ''- directory unknown... done.''&lt;br /&gt;
#*:  ''Creating initial slapd configuration... done.''&lt;br /&gt;
#*:  ''Creating initial LDAP directory... done.''&lt;br /&gt;
#*: ''* Reloading AppArmor profiles ''&lt;br /&gt;
#*:  ''...                                               [ OK ]'' &lt;br /&gt;
#*:  ''Starting OpenLDAP: slapd.''&lt;br /&gt;
# If you haven't done so already, please copy kerberos.schema from your kerberos trunk into /etc/ldap/schema: &amp;lt;code&amp;gt;sudo cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
# To restrict access to the local machine, &amp;lt;code&amp;gt;sudo vim /etc/default/slapd&amp;lt;/code&amp;gt;, search for SLAPD_SERVICES and set it to: &amp;lt;pre&amp;gt;SLAPD_SERVICES=&amp;quot;ldapi:///&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Reconfigure your kerberos&lt;br /&gt;
#* Navigate to kerberos src&lt;br /&gt;
#* &amp;lt;code&amp;gt;make distclean&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;util/reconf&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;./configure --with-ldap&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo make install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 5. Kerb Schema Operations ==&lt;br /&gt;
Loosely followed [http://ajuda.ubuntu.cat/9.04/serverguide/kerberos-ldap.html Ubuntu Guide] and [http://web.mit.edu/kerberos/krb5-1.7/krb5-1.7/doc/krb5-admin.html#Configuring-Kerberos-with-OpenLDAP-back_002dend Kerberos V5 System Admin Guide]&lt;br /&gt;
&lt;br /&gt;
# You have not done so already, locate the kerberos.schema.  [[kerberos.schema]] which should be in /etc/ldap/schema/kerberos.schema.  If it is not there, please copy it there from your kerberos trunk: &amp;lt;code&amp;gt;cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Checkpoint: Make sure there is a list of different schemas in /etc/ldap/schema.  Such as&lt;br /&gt;
#:* core.schema&lt;br /&gt;
#:* inetorgperson.schema&lt;br /&gt;
#:* kerberos.schema&lt;br /&gt;
#:* misc.schema&lt;br /&gt;
#:* openldap.schema&lt;br /&gt;
# Make this [[schema_convert.conf]] at /tmp/schema_convert.conf.  Note! This is different from the schema_convert.conf in the Ubuntu Guide.&lt;br /&gt;
# Make the directory to hold output: &amp;lt;code&amp;gt;mkdir /tmp/ldif_output &amp;lt;/code&amp;gt;&lt;br /&gt;
# Convert schema --&amp;gt; LDIF with slaptest: &amp;lt;code&amp;gt;slaptest -f tmp/schema_convert.conf -F /tmp/ldif_output&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: &amp;quot;config file testing succeeded&amp;quot;&lt;br /&gt;
#: Checkpoint: If you &amp;lt;code&amp;gt;sudo ls /tmp/ldif_output/cn\=config/cn\=schema&amp;lt;/code&amp;gt;, you should see:&lt;br /&gt;
#:: cn={0}core.ldif       &lt;br /&gt;
#:: cn={1}corba.ldif          &lt;br /&gt;
#:: cn={2}cosine.ldif   &lt;br /&gt;
#:: cn={3}duaconf.ldif  &lt;br /&gt;
#:: cn={4}inetorgperson.ldif&lt;br /&gt;
#:: cn={5}java.ldif	&lt;br /&gt;
#:: cn={6}kerberos.ldif&lt;br /&gt;
#:: cn={7}misc.ldif&lt;br /&gt;
#:: cn={8}openldap.ldif&lt;br /&gt;
#:: cn={9}nis.ldif&lt;br /&gt;
# Need to modify kerberos.ldif. &lt;br /&gt;
#* Find which number kerberos.ldif is listed as: &amp;lt;code&amp;gt;sudo ls /tmp/ldif_output/cn\=config/cn\=schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Edit it: &amp;lt;code&amp;gt; sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn={6}kerberos.ldif&amp;lt;/code&amp;gt;&lt;br /&gt;
#** change ''dn: cn={6}kerberos'' into ''dn: cn=kerberos,cn=schema,cn=config''&lt;br /&gt;
#** change ''cn: {6}kerberos'' into ''cn: kerberos''&lt;br /&gt;
#** Delete the bottom lines: from ''structuralObjectClasses: olcSchemaConfig'' to ''modifyTimestamp: 20090811205313Z''&lt;br /&gt;
# load new schema: &amp;lt;code&amp;gt;sudo ldapadd -x -D cn=admin,cn=config -W -f /tmp/ldif_output/cn\=config/cn\=schema/cn\={6}kerberos.ldif -H ldapi:///&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: ''adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
== 6. Starting ==&lt;br /&gt;
* Create your database with kdb5_ldap_util instead of kdb5_util:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -W -H ldapi:/// create  -s&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Initializing database for realm 'EXAMPLE.ORG'&lt;br /&gt;
You will be prompted for the database Master Password.&lt;br /&gt;
It is important that you NOT FORGET this password.&lt;br /&gt;
Enter KDC database master key: &lt;br /&gt;
Re-enter KDC database master key to verify: &lt;br /&gt;
&lt;br /&gt;
Kerberos container is missing. Creating now...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Stash the password:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -W -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&amp;lt;/code&amp;gt;&lt;br /&gt;
*: Checkpoint: If it works, you can do:&lt;br /&gt;
*:* &amp;lt;code&amp;gt;kadmin.local&amp;lt;/code&amp;gt;, try &amp;lt;code&amp;gt;listprincs&amp;lt;/code&amp;gt;, quit by typing &amp;lt;code&amp;gt;quit&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;krb5kdc&amp;lt;/code&amp;gt; &lt;br /&gt;
*: Checkpoint: &amp;lt;code&amp;gt;ps -ef | grep krb5kdc&amp;lt;/code&amp;gt; should show it running&lt;br /&gt;
&lt;br /&gt;
* Command to destroy kdb5_ldap_util: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -W -H ldapi:/// destroy&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Scratch Pad ==&lt;br /&gt;
&lt;br /&gt;
===Assume People have done===&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
&lt;br /&gt;
   16  make distclean&lt;br /&gt;
&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
&lt;br /&gt;
   19  make&lt;br /&gt;
&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
&lt;br /&gt;
    8  mkdir /tmp/krb5kdc (or should it be /tmp/sandbox/krb5kdc)?&lt;br /&gt;
&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
&lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
&lt;br /&gt;
   29  krb5kdc -n&lt;br /&gt;
&lt;br /&gt;
== Errors ==&lt;br /&gt;
* sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
*: ERROR: ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)&lt;br /&gt;
*: SOLUTION: Make sure that you have slapd started, and make sure that the -H ldapi:/// is consistent.&lt;br /&gt;
*: sudo /usr/sbin/slapd -H ldap:/// -g openldap -u openldap -F /etc/ldap/slapd.d/&lt;br /&gt;
*: openldap  5716     1  0 11:55 ?        00:00:00 /usr/sbin/slapd -h ldap:/// ldapi:/// -g openldap -u openldap -F /etc/ldap/slapd.d/&lt;br /&gt;
&lt;br /&gt;
** sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldap:///&lt;br /&gt;
**:Output: adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openldap 11434     1  0 12:06 ?        00:00:00 /usr/sbin/slapd -h ldap:/// -g openldap -u openldap -F /etc/ldap/slapd.d/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -h ldap:///&lt;br /&gt;
*: ERROR: Could not create LDAP session handle for URI=ldap://ldap:%2F%2F%2F (-9): Bad parameter to an ldap routine&lt;br /&gt;
*: SOLUTION: Change &amp;quot;-h&amp;quot; to &amp;quot;-H&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
haoqili@reach-my-dream:~/trunk/src$ ps -ef | grep sla&lt;br /&gt;
haoqili  12228  4371  0 12:26 pts/0    00:00:00 grep sla&lt;br /&gt;
haoqili@reach-my-dream:~/trunk/src$ sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldap:///&lt;br /&gt;
ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)&lt;br /&gt;
haoqili@reach-my-dream:~/trunk/src$ sudo /usr/sbin/slapd -h ldap:/// ldapi:/// -g openldap -u openldap -F /etc/ldap/slapd.d/ &lt;br /&gt;
haoqili@reach-my-dream:~/trunk/src$ sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldap:///&lt;br /&gt;
adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;&lt;br /&gt;
ldap_add: Other (e.g., implementation specific) error (80)&lt;br /&gt;
	additional info: olcAttributeTypes: Duplicate attributeType: &amp;quot;2.16.840.1.113719.1.301.4.1.1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* DbDriver is locked&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo debconf-set-selections /tmp/debconfile &lt;br /&gt;
[sudo] password for haoqili: &lt;br /&gt;
debconf: DbDriver &amp;quot;config&amp;quot;: /var/cache/debconf/config.dat is locked by another process: Resource temporarily unavailable&lt;br /&gt;
&lt;br /&gt;
OR &lt;br /&gt;
&lt;br /&gt;
sudo dpkg-reconfigure --frontend=noninteractive&lt;br /&gt;
[sudo] password for haoqili: &lt;br /&gt;
debconf: DbDriver &amp;quot;config&amp;quot;: /var/cache/debconf/config.dat is locked by another process: Resource temporarily unavailable&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*: SOLUTION: This will tell what is locking it: &amp;lt;code&amp;gt;fuser -v /var/cache/debconf/config.dat&amp;lt;/code&amp;gt;.  [http://spiralinks.blogspot.com/2009/07/debian-apt-get-interrupted-leaves-files.html From here.]&lt;/div&gt;</summary>
		<author><name>Haoqili</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=Debconfile&amp;diff=2179</id>
		<title>Debconfile</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=Debconfile&amp;diff=2179"/>
				<updated>2009-08-24T15:03:10Z</updated>
		
		<summary type="html">&lt;p&gt;Haoqili: New page: save in /tmp/debconfile  &amp;lt;pre&amp;gt; slapd   slapd/no_configuration  boolean false slapd   slapd/domain    string  example.org slapd   shared/organization     string  My Organization slapd   sla...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;save in /tmp/debconfile&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
slapd   slapd/no_configuration  boolean false&lt;br /&gt;
slapd   slapd/domain    string  example.org&lt;br /&gt;
slapd   shared/organization     string  My Organization&lt;br /&gt;
slapd   slapd/backend   select  HDB&lt;br /&gt;
slapd   slapd/purge_database    boolean true&lt;br /&gt;
slapd   slapd/move_old_database boolean true&lt;br /&gt;
slapd   slapd/password1 password&lt;br /&gt;
slapd   slapd/password2 password&lt;br /&gt;
slapd   slapd/allow_ldap_v2     boolean false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Haoqili</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2178</id>
		<title>LDAP on Kerberos</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2178"/>
				<updated>2009-08-24T15:02:51Z</updated>
		
		<summary type="html">&lt;p&gt;Haoqili: /* 4. Build kerb. config */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==About==&lt;br /&gt;
A guide to set up ldap backend for kerberos.&lt;br /&gt;
&lt;br /&gt;
== To Do ==&lt;br /&gt;
* Slapd in sandbox, not /etc&lt;br /&gt;
* Simpler Domain names D.COM, R.COM&lt;br /&gt;
* Different domain names&lt;br /&gt;
* Figure out required schemas&lt;br /&gt;
* Figure out: In Kerb Schema Operations, I can do &amp;quot;or update slapd.conf with kerb schema or ldif&amp;quot; in some ubuntu&lt;br /&gt;
* Play around to get minimum set of requirement&lt;br /&gt;
&lt;br /&gt;
* update tree too, got a fix&lt;br /&gt;
&lt;br /&gt;
== 0. Sample code to follow ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
    8  mkdir krb5kdc&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
   16  make distclean&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
   19  make&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
   29  krb5kdc -n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 1. Information about the system ==&lt;br /&gt;
- packages&lt;br /&gt;
* Version of ubuntu&lt;br /&gt;
       lsb_release -a&lt;br /&gt;
       No LSB modules are available.&lt;br /&gt;
       Distributor ID:        Ubuntu&lt;br /&gt;
       Description:        Ubuntu 9.04&lt;br /&gt;
       Release:        9.04&lt;br /&gt;
       Codename:        jaunty&lt;br /&gt;
* Version of slapd: 2.4.15 (Mar 19 2009)&lt;br /&gt;
       slapd -V&lt;br /&gt;
       @(#) $OpenLDAP: slapd 2.4.15 (Mar 19 2009 10:08:25) $&lt;br /&gt;
       buildd@palmer:/build/buildd/openldap-2.4.15/debian/build/servers/slapd&lt;br /&gt;
&lt;br /&gt;
* Version of ldap-utils: 2.4.15&lt;br /&gt;
       dpkg -l ldap-utils&lt;br /&gt;
&lt;br /&gt;
== 2. Extract krb conf files ==&lt;br /&gt;
* It is crucial to have correct, consistent domain names.  You must have the dbmodules in krb5.conf.&lt;br /&gt;
* Save [[krb5.conf]]&lt;br /&gt;
* Save [[kdc.conf]]&lt;br /&gt;
* Save [[kadm5.acl]]&lt;br /&gt;
&lt;br /&gt;
== 3. Env and Setup==&lt;br /&gt;
You need to export these lines into your env. Based on where you saved these files.&lt;br /&gt;
&lt;br /&gt;
*export KRB5_CONFIG=/tmp/sandbox/krb5.conf&lt;br /&gt;
&lt;br /&gt;
*export KRB5_KDC_PROFILE=/tmp/sandbox/kdc.conf&lt;br /&gt;
&lt;br /&gt;
* make a krb5kdc folder: mkdir /tmp/sandbox/krb5kdc)&lt;br /&gt;
&lt;br /&gt;
Whatever you do, be consistent&lt;br /&gt;
&lt;br /&gt;
== 4. Build kerb. config ==&lt;br /&gt;
&lt;br /&gt;
# Install Packages:&lt;br /&gt;
#* &amp;lt;code&amp;gt; sudo apt-get install slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
#* for ldapsearch: &amp;lt;code&amp;gt;sudo apt-get install ldap-utils&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo apt-get install libldap2-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
# Set &amp;quot;domain&amp;quot; of your LDAP server &lt;br /&gt;
#* Option 1, Interactive Option: &amp;lt;code&amp;gt;sudo dpkg-reconfigure slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
#*: Indented are the debconf-get-selections lines&lt;br /&gt;
#*# Omit OpenLDAP server configuration: No&lt;br /&gt;
#*#: slapd   slapd/no_configuration  boolean false&lt;br /&gt;
#*# DNS domain name: example.org&lt;br /&gt;
#*#: slapd   slapd/domain    string  example.org&lt;br /&gt;
#*# Organization name: example.org [note: i used the same name for simplicity]&lt;br /&gt;
#*#: slapd   shared/organization     string  example.org&lt;br /&gt;
#*# Databases backend to use: HDB, instead of BDB&lt;br /&gt;
#*#: slapd   slapd/backend   select  HDB&lt;br /&gt;
#*# Do you want the database to be removed when slapd is purge: Yes&lt;br /&gt;
#*#: slapd   slapd/purge_database    boolean true&lt;br /&gt;
#*# Move old database: Yes&lt;br /&gt;
#*#: slapd   slapd/move_old_database boolean true&lt;br /&gt;
#*# Admin password: [your pwd]&lt;br /&gt;
#*#: slapd   slapd/password1 password&lt;br /&gt;
#*#: [I'm not sure about the debconf-get-selection line here.  There are 5 different password lines!]&lt;br /&gt;
#*# Confirm password: [your pwd]&lt;br /&gt;
#*#: slapd   slapd/password2 password&lt;br /&gt;
#*# Allow LDAPv2 protocol: No&lt;br /&gt;
#*#: slapd   slapd/allow_ldap_v2     boolean false&lt;br /&gt;
#* Option 2, Noninteractive Option&lt;br /&gt;
#*# Save this file in /tmp/debconfile: [[debconfile]]&lt;br /&gt;
#*# &amp;lt;code&amp;gt;sudo debconf-set-selections /tmp/debconfile&amp;lt;/code&amp;gt;&lt;br /&gt;
#*# &amp;lt;code&amp;gt;sudo dpkg-reconfigure --frontend=noninteractive slapd&amp;lt;/code&amp;gt; &lt;br /&gt;
#* Checkpoint:  If you are successful, you should see as output:&lt;br /&gt;
#*: ''Stopping OpenLDAP: slapd.''&lt;br /&gt;
#*:  ''Moving old database directory to /var/backups:''&lt;br /&gt;
#*:  ''- directory unknown... done.''&lt;br /&gt;
#*:  ''Creating initial slapd configuration... done.''&lt;br /&gt;
#*:  ''Creating initial LDAP directory... done.''&lt;br /&gt;
#*: ''* Reloading AppArmor profiles ''&lt;br /&gt;
#*:  ''...                                               [ OK ]'' &lt;br /&gt;
#*:  ''Starting OpenLDAP: slapd.''&lt;br /&gt;
# If you haven't done so already, please copy kerberos.schema from your kerberos trunk into /etc/ldap/schema: &amp;lt;code&amp;gt;sudo cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
# To restrict access to the local machine, &amp;lt;code&amp;gt;sudo vim /etc/default/slapd&amp;lt;/code&amp;gt;, search for SLAPD_SERVICES and set it to: &amp;lt;pre&amp;gt;SLAPD_SERVICES=&amp;quot;ldapi:///&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Reconfigure your kerberos&lt;br /&gt;
#* Navigate to kerberos src&lt;br /&gt;
#* &amp;lt;code&amp;gt;make distclean&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;util/reconf&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;./configure --with-ldap&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo make install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 5. Kerb Schema Operations ==&lt;br /&gt;
Loosely followed [http://ajuda.ubuntu.cat/9.04/serverguide/kerberos-ldap.html Ubuntu Guide] and [http://web.mit.edu/kerberos/krb5-1.7/krb5-1.7/doc/krb5-admin.html#Configuring-Kerberos-with-OpenLDAP-back_002dend Kerberos V5 System Admin Guide]&lt;br /&gt;
&lt;br /&gt;
# You have not done so already, locate the kerberos.schema.  [[kerberos.schema]] which should be in /etc/ldap/schema/kerberos.schema.  If it is not there, please copy it there from your kerberos trunk: &amp;lt;code&amp;gt;cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Checkpoint: Make sure there is a list of different schemas in /etc/ldap/schema.  Such as&lt;br /&gt;
#:* core.schema&lt;br /&gt;
#:* inetorgperson.schema&lt;br /&gt;
#:* kerberos.schema&lt;br /&gt;
#:* misc.schema&lt;br /&gt;
#:* openldap.schema&lt;br /&gt;
# Make this [[schema_convert.conf]] at /tmp/schema_convert.conf.  Note! This is different from the schema_convert.conf in the Ubuntu Guide.&lt;br /&gt;
# Make the directory to hold output: &amp;lt;code&amp;gt;mkdir /tmp/ldif_output &amp;lt;/code&amp;gt;&lt;br /&gt;
# Convert schema --&amp;gt; LDIF with slaptest: &amp;lt;code&amp;gt;slaptest -f tmp/schema_convert.conf -F /tmp/ldif_output&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: &amp;quot;config file testing succeeded&amp;quot;&lt;br /&gt;
#: Checkpoint: If you &amp;lt;code&amp;gt;sudo ls /tmp/ldif_output/cn\=config/cn\=schema&amp;lt;/code&amp;gt;, you should see:&lt;br /&gt;
#:: cn={0}core.ldif       &lt;br /&gt;
#:: cn={1}corba.ldif          &lt;br /&gt;
#:: cn={2}cosine.ldif   &lt;br /&gt;
#:: cn={3}duaconf.ldif  &lt;br /&gt;
#:: cn={4}inetorgperson.ldif&lt;br /&gt;
#:: cn={5}java.ldif	&lt;br /&gt;
#:: cn={6}kerberos.ldif&lt;br /&gt;
#:: cn={7}misc.ldif&lt;br /&gt;
#:: cn={8}openldap.ldif&lt;br /&gt;
#:: cn={9}nis.ldif&lt;br /&gt;
# Need to modify kerberos.ldif. &lt;br /&gt;
#* Find which number kerberos.ldif is listed as: &amp;lt;code&amp;gt;sudo ls /tmp/ldif_output/cn\=config/cn\=schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Edit it: &amp;lt;code&amp;gt; sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn={6}kerberos.ldif&amp;lt;/code&amp;gt;&lt;br /&gt;
#** change ''dn: cn={6}kerberos'' into ''dn: cn=kerberos,cn=schema,cn=config''&lt;br /&gt;
#** change ''cn: {6}kerberos'' into ''cn: kerberos''&lt;br /&gt;
#** Delete the bottom lines: from ''structuralObjectClasses: olcSchemaConfig'' to ''modifyTimestamp: 20090811205313Z''&lt;br /&gt;
# load new schema: &amp;lt;code&amp;gt;sudo ldapadd -x -D cn=admin,cn=config -W -f /tmp/ldif_output/cn\=config/cn\=schema/cn\={6}kerberos.ldif -H ldapi:///&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: ''adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
== 6. Starting ==&lt;br /&gt;
* Create your database with kdb5_ldap_util instead of kdb5_util:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -W -H ldapi:/// create  -s&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Initializing database for realm 'EXAMPLE.ORG'&lt;br /&gt;
You will be prompted for the database Master Password.&lt;br /&gt;
It is important that you NOT FORGET this password.&lt;br /&gt;
Enter KDC database master key: &lt;br /&gt;
Re-enter KDC database master key to verify: &lt;br /&gt;
&lt;br /&gt;
Kerberos container is missing. Creating now...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Stash the password:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -W -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&amp;lt;/code&amp;gt;&lt;br /&gt;
*: Checkpoint: If it works, you can do:&lt;br /&gt;
*:* &amp;lt;code&amp;gt;kadmin.local&amp;lt;/code&amp;gt;, try &amp;lt;code&amp;gt;listprincs&amp;lt;/code&amp;gt;, quit by typing &amp;lt;code&amp;gt;quit&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;krb5kdc&amp;lt;/code&amp;gt; &lt;br /&gt;
*: Checkpoint: &amp;lt;code&amp;gt;ps -ef | grep krb5kdc&amp;lt;/code&amp;gt; should show it running&lt;br /&gt;
&lt;br /&gt;
* Command to destroy kdb5_ldap_util: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -W -H ldapi:/// destroy&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Scratch Pad ==&lt;br /&gt;
&lt;br /&gt;
===Assume People have done===&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
&lt;br /&gt;
   16  make distclean&lt;br /&gt;
&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
&lt;br /&gt;
   19  make&lt;br /&gt;
&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
&lt;br /&gt;
    8  mkdir /tmp/krb5kdc (or should it be /tmp/sandbox/krb5kdc)?&lt;br /&gt;
&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
&lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
&lt;br /&gt;
   29  krb5kdc -n&lt;br /&gt;
&lt;br /&gt;
== Errors ==&lt;br /&gt;
* sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
*: ERROR: ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)&lt;br /&gt;
*: SOLUTION: Make sure that you have slapd started, and make sure that the -H ldapi:/// is consistent.&lt;br /&gt;
*: sudo /usr/sbin/slapd -H ldap:/// -g openldap -u openldap -F /etc/ldap/slapd.d/&lt;br /&gt;
*: openldap  5716     1  0 11:55 ?        00:00:00 /usr/sbin/slapd -h ldap:/// ldapi:/// -g openldap -u openldap -F /etc/ldap/slapd.d/&lt;br /&gt;
&lt;br /&gt;
** sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldap:///&lt;br /&gt;
**:Output: adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openldap 11434     1  0 12:06 ?        00:00:00 /usr/sbin/slapd -h ldap:/// -g openldap -u openldap -F /etc/ldap/slapd.d/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -h ldap:///&lt;br /&gt;
*: ERROR: Could not create LDAP session handle for URI=ldap://ldap:%2F%2F%2F (-9): Bad parameter to an ldap routine&lt;br /&gt;
*: SOLUTION: Change &amp;quot;-h&amp;quot; to &amp;quot;-H&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
haoqili@reach-my-dream:~/trunk/src$ ps -ef | grep sla&lt;br /&gt;
haoqili  12228  4371  0 12:26 pts/0    00:00:00 grep sla&lt;br /&gt;
haoqili@reach-my-dream:~/trunk/src$ sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldap:///&lt;br /&gt;
ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)&lt;br /&gt;
haoqili@reach-my-dream:~/trunk/src$ sudo /usr/sbin/slapd -h ldap:/// ldapi:/// -g openldap -u openldap -F /etc/ldap/slapd.d/ &lt;br /&gt;
haoqili@reach-my-dream:~/trunk/src$ sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldap:///&lt;br /&gt;
adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;&lt;br /&gt;
ldap_add: Other (e.g., implementation specific) error (80)&lt;br /&gt;
	additional info: olcAttributeTypes: Duplicate attributeType: &amp;quot;2.16.840.1.113719.1.301.4.1.1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* DbDriver is locked&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo debconf-set-selections /tmp/debconfile &lt;br /&gt;
[sudo] password for haoqili: &lt;br /&gt;
debconf: DbDriver &amp;quot;config&amp;quot;: /var/cache/debconf/config.dat is locked by another process: Resource temporarily unavailable&lt;br /&gt;
&lt;br /&gt;
OR &lt;br /&gt;
&lt;br /&gt;
sudo dpkg-reconfigure --frontend=noninteractive&lt;br /&gt;
[sudo] password for haoqili: &lt;br /&gt;
debconf: DbDriver &amp;quot;config&amp;quot;: /var/cache/debconf/config.dat is locked by another process: Resource temporarily unavailable&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*: SOLUTION: This will tell what is locking it: &amp;lt;code&amp;gt;fuser -v /var/cache/debconf/config.dat&amp;lt;/code&amp;gt;.  [http://spiralinks.blogspot.com/2009/07/debian-apt-get-interrupted-leaves-files.html From here.]&lt;/div&gt;</summary>
		<author><name>Haoqili</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2177</id>
		<title>LDAP on Kerberos</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2177"/>
				<updated>2009-08-24T15:02:25Z</updated>
		
		<summary type="html">&lt;p&gt;Haoqili: /* 4. Build kerb. config */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==About==&lt;br /&gt;
A guide to set up ldap backend for kerberos.&lt;br /&gt;
&lt;br /&gt;
== To Do ==&lt;br /&gt;
* Slapd in sandbox, not /etc&lt;br /&gt;
* Simpler Domain names D.COM, R.COM&lt;br /&gt;
* Different domain names&lt;br /&gt;
* Figure out required schemas&lt;br /&gt;
* Figure out: In Kerb Schema Operations, I can do &amp;quot;or update slapd.conf with kerb schema or ldif&amp;quot; in some ubuntu&lt;br /&gt;
* Play around to get minimum set of requirement&lt;br /&gt;
&lt;br /&gt;
* update tree too, got a fix&lt;br /&gt;
&lt;br /&gt;
== 0. Sample code to follow ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
    8  mkdir krb5kdc&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
   16  make distclean&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
   19  make&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
   29  krb5kdc -n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 1. Information about the system ==&lt;br /&gt;
- packages&lt;br /&gt;
* Version of ubuntu&lt;br /&gt;
       lsb_release -a&lt;br /&gt;
       No LSB modules are available.&lt;br /&gt;
       Distributor ID:        Ubuntu&lt;br /&gt;
       Description:        Ubuntu 9.04&lt;br /&gt;
       Release:        9.04&lt;br /&gt;
       Codename:        jaunty&lt;br /&gt;
* Version of slapd: 2.4.15 (Mar 19 2009)&lt;br /&gt;
       slapd -V&lt;br /&gt;
       @(#) $OpenLDAP: slapd 2.4.15 (Mar 19 2009 10:08:25) $&lt;br /&gt;
       buildd@palmer:/build/buildd/openldap-2.4.15/debian/build/servers/slapd&lt;br /&gt;
&lt;br /&gt;
* Version of ldap-utils: 2.4.15&lt;br /&gt;
       dpkg -l ldap-utils&lt;br /&gt;
&lt;br /&gt;
== 2. Extract krb conf files ==&lt;br /&gt;
* It is crucial to have correct, consistent domain names.  You must have the dbmodules in krb5.conf.&lt;br /&gt;
* Save [[krb5.conf]]&lt;br /&gt;
* Save [[kdc.conf]]&lt;br /&gt;
* Save [[kadm5.acl]]&lt;br /&gt;
&lt;br /&gt;
== 3. Env and Setup==&lt;br /&gt;
You need to export these lines into your env. Based on where you saved these files.&lt;br /&gt;
&lt;br /&gt;
*export KRB5_CONFIG=/tmp/sandbox/krb5.conf&lt;br /&gt;
&lt;br /&gt;
*export KRB5_KDC_PROFILE=/tmp/sandbox/kdc.conf&lt;br /&gt;
&lt;br /&gt;
* make a krb5kdc folder: mkdir /tmp/sandbox/krb5kdc)&lt;br /&gt;
&lt;br /&gt;
Whatever you do, be consistent&lt;br /&gt;
&lt;br /&gt;
== 4. Build kerb. config ==&lt;br /&gt;
&lt;br /&gt;
# Install Packages:&lt;br /&gt;
#* &amp;lt;code&amp;gt; sudo apt-get install slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
#* for ldapsearch: &amp;lt;code&amp;gt;sudo apt-get install ldap-utils&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo apt-get install libldap2-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
# Set &amp;quot;domain&amp;quot; of your LDAP server &lt;br /&gt;
#* Option 1, Interactive Option: &amp;lt;code&amp;gt;sudo dpkg-reconfigure slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
#*: Indented are the debconf-get-selections lines&lt;br /&gt;
#*# Omit OpenLDAP server configuration: No&lt;br /&gt;
#*#: slapd   slapd/no_configuration  boolean false&lt;br /&gt;
#*# DNS domain name: example.org&lt;br /&gt;
#*#: slapd   slapd/domain    string  example.org&lt;br /&gt;
#*# Organization name: example.org [note: i used the same name for simplicity]&lt;br /&gt;
#*#: slapd   shared/organization     string  example.org&lt;br /&gt;
#*# Databases backend to use: HDB, instead of BDB&lt;br /&gt;
#*#: slapd   slapd/backend   select  HDB&lt;br /&gt;
#*# Do you want the database to be removed when slapd is purge: Yes&lt;br /&gt;
#*#: slapd   slapd/purge_database    boolean true&lt;br /&gt;
#*# Move old database: Yes&lt;br /&gt;
#*#: slapd   slapd/move_old_database boolean true&lt;br /&gt;
#*# Admin password: [your pwd]&lt;br /&gt;
#*#: slapd   slapd/password1 password&lt;br /&gt;
#*#: [I'm not sure about the debconf-get-selection line here.  There are 5 different password lines!]&lt;br /&gt;
#*# Confirm password: [your pwd]&lt;br /&gt;
#*#: slapd   slapd/password2 password&lt;br /&gt;
#*# Allow LDAPv2 protocol: No&lt;br /&gt;
#*#: slapd   slapd/allow_ldap_v2     boolean false&lt;br /&gt;
#* Option 2, Noninteractive Option&lt;br /&gt;
#*# Save this file in /tmp/debconfile: [debconfile]&lt;br /&gt;
#*# &amp;lt;code&amp;gt;sudo debconf-set-selections /tmp/debconfile&amp;lt;/code&amp;gt;&lt;br /&gt;
#*# &amp;lt;code&amp;gt;sudo dpkg-reconfigure --frontend=noninteractive slapd&amp;lt;/code&amp;gt; &lt;br /&gt;
#* Checkpoint:  If you are successful, you should see as output:&lt;br /&gt;
#*: ''Stopping OpenLDAP: slapd.''&lt;br /&gt;
#*:  ''Moving old database directory to /var/backups:''&lt;br /&gt;
#*:  ''- directory unknown... done.''&lt;br /&gt;
#*:  ''Creating initial slapd configuration... done.''&lt;br /&gt;
#*:  ''Creating initial LDAP directory... done.''&lt;br /&gt;
#*: ''* Reloading AppArmor profiles ''&lt;br /&gt;
#*:  ''...                                               [ OK ]'' &lt;br /&gt;
#*:  ''Starting OpenLDAP: slapd.''&lt;br /&gt;
# If you haven't done so already, please copy kerberos.schema from your kerberos trunk into /etc/ldap/schema: &amp;lt;code&amp;gt;sudo cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
# To restrict access to the local machine, &amp;lt;code&amp;gt;sudo vim /etc/default/slapd&amp;lt;/code&amp;gt;, search for SLAPD_SERVICES and set it to: &amp;lt;pre&amp;gt;SLAPD_SERVICES=&amp;quot;ldapi:///&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Reconfigure your kerberos&lt;br /&gt;
#* Navigate to kerberos src&lt;br /&gt;
#* &amp;lt;code&amp;gt;make distclean&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;util/reconf&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;./configure --with-ldap&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo make install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 5. Kerb Schema Operations ==&lt;br /&gt;
Loosely followed [http://ajuda.ubuntu.cat/9.04/serverguide/kerberos-ldap.html Ubuntu Guide] and [http://web.mit.edu/kerberos/krb5-1.7/krb5-1.7/doc/krb5-admin.html#Configuring-Kerberos-with-OpenLDAP-back_002dend Kerberos V5 System Admin Guide]&lt;br /&gt;
&lt;br /&gt;
# You have not done so already, locate the kerberos.schema.  [[kerberos.schema]] which should be in /etc/ldap/schema/kerberos.schema.  If it is not there, please copy it there from your kerberos trunk: &amp;lt;code&amp;gt;cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Checkpoint: Make sure there is a list of different schemas in /etc/ldap/schema.  Such as&lt;br /&gt;
#:* core.schema&lt;br /&gt;
#:* inetorgperson.schema&lt;br /&gt;
#:* kerberos.schema&lt;br /&gt;
#:* misc.schema&lt;br /&gt;
#:* openldap.schema&lt;br /&gt;
# Make this [[schema_convert.conf]] at /tmp/schema_convert.conf.  Note! This is different from the schema_convert.conf in the Ubuntu Guide.&lt;br /&gt;
# Make the directory to hold output: &amp;lt;code&amp;gt;mkdir /tmp/ldif_output &amp;lt;/code&amp;gt;&lt;br /&gt;
# Convert schema --&amp;gt; LDIF with slaptest: &amp;lt;code&amp;gt;slaptest -f tmp/schema_convert.conf -F /tmp/ldif_output&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: &amp;quot;config file testing succeeded&amp;quot;&lt;br /&gt;
#: Checkpoint: If you &amp;lt;code&amp;gt;sudo ls /tmp/ldif_output/cn\=config/cn\=schema&amp;lt;/code&amp;gt;, you should see:&lt;br /&gt;
#:: cn={0}core.ldif       &lt;br /&gt;
#:: cn={1}corba.ldif          &lt;br /&gt;
#:: cn={2}cosine.ldif   &lt;br /&gt;
#:: cn={3}duaconf.ldif  &lt;br /&gt;
#:: cn={4}inetorgperson.ldif&lt;br /&gt;
#:: cn={5}java.ldif	&lt;br /&gt;
#:: cn={6}kerberos.ldif&lt;br /&gt;
#:: cn={7}misc.ldif&lt;br /&gt;
#:: cn={8}openldap.ldif&lt;br /&gt;
#:: cn={9}nis.ldif&lt;br /&gt;
# Need to modify kerberos.ldif. &lt;br /&gt;
#* Find which number kerberos.ldif is listed as: &amp;lt;code&amp;gt;sudo ls /tmp/ldif_output/cn\=config/cn\=schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Edit it: &amp;lt;code&amp;gt; sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn={6}kerberos.ldif&amp;lt;/code&amp;gt;&lt;br /&gt;
#** change ''dn: cn={6}kerberos'' into ''dn: cn=kerberos,cn=schema,cn=config''&lt;br /&gt;
#** change ''cn: {6}kerberos'' into ''cn: kerberos''&lt;br /&gt;
#** Delete the bottom lines: from ''structuralObjectClasses: olcSchemaConfig'' to ''modifyTimestamp: 20090811205313Z''&lt;br /&gt;
# load new schema: &amp;lt;code&amp;gt;sudo ldapadd -x -D cn=admin,cn=config -W -f /tmp/ldif_output/cn\=config/cn\=schema/cn\={6}kerberos.ldif -H ldapi:///&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: ''adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
== 6. Starting ==&lt;br /&gt;
* Create your database with kdb5_ldap_util instead of kdb5_util:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -W -H ldapi:/// create  -s&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Initializing database for realm 'EXAMPLE.ORG'&lt;br /&gt;
You will be prompted for the database Master Password.&lt;br /&gt;
It is important that you NOT FORGET this password.&lt;br /&gt;
Enter KDC database master key: &lt;br /&gt;
Re-enter KDC database master key to verify: &lt;br /&gt;
&lt;br /&gt;
Kerberos container is missing. Creating now...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Stash the password:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -W -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&amp;lt;/code&amp;gt;&lt;br /&gt;
*: Checkpoint: If it works, you can do:&lt;br /&gt;
*:* &amp;lt;code&amp;gt;kadmin.local&amp;lt;/code&amp;gt;, try &amp;lt;code&amp;gt;listprincs&amp;lt;/code&amp;gt;, quit by typing &amp;lt;code&amp;gt;quit&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;krb5kdc&amp;lt;/code&amp;gt; &lt;br /&gt;
*: Checkpoint: &amp;lt;code&amp;gt;ps -ef | grep krb5kdc&amp;lt;/code&amp;gt; should show it running&lt;br /&gt;
&lt;br /&gt;
* Command to destroy kdb5_ldap_util: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -W -H ldapi:/// destroy&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Scratch Pad ==&lt;br /&gt;
&lt;br /&gt;
===Assume People have done===&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
&lt;br /&gt;
   16  make distclean&lt;br /&gt;
&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
&lt;br /&gt;
   19  make&lt;br /&gt;
&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
&lt;br /&gt;
    8  mkdir /tmp/krb5kdc (or should it be /tmp/sandbox/krb5kdc)?&lt;br /&gt;
&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
&lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
&lt;br /&gt;
   29  krb5kdc -n&lt;br /&gt;
&lt;br /&gt;
== Errors ==&lt;br /&gt;
* sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
*: ERROR: ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)&lt;br /&gt;
*: SOLUTION: Make sure that you have slapd started, and make sure that the -H ldapi:/// is consistent.&lt;br /&gt;
*: sudo /usr/sbin/slapd -H ldap:/// -g openldap -u openldap -F /etc/ldap/slapd.d/&lt;br /&gt;
*: openldap  5716     1  0 11:55 ?        00:00:00 /usr/sbin/slapd -h ldap:/// ldapi:/// -g openldap -u openldap -F /etc/ldap/slapd.d/&lt;br /&gt;
&lt;br /&gt;
** sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldap:///&lt;br /&gt;
**:Output: adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openldap 11434     1  0 12:06 ?        00:00:00 /usr/sbin/slapd -h ldap:/// -g openldap -u openldap -F /etc/ldap/slapd.d/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -h ldap:///&lt;br /&gt;
*: ERROR: Could not create LDAP session handle for URI=ldap://ldap:%2F%2F%2F (-9): Bad parameter to an ldap routine&lt;br /&gt;
*: SOLUTION: Change &amp;quot;-h&amp;quot; to &amp;quot;-H&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
haoqili@reach-my-dream:~/trunk/src$ ps -ef | grep sla&lt;br /&gt;
haoqili  12228  4371  0 12:26 pts/0    00:00:00 grep sla&lt;br /&gt;
haoqili@reach-my-dream:~/trunk/src$ sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldap:///&lt;br /&gt;
ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)&lt;br /&gt;
haoqili@reach-my-dream:~/trunk/src$ sudo /usr/sbin/slapd -h ldap:/// ldapi:/// -g openldap -u openldap -F /etc/ldap/slapd.d/ &lt;br /&gt;
haoqili@reach-my-dream:~/trunk/src$ sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldap:///&lt;br /&gt;
adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;&lt;br /&gt;
ldap_add: Other (e.g., implementation specific) error (80)&lt;br /&gt;
	additional info: olcAttributeTypes: Duplicate attributeType: &amp;quot;2.16.840.1.113719.1.301.4.1.1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* DbDriver is locked&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo debconf-set-selections /tmp/debconfile &lt;br /&gt;
[sudo] password for haoqili: &lt;br /&gt;
debconf: DbDriver &amp;quot;config&amp;quot;: /var/cache/debconf/config.dat is locked by another process: Resource temporarily unavailable&lt;br /&gt;
&lt;br /&gt;
OR &lt;br /&gt;
&lt;br /&gt;
sudo dpkg-reconfigure --frontend=noninteractive&lt;br /&gt;
[sudo] password for haoqili: &lt;br /&gt;
debconf: DbDriver &amp;quot;config&amp;quot;: /var/cache/debconf/config.dat is locked by another process: Resource temporarily unavailable&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*: SOLUTION: This will tell what is locking it: &amp;lt;code&amp;gt;fuser -v /var/cache/debconf/config.dat&amp;lt;/code&amp;gt;.  [http://spiralinks.blogspot.com/2009/07/debian-apt-get-interrupted-leaves-files.html From here.]&lt;/div&gt;</summary>
		<author><name>Haoqili</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2176</id>
		<title>LDAP on Kerberos</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2176"/>
				<updated>2009-08-24T14:12:46Z</updated>
		
		<summary type="html">&lt;p&gt;Haoqili: /* Errors */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==About==&lt;br /&gt;
A guide to set up ldap backend for kerberos.&lt;br /&gt;
&lt;br /&gt;
== To Do ==&lt;br /&gt;
* Slapd in sandbox, not /etc&lt;br /&gt;
* Simpler Domain names D.COM, R.COM&lt;br /&gt;
* Different domain names&lt;br /&gt;
* Figure out required schemas&lt;br /&gt;
* Figure out: In Kerb Schema Operations, I can do &amp;quot;or update slapd.conf with kerb schema or ldif&amp;quot; in some ubuntu&lt;br /&gt;
* Play around to get minimum set of requirement&lt;br /&gt;
&lt;br /&gt;
* update tree too, got a fix&lt;br /&gt;
&lt;br /&gt;
== 0. Sample code to follow ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
    8  mkdir krb5kdc&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
   16  make distclean&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
   19  make&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
   29  krb5kdc -n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 1. Information about the system ==&lt;br /&gt;
- packages&lt;br /&gt;
* Version of ubuntu&lt;br /&gt;
       lsb_release -a&lt;br /&gt;
       No LSB modules are available.&lt;br /&gt;
       Distributor ID:        Ubuntu&lt;br /&gt;
       Description:        Ubuntu 9.04&lt;br /&gt;
       Release:        9.04&lt;br /&gt;
       Codename:        jaunty&lt;br /&gt;
* Version of slapd: 2.4.15 (Mar 19 2009)&lt;br /&gt;
       slapd -V&lt;br /&gt;
       @(#) $OpenLDAP: slapd 2.4.15 (Mar 19 2009 10:08:25) $&lt;br /&gt;
       buildd@palmer:/build/buildd/openldap-2.4.15/debian/build/servers/slapd&lt;br /&gt;
&lt;br /&gt;
* Version of ldap-utils: 2.4.15&lt;br /&gt;
       dpkg -l ldap-utils&lt;br /&gt;
&lt;br /&gt;
== 2. Extract krb conf files ==&lt;br /&gt;
* It is crucial to have correct, consistent domain names.  You must have the dbmodules in krb5.conf.&lt;br /&gt;
* Save [[krb5.conf]]&lt;br /&gt;
* Save [[kdc.conf]]&lt;br /&gt;
* Save [[kadm5.acl]]&lt;br /&gt;
&lt;br /&gt;
== 3. Env and Setup==&lt;br /&gt;
You need to export these lines into your env. Based on where you saved these files.&lt;br /&gt;
&lt;br /&gt;
*export KRB5_CONFIG=/tmp/sandbox/krb5.conf&lt;br /&gt;
&lt;br /&gt;
*export KRB5_KDC_PROFILE=/tmp/sandbox/kdc.conf&lt;br /&gt;
&lt;br /&gt;
* make a krb5kdc folder: mkdir /tmp/sandbox/krb5kdc)&lt;br /&gt;
&lt;br /&gt;
Whatever you do, be consistent&lt;br /&gt;
&lt;br /&gt;
== 4. Build kerb. config ==&lt;br /&gt;
&lt;br /&gt;
# Install Packages:&lt;br /&gt;
#* &amp;lt;code&amp;gt; sudo apt-get install slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
#* for ldapsearch: &amp;lt;code&amp;gt;sudo apt-get install ldap-utils&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo apt-get install libldap2-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
# Set the &amp;quot;domain&amp;quot; of your LDAP server with &amp;lt;code&amp;gt;sudo dpkg-reconfigure slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
##: Indented are the debconf-get-selections lines&lt;br /&gt;
## Omit OpenLDAP server configuration: No&lt;br /&gt;
##: slapd   slapd/no_configuration  boolean false&lt;br /&gt;
## DNS domain name: example.org&lt;br /&gt;
##: slapd   slapd/domain    string  example.org&lt;br /&gt;
## Organization name: example.org [note: i used the same name for simplicity]&lt;br /&gt;
##: slapd   shared/organization     string  example.org&lt;br /&gt;
## Databases backend to use: HDB, instead of BDB&lt;br /&gt;
##: slapd   slapd/backend   select  HDB&lt;br /&gt;
## Do you want the database to be removed when slapd is purge: Yes&lt;br /&gt;
##: slapd   slapd/purge_database    boolean true&lt;br /&gt;
## Move old database: Yes&lt;br /&gt;
##: slapd   slapd/move_old_database boolean true&lt;br /&gt;
## Admin password: [your pwd]&lt;br /&gt;
##: slapd   slapd/password1 password&lt;br /&gt;
##: [I'm not sure about the debconf-get-selection line here.  There are 5 different password lines!]&lt;br /&gt;
## Confirm password: [your pwd]&lt;br /&gt;
##: slapd   slapd/password2 password&lt;br /&gt;
## Allow LDAPv2 protocol: No&lt;br /&gt;
##: slapd   slapd/allow_ldap_v2     boolean false&lt;br /&gt;
#: Checkpoint:  If you are successful, you should see as output:&lt;br /&gt;
#:: ''Stopping OpenLDAP: slapd.''&lt;br /&gt;
#::  ''Moving old database directory to /var/backups:''&lt;br /&gt;
#::  ''- directory unknown... done.''&lt;br /&gt;
#::  ''Creating initial slapd configuration... done.''&lt;br /&gt;
#::  ''Creating initial LDAP directory... done.''&lt;br /&gt;
#:: ''* Reloading AppArmor profiles ''&lt;br /&gt;
#::  ''...                                               [ OK ]'' &lt;br /&gt;
#::  ''Starting OpenLDAP: slapd.''&lt;br /&gt;
# If you haven't done so already, please copy kerberos.schema from your kerberos trunk into /etc/ldap/schema: &amp;lt;code&amp;gt;sudo cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
# To restrict access to the local machine, &amp;lt;code&amp;gt;sudo vim /etc/default/slapd&amp;lt;/code&amp;gt;, search for SLAPD_SERVICES and set it to: &amp;lt;pre&amp;gt;SLAPD_SERVICES=&amp;quot;ldapi:///&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Reconfigure your kerberos&lt;br /&gt;
#* Navigate to kerberos src&lt;br /&gt;
#* &amp;lt;code&amp;gt;make distclean&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;util/reconf&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;./configure --with-ldap&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo make install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 5. Kerb Schema Operations ==&lt;br /&gt;
Loosely followed [http://ajuda.ubuntu.cat/9.04/serverguide/kerberos-ldap.html Ubuntu Guide] and [http://web.mit.edu/kerberos/krb5-1.7/krb5-1.7/doc/krb5-admin.html#Configuring-Kerberos-with-OpenLDAP-back_002dend Kerberos V5 System Admin Guide]&lt;br /&gt;
&lt;br /&gt;
# You have not done so already, locate the kerberos.schema.  [[kerberos.schema]] which should be in /etc/ldap/schema/kerberos.schema.  If it is not there, please copy it there from your kerberos trunk: &amp;lt;code&amp;gt;cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Checkpoint: Make sure there is a list of different schemas in /etc/ldap/schema.  Such as&lt;br /&gt;
#:* core.schema&lt;br /&gt;
#:* inetorgperson.schema&lt;br /&gt;
#:* kerberos.schema&lt;br /&gt;
#:* misc.schema&lt;br /&gt;
#:* openldap.schema&lt;br /&gt;
# Make this [[schema_convert.conf]] at /tmp/schema_convert.conf.  Note! This is different from the schema_convert.conf in the Ubuntu Guide.&lt;br /&gt;
# Make the directory to hold output: &amp;lt;code&amp;gt;mkdir /tmp/ldif_output &amp;lt;/code&amp;gt;&lt;br /&gt;
# Convert schema --&amp;gt; LDIF with slaptest: &amp;lt;code&amp;gt;slaptest -f tmp/schema_convert.conf -F /tmp/ldif_output&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: &amp;quot;config file testing succeeded&amp;quot;&lt;br /&gt;
#: Checkpoint: If you &amp;lt;code&amp;gt;sudo ls /tmp/ldif_output/cn\=config/cn\=schema&amp;lt;/code&amp;gt;, you should see:&lt;br /&gt;
#:: cn={0}core.ldif       &lt;br /&gt;
#:: cn={1}corba.ldif          &lt;br /&gt;
#:: cn={2}cosine.ldif   &lt;br /&gt;
#:: cn={3}duaconf.ldif  &lt;br /&gt;
#:: cn={4}inetorgperson.ldif&lt;br /&gt;
#:: cn={5}java.ldif	&lt;br /&gt;
#:: cn={6}kerberos.ldif&lt;br /&gt;
#:: cn={7}misc.ldif&lt;br /&gt;
#:: cn={8}openldap.ldif&lt;br /&gt;
#:: cn={9}nis.ldif&lt;br /&gt;
# Need to modify kerberos.ldif. &lt;br /&gt;
#* Find which number kerberos.ldif is listed as: &amp;lt;code&amp;gt;sudo ls /tmp/ldif_output/cn\=config/cn\=schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Edit it: &amp;lt;code&amp;gt; sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn={6}kerberos.ldif&amp;lt;/code&amp;gt;&lt;br /&gt;
#** change ''dn: cn={6}kerberos'' into ''dn: cn=kerberos,cn=schema,cn=config''&lt;br /&gt;
#** change ''cn: {6}kerberos'' into ''cn: kerberos''&lt;br /&gt;
#** Delete the bottom lines: from ''structuralObjectClasses: olcSchemaConfig'' to ''modifyTimestamp: 20090811205313Z''&lt;br /&gt;
# load new schema: &amp;lt;code&amp;gt;sudo ldapadd -x -D cn=admin,cn=config -W -f /tmp/ldif_output/cn\=config/cn\=schema/cn\={6}kerberos.ldif -H ldapi:///&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: ''adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
== 6. Starting ==&lt;br /&gt;
* Create your database with kdb5_ldap_util instead of kdb5_util:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -W -H ldapi:/// create  -s&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Initializing database for realm 'EXAMPLE.ORG'&lt;br /&gt;
You will be prompted for the database Master Password.&lt;br /&gt;
It is important that you NOT FORGET this password.&lt;br /&gt;
Enter KDC database master key: &lt;br /&gt;
Re-enter KDC database master key to verify: &lt;br /&gt;
&lt;br /&gt;
Kerberos container is missing. Creating now...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Stash the password:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -W -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&amp;lt;/code&amp;gt;&lt;br /&gt;
*: Checkpoint: If it works, you can do:&lt;br /&gt;
*:* &amp;lt;code&amp;gt;kadmin.local&amp;lt;/code&amp;gt;, try &amp;lt;code&amp;gt;listprincs&amp;lt;/code&amp;gt;, quit by typing &amp;lt;code&amp;gt;quit&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;krb5kdc&amp;lt;/code&amp;gt; &lt;br /&gt;
*: Checkpoint: &amp;lt;code&amp;gt;ps -ef | grep krb5kdc&amp;lt;/code&amp;gt; should show it running&lt;br /&gt;
&lt;br /&gt;
* Command to destroy kdb5_ldap_util: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -W -H ldapi:/// destroy&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Scratch Pad ==&lt;br /&gt;
&lt;br /&gt;
===Assume People have done===&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
&lt;br /&gt;
   16  make distclean&lt;br /&gt;
&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
&lt;br /&gt;
   19  make&lt;br /&gt;
&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
&lt;br /&gt;
    8  mkdir /tmp/krb5kdc (or should it be /tmp/sandbox/krb5kdc)?&lt;br /&gt;
&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
&lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
&lt;br /&gt;
   29  krb5kdc -n&lt;br /&gt;
&lt;br /&gt;
== Errors ==&lt;br /&gt;
* sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
*: ERROR: ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)&lt;br /&gt;
*: SOLUTION: Make sure that you have slapd started, and make sure that the -H ldapi:/// is consistent.&lt;br /&gt;
*: sudo /usr/sbin/slapd -H ldap:/// -g openldap -u openldap -F /etc/ldap/slapd.d/&lt;br /&gt;
*: openldap  5716     1  0 11:55 ?        00:00:00 /usr/sbin/slapd -h ldap:/// ldapi:/// -g openldap -u openldap -F /etc/ldap/slapd.d/&lt;br /&gt;
&lt;br /&gt;
** sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldap:///&lt;br /&gt;
**:Output: adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openldap 11434     1  0 12:06 ?        00:00:00 /usr/sbin/slapd -h ldap:/// -g openldap -u openldap -F /etc/ldap/slapd.d/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -h ldap:///&lt;br /&gt;
*: ERROR: Could not create LDAP session handle for URI=ldap://ldap:%2F%2F%2F (-9): Bad parameter to an ldap routine&lt;br /&gt;
*: SOLUTION: Change &amp;quot;-h&amp;quot; to &amp;quot;-H&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
haoqili@reach-my-dream:~/trunk/src$ ps -ef | grep sla&lt;br /&gt;
haoqili  12228  4371  0 12:26 pts/0    00:00:00 grep sla&lt;br /&gt;
haoqili@reach-my-dream:~/trunk/src$ sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldap:///&lt;br /&gt;
ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)&lt;br /&gt;
haoqili@reach-my-dream:~/trunk/src$ sudo /usr/sbin/slapd -h ldap:/// ldapi:/// -g openldap -u openldap -F /etc/ldap/slapd.d/ &lt;br /&gt;
haoqili@reach-my-dream:~/trunk/src$ sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldap:///&lt;br /&gt;
adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;&lt;br /&gt;
ldap_add: Other (e.g., implementation specific) error (80)&lt;br /&gt;
	additional info: olcAttributeTypes: Duplicate attributeType: &amp;quot;2.16.840.1.113719.1.301.4.1.1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* DbDriver is locked&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo debconf-set-selections /tmp/debconfile &lt;br /&gt;
[sudo] password for haoqili: &lt;br /&gt;
debconf: DbDriver &amp;quot;config&amp;quot;: /var/cache/debconf/config.dat is locked by another process: Resource temporarily unavailable&lt;br /&gt;
&lt;br /&gt;
OR &lt;br /&gt;
&lt;br /&gt;
sudo dpkg-reconfigure --frontend=noninteractive&lt;br /&gt;
[sudo] password for haoqili: &lt;br /&gt;
debconf: DbDriver &amp;quot;config&amp;quot;: /var/cache/debconf/config.dat is locked by another process: Resource temporarily unavailable&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*: SOLUTION: This will tell what is locking it: &amp;lt;code&amp;gt;fuser -v /var/cache/debconf/config.dat&amp;lt;/code&amp;gt;.  [http://spiralinks.blogspot.com/2009/07/debian-apt-get-interrupted-leaves-files.html From here.]&lt;/div&gt;</summary>
		<author><name>Haoqili</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2175</id>
		<title>LDAP on Kerberos</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2175"/>
				<updated>2009-08-24T14:11:17Z</updated>
		
		<summary type="html">&lt;p&gt;Haoqili: /* Errors */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==About==&lt;br /&gt;
A guide to set up ldap backend for kerberos.&lt;br /&gt;
&lt;br /&gt;
== To Do ==&lt;br /&gt;
* Slapd in sandbox, not /etc&lt;br /&gt;
* Simpler Domain names D.COM, R.COM&lt;br /&gt;
* Different domain names&lt;br /&gt;
* Figure out required schemas&lt;br /&gt;
* Figure out: In Kerb Schema Operations, I can do &amp;quot;or update slapd.conf with kerb schema or ldif&amp;quot; in some ubuntu&lt;br /&gt;
* Play around to get minimum set of requirement&lt;br /&gt;
&lt;br /&gt;
* update tree too, got a fix&lt;br /&gt;
&lt;br /&gt;
== 0. Sample code to follow ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
    8  mkdir krb5kdc&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
   16  make distclean&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
   19  make&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
   29  krb5kdc -n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 1. Information about the system ==&lt;br /&gt;
- packages&lt;br /&gt;
* Version of ubuntu&lt;br /&gt;
       lsb_release -a&lt;br /&gt;
       No LSB modules are available.&lt;br /&gt;
       Distributor ID:        Ubuntu&lt;br /&gt;
       Description:        Ubuntu 9.04&lt;br /&gt;
       Release:        9.04&lt;br /&gt;
       Codename:        jaunty&lt;br /&gt;
* Version of slapd: 2.4.15 (Mar 19 2009)&lt;br /&gt;
       slapd -V&lt;br /&gt;
       @(#) $OpenLDAP: slapd 2.4.15 (Mar 19 2009 10:08:25) $&lt;br /&gt;
       buildd@palmer:/build/buildd/openldap-2.4.15/debian/build/servers/slapd&lt;br /&gt;
&lt;br /&gt;
* Version of ldap-utils: 2.4.15&lt;br /&gt;
       dpkg -l ldap-utils&lt;br /&gt;
&lt;br /&gt;
== 2. Extract krb conf files ==&lt;br /&gt;
* It is crucial to have correct, consistent domain names.  You must have the dbmodules in krb5.conf.&lt;br /&gt;
* Save [[krb5.conf]]&lt;br /&gt;
* Save [[kdc.conf]]&lt;br /&gt;
* Save [[kadm5.acl]]&lt;br /&gt;
&lt;br /&gt;
== 3. Env and Setup==&lt;br /&gt;
You need to export these lines into your env. Based on where you saved these files.&lt;br /&gt;
&lt;br /&gt;
*export KRB5_CONFIG=/tmp/sandbox/krb5.conf&lt;br /&gt;
&lt;br /&gt;
*export KRB5_KDC_PROFILE=/tmp/sandbox/kdc.conf&lt;br /&gt;
&lt;br /&gt;
* make a krb5kdc folder: mkdir /tmp/sandbox/krb5kdc)&lt;br /&gt;
&lt;br /&gt;
Whatever you do, be consistent&lt;br /&gt;
&lt;br /&gt;
== 4. Build kerb. config ==&lt;br /&gt;
&lt;br /&gt;
# Install Packages:&lt;br /&gt;
#* &amp;lt;code&amp;gt; sudo apt-get install slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
#* for ldapsearch: &amp;lt;code&amp;gt;sudo apt-get install ldap-utils&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo apt-get install libldap2-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
# Set the &amp;quot;domain&amp;quot; of your LDAP server with &amp;lt;code&amp;gt;sudo dpkg-reconfigure slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
##: Indented are the debconf-get-selections lines&lt;br /&gt;
## Omit OpenLDAP server configuration: No&lt;br /&gt;
##: slapd   slapd/no_configuration  boolean false&lt;br /&gt;
## DNS domain name: example.org&lt;br /&gt;
##: slapd   slapd/domain    string  example.org&lt;br /&gt;
## Organization name: example.org [note: i used the same name for simplicity]&lt;br /&gt;
##: slapd   shared/organization     string  example.org&lt;br /&gt;
## Databases backend to use: HDB, instead of BDB&lt;br /&gt;
##: slapd   slapd/backend   select  HDB&lt;br /&gt;
## Do you want the database to be removed when slapd is purge: Yes&lt;br /&gt;
##: slapd   slapd/purge_database    boolean true&lt;br /&gt;
## Move old database: Yes&lt;br /&gt;
##: slapd   slapd/move_old_database boolean true&lt;br /&gt;
## Admin password: [your pwd]&lt;br /&gt;
##: slapd   slapd/password1 password&lt;br /&gt;
##: [I'm not sure about the debconf-get-selection line here.  There are 5 different password lines!]&lt;br /&gt;
## Confirm password: [your pwd]&lt;br /&gt;
##: slapd   slapd/password2 password&lt;br /&gt;
## Allow LDAPv2 protocol: No&lt;br /&gt;
##: slapd   slapd/allow_ldap_v2     boolean false&lt;br /&gt;
#: Checkpoint:  If you are successful, you should see as output:&lt;br /&gt;
#:: ''Stopping OpenLDAP: slapd.''&lt;br /&gt;
#::  ''Moving old database directory to /var/backups:''&lt;br /&gt;
#::  ''- directory unknown... done.''&lt;br /&gt;
#::  ''Creating initial slapd configuration... done.''&lt;br /&gt;
#::  ''Creating initial LDAP directory... done.''&lt;br /&gt;
#:: ''* Reloading AppArmor profiles ''&lt;br /&gt;
#::  ''...                                               [ OK ]'' &lt;br /&gt;
#::  ''Starting OpenLDAP: slapd.''&lt;br /&gt;
# If you haven't done so already, please copy kerberos.schema from your kerberos trunk into /etc/ldap/schema: &amp;lt;code&amp;gt;sudo cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
# To restrict access to the local machine, &amp;lt;code&amp;gt;sudo vim /etc/default/slapd&amp;lt;/code&amp;gt;, search for SLAPD_SERVICES and set it to: &amp;lt;pre&amp;gt;SLAPD_SERVICES=&amp;quot;ldapi:///&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Reconfigure your kerberos&lt;br /&gt;
#* Navigate to kerberos src&lt;br /&gt;
#* &amp;lt;code&amp;gt;make distclean&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;util/reconf&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;./configure --with-ldap&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo make install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 5. Kerb Schema Operations ==&lt;br /&gt;
Loosely followed [http://ajuda.ubuntu.cat/9.04/serverguide/kerberos-ldap.html Ubuntu Guide] and [http://web.mit.edu/kerberos/krb5-1.7/krb5-1.7/doc/krb5-admin.html#Configuring-Kerberos-with-OpenLDAP-back_002dend Kerberos V5 System Admin Guide]&lt;br /&gt;
&lt;br /&gt;
# You have not done so already, locate the kerberos.schema.  [[kerberos.schema]] which should be in /etc/ldap/schema/kerberos.schema.  If it is not there, please copy it there from your kerberos trunk: &amp;lt;code&amp;gt;cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Checkpoint: Make sure there is a list of different schemas in /etc/ldap/schema.  Such as&lt;br /&gt;
#:* core.schema&lt;br /&gt;
#:* inetorgperson.schema&lt;br /&gt;
#:* kerberos.schema&lt;br /&gt;
#:* misc.schema&lt;br /&gt;
#:* openldap.schema&lt;br /&gt;
# Make this [[schema_convert.conf]] at /tmp/schema_convert.conf.  Note! This is different from the schema_convert.conf in the Ubuntu Guide.&lt;br /&gt;
# Make the directory to hold output: &amp;lt;code&amp;gt;mkdir /tmp/ldif_output &amp;lt;/code&amp;gt;&lt;br /&gt;
# Convert schema --&amp;gt; LDIF with slaptest: &amp;lt;code&amp;gt;slaptest -f tmp/schema_convert.conf -F /tmp/ldif_output&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: &amp;quot;config file testing succeeded&amp;quot;&lt;br /&gt;
#: Checkpoint: If you &amp;lt;code&amp;gt;sudo ls /tmp/ldif_output/cn\=config/cn\=schema&amp;lt;/code&amp;gt;, you should see:&lt;br /&gt;
#:: cn={0}core.ldif       &lt;br /&gt;
#:: cn={1}corba.ldif          &lt;br /&gt;
#:: cn={2}cosine.ldif   &lt;br /&gt;
#:: cn={3}duaconf.ldif  &lt;br /&gt;
#:: cn={4}inetorgperson.ldif&lt;br /&gt;
#:: cn={5}java.ldif	&lt;br /&gt;
#:: cn={6}kerberos.ldif&lt;br /&gt;
#:: cn={7}misc.ldif&lt;br /&gt;
#:: cn={8}openldap.ldif&lt;br /&gt;
#:: cn={9}nis.ldif&lt;br /&gt;
# Need to modify kerberos.ldif. &lt;br /&gt;
#* Find which number kerberos.ldif is listed as: &amp;lt;code&amp;gt;sudo ls /tmp/ldif_output/cn\=config/cn\=schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Edit it: &amp;lt;code&amp;gt; sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn={6}kerberos.ldif&amp;lt;/code&amp;gt;&lt;br /&gt;
#** change ''dn: cn={6}kerberos'' into ''dn: cn=kerberos,cn=schema,cn=config''&lt;br /&gt;
#** change ''cn: {6}kerberos'' into ''cn: kerberos''&lt;br /&gt;
#** Delete the bottom lines: from ''structuralObjectClasses: olcSchemaConfig'' to ''modifyTimestamp: 20090811205313Z''&lt;br /&gt;
# load new schema: &amp;lt;code&amp;gt;sudo ldapadd -x -D cn=admin,cn=config -W -f /tmp/ldif_output/cn\=config/cn\=schema/cn\={6}kerberos.ldif -H ldapi:///&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: ''adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
== 6. Starting ==&lt;br /&gt;
* Create your database with kdb5_ldap_util instead of kdb5_util:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -W -H ldapi:/// create  -s&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Initializing database for realm 'EXAMPLE.ORG'&lt;br /&gt;
You will be prompted for the database Master Password.&lt;br /&gt;
It is important that you NOT FORGET this password.&lt;br /&gt;
Enter KDC database master key: &lt;br /&gt;
Re-enter KDC database master key to verify: &lt;br /&gt;
&lt;br /&gt;
Kerberos container is missing. Creating now...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Stash the password:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -W -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&amp;lt;/code&amp;gt;&lt;br /&gt;
*: Checkpoint: If it works, you can do:&lt;br /&gt;
*:* &amp;lt;code&amp;gt;kadmin.local&amp;lt;/code&amp;gt;, try &amp;lt;code&amp;gt;listprincs&amp;lt;/code&amp;gt;, quit by typing &amp;lt;code&amp;gt;quit&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;krb5kdc&amp;lt;/code&amp;gt; &lt;br /&gt;
*: Checkpoint: &amp;lt;code&amp;gt;ps -ef | grep krb5kdc&amp;lt;/code&amp;gt; should show it running&lt;br /&gt;
&lt;br /&gt;
* Command to destroy kdb5_ldap_util: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -W -H ldapi:/// destroy&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Scratch Pad ==&lt;br /&gt;
&lt;br /&gt;
===Assume People have done===&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
&lt;br /&gt;
   16  make distclean&lt;br /&gt;
&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
&lt;br /&gt;
   19  make&lt;br /&gt;
&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
&lt;br /&gt;
    8  mkdir /tmp/krb5kdc (or should it be /tmp/sandbox/krb5kdc)?&lt;br /&gt;
&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
&lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
&lt;br /&gt;
   29  krb5kdc -n&lt;br /&gt;
&lt;br /&gt;
== Errors ==&lt;br /&gt;
* sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
*: ERROR: ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)&lt;br /&gt;
*: SOLUTION: Make sure that you have slapd started, and make sure that the -H ldapi:/// is consistent.&lt;br /&gt;
*: sudo /usr/sbin/slapd -H ldap:/// -g openldap -u openldap -F /etc/ldap/slapd.d/&lt;br /&gt;
*: openldap  5716     1  0 11:55 ?        00:00:00 /usr/sbin/slapd -h ldap:/// ldapi:/// -g openldap -u openldap -F /etc/ldap/slapd.d/&lt;br /&gt;
&lt;br /&gt;
** sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldap:///&lt;br /&gt;
**:Output: adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openldap 11434     1  0 12:06 ?        00:00:00 /usr/sbin/slapd -h ldap:/// -g openldap -u openldap -F /etc/ldap/slapd.d/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -h ldap:///&lt;br /&gt;
*: ERROR: Could not create LDAP session handle for URI=ldap://ldap:%2F%2F%2F (-9): Bad parameter to an ldap routine&lt;br /&gt;
*: SOLUTION: Change &amp;quot;-h&amp;quot; to &amp;quot;-H&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
haoqili@reach-my-dream:~/trunk/src$ ps -ef | grep sla&lt;br /&gt;
haoqili  12228  4371  0 12:26 pts/0    00:00:00 grep sla&lt;br /&gt;
haoqili@reach-my-dream:~/trunk/src$ sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldap:///&lt;br /&gt;
ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)&lt;br /&gt;
haoqili@reach-my-dream:~/trunk/src$ sudo /usr/sbin/slapd -h ldap:/// ldapi:/// -g openldap -u openldap -F /etc/ldap/slapd.d/ &lt;br /&gt;
haoqili@reach-my-dream:~/trunk/src$ sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldap:///&lt;br /&gt;
adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;&lt;br /&gt;
ldap_add: Other (e.g., implementation specific) error (80)&lt;br /&gt;
	additional info: olcAttributeTypes: Duplicate attributeType: &amp;quot;2.16.840.1.113719.1.301.4.1.1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* DbDriver is locked&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo debconf-set-selections /tmp/debconfile &lt;br /&gt;
[sudo] password for haoqili: &lt;br /&gt;
debconf: DbDriver &amp;quot;config&amp;quot;: /var/cache/debconf/config.dat is locked by another process: Resource temporarily unavailable&lt;br /&gt;
&lt;br /&gt;
OR &lt;br /&gt;
&lt;br /&gt;
sudo dpkg-reconfigure --frontend=noninteractive&lt;br /&gt;
[sudo] password for haoqili: &lt;br /&gt;
debconf: DbDriver &amp;quot;config&amp;quot;: /var/cache/debconf/config.dat is locked by another process: Resource temporarily unavailable&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*: SOLUTION: This will tell what is locking it: &amp;lt;code&amp;gt;fuser -v /var/cache/debconf/config.dat&amp;lt;/code&amp;gt;.  [ http://spiralinks.blogspot.com/2009/07/debian-apt-get-interrupted-leaves-files.html From here.]&lt;/div&gt;</summary>
		<author><name>Haoqili</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2174</id>
		<title>LDAP on Kerberos</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2174"/>
				<updated>2009-08-24T13:58:43Z</updated>
		
		<summary type="html">&lt;p&gt;Haoqili: /* Errors */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==About==&lt;br /&gt;
A guide to set up ldap backend for kerberos.&lt;br /&gt;
&lt;br /&gt;
== To Do ==&lt;br /&gt;
* Slapd in sandbox, not /etc&lt;br /&gt;
* Simpler Domain names D.COM, R.COM&lt;br /&gt;
* Different domain names&lt;br /&gt;
* Figure out required schemas&lt;br /&gt;
* Figure out: In Kerb Schema Operations, I can do &amp;quot;or update slapd.conf with kerb schema or ldif&amp;quot; in some ubuntu&lt;br /&gt;
* Play around to get minimum set of requirement&lt;br /&gt;
&lt;br /&gt;
* update tree too, got a fix&lt;br /&gt;
&lt;br /&gt;
== 0. Sample code to follow ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
    8  mkdir krb5kdc&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
   16  make distclean&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
   19  make&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
   29  krb5kdc -n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 1. Information about the system ==&lt;br /&gt;
- packages&lt;br /&gt;
* Version of ubuntu&lt;br /&gt;
       lsb_release -a&lt;br /&gt;
       No LSB modules are available.&lt;br /&gt;
       Distributor ID:        Ubuntu&lt;br /&gt;
       Description:        Ubuntu 9.04&lt;br /&gt;
       Release:        9.04&lt;br /&gt;
       Codename:        jaunty&lt;br /&gt;
* Version of slapd: 2.4.15 (Mar 19 2009)&lt;br /&gt;
       slapd -V&lt;br /&gt;
       @(#) $OpenLDAP: slapd 2.4.15 (Mar 19 2009 10:08:25) $&lt;br /&gt;
       buildd@palmer:/build/buildd/openldap-2.4.15/debian/build/servers/slapd&lt;br /&gt;
&lt;br /&gt;
* Version of ldap-utils: 2.4.15&lt;br /&gt;
       dpkg -l ldap-utils&lt;br /&gt;
&lt;br /&gt;
== 2. Extract krb conf files ==&lt;br /&gt;
* It is crucial to have correct, consistent domain names.  You must have the dbmodules in krb5.conf.&lt;br /&gt;
* Save [[krb5.conf]]&lt;br /&gt;
* Save [[kdc.conf]]&lt;br /&gt;
* Save [[kadm5.acl]]&lt;br /&gt;
&lt;br /&gt;
== 3. Env and Setup==&lt;br /&gt;
You need to export these lines into your env. Based on where you saved these files.&lt;br /&gt;
&lt;br /&gt;
*export KRB5_CONFIG=/tmp/sandbox/krb5.conf&lt;br /&gt;
&lt;br /&gt;
*export KRB5_KDC_PROFILE=/tmp/sandbox/kdc.conf&lt;br /&gt;
&lt;br /&gt;
* make a krb5kdc folder: mkdir /tmp/sandbox/krb5kdc)&lt;br /&gt;
&lt;br /&gt;
Whatever you do, be consistent&lt;br /&gt;
&lt;br /&gt;
== 4. Build kerb. config ==&lt;br /&gt;
&lt;br /&gt;
# Install Packages:&lt;br /&gt;
#* &amp;lt;code&amp;gt; sudo apt-get install slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
#* for ldapsearch: &amp;lt;code&amp;gt;sudo apt-get install ldap-utils&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo apt-get install libldap2-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
# Set the &amp;quot;domain&amp;quot; of your LDAP server with &amp;lt;code&amp;gt;sudo dpkg-reconfigure slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
##: Indented are the debconf-get-selections lines&lt;br /&gt;
## Omit OpenLDAP server configuration: No&lt;br /&gt;
##: slapd   slapd/no_configuration  boolean false&lt;br /&gt;
## DNS domain name: example.org&lt;br /&gt;
##: slapd   slapd/domain    string  example.org&lt;br /&gt;
## Organization name: example.org [note: i used the same name for simplicity]&lt;br /&gt;
##: slapd   shared/organization     string  example.org&lt;br /&gt;
## Databases backend to use: HDB, instead of BDB&lt;br /&gt;
##: slapd   slapd/backend   select  HDB&lt;br /&gt;
## Do you want the database to be removed when slapd is purge: Yes&lt;br /&gt;
##: slapd   slapd/purge_database    boolean true&lt;br /&gt;
## Move old database: Yes&lt;br /&gt;
##: slapd   slapd/move_old_database boolean true&lt;br /&gt;
## Admin password: [your pwd]&lt;br /&gt;
##: slapd   slapd/password1 password&lt;br /&gt;
##: [I'm not sure about the debconf-get-selection line here.  There are 5 different password lines!]&lt;br /&gt;
## Confirm password: [your pwd]&lt;br /&gt;
##: slapd   slapd/password2 password&lt;br /&gt;
## Allow LDAPv2 protocol: No&lt;br /&gt;
##: slapd   slapd/allow_ldap_v2     boolean false&lt;br /&gt;
#: Checkpoint:  If you are successful, you should see as output:&lt;br /&gt;
#:: ''Stopping OpenLDAP: slapd.''&lt;br /&gt;
#::  ''Moving old database directory to /var/backups:''&lt;br /&gt;
#::  ''- directory unknown... done.''&lt;br /&gt;
#::  ''Creating initial slapd configuration... done.''&lt;br /&gt;
#::  ''Creating initial LDAP directory... done.''&lt;br /&gt;
#:: ''* Reloading AppArmor profiles ''&lt;br /&gt;
#::  ''...                                               [ OK ]'' &lt;br /&gt;
#::  ''Starting OpenLDAP: slapd.''&lt;br /&gt;
# If you haven't done so already, please copy kerberos.schema from your kerberos trunk into /etc/ldap/schema: &amp;lt;code&amp;gt;sudo cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
# To restrict access to the local machine, &amp;lt;code&amp;gt;sudo vim /etc/default/slapd&amp;lt;/code&amp;gt;, search for SLAPD_SERVICES and set it to: &amp;lt;pre&amp;gt;SLAPD_SERVICES=&amp;quot;ldapi:///&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Reconfigure your kerberos&lt;br /&gt;
#* Navigate to kerberos src&lt;br /&gt;
#* &amp;lt;code&amp;gt;make distclean&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;util/reconf&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;./configure --with-ldap&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo make install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 5. Kerb Schema Operations ==&lt;br /&gt;
Loosely followed [http://ajuda.ubuntu.cat/9.04/serverguide/kerberos-ldap.html Ubuntu Guide] and [http://web.mit.edu/kerberos/krb5-1.7/krb5-1.7/doc/krb5-admin.html#Configuring-Kerberos-with-OpenLDAP-back_002dend Kerberos V5 System Admin Guide]&lt;br /&gt;
&lt;br /&gt;
# You have not done so already, locate the kerberos.schema.  [[kerberos.schema]] which should be in /etc/ldap/schema/kerberos.schema.  If it is not there, please copy it there from your kerberos trunk: &amp;lt;code&amp;gt;cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Checkpoint: Make sure there is a list of different schemas in /etc/ldap/schema.  Such as&lt;br /&gt;
#:* core.schema&lt;br /&gt;
#:* inetorgperson.schema&lt;br /&gt;
#:* kerberos.schema&lt;br /&gt;
#:* misc.schema&lt;br /&gt;
#:* openldap.schema&lt;br /&gt;
# Make this [[schema_convert.conf]] at /tmp/schema_convert.conf.  Note! This is different from the schema_convert.conf in the Ubuntu Guide.&lt;br /&gt;
# Make the directory to hold output: &amp;lt;code&amp;gt;mkdir /tmp/ldif_output &amp;lt;/code&amp;gt;&lt;br /&gt;
# Convert schema --&amp;gt; LDIF with slaptest: &amp;lt;code&amp;gt;slaptest -f tmp/schema_convert.conf -F /tmp/ldif_output&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: &amp;quot;config file testing succeeded&amp;quot;&lt;br /&gt;
#: Checkpoint: If you &amp;lt;code&amp;gt;sudo ls /tmp/ldif_output/cn\=config/cn\=schema&amp;lt;/code&amp;gt;, you should see:&lt;br /&gt;
#:: cn={0}core.ldif       &lt;br /&gt;
#:: cn={1}corba.ldif          &lt;br /&gt;
#:: cn={2}cosine.ldif   &lt;br /&gt;
#:: cn={3}duaconf.ldif  &lt;br /&gt;
#:: cn={4}inetorgperson.ldif&lt;br /&gt;
#:: cn={5}java.ldif	&lt;br /&gt;
#:: cn={6}kerberos.ldif&lt;br /&gt;
#:: cn={7}misc.ldif&lt;br /&gt;
#:: cn={8}openldap.ldif&lt;br /&gt;
#:: cn={9}nis.ldif&lt;br /&gt;
# Need to modify kerberos.ldif. &lt;br /&gt;
#* Find which number kerberos.ldif is listed as: &amp;lt;code&amp;gt;sudo ls /tmp/ldif_output/cn\=config/cn\=schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Edit it: &amp;lt;code&amp;gt; sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn={6}kerberos.ldif&amp;lt;/code&amp;gt;&lt;br /&gt;
#** change ''dn: cn={6}kerberos'' into ''dn: cn=kerberos,cn=schema,cn=config''&lt;br /&gt;
#** change ''cn: {6}kerberos'' into ''cn: kerberos''&lt;br /&gt;
#** Delete the bottom lines: from ''structuralObjectClasses: olcSchemaConfig'' to ''modifyTimestamp: 20090811205313Z''&lt;br /&gt;
# load new schema: &amp;lt;code&amp;gt;sudo ldapadd -x -D cn=admin,cn=config -W -f /tmp/ldif_output/cn\=config/cn\=schema/cn\={6}kerberos.ldif -H ldapi:///&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: ''adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
== 6. Starting ==&lt;br /&gt;
* Create your database with kdb5_ldap_util instead of kdb5_util:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -W -H ldapi:/// create  -s&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Initializing database for realm 'EXAMPLE.ORG'&lt;br /&gt;
You will be prompted for the database Master Password.&lt;br /&gt;
It is important that you NOT FORGET this password.&lt;br /&gt;
Enter KDC database master key: &lt;br /&gt;
Re-enter KDC database master key to verify: &lt;br /&gt;
&lt;br /&gt;
Kerberos container is missing. Creating now...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Stash the password:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -W -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&amp;lt;/code&amp;gt;&lt;br /&gt;
*: Checkpoint: If it works, you can do:&lt;br /&gt;
*:* &amp;lt;code&amp;gt;kadmin.local&amp;lt;/code&amp;gt;, try &amp;lt;code&amp;gt;listprincs&amp;lt;/code&amp;gt;, quit by typing &amp;lt;code&amp;gt;quit&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;krb5kdc&amp;lt;/code&amp;gt; &lt;br /&gt;
*: Checkpoint: &amp;lt;code&amp;gt;ps -ef | grep krb5kdc&amp;lt;/code&amp;gt; should show it running&lt;br /&gt;
&lt;br /&gt;
* Command to destroy kdb5_ldap_util: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -W -H ldapi:/// destroy&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Scratch Pad ==&lt;br /&gt;
&lt;br /&gt;
===Assume People have done===&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
&lt;br /&gt;
   16  make distclean&lt;br /&gt;
&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
&lt;br /&gt;
   19  make&lt;br /&gt;
&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
&lt;br /&gt;
    8  mkdir /tmp/krb5kdc (or should it be /tmp/sandbox/krb5kdc)?&lt;br /&gt;
&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
&lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
&lt;br /&gt;
   29  krb5kdc -n&lt;br /&gt;
&lt;br /&gt;
== Errors ==&lt;br /&gt;
* sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
*: ERROR: ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)&lt;br /&gt;
*: SOLUTION: Make sure that you have slapd started, and make sure that the -H ldapi:/// is consistent.&lt;br /&gt;
*: sudo /usr/sbin/slapd -H ldap:/// -g openldap -u openldap -F /etc/ldap/slapd.d/&lt;br /&gt;
*: openldap  5716     1  0 11:55 ?        00:00:00 /usr/sbin/slapd -h ldap:/// ldapi:/// -g openldap -u openldap -F /etc/ldap/slapd.d/&lt;br /&gt;
&lt;br /&gt;
** sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldap:///&lt;br /&gt;
**:Output: adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openldap 11434     1  0 12:06 ?        00:00:00 /usr/sbin/slapd -h ldap:/// -g openldap -u openldap -F /etc/ldap/slapd.d/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -h ldap:///&lt;br /&gt;
*: ERROR: Could not create LDAP session handle for URI=ldap://ldap:%2F%2F%2F (-9): Bad parameter to an ldap routine&lt;br /&gt;
*: SOLUTION: Change &amp;quot;-h&amp;quot; to &amp;quot;-H&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
haoqili@reach-my-dream:~/trunk/src$ ps -ef | grep sla&lt;br /&gt;
haoqili  12228  4371  0 12:26 pts/0    00:00:00 grep sla&lt;br /&gt;
haoqili@reach-my-dream:~/trunk/src$ sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldap:///&lt;br /&gt;
ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)&lt;br /&gt;
haoqili@reach-my-dream:~/trunk/src$ sudo /usr/sbin/slapd -h ldap:/// ldapi:/// -g openldap -u openldap -F /etc/ldap/slapd.d/ &lt;br /&gt;
haoqili@reach-my-dream:~/trunk/src$ sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldap:///&lt;br /&gt;
adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;&lt;br /&gt;
ldap_add: Other (e.g., implementation specific) error (80)&lt;br /&gt;
	additional info: olcAttributeTypes: Duplicate attributeType: &amp;quot;2.16.840.1.113719.1.301.4.1.1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* DbDriver is locked&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo debconf-set-selections /tmp/debconfile &lt;br /&gt;
[sudo] password for haoqili: &lt;br /&gt;
debconf: DbDriver &amp;quot;config&amp;quot;: /var/cache/debconf/config.dat is locked by another process: Resource temporarily unavailable&lt;br /&gt;
&lt;br /&gt;
OR &lt;br /&gt;
&lt;br /&gt;
sudo dpkg-reconfigure --frontend=noninteractive&lt;br /&gt;
[sudo] password for haoqili: &lt;br /&gt;
debconf: DbDriver &amp;quot;config&amp;quot;: /var/cache/debconf/config.dat is locked by another process: Resource temporarily unavailable&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Haoqili</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2165</id>
		<title>LDAP on Kerberos</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2165"/>
				<updated>2009-08-21T21:01:46Z</updated>
		
		<summary type="html">&lt;p&gt;Haoqili: /* 4. Build kerb. config */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==About==&lt;br /&gt;
A guide to set up ldap backend for kerberos.&lt;br /&gt;
&lt;br /&gt;
== To Do ==&lt;br /&gt;
* Slapd in sandbox, not /etc&lt;br /&gt;
* Simpler Domain names D.COM, R.COM&lt;br /&gt;
* Different domain names&lt;br /&gt;
* Figure out required schemas&lt;br /&gt;
* Figure out: In Kerb Schema Operations, I can do &amp;quot;or update slapd.conf with kerb schema or ldif&amp;quot; in some ubuntu&lt;br /&gt;
* Play around to get minimum set of requirement&lt;br /&gt;
&lt;br /&gt;
* update tree too, got a fix&lt;br /&gt;
&lt;br /&gt;
== 0. Sample code to follow ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
    8  mkdir krb5kdc&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
   16  make distclean&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
   19  make&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
   29  krb5kdc -n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 1. Information about the system ==&lt;br /&gt;
- packages&lt;br /&gt;
* Version of ubuntu&lt;br /&gt;
       lsb_release -a&lt;br /&gt;
       No LSB modules are available.&lt;br /&gt;
       Distributor ID:        Ubuntu&lt;br /&gt;
       Description:        Ubuntu 9.04&lt;br /&gt;
       Release:        9.04&lt;br /&gt;
       Codename:        jaunty&lt;br /&gt;
* Version of slapd: 2.4.15 (Mar 19 2009)&lt;br /&gt;
       slapd -V&lt;br /&gt;
       @(#) $OpenLDAP: slapd 2.4.15 (Mar 19 2009 10:08:25) $&lt;br /&gt;
       buildd@palmer:/build/buildd/openldap-2.4.15/debian/build/servers/slapd&lt;br /&gt;
&lt;br /&gt;
* Version of ldap-utils: 2.4.15&lt;br /&gt;
       dpkg -l ldap-utils&lt;br /&gt;
&lt;br /&gt;
== 2. Extract krb conf files ==&lt;br /&gt;
* It is crucial to have correct, consistent domain names.  You must have the dbmodules in krb5.conf.&lt;br /&gt;
* Save [[krb5.conf]]&lt;br /&gt;
* Save [[kdc.conf]]&lt;br /&gt;
* Save [[kadm5.acl]]&lt;br /&gt;
&lt;br /&gt;
== 3. Env and Setup==&lt;br /&gt;
You need to export these lines into your env. Based on where you saved these files.&lt;br /&gt;
&lt;br /&gt;
*export KRB5_CONFIG=/tmp/sandbox/krb5.conf&lt;br /&gt;
&lt;br /&gt;
*export KRB5_KDC_PROFILE=/tmp/sandbox/kdc.conf&lt;br /&gt;
&lt;br /&gt;
* make a krb5kdc folder: mkdir /tmp/sandbox/krb5kdc)&lt;br /&gt;
&lt;br /&gt;
Whatever you do, be consistent&lt;br /&gt;
&lt;br /&gt;
== 4. Build kerb. config ==&lt;br /&gt;
&lt;br /&gt;
# Install Packages:&lt;br /&gt;
#* &amp;lt;code&amp;gt; sudo apt-get install slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
#* for ldapsearch: &amp;lt;code&amp;gt;sudo apt-get install ldap-utils&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo apt-get install libldap2-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
# Set the &amp;quot;domain&amp;quot; of your LDAP server with &amp;lt;code&amp;gt;sudo dpkg-reconfigure slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
##: Indented are the debconf-get-selections lines&lt;br /&gt;
## Omit OpenLDAP server configuration: No&lt;br /&gt;
##: slapd   slapd/no_configuration  boolean false&lt;br /&gt;
## DNS domain name: example.org&lt;br /&gt;
##: slapd   slapd/domain    string  example.org&lt;br /&gt;
## Organization name: example.org [note: i used the same name for simplicity]&lt;br /&gt;
##: slapd   shared/organization     string  example.org&lt;br /&gt;
## Databases backend to use: HDB, instead of BDB&lt;br /&gt;
##: slapd   slapd/backend   select  HDB&lt;br /&gt;
## Do you want the database to be removed when slapd is purge: Yes&lt;br /&gt;
##: slapd   slapd/purge_database    boolean true&lt;br /&gt;
## Move old database: Yes&lt;br /&gt;
##: slapd   slapd/move_old_database boolean true&lt;br /&gt;
## Admin password: [your pwd]&lt;br /&gt;
##: slapd   slapd/password1 password&lt;br /&gt;
##: [I'm not sure about the debconf-get-selection line here.  There are 5 different password lines!]&lt;br /&gt;
## Confirm password: [your pwd]&lt;br /&gt;
##: slapd   slapd/password2 password&lt;br /&gt;
## Allow LDAPv2 protocol: No&lt;br /&gt;
##: slapd   slapd/allow_ldap_v2     boolean false&lt;br /&gt;
#: Checkpoint:  If you are successful, you should see as output:&lt;br /&gt;
#:: ''Stopping OpenLDAP: slapd.''&lt;br /&gt;
#::  ''Moving old database directory to /var/backups:''&lt;br /&gt;
#::  ''- directory unknown... done.''&lt;br /&gt;
#::  ''Creating initial slapd configuration... done.''&lt;br /&gt;
#::  ''Creating initial LDAP directory... done.''&lt;br /&gt;
#:: ''* Reloading AppArmor profiles ''&lt;br /&gt;
#::  ''...                                               [ OK ]'' &lt;br /&gt;
#::  ''Starting OpenLDAP: slapd.''&lt;br /&gt;
# If you haven't done so already, please copy kerberos.schema from your kerberos trunk into /etc/ldap/schema: &amp;lt;code&amp;gt;sudo cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
# To restrict access to the local machine, &amp;lt;code&amp;gt;sudo vim /etc/default/slapd&amp;lt;/code&amp;gt;, search for SLAPD_SERVICES and set it to: &amp;lt;pre&amp;gt;SLAPD_SERVICES=&amp;quot;ldapi:///&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Reconfigure your kerberos&lt;br /&gt;
#* Navigate to kerberos src&lt;br /&gt;
#* &amp;lt;code&amp;gt;make distclean&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;util/reconf&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;./configure --with-ldap&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo make install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 5. Kerb Schema Operations ==&lt;br /&gt;
Loosely followed [http://ajuda.ubuntu.cat/9.04/serverguide/kerberos-ldap.html Ubuntu Guide] and [http://web.mit.edu/kerberos/krb5-1.7/krb5-1.7/doc/krb5-admin.html#Configuring-Kerberos-with-OpenLDAP-back_002dend Kerberos V5 System Admin Guide]&lt;br /&gt;
&lt;br /&gt;
# You have not done so already, locate the kerberos.schema.  [[kerberos.schema]] which should be in /etc/ldap/schema/kerberos.schema.  If it is not there, please copy it there from your kerberos trunk: &amp;lt;code&amp;gt;cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Checkpoint: Make sure there is a list of different schemas in /etc/ldap/schema.  Such as&lt;br /&gt;
#:* core.schema&lt;br /&gt;
#:* inetorgperson.schema&lt;br /&gt;
#:* kerberos.schema&lt;br /&gt;
#:* misc.schema&lt;br /&gt;
#:* openldap.schema&lt;br /&gt;
# Make this [[schema_convert.conf]] at /tmp/schema_convert.conf.  Note! This is different from the schema_convert.conf in the Ubuntu Guide.&lt;br /&gt;
# Make the directory to hold output: &amp;lt;code&amp;gt;mkdir /tmp/ldif_output &amp;lt;/code&amp;gt;&lt;br /&gt;
# Convert schema --&amp;gt; LDIF with slaptest: &amp;lt;code&amp;gt;slaptest -f tmp/schema_convert.conf -F /tmp/ldif_output&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: &amp;quot;config file testing succeeded&amp;quot;&lt;br /&gt;
#: Checkpoint: If you &amp;lt;code&amp;gt;sudo ls /tmp/ldif_output/cn\=config/cn\=schema&amp;lt;/code&amp;gt;, you should see:&lt;br /&gt;
#:: cn={0}core.ldif       &lt;br /&gt;
#:: cn={1}corba.ldif          &lt;br /&gt;
#:: cn={2}cosine.ldif   &lt;br /&gt;
#:: cn={3}duaconf.ldif  &lt;br /&gt;
#:: cn={4}inetorgperson.ldif&lt;br /&gt;
#:: cn={5}java.ldif	&lt;br /&gt;
#:: cn={6}kerberos.ldif&lt;br /&gt;
#:: cn={7}misc.ldif&lt;br /&gt;
#:: cn={8}openldap.ldif&lt;br /&gt;
#:: cn={9}nis.ldif&lt;br /&gt;
# Need to modify kerberos.ldif. &lt;br /&gt;
#* Find which number kerberos.ldif is listed as: &amp;lt;code&amp;gt;sudo ls /tmp/ldif_output/cn\=config/cn\=schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Edit it: &amp;lt;code&amp;gt; sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn={6}kerberos.ldif&amp;lt;/code&amp;gt;&lt;br /&gt;
#** change ''dn: cn={6}kerberos'' into ''dn: cn=kerberos,cn=schema,cn=config''&lt;br /&gt;
#** change ''cn: {6}kerberos'' into ''cn: kerberos''&lt;br /&gt;
#** Delete the bottom lines: from ''structuralObjectClasses: olcSchemaConfig'' to ''modifyTimestamp: 20090811205313Z''&lt;br /&gt;
# load new schema: &amp;lt;code&amp;gt;sudo ldapadd -x -D cn=admin,cn=config -W -f /tmp/ldif_output/cn\=config/cn\=schema/cn\={6}kerberos.ldif -H ldapi:///&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: ''adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
== 6. Starting ==&lt;br /&gt;
* Create your database with kdb5_ldap_util instead of kdb5_util:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -W -H ldapi:/// create  -s&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Initializing database for realm 'EXAMPLE.ORG'&lt;br /&gt;
You will be prompted for the database Master Password.&lt;br /&gt;
It is important that you NOT FORGET this password.&lt;br /&gt;
Enter KDC database master key: &lt;br /&gt;
Re-enter KDC database master key to verify: &lt;br /&gt;
&lt;br /&gt;
Kerberos container is missing. Creating now...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Stash the password:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -W -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&amp;lt;/code&amp;gt;&lt;br /&gt;
*: Checkpoint: If it works, you can do:&lt;br /&gt;
*:* &amp;lt;code&amp;gt;kadmin.local&amp;lt;/code&amp;gt;, try &amp;lt;code&amp;gt;listprincs&amp;lt;/code&amp;gt;, quit by typing &amp;lt;code&amp;gt;quit&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;krb5kdc&amp;lt;/code&amp;gt; &lt;br /&gt;
*: Checkpoint: &amp;lt;code&amp;gt;ps -ef | grep krb5kdc&amp;lt;/code&amp;gt; should show it running&lt;br /&gt;
&lt;br /&gt;
* Command to destroy kdb5_ldap_util: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -W -H ldapi:/// destroy&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Scratch Pad ==&lt;br /&gt;
&lt;br /&gt;
===Assume People have done===&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
&lt;br /&gt;
   16  make distclean&lt;br /&gt;
&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
&lt;br /&gt;
   19  make&lt;br /&gt;
&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
&lt;br /&gt;
    8  mkdir /tmp/krb5kdc (or should it be /tmp/sandbox/krb5kdc)?&lt;br /&gt;
&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
&lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
&lt;br /&gt;
   29  krb5kdc -n&lt;br /&gt;
&lt;br /&gt;
== Errors ==&lt;br /&gt;
* sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
*: ERROR: ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)&lt;br /&gt;
*: SOLUTION: Make sure that you have slapd started, and make sure that the -H ldapi:/// is consistent.&lt;br /&gt;
*: sudo /usr/sbin/slapd -H ldap:/// -g openldap -u openldap -F /etc/ldap/slapd.d/&lt;br /&gt;
*: openldap  5716     1  0 11:55 ?        00:00:00 /usr/sbin/slapd -h ldap:/// ldapi:/// -g openldap -u openldap -F /etc/ldap/slapd.d/&lt;br /&gt;
&lt;br /&gt;
** sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldap:///&lt;br /&gt;
**:Output: adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openldap 11434     1  0 12:06 ?        00:00:00 /usr/sbin/slapd -h ldap:/// -g openldap -u openldap -F /etc/ldap/slapd.d/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -h ldap:///&lt;br /&gt;
*: ERROR: Could not create LDAP session handle for URI=ldap://ldap:%2F%2F%2F (-9): Bad parameter to an ldap routine&lt;br /&gt;
*: SOLUTION: Change &amp;quot;-h&amp;quot; to &amp;quot;-H&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
haoqili@reach-my-dream:~/trunk/src$ ps -ef | grep sla&lt;br /&gt;
haoqili  12228  4371  0 12:26 pts/0    00:00:00 grep sla&lt;br /&gt;
haoqili@reach-my-dream:~/trunk/src$ sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldap:///&lt;br /&gt;
ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)&lt;br /&gt;
haoqili@reach-my-dream:~/trunk/src$ sudo /usr/sbin/slapd -h ldap:/// ldapi:/// -g openldap -u openldap -F /etc/ldap/slapd.d/ &lt;br /&gt;
haoqili@reach-my-dream:~/trunk/src$ sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldap:///&lt;br /&gt;
adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;&lt;br /&gt;
ldap_add: Other (e.g., implementation specific) error (80)&lt;br /&gt;
	additional info: olcAttributeTypes: Duplicate attributeType: &amp;quot;2.16.840.1.113719.1.301.4.1.1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Haoqili</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=User_talk:Haoqili&amp;diff=2164</id>
		<title>User talk:Haoqili</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=User_talk:Haoqili&amp;diff=2164"/>
				<updated>2009-08-21T19:22:30Z</updated>
		
		<summary type="html">&lt;p&gt;Haoqili: /* Figuring out stuff */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Thanks to Tom, Zhanna, Greg, and Will for helping me find the solutions.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;strong&amp;gt;我能, 我能!&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Things to do==&lt;br /&gt;
* figure out why:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
My password for ldap is &amp;quot;a&amp;quot; I have tried both upper and lower cases, but I always get:&lt;br /&gt;
&lt;br /&gt;
$ /usr/local/sbin/kdb5_ldap_util -D cn=admin,dc=example,dc=com -w a -H ldapi:/// create -r EXAMPLE.COM -sf /usr/local/var/krb5kdc/admin.stash -s&lt;br /&gt;
kdb5_ldap_util: Invalid credentials while initializing database&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ldapsearch -H ldapi:/// -x -W -D cn=admin,dc=example,dc=com -LLL =b dc=example,dc=com&lt;br /&gt;
Enter LDAP Password: &lt;br /&gt;
ldap_bind: Invalid credentials (49)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* make keystash in mkm py the right place&lt;br /&gt;
&lt;br /&gt;
==Kerberos Little Bugs I've encountered and fixed (started loggin since Jun 24th).==&lt;br /&gt;
&lt;br /&gt;
* When trying to ''kinit username''&lt;br /&gt;
: ERROR: ''kinit: Cannot contact any KDC for realm [your realm fqdn] while getting initial credentials''&lt;br /&gt;
: SOLUTION: make sure KDC is running. ''/usr/local/sbin/krb5kdc''&lt;br /&gt;
: SOLUTION: 1. check log file.  I looked in /var/log/auth.log.  The bottom of it says: ''Cannot create reply cache file /var/tmp/krb5kdc_rcache: File exits''.  2. ''sudo rm /var/tmp/krb5kdc_rcache.&lt;br /&gt;
&lt;br /&gt;
* Can't start krb5kdc and in auth.log it says:&lt;br /&gt;
: ERROR: ''Address already in use - Cannot bind server socket to port [#] address [IP address]''&lt;br /&gt;
: ERROR: ''&amp;lt;open file '&amp;lt;fdopen&amp;gt;', mode 'rb' at 0x9a38660&amp;gt;''&lt;br /&gt;
: SOLUTION: 1. see if it is true that port [#] is in use by ''netstat -nap | grep [#]'' (I also did ''pgrep -x krb5kdc'').  2. kill the process: ''pkill -x krb5kdc''.  note the &amp;quot;-x&amp;quot; is for matching exactly the process &amp;quot;krb5kdc&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* When changing password 'kpasswd', ''Cannot contact any KDC for realm [your realm fqdn]''&lt;br /&gt;
* and/or Can't start kadmind (know because echo $? = 1).  The last chunk of auth.log says:&lt;br /&gt;
: ERROR: &lt;br /&gt;
::&amp;lt;pre&amp;gt;&lt;br /&gt;
::kadmind[6924]: No dictionary file specified, continuing without one.&lt;br /&gt;
::kadmind[6924]: setting up network...&lt;br /&gt;
::kadmind[6924]: Permission denied - Cannot bind server socket to port 464 address 0.0.0.0&lt;br /&gt;
::kadmind[6924]: setsockopt(6,IPV6_V6ONLY,1) worked&lt;br /&gt;
::kadmind[6924]: Permission denied - Cannot bind server socket to port 464 address ::&lt;br /&gt;
::kadmind[6924]: skipping unrecognized local address family 17&lt;br /&gt;
::kadmind[6924]: skipping unrecognized local address family 17&lt;br /&gt;
::kadmind[6924]: Permission denied - Cannot bind server socket to port 464 address 192.168.165.145&lt;br /&gt;
::kadmind[6924]: setsockopt(6,IPV6_V6ONLY,1) worked&lt;br /&gt;
::kadmind[6924]: Permission denied - Cannot bind TCP server socket on ::.464&lt;br /&gt;
::kadmind[6924]: Permission denied - Cannot bind RPC server socket on 0.0.0.0.749&lt;br /&gt;
::kadmind[6924]: set up 0 sockets&lt;br /&gt;
::kadmind[6924]: no sockets set up?&lt;br /&gt;
::&amp;lt;/pre&amp;gt;&lt;br /&gt;
: Reason (provided by tlyu): It is trying to bind to a privileged port. you need to give it a different port number. actually, two different port numbers: one for password changing and one for normal kadmin.&lt;br /&gt;
: SOLUTION:&lt;br /&gt;
::&amp;lt;pre&amp;gt;&lt;br /&gt;
::In kdc.conf inserted the last two lines here&lt;br /&gt;
::&lt;br /&gt;
::kdc_ports = 8888&lt;br /&gt;
::kpasswd_port = 8887&lt;br /&gt;
::kadmind_port = 8886&lt;br /&gt;
::&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;pre&amp;gt;&lt;br /&gt;
::In krb5.conf modify/insert the lines:&lt;br /&gt;
::&lt;br /&gt;
::admin_server = yourComputerName.domain:8886&lt;br /&gt;
::kpasswd_server = yourComputerName.domain:8887&lt;br /&gt;
::&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Purge key (''kdb5_util purge_mkeys'') gives an error&lt;br /&gt;
: ERROR:&lt;br /&gt;
::&amp;lt;pre&amp;gt;&lt;br /&gt;
::kdb5_util: Invalid argument while updating actkvno data for master principal entry&lt;br /&gt;
::&amp;lt;/pre&amp;gt;&lt;br /&gt;
: SOLUTION:&lt;br /&gt;
::&amp;lt;pre&amp;gt;&lt;br /&gt;
:: #you must activate the keys that have not been &amp;quot;used&amp;quot; like this:&lt;br /&gt;
:: kdb5_util use_mkey kvno [time]&lt;br /&gt;
:: #i.e. kdb5_util use_mkey 2 'now+2days'&lt;br /&gt;
::&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* when running a kadmin command.  Runs into operation requires xx privilege error&lt;br /&gt;
: ERROR:&lt;br /&gt;
::&amp;lt;pre&amp;gt;&lt;br /&gt;
:: $ kadmin -p haoqili/admin -w test123 -q 'listprincs'&lt;br /&gt;
:: Authenticating as principal haoqili/admin with password.&lt;br /&gt;
:: get_principals: Operation requires ``list'' privilege while retrieving list.&lt;br /&gt;
::&amp;lt;/pre&amp;gt;&lt;br /&gt;
: SOLUTION:&lt;br /&gt;
: I didn't create my acl file yet.  In kdc.conf, I have specified ''acl_file = /home/haoqili/kdcfiles/kadm5.acl'' and now I need to create the kadm5.acl&lt;br /&gt;
::&amp;lt;pre&amp;gt;&lt;br /&gt;
:: #kadm5.acl, setting up my &amp;quot;admin&amp;quot; principal with all rights, i.e. *&lt;br /&gt;
:: haoqili/admin *&lt;br /&gt;
::&amp;lt;/pre&amp;gt;&lt;br /&gt;
: Also, before I created the kadm5.acl, I used ''echo $?'' to check the command.  However, it gave me a 0 even though there were stderr.  Tom says: &amp;quot;kadmin is meant to be an interactive program, so exit status might not be as meaningful.&amp;quot;&lt;br /&gt;
:: P.S. I later changed the line in my acl file to be ''*/admin *'' to allow others&lt;br /&gt;
&lt;br /&gt;
==Python Bugs I've encountered and fixed==&lt;br /&gt;
&lt;br /&gt;
* When talking to the terminal shell, a command (in my case, ''kdbt_util add_mkey'') asks for password twice (second time is confirmation).  I first tried:&lt;br /&gt;
::&amp;lt;pre&amp;gt;&lt;br /&gt;
::p = Popen(command.split(), stdin=PIPE, stdout=PIPE, stderr=PIPE)&lt;br /&gt;
::(out, err) = p.communicate('password')&lt;br /&gt;
::(out2, err2) = p.communicate('password')&lt;br /&gt;
::&amp;lt;/pre&amp;gt;&lt;br /&gt;
:When I ran it, I got a chunk of error that ends with: ''ValueError: I/O operation on closed file''.  So what happens is that communicate closes the pipe, it breaks (even if it only runs once).  &amp;lt;br&amp;gt;&lt;br /&gt;
:Solution code:&lt;br /&gt;
::&amp;lt;pre&amp;gt;&lt;br /&gt;
::p = Popen(command.split(), stdin=PIPE, stdout=PIPE, stderr=PIPE)&lt;br /&gt;
::p.stdin.write('password'+'\n')&lt;br /&gt;
::p.stdin.write('password'+'\n')&lt;br /&gt;
::&amp;lt;/pre&amp;gt;&lt;br /&gt;
:Note don't forget the new line at the end.&lt;br /&gt;
&lt;br /&gt;
==Tips.  Useful little things to know==&lt;br /&gt;
=== Kerberos ===&lt;br /&gt;
* [http://web.mit.edu/kerberos/krb5-1.7/krb5-1.7/doc/krb5-admin.html Good link]&lt;br /&gt;
* '' kadmin.local -q 'modprinc +needchange [princname]' '', the flag ''needchange'' forces the principal to change its password upon kinit.&lt;br /&gt;
* '' kadmin.local -q 'modprinc -policy [policyname] [princname]' '' Sets up a policy for the principal.  This &amp;quot;policy&amp;quot; can store previous passwords and ensures that new passwords are not used before.&lt;br /&gt;
* There is a bug in the code 6507    kdb5_util update_princ_encryption uses latest mkey instead of mkey &lt;br /&gt;
* AES has replaced Triple DES but there are still places taht have Triple DES set as the default (such as in ''klist -ekt [path of stash, such as /home/haoqili/kdcfiles/keyStashFile]'')&lt;br /&gt;
* Test date.  Navigate to src/kadmin/cli &lt;br /&gt;
** delete 2nd argument in main of getdate.y&lt;br /&gt;
** ''rm getdate.c''&lt;br /&gt;
** ''make getdate.c''&lt;br /&gt;
** ''gcc -o datetest -DTEST getdate.c -I../../include''&lt;br /&gt;
** ./datetest&lt;br /&gt;
&lt;br /&gt;
* ''kadmind -nofork'' is useful in python because it tells it to wait first so that later processes can happen later and don't have to get timed out.&lt;br /&gt;
::&amp;lt;pre&amp;gt;&lt;br /&gt;
::l0b = self.parentpath+'kadmind -nofork'&lt;br /&gt;
::pl0b = Popen(l0b.split(), stdin=PIPE, stdout=PIPE, stderr=PIPE)&lt;br /&gt;
::        print &amp;quot;kadmind -nofork&amp;quot;&lt;br /&gt;
::        while (True):&lt;br /&gt;
::            l = pl0b.stderr.readline()&lt;br /&gt;
::            if l.find(&amp;quot;starting&amp;quot;) &amp;gt; -1: #for kadmind: starting ...&lt;br /&gt;
::                print l.strip()          &lt;br /&gt;
::                break &lt;br /&gt;
::&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu ===&lt;br /&gt;
* Change computer name: &amp;lt;code&amp;gt;gksudo gedit /etc/hostname&amp;lt;/code&amp;gt;&lt;br /&gt;
* Change Colors&lt;br /&gt;
** Change color of background is easy.  Just go to &amp;quot;Edit&amp;quot; and &amp;quot;Profile Preferences&amp;quot;&lt;br /&gt;
** Change color of the prompt line is more difficult.  [http://ubuntuforums.org/showthread.php?t=614743 Here is a good guide], but it is in a lot more detail than I needed.  You can read that if you don't want the prompt color to be green or want to know how it works. But most basically:&lt;br /&gt;
**# Navigate to home. &amp;lt;code&amp;gt;cd ~/&amp;lt;/code&amp;gt;&lt;br /&gt;
**# &amp;lt;code&amp;gt;vim .bashrc&amp;lt;/code&amp;gt;&lt;br /&gt;
**# Un-comment: &amp;lt;code&amp;gt;#force_color_prompt=yes&amp;lt;/code&amp;gt; by deleting the #&lt;br /&gt;
**# Open a new terminal to see the result&lt;br /&gt;
** I have:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# uncomment for a colored prompt, if the terminal has the capability; turned&lt;br /&gt;
# off by default to not distract the user: the focus in a terminal window&lt;br /&gt;
# should be on the output of commands, not on the prompt&lt;br /&gt;
force_color_prompt=yes&lt;br /&gt;
&lt;br /&gt;
if [ -n &amp;quot;$force_color_prompt&amp;quot; ]; then&lt;br /&gt;
    if [ -x /usr/bin/tput ] &amp;amp;&amp;amp; tput setaf 1 &amp;gt;&amp;amp;/dev/null; then&lt;br /&gt;
        # We have color support; assume it's compliant with Ecma-48&lt;br /&gt;
        # (ISO/IEC-6429). (Lack of such support is extremely rare, and such&lt;br /&gt;
        # a case would tend to support setf rather than setaf.)&lt;br /&gt;
        color_prompt=yes&lt;br /&gt;
    else&lt;br /&gt;
        color_prompt=&lt;br /&gt;
    fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# ANSI color codes&lt;br /&gt;
RS=&amp;quot;\[\033[0m\]&amp;quot;    # reset&lt;br /&gt;
HC=&amp;quot;\[\033[1m\]&amp;quot;    # hicolor&lt;br /&gt;
UL=&amp;quot;\[\033[4m\]&amp;quot;    # underline&lt;br /&gt;
INV=&amp;quot;\[\033[7m\]&amp;quot;   # inverse background and foreground&lt;br /&gt;
FBLK=&amp;quot;\[\033[30m\]&amp;quot; # foreground black&lt;br /&gt;
FRED=&amp;quot;\[\033[31m\]&amp;quot; # foreground red&lt;br /&gt;
FGRN=&amp;quot;\[\033[32m\]&amp;quot; # foreground green&lt;br /&gt;
FYEL=&amp;quot;\[\033[33m\]&amp;quot; # foreground yellow&lt;br /&gt;
FBLE=&amp;quot;\[\033[34m\]&amp;quot; # foreground blue&lt;br /&gt;
FMAG=&amp;quot;\[\033[35m\]&amp;quot; # foreground magenta&lt;br /&gt;
FCYN=&amp;quot;\[\033[36m\]&amp;quot; # foreground cyan&lt;br /&gt;
FWHT=&amp;quot;\[\033[37m\]&amp;quot; # foreground white&lt;br /&gt;
BBLK=&amp;quot;\[\033[40m\]&amp;quot; # background black&lt;br /&gt;
BRED=&amp;quot;\[\033[41m\]&amp;quot; # background red&lt;br /&gt;
BGRN=&amp;quot;\[\033[42m\]&amp;quot; # background green&lt;br /&gt;
BYEL=&amp;quot;\[\033[43m\]&amp;quot; # background yellow&lt;br /&gt;
BBLE=&amp;quot;\[\033[44m\]&amp;quot; # background blue&lt;br /&gt;
BMAG=&amp;quot;\[\033[45m\]&amp;quot; # background magenta&lt;br /&gt;
BCYN=&amp;quot;\[\033[46m\]&amp;quot; # background cyan&lt;br /&gt;
BWHT=&amp;quot;\[\033[47m\]&amp;quot; # background white&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$color_prompt&amp;quot; = yes ]; then&lt;br /&gt;
    # PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '&lt;br /&gt;
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u@\h\[\033[00m\]:\[\033[01;32m\]\w\[\033[00m\]\$ '&lt;br /&gt;
&lt;br /&gt;
    #PS1=&amp;quot;[ ${debian_chroot:+($debian_chroot)}\u: \w ]\\$ &amp;quot;&lt;br /&gt;
    #PS2=&amp;quot;&amp;gt; &amp;quot;&lt;br /&gt;
    #PS1=&amp;quot; $FRED${debian_chroot:+($debian_chroot)}&amp;quot;&lt;br /&gt;
    #PS2=&amp;quot;&amp;gt; &amp;quot;&lt;br /&gt;
else&lt;br /&gt;
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '&lt;br /&gt;
fi&lt;br /&gt;
unset color_prompt force_color_prompt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Change root password:&lt;br /&gt;
** Reboot&lt;br /&gt;
** ESC to Recovery Mode&lt;br /&gt;
** (wait)&lt;br /&gt;
** click: root Drop to root shell prompt&lt;br /&gt;
** &amp;lt;code&amp;gt;ls /home&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;passwd ''username''&amp;lt;/code&amp;gt;&lt;br /&gt;
** change your password&lt;br /&gt;
** &amp;lt;code&amp;gt;exit&amp;lt;/code&amp;gt;&lt;br /&gt;
** click: resume&lt;br /&gt;
* The Caps Lock light is reversed.  &lt;br /&gt;
: Reset Caps  Lock: &amp;lt;code&amp;gt;xmodmap -e &amp;quot;remove Lock = Caps_Lock&amp;quot;&amp;lt;/code&amp;gt; and then &amp;lt;code&amp;gt;xmodmap -e &amp;quot;add Lock = Caps_Lock&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Shell ===&lt;br /&gt;
* [http://www.unixprogram.com/grep/using_egrep.html grep vs. egrep]&lt;br /&gt;
::&amp;lt;pre&amp;gt;&lt;br /&gt;
::The following characters have special meanings in grep or egrep:&lt;br /&gt;
::&lt;br /&gt;
:: In egrep:&lt;br /&gt;
::         | ^ $ . * + ? ( ) [ { } \&lt;br /&gt;
:: In grep:&lt;br /&gt;
::         ^ $ . * \( \) [ \{ \} \&lt;br /&gt;
::&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* 0 = STDIN, 1 = STDOUT, 2 = STDERR.  Like '' blah 2&amp;gt; /dev/null'' puts blah's STDERR into /dev/null&lt;br /&gt;
&lt;br /&gt;
* &amp;gt; overwrites, &amp;gt;&amp;gt; appends&lt;br /&gt;
:: not see what's writing: ''ksh filename &amp;gt; writefilename 2&amp;gt;&amp;amp;1'', the 2&amp;gt;&amp;amp;1 writes the errors as well&lt;br /&gt;
:: see what's writing: ''ksh filename 2&amp;gt;&amp;amp;1 | tee writefilename''&lt;br /&gt;
&lt;br /&gt;
* ksh: typeset'ing vars in a function makes those vars local to the function.&lt;br /&gt;
&lt;br /&gt;
* Avoid typing in sudo password everytime:&lt;br /&gt;
*: Edit &amp;lt;code&amp;gt;/etc/sudoers&amp;lt;/code&amp;gt; such that under the line &amp;lt;code&amp;gt; root ALL=(ALL) ALL&amp;lt;/code&amp;gt;, this line is added: &amp;lt;code&amp;gt; [username] ALL=(ALL) ALL&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Add a path as the first option in a path&lt;br /&gt;
*: e.g. slapd's path.  Currently when you do &amp;lt;code&amp;gt;echo $PATH&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;/usr/local/sbin&amp;lt;/code&amp;gt; shows in front.  I want to add &amp;lt;code&amp;gt;/usr/local/libexec&amp;lt;/code&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export PATH=/usr/local/libexec:$PATH&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Now I have &amp;lt;code&amp;gt;/usr/local/libexec&amp;lt;/code&amp;gt; as the first option under &amp;lt;code&amp;gt;echo $PATH&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;pkill&amp;lt;/code&amp;gt; doesn't always work.  Use &amp;lt;code&amp;gt;pkill -9&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;pkill -15&amp;lt;/code&amp;gt; instead.  Same with &amp;lt;code&amp;gt;sudo kill&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* A Debugger! :D  &amp;lt;code&amp;gt;gdb [command]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Python ===&lt;br /&gt;
&amp;lt;br&amp;gt;Common Stuff&lt;br /&gt;
* Cannot do ''[print line for line in linelist]'' must have a function that prints the line, call it, printl(), and do ''[printl(line) for line in linelist]''&lt;br /&gt;
&lt;br /&gt;
More Specific Stuff&lt;br /&gt;
*''p = Popen('blah', stdin=PIPE, stdout=PIPE, stderr=PIPE)''&lt;br /&gt;
:''(out, err) = p.communicate('inputThing\n')'' &amp;lt;-- don't forget the return &amp;quot;\n&amp;quot; at the end!&lt;br /&gt;
* When you're doing a bunch of p=Popen('shell command') be careful because Popen starts a new branch so the next Popen might start without the previous one having completed.  To fix this problem, put in:&lt;br /&gt;
::&amp;lt;pre&amp;gt;&lt;br /&gt;
::if int(p.wait()) != 0: #meaning that it's not executed&lt;br /&gt;
::    print &amp;quot;error message&amp;quot;&lt;br /&gt;
::    exit&lt;br /&gt;
::&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Two ways to display outputs after Popen( a command that has to get into something, in my case, getting into kadmin.local) 06262009&lt;br /&gt;
:Way 1:&lt;br /&gt;
::&amp;lt;pre&amp;gt;&lt;br /&gt;
::p = Popen(['commannd', 'all', 'in', 'one', 'line'], stdin=PIPE, stdout=PIPE, stderr=PIPE) #e.g. ['kadmin.local', '-q', 'listprincs']&lt;br /&gt;
::if int(p.wait()) != 0:&lt;br /&gt;
::print p.stdout.readlines()&lt;br /&gt;
::&amp;lt;/pre&amp;gt;&lt;br /&gt;
:Way 2:&lt;br /&gt;
::&amp;lt;pre&amp;gt;&lt;br /&gt;
::p = Popen(['command', 'front', 'chunk'], stdin=PIPE, stdout=PIPE, stderr=PIPE) #e.g. ['kadmin.local']&lt;br /&gt;
::(out, err) = p.communicate('rest of command') #e.g. 'listprincs'&lt;br /&gt;
::print out&lt;br /&gt;
::&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Not type in a chunk of common code every time, i.e.&lt;br /&gt;
:: ''p = Popen(cmd, stdin=PIPE, stdout=PIPE, stderr=PIPE)''&lt;br /&gt;
:This can be changed to:&lt;br /&gt;
::&amp;lt;pre&amp;gt;&lt;br /&gt;
:: s = {stdin:PIPE, stdout=PIPE, stderr=PIPE}&lt;br /&gt;
:: p = Popen(cmd, **s)&lt;br /&gt;
::&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* For putting in a shell command directly, can turn shell=True.  Note the command here can be a single line of string, not split up.&lt;br /&gt;
:: '' p = Popen(command, shell=True, stdin=PIPE, stdout=PIPE, stderr=PIPE)&lt;br /&gt;
&lt;br /&gt;
* The p.stdout.readlines() can be read only once&lt;br /&gt;
&lt;br /&gt;
* Print current time in python:&lt;br /&gt;
::&amp;lt;pre&amp;gt;&lt;br /&gt;
:: from time import strftime&lt;br /&gt;
:: print &amp;quot;current time: &amp;quot;+strftime(&amp;quot;%Y-%m-%d %H:%M:%S&amp;quot;)&lt;br /&gt;
::&amp;lt;/pre&amp;gt;&lt;br /&gt;
: Output: ''current time: 2009-07-06 22:00:54''&lt;br /&gt;
&lt;br /&gt;
* Sleep for 7 seconds.  &lt;br /&gt;
::&amp;lt;pre&amp;gt;&lt;br /&gt;
:: import time&lt;br /&gt;
:: time.sleep(7)&lt;br /&gt;
::&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Popen( env=blah ) this argument only needs to be specified when the environment is changing&lt;br /&gt;
&lt;br /&gt;
* To terminate a while loop after 3 seconds do: &amp;lt;code&amp;gt;while time.clock() &amp;lt; 3: blah&amp;lt;/code&amp;gt; remember to &amp;lt;code&amp;gt;import time&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Kadmin's wait() number (exit number) failed to point out that there is an error.  The chunk below was generated when I tested it manually.  It clearly pointed out that the acl file is missing (documented before).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ kadmin -p haoqili/admin -w test123 -q 'getprinc test'&lt;br /&gt;
Authenticating as principal haoqili/admin with password.&lt;br /&gt;
get_principal: Operation requires ``get'' privilege while retrieving &amp;quot;test@K.MIT.EDU&amp;quot;.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
: What I saw in the output of the test was just the line &amp;quot;Authenticating ...&amp;quot;, because wait() = 0, I only printed out stdout.  However the last line was in the stderr.  So I asked Tom if the existence of a stderr message is a better indicator of the success/failure of a command compared to the exit number.  The answer is &amp;quot;not necessarily&amp;quot;.  &lt;br /&gt;
:Tom: Some programs write things to stderr even when there's not an error.&amp;lt;br&amp;gt;&lt;br /&gt;
:Me: why would they do that?&amp;lt;br&amp;gt;&lt;br /&gt;
:Tom: various reasons. sometimes prompts are written to stderr so they won't end up in redirected output by default.&lt;br /&gt;
&lt;br /&gt;
* Ordering of stdout/stderr messages:&lt;br /&gt;
: Tom: if you use separate pipes for stderr and stdout, you may get the relative ordering of the messages mixed up if you print all stdout, then print all stderr.&lt;br /&gt;
: Me: right now I have stdin=PIPE, stdout=PIPE, stderr=PIPE. Is this separate pipes or the same pipe?&lt;br /&gt;
: Tom: separate pipes, i think.&lt;br /&gt;
: Tom: so to get program output in order, i would make stderr=STDOUT when creating the subprocess, and check the value of wait()&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
p = Popen('/bin/sh stdouterr.sh', shell=True, stdin=PIPE, stdout=PIPE,&lt;br /&gt;
         stderr=PIPE)&lt;br /&gt;
&lt;br /&gt;
This gives all outputs together, and all errors together&lt;br /&gt;
&lt;br /&gt;
= = = &lt;br /&gt;
&lt;br /&gt;
p = Popen('/bin/sh stdouterr.sh', shell=True, stdin=PIPE, stdout=PIPE,&lt;br /&gt;
         stderr=STDOUT)&lt;br /&gt;
&lt;br /&gt;
This gives the outputs and errors in the order they come.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MKM Errors Put Aside ==&lt;br /&gt;
* Adding the 1058th master key gives a memory error&lt;br /&gt;
&lt;br /&gt;
* getdate.y has problems:&lt;br /&gt;
::&amp;lt;pre&amp;gt;&lt;br /&gt;
::/trunk/src/kadmin/cli$ ./datetest&lt;br /&gt;
::Enter date, or blank line to exit.&lt;br /&gt;
::	&amp;gt; 6 months&lt;br /&gt;
::Sat Jan  9 14:22:36 2010&lt;br /&gt;
::	&amp;gt; 12/31/2009&lt;br /&gt;
::Wed Dec 30 23:00:00 2009&lt;br /&gt;
::	&amp;gt; 07/10/2009&lt;br /&gt;
::Thu Jul  9 23:00:00 2009&lt;br /&gt;
::	&amp;gt; 01/01/2009&lt;br /&gt;
::Wed Dec 31 23:00:00 2008&lt;br /&gt;
::	&amp;gt; 01/01/2009 00:00:00&lt;br /&gt;
::Wed Dec 31 23:00:00 2008&lt;br /&gt;
::&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Phantom list_mkey error after adding ''-e aes128-cts-hmac-sha1-96''.  The error went away after I ran the ksh equivalent of the python test.  I don't know why it went away because everything seemed to be the same.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;pre&amp;gt;&lt;br /&gt;
::for lines 283-289:&lt;br /&gt;
::print &amp;quot;Testing add_mkey with aes128 enctype&lt;br /&gt;
::==============================================&amp;quot;&lt;br /&gt;
::kdb5_util add_mkey -e aes128-cts-hmac-sha1-96 &amp;lt;&amp;lt;EOF&lt;br /&gt;
::abcde&lt;br /&gt;
::abcde&lt;br /&gt;
::EOF&lt;br /&gt;
::kdb5_util list_mkeys&lt;br /&gt;
::print &amp;quot;Testing add_mkey with aes128 enctype done&lt;br /&gt;
::==============================================&amp;quot;&lt;br /&gt;
::&lt;br /&gt;
::The list_mkeys at the bottom is giving the following error:&lt;br /&gt;
::&lt;br /&gt;
::kdb5_util: Unable to decrypt latest master key with the provided master key&lt;br /&gt;
:: while getting master key list&lt;br /&gt;
::kdb5_util: Warning: proceeding without master key list&lt;br /&gt;
::kdb5_util: master keylist not initialized&lt;br /&gt;
:&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Getting LDAP Running ==&lt;br /&gt;
&lt;br /&gt;
[http://web.mit.edu/kerberos/krb5-1.6/krb5-1.6.3/doc/krb5-admin.html#Configuring-Kerberos-with-OpenLDAP-back_002dend configure kerberos with LDAP backend]&lt;br /&gt;
&lt;br /&gt;
[http://quark.humbug.org.au/publications/ldap/ldap_tut.html Nice looking LDAP tutorial]&lt;br /&gt;
&lt;br /&gt;
* (DON'T FORLLOW THESE STEPS, WILL HAVE CONFLICTS, follow Greg's steps) I followed the directions on this website http://openldap.org/doc/admin24/quickstart.html&lt;br /&gt;
* Install BerkeleyDB&lt;br /&gt;
** Download berkeleydb4.7&lt;br /&gt;
** cd to folder&lt;br /&gt;
** ''cd build_unix'' (on my Ubuntu)&lt;br /&gt;
** ''../dist/configure''&lt;br /&gt;
** ''make''&lt;br /&gt;
** ''sudo make install''&lt;br /&gt;
* Install Open LDAP&lt;br /&gt;
** ''./configure'' (fails)&lt;br /&gt;
:ERROR: DBD/HDB:BerkeleyDB not available&lt;br /&gt;
:Fixed: ''CPPFLAGS=&amp;quot;-I/usr/local/BerkeleyDB4.7/include&amp;quot;'' then ''export CPPFLAGS''&lt;br /&gt;
:* ''./configure''&lt;br /&gt;
:* ''make depend''&lt;br /&gt;
:* ''make'' (fails)&lt;br /&gt;
:ERROR: getpeereid.c:65: error: storage size of ‘peercred’ isn’t known&lt;br /&gt;
:FIXED: ''CPPFLAGS=-D_GNU_SOURCE'' then ''export CPPFLAGS''&lt;br /&gt;
:* ''make''&lt;br /&gt;
:* ''make test'' (takes a while)&lt;br /&gt;
:* ''sudo make install'' (installed in /usr/local/etc/openldap)&lt;br /&gt;
* Change configuration file at /usr/local/etc/openldap/slapd.conf&lt;br /&gt;
:* &amp;lt;my-domain&amp;gt; &amp;lt;-- example&lt;br /&gt;
:* &amp;lt;com&amp;gt; &amp;lt;-- com&lt;br /&gt;
:* password is still &amp;quot;secret&amp;quot;&lt;br /&gt;
:* cn is still &amp;quot;Manager&amp;quot;&lt;br /&gt;
* Start SLAPD: ''sudo /usr/local/libexec/slapd''&lt;br /&gt;
** Check if it works by a search: ldapsearch blah&lt;br /&gt;
* Add entries.  Consult link above.&lt;br /&gt;
&lt;br /&gt;
What I should have done.  Faster, simpler.  &amp;lt;b&amp;gt;Directions given by Greg Hudson.&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;1.&amp;lt;/b&amp;gt; ''sudo apt-get install slapd'' (for server program)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;2.&amp;lt;/b&amp;gt; ''sudo apt-get install ldap-utils'' (for ldapsearch)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;3.&amp;lt;/b&amp;gt; copy src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema into /etc/ldap/schema&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;4.&amp;lt;/b&amp;gt; In /etc/default/slapd, change SLAPD_SERVICES=&amp;quot;ldapi:///&amp;quot;, to restrict access to the local machine&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;5.&amp;lt;/b&amp;gt; ldapsearch test:&amp;lt;br&amp;gt;&lt;br /&gt;
:: ''ldapsearch -H ldapi:/// -x -W -D cn=Manager,dc=example,dc=com -LLL -b dc=example,dc=com''&lt;br /&gt;
:::''-H ldapi:///'' indicate the URI for the LDAP server&lt;br /&gt;
:::''-x'' simple authentication&lt;br /&gt;
:::''-W'' password prompt&lt;br /&gt;
:::''-D cn=Manager,dc=example,dc=com'' specify the &amp;quot;bind DN&amp;quot;, like a username&lt;br /&gt;
:::''-LLL'' shortens output&lt;br /&gt;
:::''-b'' specify base of query to restrict the scope of the query&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;6.&amp;lt;/b&amp;gt; ''sudo apt-get install libldap2-dev''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;7.&amp;lt;/b&amp;gt; Modify kdc.conf to include:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbmodules]&lt;br /&gt;
LDAP = {&lt;br /&gt;
     db_library = kldap&lt;br /&gt;
     ldap_kerberos_container_dn = cn=krbcontainer,dc=example,dc=com&lt;br /&gt;
     ldap_kdc_dn = cn=admin,dc=example,dc=com&lt;br /&gt;
     ldap_kadmind_dn = cn=admin,dc=example,dc=com&lt;br /&gt;
     ldap_service_password_file = /usr/local/var/krb5kdc/admin.stash&lt;br /&gt;
     ldap_servers = ldapi:///&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;8.&amp;lt;/b&amp;gt; Build krb5 from source with a different configure command: &amp;lt;code&amp;gt;./configure --with-ldap&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;9.&amp;lt;/b&amp;gt; Create your database not with &amp;lt;code&amp;gt;kdb5_util&amp;lt;/code&amp;gt;, but with &amp;lt;code&amp;gt;kdb5_ldap_util&amp;lt;/code&amp;gt; like this:&lt;br /&gt;
&amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=com -H ldapi:/// create -r EXAMPLE.COM -sf /usr/local/var/krb5kdc/admin.stash -s&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;@ end of step 6.  I thought I didn't have to do steps 1 and 2 since I installed the whole thing.  However, I got stuck on step 4 because /etc/default/slapd doesn't exist. So I tried to install 1 and 2, but got the following &amp;lt;br&amp;gt;&lt;br /&gt;
ERROR:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo apt-get install slapd&lt;br /&gt;
Reading package lists... Done&lt;br /&gt;
Building dependency tree       &lt;br /&gt;
Reading state information... Done&lt;br /&gt;
slapd is already the newest version.&lt;br /&gt;
0 upgraded, 0 newly installed, 0 to remove and 169 not upgraded.&lt;br /&gt;
1 not fully installed or removed.&lt;br /&gt;
After this operation, 0B of additional disk space will be used.&lt;br /&gt;
Setting up slapd (2.4.15-1ubuntu3) ...&lt;br /&gt;
  Creating initial slapd configuration... Loading the initial configuration from the ldif file (/tmp/slapd_init.ldif.FZDOiAlAPo) failed with the following&lt;br /&gt;
error while running slapadd:&lt;br /&gt;
    str2entry: invalid value for attributeType objectClass #0 (syntax 1.3.6.1.4.1.1466.115.121.1.38)&lt;br /&gt;
    slapadd: could not parse entry (line=16)&lt;br /&gt;
dpkg: error processing slapd (--configure):&lt;br /&gt;
 subprocess post-installation script returned error exit status 1&lt;br /&gt;
Errors were encountered while processing:&lt;br /&gt;
 slapd&lt;br /&gt;
E: Sub-process /usr/bin/dpkg returned an error code (1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It's okay, the previously missing /etc/default/slapd now exists so that I can do step 4.&lt;br /&gt;
&lt;br /&gt;
SOLUTION: I fixed this error by removing a slapd to avoid conflicts in the slapd already installed from source: &amp;lt;code&amp;gt;sudo apt-get remove slapd&amp;lt;/code&amp;gt;  Note how in the top of the error it says that whatever I was installing &amp;quot;is already the newest version&amp;quot;, but there was the rest of the stuff because of the slapd conflict.&lt;br /&gt;
&lt;br /&gt;
Step 5 then failed with error: &lt;br /&gt;
&amp;lt;pre&amp;gt;ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It can be fixed if slapd is started more specifically:&lt;br /&gt;
''sudo /usr/local/libexec/slapd -h ldapi:///''&lt;br /&gt;
&lt;br /&gt;
=== Everything was a mess! But here are some of things I did despite of the mess ===&lt;br /&gt;
&lt;br /&gt;
* Zhanna got slapd and ldapsearch working on my computer.  I have not been able to replicate it.  But here are the steps she used.&lt;br /&gt;
*# Kill an existing slapd: &amp;lt;code&amp;gt; ps -ef | grep slapd &amp;lt;/code&amp;gt; and then &amp;lt;code&amp;gt; sudo kill -9 [the left side number]&amp;lt;/code&amp;gt;&lt;br /&gt;
*# Set up new slapd: &amp;lt;code&amp;gt; sudo /usr/local/libexec/slapd -h ldap://127.0.0.1:667 &amp;lt;/code&amp;gt;  (667, a bigger number works, 389 a smaller number wouldn't work. &lt;br /&gt;
*# Test if slapd is running by doing a search: &amp;lt;code&amp;gt; ldapsearch -H ldapi:/// -x -D cn=Manager,dc=example,dc=com -w secret&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Adding LDAP Entries ====&lt;br /&gt;
&lt;br /&gt;
* Then I created 2 new LDAP entries:&lt;br /&gt;
** Create this file named &amp;lt;code&amp;gt;example.ldif&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dn: dc=example,dc=com&lt;br /&gt;
objectclass: dcObject&lt;br /&gt;
objectclass: organization&lt;br /&gt;
o: HaoQiCompany&lt;br /&gt;
dc: example&lt;br /&gt;
&lt;br /&gt;
dn: cn=Manager,dc=example,dc=com&lt;br /&gt;
objectclass: organizationalRole&lt;br /&gt;
cn: Manager&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
**:Note that the objectclass names cannot be changed, they have been predetermined&lt;br /&gt;
** Add them: &amp;lt;code&amp;gt; ldapadd -H ldapi:/// -x -D &amp;quot;cn=Manager,dc=example,dc=com&amp;quot; -w secret -f example.ldif&lt;br /&gt;
** Search them: &amp;lt;code&amp;gt; ldapsearch -H ldapi:/// -x -b 'dc=example,dc=com' '(objectclass=*)'&amp;lt;/code&amp;gt;&lt;br /&gt;
**: result:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# extended LDIF&lt;br /&gt;
#&lt;br /&gt;
# LDAPv3&lt;br /&gt;
# base &amp;lt;dc=example,dc=com&amp;gt; with scope subtree&lt;br /&gt;
# filter: (objectclass=*)&lt;br /&gt;
# requesting: ALL&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
# example.com&lt;br /&gt;
dn: dc=example,dc=com&lt;br /&gt;
objectClass: dcObject&lt;br /&gt;
objectClass: organization&lt;br /&gt;
o: HaoQiCompany&lt;br /&gt;
dc: example&lt;br /&gt;
&lt;br /&gt;
# Manager, example.com&lt;br /&gt;
dn: cn=Manager,dc=example,dc=com&lt;br /&gt;
objectClass: organizationalRole&lt;br /&gt;
cn: Manager&lt;br /&gt;
&lt;br /&gt;
# search result&lt;br /&gt;
search: 2&lt;br /&gt;
result: 0 Success&lt;br /&gt;
&lt;br /&gt;
# numResponses: 3&lt;br /&gt;
# numEntries: 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* An important thing I learned is that I can't randomly put entries.  The object classes are all specified and so are the other entries that comes with each object class.  For example, the objectclass &amp;quot;person&amp;quot; must have &amp;quot;objectclass&amp;quot;, &amp;quot;sn&amp;quot; for surname, and &amp;quot;cn&amp;quot; for common name.  Objectclass &amp;quot;person&amp;quot; may also have these entries: &amp;quot;description&amp;quot;, &amp;quot;seeAlso&amp;quot;, &amp;quot;telephoneNumber&amp;quot;, and &amp;quot;userPassword.&amp;quot; &lt;br /&gt;
** I ran into some errors when I followed the examples for adding &amp;quot;person&amp;quot; on some websites because they included a &amp;quot;title&amp;quot; entry, which is not allowed&lt;br /&gt;
** [http://www.it.ufl.edu/projects/directory/ldap-schema/oc-PERSON.html Here is where I learned which entries are allowed]&lt;br /&gt;
* With this knowledge, I made &amp;lt;code&amp;gt; example3.ldif&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dn: cn=Zhanna Tsitkova,dc=example,dc=com&lt;br /&gt;
objectclass: person&lt;br /&gt;
cn: Zhanna&lt;br /&gt;
cn: Zhanna Tsitkova&lt;br /&gt;
sn: Tsitkova&lt;br /&gt;
description: kind boss&lt;br /&gt;
telephoneNumber: 6171231234&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Add this entry: &amp;lt;code&amp;gt; ldapadd -H ldapi:/// -x -w secret -D &amp;quot;cn=Manager,dc=example,dc=com&amp;quot; -f example3.ldif&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Now, the search result of all object classes look like this:&lt;br /&gt;
*:&amp;lt;code&amp;gt; ldapsearch -H ldapi:/// -x -b 'dc=example,dc=com' '(objectclass=*)'&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# extended LDIF&lt;br /&gt;
#&lt;br /&gt;
# LDAPv3&lt;br /&gt;
# base &amp;lt;dc=example,dc=com&amp;gt; with scope subtree&lt;br /&gt;
# filter: (objectclass=*)&lt;br /&gt;
# requesting: ALL&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
# example.com&lt;br /&gt;
dn: dc=example,dc=com&lt;br /&gt;
objectClass: dcObject&lt;br /&gt;
objectClass: organization&lt;br /&gt;
o: HaoQiCompany&lt;br /&gt;
dc: example&lt;br /&gt;
&lt;br /&gt;
# Manager, example.com&lt;br /&gt;
dn: cn=Manager,dc=example,dc=com&lt;br /&gt;
objectClass: organizationalRole&lt;br /&gt;
cn: Manager&lt;br /&gt;
&lt;br /&gt;
# Zhanna Tsitkova, example.com&lt;br /&gt;
dn: cn=Zhanna Tsitkova,dc=example,dc=com&lt;br /&gt;
objectClass: person&lt;br /&gt;
cn: Zhanna&lt;br /&gt;
cn: Zhanna Tsitkova&lt;br /&gt;
sn: Tsitkova&lt;br /&gt;
description: kind boss&lt;br /&gt;
telephoneNumber: 6171231234&lt;br /&gt;
&lt;br /&gt;
# HaoQi Li, example.com&lt;br /&gt;
dn: cn=HaoQi Li,dc=example,dc=com&lt;br /&gt;
objectClass: person&lt;br /&gt;
cn: HaoQi&lt;br /&gt;
cn: HaoQi Li&lt;br /&gt;
sn: Li&lt;br /&gt;
description: happy intern&lt;br /&gt;
telephoneNumber: 7031231234&lt;br /&gt;
&lt;br /&gt;
# search result&lt;br /&gt;
search: 2&lt;br /&gt;
result: 0 Success&lt;br /&gt;
&lt;br /&gt;
# numResponses: 5&lt;br /&gt;
# numEntries: 4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*: Search for just &amp;quot;person&amp;quot; object class: &amp;lt;code&amp;gt; ldapsearch -H ldapi:/// -x -b 'dc=example,dc=com' '(objectclass=person)'&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# extended LDIF&lt;br /&gt;
#&lt;br /&gt;
# LDAPv3&lt;br /&gt;
# base &amp;lt;dc=example,dc=com&amp;gt; with scope subtree&lt;br /&gt;
# filter: (objectclass=person)&lt;br /&gt;
# requesting: ALL&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
# Zhanna Tsitkova, example.com&lt;br /&gt;
dn: cn=Zhanna Tsitkova,dc=example,dc=com&lt;br /&gt;
objectClass: person&lt;br /&gt;
cn: Zhanna&lt;br /&gt;
cn: Zhanna Tsitkova&lt;br /&gt;
sn: Tsitkova&lt;br /&gt;
description: kind boss&lt;br /&gt;
telephoneNumber: 6171231234&lt;br /&gt;
&lt;br /&gt;
# HaoQi Li, example.com&lt;br /&gt;
dn: cn=HaoQi Li,dc=example,dc=com&lt;br /&gt;
objectClass: person&lt;br /&gt;
cn: HaoQi&lt;br /&gt;
cn: HaoQi Li&lt;br /&gt;
sn: Li&lt;br /&gt;
description: happy intern&lt;br /&gt;
telephoneNumber: 7031231234&lt;br /&gt;
&lt;br /&gt;
# search result&lt;br /&gt;
search: 2&lt;br /&gt;
result: 0 Success&lt;br /&gt;
&lt;br /&gt;
# numResponses: 3&lt;br /&gt;
# numEntries: 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*: Search for just one entry: &amp;lt;code&amp;gt;ldapsearch -H ldapi:/// -x -b 'dc=example,dc=com' 'cn=HaoQi'&amp;lt;/code&amp;gt;.  Note that the &amp;quot;cn=HaoQi&amp;quot; is not in the first set of single quotes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# extended LDIF&lt;br /&gt;
#&lt;br /&gt;
# LDAPv3&lt;br /&gt;
# base &amp;lt;dc=example,dc=com&amp;gt; with scope subtree&lt;br /&gt;
# filter: cn=HaoQi&lt;br /&gt;
# requesting: ALL&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
# HaoQi Li, example.com&lt;br /&gt;
dn: cn=HaoQi Li,dc=example,dc=com&lt;br /&gt;
objectClass: person&lt;br /&gt;
cn: HaoQi&lt;br /&gt;
cn: HaoQi Li&lt;br /&gt;
sn: Li&lt;br /&gt;
description: happy intern&lt;br /&gt;
telephoneNumber: 7031231234&lt;br /&gt;
&lt;br /&gt;
# search result&lt;br /&gt;
search: 2&lt;br /&gt;
result: 0 Success&lt;br /&gt;
&lt;br /&gt;
# numResponses: 2&lt;br /&gt;
# numEntries: 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Starting LDAP ===&lt;br /&gt;
&lt;br /&gt;
Starting from a specific IP address and port number:&lt;br /&gt;
: &amp;lt;code&amp;gt;sudo /usr/local/libexec/slapd -h ldap://127.0.0.1:677&amp;lt;/code&amp;gt; Note that it's &amp;quot;ldap&amp;quot;, not &amp;quot;ldapi.&amp;quot; The port number 677 was chosen arbitrarily. &lt;br /&gt;
: To search to check that it works: &lt;br /&gt;
: &amp;lt;code&amp;gt;ldapsearch -h 127.0.0.1 -p 677 -x -D cn=manager,dc=example,dc=com -w secret&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Starting from /:&lt;br /&gt;
: &amp;lt;code&amp;gt;sudo /usr/local/libexec/slapd -h ldapi:///&amp;lt;/code&amp;gt; Note that it's &amp;quot;ldapi&amp;quot;, not &amp;quot;ldap&amp;quot;&lt;br /&gt;
: To search to check that it works:&lt;br /&gt;
: &amp;lt;code&amp;gt;ldapsearch -H ldapi:/// -x -D cn=manager,dc=example,dc=com -w secret&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To kill a slapd and start again:&lt;br /&gt;
: &amp;lt;code&amp;gt;ps -ef | grep slapd&amp;lt;/code&amp;gt; look for the left most number&lt;br /&gt;
: &amp;lt;code&amp;gt;sudo kill -9 [left most number]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Things I had to fix ===&lt;br /&gt;
* I first did step 9 without doing step 8.  So I got an kdb5_ldap_util not found error, but I was recommended by the computer to install krb5-kdc-ldap. DON'T DO THAT!  because it is not what I want for the krb5 development, I want it to be running from the build (step 8).  So I had to do a &amp;lt;code&amp;gt;sudo apt-get remove krb5-kdc-ldap&amp;lt;/code&amp;gt;.  In the end, the kdb5_ldap_util we want should be in &amp;lt;code&amp;gt;/usr/local/sbin/kdb5_ldap_util&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* @ step 8. while doing &amp;lt;code&amp;gt;./configure --with-ldap&amp;lt;/code&amp;gt; it stopped with this:&amp;lt;br&amp;gt;&lt;br /&gt;
:ERROR: &amp;lt;code&amp;gt;configure: error: libldap not found or missing ldap_init&amp;lt;/code&amp;gt;.  &amp;lt;br&amp;gt;&lt;br /&gt;
:Greg told me to check if /usr/lib/libldap.so exists, and it does.  Then I looked at config.log from the ./configure:  Here are chunks of it, found in the middle of the log:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
configure:24570: checking for ldap_init in -lldap&lt;br /&gt;
configure:24605: gcc -o conftest -g -O2 conftest.c -lldap -lresolv &amp;gt;&amp;amp;5&lt;br /&gt;
/usr/lib/gcc/i486-linux-gnu/4.3.3/../../../../lib/libldap.so: undefined reference to `ber_pvt_sb_do_write@OPENLDAP_2.4_2'&lt;br /&gt;
/usr/lib/gcc/i486-linux-gnu/4.3.3/../../../../lib/libldap.so: undefined reference to `ber_free@OPENLDAP_2.4_2'&lt;br /&gt;
/usr/lib/gcc/i486-linux-gnu/4.3.3/../../../../lib/libldap.so: undefined reference to `ber_skip_data@OPENLDAP_2.4_2'&lt;br /&gt;
/usr/lib/gcc/i486-linux-gnu/4.3.3/../../../../lib/libldap.so: undefined reference to `ber_reset@OPENLDAP_2.4_2'&lt;br /&gt;
... 50 more lines like so ...&lt;br /&gt;
/usr/lib/gcc/i486-linux-gnu/4.3.3/../../../../lib/libldap.so: undefined reference to `ber_sockbuf_alloc@OPENLDAP_2.4_2'&lt;br /&gt;
collect2: ld returned 1 exit status&lt;br /&gt;
configure:24612: $? = 1&lt;br /&gt;
configure: failed program was:&lt;br /&gt;
| /* confdefs.h. */&lt;br /&gt;
| #define PACKAGE_NAME &amp;quot;Kerberos 5&amp;quot;&lt;br /&gt;
| #define PACKAGE_TARNAME &amp;quot;krb5&amp;quot;&lt;br /&gt;
| #define PACKAGE_VERSION &amp;quot;1.7-prerelease&amp;quot;&lt;br /&gt;
| #define PACKAGE_STRING &amp;quot;Kerberos 5 1.7-prerelease&amp;quot;&lt;br /&gt;
| #define PACKAGE_BUGREPORT &amp;quot;krb5-bugs@mit.edu&amp;quot;&lt;br /&gt;
| #define STDC_HEADERS 1&lt;br /&gt;
| #define HAVE_SYS_TYPES_H 1&lt;br /&gt;
| #define HAVE_SYS_STAT_H 1&lt;br /&gt;
| #define HAVE_STDLIB_H 1&lt;br /&gt;
... continues ...&lt;br /&gt;
| #define HAVE_GETHOSTBYNAME_R 1&lt;br /&gt;
| #define HAVE_GETSERVBYNAME_R 1&lt;br /&gt;
| #define HAVE_GMTIME_R 1&lt;br /&gt;
| #define HAVE_LOCALTIME_R 1&lt;br /&gt;
| #define HAVE_LDAP_H 1&lt;br /&gt;
| #define HAVE_LBER_H 1&lt;br /&gt;
| /* end confdefs.h. */&lt;br /&gt;
|&lt;br /&gt;
| /* Override any GCC internal prototype to avoid an error.&lt;br /&gt;
| Use char because int might match the return type of a GCC&lt;br /&gt;
| builtin and then its argument prototype would still apply. */&lt;br /&gt;
| #ifdef __cplusplus&lt;br /&gt;
| extern &amp;quot;C&amp;quot;&lt;br /&gt;
| #endif&lt;br /&gt;
| char ldap_init ();&lt;br /&gt;
| int&lt;br /&gt;
| main ()&lt;br /&gt;
| {&lt;br /&gt;
| return ldap_init ();&lt;br /&gt;
| ;&lt;br /&gt;
| return 0;&lt;br /&gt;
| }&lt;br /&gt;
configure:24633: result: no&lt;br /&gt;
configure:24638: error: libldap not found or missing ldap_init&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:So Greg says: &amp;quot;I think maybe your OpenLDAP source installation in /usr/local/lib is messing up the system library.&amp;quot;  So it might be better if I start a new Ubuntu virtual machine without being stupid and compiling the entire OpenLDAP.&lt;br /&gt;
&lt;br /&gt;
=== Starting Over ===&lt;br /&gt;
I ran into some more troubles.  So I decided to start again, with a brand new virtual machine&lt;br /&gt;
&lt;br /&gt;
The bolded lines are for ldap.  The non-bolded ones are for general make krb5 from source&lt;br /&gt;
* To start again if you screwed up anywhere, do &amp;lt;code&amp;gt;make distclean&amp;lt;/code&amp;gt; if you want to remove &amp;quot;make&amp;quot; or &amp;lt;code&amp;gt;make clean&amp;lt;/code&amp;gt; if you don't want to remove &amp;quot;make&amp;quot; (sometimes you have to do &amp;lt;code&amp;gt;rm config.cache&amp;lt;/code&amp;gt;), and then proceed to &amp;lt;code&amp;gt;util/reconf&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Stuff you need to install for the krb5 build&lt;br /&gt;
** subversion: &amp;lt;code&amp;gt;sudo apt-get install subversion&amp;lt;/code&amp;gt;&lt;br /&gt;
** autoconf: &amp;lt;code&amp;gt;sudo apt-get install autoconf&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;sudo apt-get install ncurses-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
** yacc: &amp;lt;code&amp;gt;sudo apt-get install byacc&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;svn checkout svn://anonsvn.mit.edu/krb5/trunk&amp;lt;/code&amp;gt;&lt;br /&gt;
* Navigate to trunk/src&lt;br /&gt;
* &amp;lt;code&amp;gt;util/reconf&amp;lt;/code&amp;gt;&lt;br /&gt;
* 1: &amp;lt;code&amp;gt;&amp;lt;b&amp;gt;sudo apt-get install slapd&amp;lt;/b&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* 2: &amp;lt;code&amp;gt;&amp;lt;b&amp;gt;sudo apt-get install ldap-utils&amp;lt;/b&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* 3: &amp;lt;b&amp;gt;Navigate to /etc/ldap/scheme and then do: &amp;lt;code&amp;gt;sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema&amp;lt;/code&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
* 4: &amp;lt;b&amp;gt;&amp;lt;code&amp;gt;sudo vim /etc/default/slapd&amp;lt;/code&amp;gt; and change SLAPD_SERVICES to: &amp;lt;code&amp;gt;SLAPD_SERVICES=&amp;quot;ldapi:///&amp;quot;&amp;lt;/code&amp;gt; to restrict access to the local machine&amp;lt;/b&amp;gt;&lt;br /&gt;
* 5: &amp;lt;b&amp;gt;Test to see if it works by: &amp;lt;code&amp;gt;ldapsearch -H ldapi:/// -x -W -D cn=admin,dc=example,dc=com -LLL -b dc=example,dc=com&amp;lt;/code&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
* 6: &amp;lt;b&amp;gt;&amp;lt;code&amp;gt;sudo apt-get install libldap2-dev&amp;lt;/code&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
* 8: &amp;lt;b&amp;gt;&amp;lt;code&amp;gt;./configure --with-ldap&amp;lt;/code&amp;gt;&amp;lt;/b&amp;gt; Skipping step 7 intentionally.  It can be done later.  If you are not doing ldap stuff, just do &amp;lt;code&amp;gt;./configure&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;sudo make install&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
(I didn't do &amp;lt;code&amp;gt;make check&amp;lt;/code&amp;gt;)&lt;br /&gt;
* 7: &amp;lt;b&amp;gt; Change kdc.conf according to 7. above&amp;lt;/b&amp;gt;&lt;br /&gt;
* 9: &amp;lt;b&amp;gt; To run it: &amp;lt;code&amp;gt;sudo /usr/local/sbin/kdb5_ldap_util -D cn=admin,dc=example,dc=com -H ldapi:/// create -r EXAMPLE.COM -sf /usr/local/var/krb5kdc/admin.stash -s&amp;lt;/code&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Figuring out stuff ===&lt;br /&gt;
* [ https://help.ubuntu.com/9.04/serverguide/C/serverguide.pdf good guide]&lt;br /&gt;
** Locate the kerberos schema: &lt;br /&gt;
:: /etc/ldap/schema/kerberos.schema&lt;br /&gt;
:* Create this file:&lt;br /&gt;
:: sudo vim /etc/ldap/schema/schema_testing.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
include /etc/ldap/schema/core.schema&lt;br /&gt;
include /etc/ldap/schema/collective.schema&lt;br /&gt;
include /etc/ldap/schema/corba.schema&lt;br /&gt;
include /etc/ldap/schema/cosine.schema&lt;br /&gt;
include /etc/ldap/schema/duaconf.schema&lt;br /&gt;
include /etc/ldap/schema/dyngroup.schema&lt;br /&gt;
include /etc/ldap/schema/inetorgperson.schema&lt;br /&gt;
include /etc/ldap/schema/java.schema&lt;br /&gt;
include /etc/ldap/schema/kerberos.schema&lt;br /&gt;
include /etc/ldap/schema/nis.schema&lt;br /&gt;
include /etc/ldap/schema/openldap.schema&lt;br /&gt;
include /etc/ldap/schema/ppolicy.schema&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:* Make the temp dir to hold output: &lt;br /&gt;
:: mkdir /tmp/ldifoutput&lt;br /&gt;
:* Convert schema --&amp;gt; LDIF with slaptest:&lt;br /&gt;
:: slaptest -f schema_testing.conf -F /tmp/ldifoutput&lt;br /&gt;
:* Edit /tmp/ldifoutput/cn=config/cn=schema/cn={8}kerberos.ldif&lt;br /&gt;
:: sudo vi /tmp/ldifoutput/cn\=config/cn\=schema/cn\=\{8\}kerberos.ldif &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
change dn: cn={8}kerberos into&lt;br /&gt;
dn: dn: cn=kerberos,cn=schema,cn=config&lt;br /&gt;
&lt;br /&gt;
change cn: {8}kerberos into&lt;br /&gt;
cn: kerberos&lt;br /&gt;
&lt;br /&gt;
remove lines:&lt;br /&gt;
structuralObjectClass: olcsch... &lt;br /&gt;
till end&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
:* Start the slapd&lt;br /&gt;
:: sudo slpad -h ldapi:/// -F /etc/ldap/slapd.d/ &lt;br /&gt;
:: The &amp;quot;-F&amp;quot; is for slapd-config-directory&lt;br /&gt;
:*&lt;br /&gt;
=== LDAP notes ===&lt;br /&gt;
&lt;br /&gt;
* Man pages&lt;br /&gt;
** [http://docs.sun.com/app/docs/doc/816-5166/kdb5-ldap-util-1m?a=view good man page]&lt;br /&gt;
** [http://linux.die.net/man/8/kdb5_ldap_util another one]&lt;br /&gt;
&lt;br /&gt;
* If you can't start slapd, try &amp;lt;code&amp;gt;sudo&amp;lt;/code&amp;gt;&lt;br /&gt;
* [http://www.openldap.org/doc/admin21/runningslapd.html bug level, -d #]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Level 	Description&lt;br /&gt;
-1 	enable all debugging&lt;br /&gt;
0 	no debugging&lt;br /&gt;
1 	trace function calls&lt;br /&gt;
2 	debug packet handling&lt;br /&gt;
4 	heavy trace debugging&lt;br /&gt;
8 	connection management&lt;br /&gt;
16 	print out packets sent and received&lt;br /&gt;
32 	search filter processing&lt;br /&gt;
64 	configuration file processing&lt;br /&gt;
128 	access control list processing&lt;br /&gt;
256 	stats log connections/operations/results&lt;br /&gt;
512 	stats log entries sent&lt;br /&gt;
1024 	print communication with shell backends&lt;br /&gt;
2048 	print entry parsing debugging &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* src/kadmin/dbutil/kdb5_ldap_util&lt;br /&gt;
* src/plugins/kdb/ldap/ldap_util/kdb5_ldap_util&lt;/div&gt;</summary>
		<author><name>Haoqili</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2128</id>
		<title>LDAP on Kerberos</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2128"/>
				<updated>2009-08-18T19:27:10Z</updated>
		
		<summary type="html">&lt;p&gt;Haoqili: /* Errors */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==About==&lt;br /&gt;
A guide to set up ldap backend for kerberos.&lt;br /&gt;
&lt;br /&gt;
== To Do ==&lt;br /&gt;
* Slapd in sandbox, not /etc&lt;br /&gt;
* Simpler Domain names D.COM, R.COM&lt;br /&gt;
* Different domain names&lt;br /&gt;
* Figure out required schemas&lt;br /&gt;
* Figure out: In Kerb Schema Operations, I can do &amp;quot;or update slapd.conf with kerb schema or ldif&amp;quot; in some ubuntu&lt;br /&gt;
* Play around to get minimum set of requirement&lt;br /&gt;
&lt;br /&gt;
* update tree too, got a fix&lt;br /&gt;
&lt;br /&gt;
== 0. Sample code to follow ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
    8  mkdir krb5kdc&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
   16  make distclean&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
   19  make&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
   29  krb5kdc -n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 1. Information about the system ==&lt;br /&gt;
- packages&lt;br /&gt;
* Version of ubuntu&lt;br /&gt;
       lsb_release -a&lt;br /&gt;
       No LSB modules are available.&lt;br /&gt;
       Distributor ID:        Ubuntu&lt;br /&gt;
       Description:        Ubuntu 9.04&lt;br /&gt;
       Release:        9.04&lt;br /&gt;
       Codename:        jaunty&lt;br /&gt;
* Version of slapd: 2.4.15 (Mar 19 2009)&lt;br /&gt;
       slapd -V&lt;br /&gt;
       @(#) $OpenLDAP: slapd 2.4.15 (Mar 19 2009 10:08:25) $&lt;br /&gt;
       buildd@palmer:/build/buildd/openldap-2.4.15/debian/build/servers/slapd&lt;br /&gt;
&lt;br /&gt;
* Version of ldap-utils: 2.4.15&lt;br /&gt;
       dpkg -l ldap-utils&lt;br /&gt;
&lt;br /&gt;
== 2. Extract krb conf files ==&lt;br /&gt;
* It is crucial to have correct, consistent domain names.  You must have the dbmodules in krb5.conf.&lt;br /&gt;
* Save [[krb5.conf]]&lt;br /&gt;
* Save [[kdc.conf]]&lt;br /&gt;
* Save [[kadm5.acl]]&lt;br /&gt;
&lt;br /&gt;
== 3. Env and Setup==&lt;br /&gt;
You need to export these lines into your env. Based on where you saved these files.&lt;br /&gt;
&lt;br /&gt;
*export KRB5_CONFIG=/tmp/sandbox/krb5.conf&lt;br /&gt;
&lt;br /&gt;
*export KRB5_KDC_PROFILE=/tmp/sandbox/kdc.conf&lt;br /&gt;
&lt;br /&gt;
* make a krb5kdc folder: mkdir /tmp/sandbox/krb5kdc)&lt;br /&gt;
&lt;br /&gt;
Whatever you do, be consistent&lt;br /&gt;
&lt;br /&gt;
== 4. Build kerb. config ==&lt;br /&gt;
&lt;br /&gt;
# Install Packages:&lt;br /&gt;
#* &amp;lt;code&amp;gt; sudo apt-get install slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
#* for ldapsearch: &amp;lt;code&amp;gt;sudo apt-get install ldap-utils&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo apt-get install libldap2-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
# Set the &amp;quot;domain&amp;quot; of your LDAP server with &amp;lt;code&amp;gt;sudo dpkg-reconfigure slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
##: Indented are the debconf-get-selection lines&lt;br /&gt;
## Omit OpenLDAP server configuration: No&lt;br /&gt;
##: slapd   slapd/no_configuration  boolean false&lt;br /&gt;
## DNS domain name: example.org&lt;br /&gt;
##: slapd   slapd/domain    string  example.org&lt;br /&gt;
## Organization name: example.org [note: i used the same name for simplicity]&lt;br /&gt;
##: slapd   shared/organization     string  example.org&lt;br /&gt;
## Databases backend to use: HDB, instead of BDB&lt;br /&gt;
##: slapd   slapd/backend   select  HDB&lt;br /&gt;
## Do you want the database to be removed when slapd is purge: Yes&lt;br /&gt;
##: slapd   slapd/purge_database    boolean true&lt;br /&gt;
## Move old database: Yes&lt;br /&gt;
##: slapd   slapd/move_old_database boolean true&lt;br /&gt;
## Admin password: [your pwd]&lt;br /&gt;
##: slapd   slapd/password1 password&lt;br /&gt;
##: [I'm not sure about the debconf-get-selection line here.  There are 5 different password lines!]&lt;br /&gt;
## Confirm password: [your pwd]&lt;br /&gt;
##: slapd   slapd/password2 password&lt;br /&gt;
## Allow LDAPv2 protocol: No&lt;br /&gt;
##: slapd   slapd/allow_ldap_v2     boolean false&lt;br /&gt;
#: Checkpoint:  If you are successful, you should see as output:&lt;br /&gt;
#:: ''Stopping OpenLDAP: slapd.''&lt;br /&gt;
#::  ''Moving old database directory to /var/backups:''&lt;br /&gt;
#::  ''- directory unknown... done.''&lt;br /&gt;
#::  ''Creating initial slapd configuration... done.''&lt;br /&gt;
#::  ''Creating initial LDAP directory... done.''&lt;br /&gt;
#:: ''* Reloading AppArmor profiles ''&lt;br /&gt;
#::  ''...                                               [ OK ]'' &lt;br /&gt;
#::  ''Starting OpenLDAP: slapd.''&lt;br /&gt;
# If you haven't done so already, please copy kerberos.schema from your kerberos trunk into /etc/ldap/schema: &amp;lt;code&amp;gt;sudo cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
# To restrict access to the local machine, &amp;lt;code&amp;gt;sudo vim /etc/default/slapd&amp;lt;/code&amp;gt;, search for SLAPD_SERVICES and set it to: &amp;lt;pre&amp;gt;SLAPD_SERVICES=&amp;quot;ldapi:///&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Reconfigure your kerberos&lt;br /&gt;
#* Navigate to kerberos src&lt;br /&gt;
#* &amp;lt;code&amp;gt;make distclean&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;util/reconf&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;./configure --with-ldap&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo make install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 5. Kerb Schema Operations ==&lt;br /&gt;
Loosely followed [http://ajuda.ubuntu.cat/9.04/serverguide/kerberos-ldap.html Ubuntu Guide] and [http://web.mit.edu/kerberos/krb5-1.7/krb5-1.7/doc/krb5-admin.html#Configuring-Kerberos-with-OpenLDAP-back_002dend Kerberos V5 System Admin Guide]&lt;br /&gt;
&lt;br /&gt;
# You have not done so already, locate the kerberos.schema.  [[kerberos.schema]] which should be in /etc/ldap/schema/kerberos.schema.  If it is not there, please copy it there from your kerberos trunk: &amp;lt;code&amp;gt;cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Checkpoint: Make sure there is a list of different schemas in /etc/ldap/schema.  Such as&lt;br /&gt;
#:* core.schema&lt;br /&gt;
#:* inetorgperson.schema&lt;br /&gt;
#:* kerberos.schema&lt;br /&gt;
#:* misc.schema&lt;br /&gt;
#:* openldap.schema&lt;br /&gt;
# Make this [[schema_convert.conf]] at /tmp/schema_convert.conf.  Note! This is different from the schema_convert.conf in the Ubuntu Guide.&lt;br /&gt;
# Make the directory to hold output: &amp;lt;code&amp;gt;mkdir /tmp/ldif_output &amp;lt;/code&amp;gt;&lt;br /&gt;
# Convert schema --&amp;gt; LDIF with slaptest: &amp;lt;code&amp;gt;slaptest -f tmp/schema_convert.conf -F /tmp/ldif_output&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: &amp;quot;config file testing succeeded&amp;quot;&lt;br /&gt;
#: Checkpoint: If you &amp;lt;code&amp;gt;sudo ls /tmp/ldif_output/cn\=config/cn\=schema&amp;lt;/code&amp;gt;, you should see:&lt;br /&gt;
#:: cn={0}core.ldif       &lt;br /&gt;
#:: cn={1}corba.ldif          &lt;br /&gt;
#:: cn={2}cosine.ldif   &lt;br /&gt;
#:: cn={3}duaconf.ldif  &lt;br /&gt;
#:: cn={4}inetorgperson.ldif&lt;br /&gt;
#:: cn={5}java.ldif	&lt;br /&gt;
#:: cn={6}kerberos.ldif&lt;br /&gt;
#:: cn={7}misc.ldif&lt;br /&gt;
#:: cn={8}openldap.ldif&lt;br /&gt;
#:: cn={9}nis.ldif&lt;br /&gt;
# Need to modify kerberos.ldif. &lt;br /&gt;
#* Find which number kerberos.ldif is listed as: &amp;lt;code&amp;gt;sudo ls /tmp/ldif_output/cn\=config/cn\=schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Edit it: &amp;lt;code&amp;gt; sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn={6}kerberos.ldif&amp;lt;/code&amp;gt;&lt;br /&gt;
#** change ''dn: cn={6}kerberos'' into ''dn: cn=kerberos,cn=schema,cn=config''&lt;br /&gt;
#** change ''cn: {6}kerberos'' into ''cn: kerberos''&lt;br /&gt;
#** Delete the bottom lines: from ''structuralObjectClasses: olcSchemaConfig'' to ''modifyTimestamp: 20090811205313Z''&lt;br /&gt;
# load new schema: &amp;lt;code&amp;gt;sudo ldapadd -x -D cn=admin,cn=config -W -f /tmp/ldif_output/cn\=config/cn\=schema/cn\={6}kerberos.ldif -H ldapi:///&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: ''adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
== 6. Starting ==&lt;br /&gt;
* Create your database with kdb5_ldap_util instead of kdb5_util:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -W -H ldapi:/// create  -s&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Initializing database for realm 'EXAMPLE.ORG'&lt;br /&gt;
You will be prompted for the database Master Password.&lt;br /&gt;
It is important that you NOT FORGET this password.&lt;br /&gt;
Enter KDC database master key: &lt;br /&gt;
Re-enter KDC database master key to verify: &lt;br /&gt;
&lt;br /&gt;
Kerberos container is missing. Creating now...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Stash the password:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -W -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&amp;lt;/code&amp;gt;&lt;br /&gt;
*: Checkpoint: If it works, you can do:&lt;br /&gt;
*:* &amp;lt;code&amp;gt;kadmin.local&amp;lt;/code&amp;gt;, try &amp;lt;code&amp;gt;listprincs&amp;lt;/code&amp;gt;, quit by typing &amp;lt;code&amp;gt;quit&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;krb5kdc&amp;lt;/code&amp;gt; &lt;br /&gt;
*: Checkpoint: &amp;lt;code&amp;gt;ps -ef | grep krb5kdc&amp;lt;/code&amp;gt; should show it running&lt;br /&gt;
&lt;br /&gt;
* Command to destroy kdb5_ldap_util: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -W -H ldapi:/// destroy&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Scratch Pad ==&lt;br /&gt;
&lt;br /&gt;
===Assume People have done===&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
&lt;br /&gt;
   16  make distclean&lt;br /&gt;
&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
&lt;br /&gt;
   19  make&lt;br /&gt;
&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
&lt;br /&gt;
    8  mkdir /tmp/krb5kdc (or should it be /tmp/sandbox/krb5kdc)?&lt;br /&gt;
&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
&lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
&lt;br /&gt;
   29  krb5kdc -n&lt;br /&gt;
&lt;br /&gt;
== Errors ==&lt;br /&gt;
* sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
*: ERROR: ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)&lt;br /&gt;
*: SOLUTION: Make sure that you have slapd started, and make sure that the -H ldapi:/// is consistent.&lt;br /&gt;
*: sudo /usr/sbin/slapd -H ldap:/// -g openldap -u openldap -F /etc/ldap/slapd.d/&lt;br /&gt;
*: openldap  5716     1  0 11:55 ?        00:00:00 /usr/sbin/slapd -h ldap:/// ldapi:/// -g openldap -u openldap -F /etc/ldap/slapd.d/&lt;br /&gt;
&lt;br /&gt;
** sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldap:///&lt;br /&gt;
**:Output: adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openldap 11434     1  0 12:06 ?        00:00:00 /usr/sbin/slapd -h ldap:/// -g openldap -u openldap -F /etc/ldap/slapd.d/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -h ldap:///&lt;br /&gt;
*: ERROR: Could not create LDAP session handle for URI=ldap://ldap:%2F%2F%2F (-9): Bad parameter to an ldap routine&lt;br /&gt;
*: SOLUTION: Change &amp;quot;-h&amp;quot; to &amp;quot;-H&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
haoqili@reach-my-dream:~/trunk/src$ ps -ef | grep sla&lt;br /&gt;
haoqili  12228  4371  0 12:26 pts/0    00:00:00 grep sla&lt;br /&gt;
haoqili@reach-my-dream:~/trunk/src$ sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldap:///&lt;br /&gt;
ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)&lt;br /&gt;
haoqili@reach-my-dream:~/trunk/src$ sudo /usr/sbin/slapd -h ldap:/// ldapi:/// -g openldap -u openldap -F /etc/ldap/slapd.d/ &lt;br /&gt;
haoqili@reach-my-dream:~/trunk/src$ sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldap:///&lt;br /&gt;
adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;&lt;br /&gt;
ldap_add: Other (e.g., implementation specific) error (80)&lt;br /&gt;
	additional info: olcAttributeTypes: Duplicate attributeType: &amp;quot;2.16.840.1.113719.1.301.4.1.1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Haoqili</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2127</id>
		<title>LDAP on Kerberos</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2127"/>
				<updated>2009-08-18T19:20:36Z</updated>
		
		<summary type="html">&lt;p&gt;Haoqili: /* Errors */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==About==&lt;br /&gt;
A guide to set up ldap backend for kerberos.&lt;br /&gt;
&lt;br /&gt;
== To Do ==&lt;br /&gt;
* Slapd in sandbox, not /etc&lt;br /&gt;
* Simpler Domain names D.COM, R.COM&lt;br /&gt;
* Different domain names&lt;br /&gt;
* Figure out required schemas&lt;br /&gt;
* Figure out: In Kerb Schema Operations, I can do &amp;quot;or update slapd.conf with kerb schema or ldif&amp;quot; in some ubuntu&lt;br /&gt;
* Play around to get minimum set of requirement&lt;br /&gt;
&lt;br /&gt;
* update tree too, got a fix&lt;br /&gt;
&lt;br /&gt;
== 0. Sample code to follow ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
    8  mkdir krb5kdc&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
   16  make distclean&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
   19  make&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
   29  krb5kdc -n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 1. Information about the system ==&lt;br /&gt;
- packages&lt;br /&gt;
* Version of ubuntu&lt;br /&gt;
       lsb_release -a&lt;br /&gt;
       No LSB modules are available.&lt;br /&gt;
       Distributor ID:        Ubuntu&lt;br /&gt;
       Description:        Ubuntu 9.04&lt;br /&gt;
       Release:        9.04&lt;br /&gt;
       Codename:        jaunty&lt;br /&gt;
* Version of slapd: 2.4.15 (Mar 19 2009)&lt;br /&gt;
       slapd -V&lt;br /&gt;
       @(#) $OpenLDAP: slapd 2.4.15 (Mar 19 2009 10:08:25) $&lt;br /&gt;
       buildd@palmer:/build/buildd/openldap-2.4.15/debian/build/servers/slapd&lt;br /&gt;
&lt;br /&gt;
* Version of ldap-utils: 2.4.15&lt;br /&gt;
       dpkg -l ldap-utils&lt;br /&gt;
&lt;br /&gt;
== 2. Extract krb conf files ==&lt;br /&gt;
* It is crucial to have correct, consistent domain names.  You must have the dbmodules in krb5.conf.&lt;br /&gt;
* Save [[krb5.conf]]&lt;br /&gt;
* Save [[kdc.conf]]&lt;br /&gt;
* Save [[kadm5.acl]]&lt;br /&gt;
&lt;br /&gt;
== 3. Env and Setup==&lt;br /&gt;
You need to export these lines into your env. Based on where you saved these files.&lt;br /&gt;
&lt;br /&gt;
*export KRB5_CONFIG=/tmp/sandbox/krb5.conf&lt;br /&gt;
&lt;br /&gt;
*export KRB5_KDC_PROFILE=/tmp/sandbox/kdc.conf&lt;br /&gt;
&lt;br /&gt;
* make a krb5kdc folder: mkdir /tmp/sandbox/krb5kdc)&lt;br /&gt;
&lt;br /&gt;
Whatever you do, be consistent&lt;br /&gt;
&lt;br /&gt;
== 4. Build kerb. config ==&lt;br /&gt;
&lt;br /&gt;
# Install Packages:&lt;br /&gt;
#* &amp;lt;code&amp;gt; sudo apt-get install slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
#* for ldapsearch: &amp;lt;code&amp;gt;sudo apt-get install ldap-utils&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo apt-get install libldap2-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
# Set the &amp;quot;domain&amp;quot; of your LDAP server with &amp;lt;code&amp;gt;sudo dpkg-reconfigure slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
##: Indented are the debconf-get-selection lines&lt;br /&gt;
## Omit OpenLDAP server configuration: No&lt;br /&gt;
##: slapd   slapd/no_configuration  boolean false&lt;br /&gt;
## DNS domain name: example.org&lt;br /&gt;
##: slapd   slapd/domain    string  example.org&lt;br /&gt;
## Organization name: example.org [note: i used the same name for simplicity]&lt;br /&gt;
##: slapd   shared/organization     string  example.org&lt;br /&gt;
## Databases backend to use: HDB, instead of BDB&lt;br /&gt;
##: slapd   slapd/backend   select  HDB&lt;br /&gt;
## Do you want the database to be removed when slapd is purge: Yes&lt;br /&gt;
##: slapd   slapd/purge_database    boolean true&lt;br /&gt;
## Move old database: Yes&lt;br /&gt;
##: slapd   slapd/move_old_database boolean true&lt;br /&gt;
## Admin password: [your pwd]&lt;br /&gt;
##: slapd   slapd/password1 password&lt;br /&gt;
##: [I'm not sure about the debconf-get-selection line here.  There are 5 different password lines!]&lt;br /&gt;
## Confirm password: [your pwd]&lt;br /&gt;
##: slapd   slapd/password2 password&lt;br /&gt;
## Allow LDAPv2 protocol: No&lt;br /&gt;
##: slapd   slapd/allow_ldap_v2     boolean false&lt;br /&gt;
#: Checkpoint:  If you are successful, you should see as output:&lt;br /&gt;
#:: ''Stopping OpenLDAP: slapd.''&lt;br /&gt;
#::  ''Moving old database directory to /var/backups:''&lt;br /&gt;
#::  ''- directory unknown... done.''&lt;br /&gt;
#::  ''Creating initial slapd configuration... done.''&lt;br /&gt;
#::  ''Creating initial LDAP directory... done.''&lt;br /&gt;
#:: ''* Reloading AppArmor profiles ''&lt;br /&gt;
#::  ''...                                               [ OK ]'' &lt;br /&gt;
#::  ''Starting OpenLDAP: slapd.''&lt;br /&gt;
# If you haven't done so already, please copy kerberos.schema from your kerberos trunk into /etc/ldap/schema: &amp;lt;code&amp;gt;sudo cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
# To restrict access to the local machine, &amp;lt;code&amp;gt;sudo vim /etc/default/slapd&amp;lt;/code&amp;gt;, search for SLAPD_SERVICES and set it to: &amp;lt;pre&amp;gt;SLAPD_SERVICES=&amp;quot;ldapi:///&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Reconfigure your kerberos&lt;br /&gt;
#* Navigate to kerberos src&lt;br /&gt;
#* &amp;lt;code&amp;gt;make distclean&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;util/reconf&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;./configure --with-ldap&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo make install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 5. Kerb Schema Operations ==&lt;br /&gt;
Loosely followed [http://ajuda.ubuntu.cat/9.04/serverguide/kerberos-ldap.html Ubuntu Guide] and [http://web.mit.edu/kerberos/krb5-1.7/krb5-1.7/doc/krb5-admin.html#Configuring-Kerberos-with-OpenLDAP-back_002dend Kerberos V5 System Admin Guide]&lt;br /&gt;
&lt;br /&gt;
# You have not done so already, locate the kerberos.schema.  [[kerberos.schema]] which should be in /etc/ldap/schema/kerberos.schema.  If it is not there, please copy it there from your kerberos trunk: &amp;lt;code&amp;gt;cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Checkpoint: Make sure there is a list of different schemas in /etc/ldap/schema.  Such as&lt;br /&gt;
#:* core.schema&lt;br /&gt;
#:* inetorgperson.schema&lt;br /&gt;
#:* kerberos.schema&lt;br /&gt;
#:* misc.schema&lt;br /&gt;
#:* openldap.schema&lt;br /&gt;
# Make this [[schema_convert.conf]] at /tmp/schema_convert.conf.  Note! This is different from the schema_convert.conf in the Ubuntu Guide.&lt;br /&gt;
# Make the directory to hold output: &amp;lt;code&amp;gt;mkdir /tmp/ldif_output &amp;lt;/code&amp;gt;&lt;br /&gt;
# Convert schema --&amp;gt; LDIF with slaptest: &amp;lt;code&amp;gt;slaptest -f tmp/schema_convert.conf -F /tmp/ldif_output&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: &amp;quot;config file testing succeeded&amp;quot;&lt;br /&gt;
#: Checkpoint: If you &amp;lt;code&amp;gt;sudo ls /tmp/ldif_output/cn\=config/cn\=schema&amp;lt;/code&amp;gt;, you should see:&lt;br /&gt;
#:: cn={0}core.ldif       &lt;br /&gt;
#:: cn={1}corba.ldif          &lt;br /&gt;
#:: cn={2}cosine.ldif   &lt;br /&gt;
#:: cn={3}duaconf.ldif  &lt;br /&gt;
#:: cn={4}inetorgperson.ldif&lt;br /&gt;
#:: cn={5}java.ldif	&lt;br /&gt;
#:: cn={6}kerberos.ldif&lt;br /&gt;
#:: cn={7}misc.ldif&lt;br /&gt;
#:: cn={8}openldap.ldif&lt;br /&gt;
#:: cn={9}nis.ldif&lt;br /&gt;
# Need to modify kerberos.ldif. &lt;br /&gt;
#* Find which number kerberos.ldif is listed as: &amp;lt;code&amp;gt;sudo ls /tmp/ldif_output/cn\=config/cn\=schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Edit it: &amp;lt;code&amp;gt; sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn={6}kerberos.ldif&amp;lt;/code&amp;gt;&lt;br /&gt;
#** change ''dn: cn={6}kerberos'' into ''dn: cn=kerberos,cn=schema,cn=config''&lt;br /&gt;
#** change ''cn: {6}kerberos'' into ''cn: kerberos''&lt;br /&gt;
#** Delete the bottom lines: from ''structuralObjectClasses: olcSchemaConfig'' to ''modifyTimestamp: 20090811205313Z''&lt;br /&gt;
# load new schema: &amp;lt;code&amp;gt;sudo ldapadd -x -D cn=admin,cn=config -W -f /tmp/ldif_output/cn\=config/cn\=schema/cn\={6}kerberos.ldif -H ldapi:///&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: ''adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
== 6. Starting ==&lt;br /&gt;
* Create your database with kdb5_ldap_util instead of kdb5_util:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -W -H ldapi:/// create  -s&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Initializing database for realm 'EXAMPLE.ORG'&lt;br /&gt;
You will be prompted for the database Master Password.&lt;br /&gt;
It is important that you NOT FORGET this password.&lt;br /&gt;
Enter KDC database master key: &lt;br /&gt;
Re-enter KDC database master key to verify: &lt;br /&gt;
&lt;br /&gt;
Kerberos container is missing. Creating now...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Stash the password:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -W -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&amp;lt;/code&amp;gt;&lt;br /&gt;
*: Checkpoint: If it works, you can do:&lt;br /&gt;
*:* &amp;lt;code&amp;gt;kadmin.local&amp;lt;/code&amp;gt;, try &amp;lt;code&amp;gt;listprincs&amp;lt;/code&amp;gt;, quit by typing &amp;lt;code&amp;gt;quit&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;krb5kdc&amp;lt;/code&amp;gt; &lt;br /&gt;
*: Checkpoint: &amp;lt;code&amp;gt;ps -ef | grep krb5kdc&amp;lt;/code&amp;gt; should show it running&lt;br /&gt;
&lt;br /&gt;
* Command to destroy kdb5_ldap_util: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -W -H ldapi:/// destroy&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Scratch Pad ==&lt;br /&gt;
&lt;br /&gt;
===Assume People have done===&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
&lt;br /&gt;
   16  make distclean&lt;br /&gt;
&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
&lt;br /&gt;
   19  make&lt;br /&gt;
&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
&lt;br /&gt;
    8  mkdir /tmp/krb5kdc (or should it be /tmp/sandbox/krb5kdc)?&lt;br /&gt;
&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
&lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
&lt;br /&gt;
   29  krb5kdc -n&lt;br /&gt;
&lt;br /&gt;
== Errors ==&lt;br /&gt;
* sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
*: ERROR: ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)&lt;br /&gt;
*: SOLUTION: Make sure that you have slapd started, and make sure that the -H ldapi:/// is consistent.&lt;br /&gt;
*: sudo /usr/sbin/slapd -H ldap:/// -g openldap -u openldap -F /etc/ldap/slapd.d/&lt;br /&gt;
*: openldap  5716     1  0 11:55 ?        00:00:00 /usr/sbin/slapd -h ldap:/// ldapi:/// -g openldap -u openldap -F /etc/ldap/slapd.d/&lt;br /&gt;
&lt;br /&gt;
** sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldap:///&lt;br /&gt;
**:Output: adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openldap 11434     1  0 12:06 ?        00:00:00 /usr/sbin/slapd -h ldap:/// -g openldap -u openldap -F /etc/ldap/slapd.d/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -h ldap:///&lt;br /&gt;
*: ERROR: Could not create LDAP session handle for URI=ldap://ldap:%2F%2F%2F (-9): Bad parameter to an ldap routine&lt;br /&gt;
*: SOLUTION: Change &amp;quot;-h&amp;quot; to &amp;quot;-H&amp;quot;&lt;/div&gt;</summary>
		<author><name>Haoqili</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2126</id>
		<title>LDAP on Kerberos</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2126"/>
				<updated>2009-08-18T19:16:41Z</updated>
		
		<summary type="html">&lt;p&gt;Haoqili: /* Errors */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==About==&lt;br /&gt;
A guide to set up ldap backend for kerberos.&lt;br /&gt;
&lt;br /&gt;
== To Do ==&lt;br /&gt;
* Slapd in sandbox, not /etc&lt;br /&gt;
* Simpler Domain names D.COM, R.COM&lt;br /&gt;
* Different domain names&lt;br /&gt;
* Figure out required schemas&lt;br /&gt;
* Figure out: In Kerb Schema Operations, I can do &amp;quot;or update slapd.conf with kerb schema or ldif&amp;quot; in some ubuntu&lt;br /&gt;
* Play around to get minimum set of requirement&lt;br /&gt;
&lt;br /&gt;
* update tree too, got a fix&lt;br /&gt;
&lt;br /&gt;
== 0. Sample code to follow ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
    8  mkdir krb5kdc&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
   16  make distclean&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
   19  make&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
   29  krb5kdc -n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 1. Information about the system ==&lt;br /&gt;
- packages&lt;br /&gt;
* Version of ubuntu&lt;br /&gt;
       lsb_release -a&lt;br /&gt;
       No LSB modules are available.&lt;br /&gt;
       Distributor ID:        Ubuntu&lt;br /&gt;
       Description:        Ubuntu 9.04&lt;br /&gt;
       Release:        9.04&lt;br /&gt;
       Codename:        jaunty&lt;br /&gt;
* Version of slapd: 2.4.15 (Mar 19 2009)&lt;br /&gt;
       slapd -V&lt;br /&gt;
       @(#) $OpenLDAP: slapd 2.4.15 (Mar 19 2009 10:08:25) $&lt;br /&gt;
       buildd@palmer:/build/buildd/openldap-2.4.15/debian/build/servers/slapd&lt;br /&gt;
&lt;br /&gt;
* Version of ldap-utils: 2.4.15&lt;br /&gt;
       dpkg -l ldap-utils&lt;br /&gt;
&lt;br /&gt;
== 2. Extract krb conf files ==&lt;br /&gt;
* It is crucial to have correct, consistent domain names.  You must have the dbmodules in krb5.conf.&lt;br /&gt;
* Save [[krb5.conf]]&lt;br /&gt;
* Save [[kdc.conf]]&lt;br /&gt;
* Save [[kadm5.acl]]&lt;br /&gt;
&lt;br /&gt;
== 3. Env and Setup==&lt;br /&gt;
You need to export these lines into your env. Based on where you saved these files.&lt;br /&gt;
&lt;br /&gt;
*export KRB5_CONFIG=/tmp/sandbox/krb5.conf&lt;br /&gt;
&lt;br /&gt;
*export KRB5_KDC_PROFILE=/tmp/sandbox/kdc.conf&lt;br /&gt;
&lt;br /&gt;
* make a krb5kdc folder: mkdir /tmp/sandbox/krb5kdc)&lt;br /&gt;
&lt;br /&gt;
Whatever you do, be consistent&lt;br /&gt;
&lt;br /&gt;
== 4. Build kerb. config ==&lt;br /&gt;
&lt;br /&gt;
# Install Packages:&lt;br /&gt;
#* &amp;lt;code&amp;gt; sudo apt-get install slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
#* for ldapsearch: &amp;lt;code&amp;gt;sudo apt-get install ldap-utils&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo apt-get install libldap2-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
# Set the &amp;quot;domain&amp;quot; of your LDAP server with &amp;lt;code&amp;gt;sudo dpkg-reconfigure slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
##: Indented are the debconf-get-selection lines&lt;br /&gt;
## Omit OpenLDAP server configuration: No&lt;br /&gt;
##: slapd   slapd/no_configuration  boolean false&lt;br /&gt;
## DNS domain name: example.org&lt;br /&gt;
##: slapd   slapd/domain    string  example.org&lt;br /&gt;
## Organization name: example.org [note: i used the same name for simplicity]&lt;br /&gt;
##: slapd   shared/organization     string  example.org&lt;br /&gt;
## Databases backend to use: HDB, instead of BDB&lt;br /&gt;
##: slapd   slapd/backend   select  HDB&lt;br /&gt;
## Do you want the database to be removed when slapd is purge: Yes&lt;br /&gt;
##: slapd   slapd/purge_database    boolean true&lt;br /&gt;
## Move old database: Yes&lt;br /&gt;
##: slapd   slapd/move_old_database boolean true&lt;br /&gt;
## Admin password: [your pwd]&lt;br /&gt;
##: slapd   slapd/password1 password&lt;br /&gt;
##: [I'm not sure about the debconf-get-selection line here.  There are 5 different password lines!]&lt;br /&gt;
## Confirm password: [your pwd]&lt;br /&gt;
##: slapd   slapd/password2 password&lt;br /&gt;
## Allow LDAPv2 protocol: No&lt;br /&gt;
##: slapd   slapd/allow_ldap_v2     boolean false&lt;br /&gt;
#: Checkpoint:  If you are successful, you should see as output:&lt;br /&gt;
#:: ''Stopping OpenLDAP: slapd.''&lt;br /&gt;
#::  ''Moving old database directory to /var/backups:''&lt;br /&gt;
#::  ''- directory unknown... done.''&lt;br /&gt;
#::  ''Creating initial slapd configuration... done.''&lt;br /&gt;
#::  ''Creating initial LDAP directory... done.''&lt;br /&gt;
#:: ''* Reloading AppArmor profiles ''&lt;br /&gt;
#::  ''...                                               [ OK ]'' &lt;br /&gt;
#::  ''Starting OpenLDAP: slapd.''&lt;br /&gt;
# If you haven't done so already, please copy kerberos.schema from your kerberos trunk into /etc/ldap/schema: &amp;lt;code&amp;gt;sudo cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
# To restrict access to the local machine, &amp;lt;code&amp;gt;sudo vim /etc/default/slapd&amp;lt;/code&amp;gt;, search for SLAPD_SERVICES and set it to: &amp;lt;pre&amp;gt;SLAPD_SERVICES=&amp;quot;ldapi:///&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Reconfigure your kerberos&lt;br /&gt;
#* Navigate to kerberos src&lt;br /&gt;
#* &amp;lt;code&amp;gt;make distclean&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;util/reconf&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;./configure --with-ldap&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo make install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 5. Kerb Schema Operations ==&lt;br /&gt;
Loosely followed [http://ajuda.ubuntu.cat/9.04/serverguide/kerberos-ldap.html Ubuntu Guide] and [http://web.mit.edu/kerberos/krb5-1.7/krb5-1.7/doc/krb5-admin.html#Configuring-Kerberos-with-OpenLDAP-back_002dend Kerberos V5 System Admin Guide]&lt;br /&gt;
&lt;br /&gt;
# You have not done so already, locate the kerberos.schema.  [[kerberos.schema]] which should be in /etc/ldap/schema/kerberos.schema.  If it is not there, please copy it there from your kerberos trunk: &amp;lt;code&amp;gt;cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Checkpoint: Make sure there is a list of different schemas in /etc/ldap/schema.  Such as&lt;br /&gt;
#:* core.schema&lt;br /&gt;
#:* inetorgperson.schema&lt;br /&gt;
#:* kerberos.schema&lt;br /&gt;
#:* misc.schema&lt;br /&gt;
#:* openldap.schema&lt;br /&gt;
# Make this [[schema_convert.conf]] at /tmp/schema_convert.conf.  Note! This is different from the schema_convert.conf in the Ubuntu Guide.&lt;br /&gt;
# Make the directory to hold output: &amp;lt;code&amp;gt;mkdir /tmp/ldif_output &amp;lt;/code&amp;gt;&lt;br /&gt;
# Convert schema --&amp;gt; LDIF with slaptest: &amp;lt;code&amp;gt;slaptest -f tmp/schema_convert.conf -F /tmp/ldif_output&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: &amp;quot;config file testing succeeded&amp;quot;&lt;br /&gt;
#: Checkpoint: If you &amp;lt;code&amp;gt;sudo ls /tmp/ldif_output/cn\=config/cn\=schema&amp;lt;/code&amp;gt;, you should see:&lt;br /&gt;
#:: cn={0}core.ldif       &lt;br /&gt;
#:: cn={1}corba.ldif          &lt;br /&gt;
#:: cn={2}cosine.ldif   &lt;br /&gt;
#:: cn={3}duaconf.ldif  &lt;br /&gt;
#:: cn={4}inetorgperson.ldif&lt;br /&gt;
#:: cn={5}java.ldif	&lt;br /&gt;
#:: cn={6}kerberos.ldif&lt;br /&gt;
#:: cn={7}misc.ldif&lt;br /&gt;
#:: cn={8}openldap.ldif&lt;br /&gt;
#:: cn={9}nis.ldif&lt;br /&gt;
# Need to modify kerberos.ldif. &lt;br /&gt;
#* Find which number kerberos.ldif is listed as: &amp;lt;code&amp;gt;sudo ls /tmp/ldif_output/cn\=config/cn\=schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Edit it: &amp;lt;code&amp;gt; sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn={6}kerberos.ldif&amp;lt;/code&amp;gt;&lt;br /&gt;
#** change ''dn: cn={6}kerberos'' into ''dn: cn=kerberos,cn=schema,cn=config''&lt;br /&gt;
#** change ''cn: {6}kerberos'' into ''cn: kerberos''&lt;br /&gt;
#** Delete the bottom lines: from ''structuralObjectClasses: olcSchemaConfig'' to ''modifyTimestamp: 20090811205313Z''&lt;br /&gt;
# load new schema: &amp;lt;code&amp;gt;sudo ldapadd -x -D cn=admin,cn=config -W -f /tmp/ldif_output/cn\=config/cn\=schema/cn\={6}kerberos.ldif -H ldapi:///&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: ''adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
== 6. Starting ==&lt;br /&gt;
* Create your database with kdb5_ldap_util instead of kdb5_util:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -W -H ldapi:/// create  -s&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Initializing database for realm 'EXAMPLE.ORG'&lt;br /&gt;
You will be prompted for the database Master Password.&lt;br /&gt;
It is important that you NOT FORGET this password.&lt;br /&gt;
Enter KDC database master key: &lt;br /&gt;
Re-enter KDC database master key to verify: &lt;br /&gt;
&lt;br /&gt;
Kerberos container is missing. Creating now...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Stash the password:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -W -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&amp;lt;/code&amp;gt;&lt;br /&gt;
*: Checkpoint: If it works, you can do:&lt;br /&gt;
*:* &amp;lt;code&amp;gt;kadmin.local&amp;lt;/code&amp;gt;, try &amp;lt;code&amp;gt;listprincs&amp;lt;/code&amp;gt;, quit by typing &amp;lt;code&amp;gt;quit&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;krb5kdc&amp;lt;/code&amp;gt; &lt;br /&gt;
*: Checkpoint: &amp;lt;code&amp;gt;ps -ef | grep krb5kdc&amp;lt;/code&amp;gt; should show it running&lt;br /&gt;
&lt;br /&gt;
* Command to destroy kdb5_ldap_util: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -W -H ldapi:/// destroy&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Scratch Pad ==&lt;br /&gt;
&lt;br /&gt;
===Assume People have done===&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
&lt;br /&gt;
   16  make distclean&lt;br /&gt;
&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
&lt;br /&gt;
   19  make&lt;br /&gt;
&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
&lt;br /&gt;
    8  mkdir /tmp/krb5kdc (or should it be /tmp/sandbox/krb5kdc)?&lt;br /&gt;
&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
&lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
&lt;br /&gt;
   29  krb5kdc -n&lt;br /&gt;
&lt;br /&gt;
== Errors ==&lt;br /&gt;
* sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
*: ERROR: ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)&lt;br /&gt;
*: SOLUTION: Make sure that you have slapd started, and make sure that the -H ldapi:/// is consistent.&lt;br /&gt;
*: sudo /usr/sbin/slapd -H ldap:/// -g openldap -u openldap -F /etc/ldap/slapd.d/&lt;br /&gt;
** sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldap:///&lt;br /&gt;
**:Output: adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openldap 11434     1  0 12:06 ?        00:00:00 /usr/sbin/slapd -h ldap:/// -g openldap -u openldap -F /etc/ldap/slapd.d/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -h ldap:///&lt;br /&gt;
*: ERROR: Could not create LDAP session handle for URI=ldap://ldap:%2F%2F%2F (-9): Bad parameter to an ldap routine&lt;br /&gt;
*: SOLUTION: Change &amp;quot;-h&amp;quot; to &amp;quot;-H&amp;quot;&lt;/div&gt;</summary>
		<author><name>Haoqili</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2125</id>
		<title>LDAP on Kerberos</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2125"/>
				<updated>2009-08-18T19:07:21Z</updated>
		
		<summary type="html">&lt;p&gt;Haoqili: /* Errors */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==About==&lt;br /&gt;
A guide to set up ldap backend for kerberos.&lt;br /&gt;
&lt;br /&gt;
== To Do ==&lt;br /&gt;
* Slapd in sandbox, not /etc&lt;br /&gt;
* Simpler Domain names D.COM, R.COM&lt;br /&gt;
* Different domain names&lt;br /&gt;
* Figure out required schemas&lt;br /&gt;
* Figure out: In Kerb Schema Operations, I can do &amp;quot;or update slapd.conf with kerb schema or ldif&amp;quot; in some ubuntu&lt;br /&gt;
* Play around to get minimum set of requirement&lt;br /&gt;
&lt;br /&gt;
* update tree too, got a fix&lt;br /&gt;
&lt;br /&gt;
== 0. Sample code to follow ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
    8  mkdir krb5kdc&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
   16  make distclean&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
   19  make&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
   29  krb5kdc -n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 1. Information about the system ==&lt;br /&gt;
- packages&lt;br /&gt;
* Version of ubuntu&lt;br /&gt;
       lsb_release -a&lt;br /&gt;
       No LSB modules are available.&lt;br /&gt;
       Distributor ID:        Ubuntu&lt;br /&gt;
       Description:        Ubuntu 9.04&lt;br /&gt;
       Release:        9.04&lt;br /&gt;
       Codename:        jaunty&lt;br /&gt;
* Version of slapd: 2.4.15 (Mar 19 2009)&lt;br /&gt;
       slapd -V&lt;br /&gt;
       @(#) $OpenLDAP: slapd 2.4.15 (Mar 19 2009 10:08:25) $&lt;br /&gt;
       buildd@palmer:/build/buildd/openldap-2.4.15/debian/build/servers/slapd&lt;br /&gt;
&lt;br /&gt;
* Version of ldap-utils: 2.4.15&lt;br /&gt;
       dpkg -l ldap-utils&lt;br /&gt;
&lt;br /&gt;
== 2. Extract krb conf files ==&lt;br /&gt;
* It is crucial to have correct, consistent domain names.  You must have the dbmodules in krb5.conf.&lt;br /&gt;
* Save [[krb5.conf]]&lt;br /&gt;
* Save [[kdc.conf]]&lt;br /&gt;
* Save [[kadm5.acl]]&lt;br /&gt;
&lt;br /&gt;
== 3. Env and Setup==&lt;br /&gt;
You need to export these lines into your env. Based on where you saved these files.&lt;br /&gt;
&lt;br /&gt;
*export KRB5_CONFIG=/tmp/sandbox/krb5.conf&lt;br /&gt;
&lt;br /&gt;
*export KRB5_KDC_PROFILE=/tmp/sandbox/kdc.conf&lt;br /&gt;
&lt;br /&gt;
* make a krb5kdc folder: mkdir /tmp/sandbox/krb5kdc)&lt;br /&gt;
&lt;br /&gt;
Whatever you do, be consistent&lt;br /&gt;
&lt;br /&gt;
== 4. Build kerb. config ==&lt;br /&gt;
&lt;br /&gt;
# Install Packages:&lt;br /&gt;
#* &amp;lt;code&amp;gt; sudo apt-get install slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
#* for ldapsearch: &amp;lt;code&amp;gt;sudo apt-get install ldap-utils&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo apt-get install libldap2-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
# Set the &amp;quot;domain&amp;quot; of your LDAP server with &amp;lt;code&amp;gt;sudo dpkg-reconfigure slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
##: Indented are the debconf-get-selection lines&lt;br /&gt;
## Omit OpenLDAP server configuration: No&lt;br /&gt;
##: slapd   slapd/no_configuration  boolean false&lt;br /&gt;
## DNS domain name: example.org&lt;br /&gt;
##: slapd   slapd/domain    string  example.org&lt;br /&gt;
## Organization name: example.org [note: i used the same name for simplicity]&lt;br /&gt;
##: slapd   shared/organization     string  example.org&lt;br /&gt;
## Databases backend to use: HDB, instead of BDB&lt;br /&gt;
##: slapd   slapd/backend   select  HDB&lt;br /&gt;
## Do you want the database to be removed when slapd is purge: Yes&lt;br /&gt;
##: slapd   slapd/purge_database    boolean true&lt;br /&gt;
## Move old database: Yes&lt;br /&gt;
##: slapd   slapd/move_old_database boolean true&lt;br /&gt;
## Admin password: [your pwd]&lt;br /&gt;
##: slapd   slapd/password1 password&lt;br /&gt;
##: [I'm not sure about the debconf-get-selection line here.  There are 5 different password lines!]&lt;br /&gt;
## Confirm password: [your pwd]&lt;br /&gt;
##: slapd   slapd/password2 password&lt;br /&gt;
## Allow LDAPv2 protocol: No&lt;br /&gt;
##: slapd   slapd/allow_ldap_v2     boolean false&lt;br /&gt;
#: Checkpoint:  If you are successful, you should see as output:&lt;br /&gt;
#:: ''Stopping OpenLDAP: slapd.''&lt;br /&gt;
#::  ''Moving old database directory to /var/backups:''&lt;br /&gt;
#::  ''- directory unknown... done.''&lt;br /&gt;
#::  ''Creating initial slapd configuration... done.''&lt;br /&gt;
#::  ''Creating initial LDAP directory... done.''&lt;br /&gt;
#:: ''* Reloading AppArmor profiles ''&lt;br /&gt;
#::  ''...                                               [ OK ]'' &lt;br /&gt;
#::  ''Starting OpenLDAP: slapd.''&lt;br /&gt;
# If you haven't done so already, please copy kerberos.schema from your kerberos trunk into /etc/ldap/schema: &amp;lt;code&amp;gt;sudo cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
# To restrict access to the local machine, &amp;lt;code&amp;gt;sudo vim /etc/default/slapd&amp;lt;/code&amp;gt;, search for SLAPD_SERVICES and set it to: &amp;lt;pre&amp;gt;SLAPD_SERVICES=&amp;quot;ldapi:///&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Reconfigure your kerberos&lt;br /&gt;
#* Navigate to kerberos src&lt;br /&gt;
#* &amp;lt;code&amp;gt;make distclean&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;util/reconf&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;./configure --with-ldap&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo make install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 5. Kerb Schema Operations ==&lt;br /&gt;
Loosely followed [http://ajuda.ubuntu.cat/9.04/serverguide/kerberos-ldap.html Ubuntu Guide] and [http://web.mit.edu/kerberos/krb5-1.7/krb5-1.7/doc/krb5-admin.html#Configuring-Kerberos-with-OpenLDAP-back_002dend Kerberos V5 System Admin Guide]&lt;br /&gt;
&lt;br /&gt;
# You have not done so already, locate the kerberos.schema.  [[kerberos.schema]] which should be in /etc/ldap/schema/kerberos.schema.  If it is not there, please copy it there from your kerberos trunk: &amp;lt;code&amp;gt;cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Checkpoint: Make sure there is a list of different schemas in /etc/ldap/schema.  Such as&lt;br /&gt;
#:* core.schema&lt;br /&gt;
#:* inetorgperson.schema&lt;br /&gt;
#:* kerberos.schema&lt;br /&gt;
#:* misc.schema&lt;br /&gt;
#:* openldap.schema&lt;br /&gt;
# Make this [[schema_convert.conf]] at /tmp/schema_convert.conf.  Note! This is different from the schema_convert.conf in the Ubuntu Guide.&lt;br /&gt;
# Make the directory to hold output: &amp;lt;code&amp;gt;mkdir /tmp/ldif_output &amp;lt;/code&amp;gt;&lt;br /&gt;
# Convert schema --&amp;gt; LDIF with slaptest: &amp;lt;code&amp;gt;slaptest -f tmp/schema_convert.conf -F /tmp/ldif_output&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: &amp;quot;config file testing succeeded&amp;quot;&lt;br /&gt;
#: Checkpoint: If you &amp;lt;code&amp;gt;sudo ls /tmp/ldif_output/cn\=config/cn\=schema&amp;lt;/code&amp;gt;, you should see:&lt;br /&gt;
#:: cn={0}core.ldif       &lt;br /&gt;
#:: cn={1}corba.ldif          &lt;br /&gt;
#:: cn={2}cosine.ldif   &lt;br /&gt;
#:: cn={3}duaconf.ldif  &lt;br /&gt;
#:: cn={4}inetorgperson.ldif&lt;br /&gt;
#:: cn={5}java.ldif	&lt;br /&gt;
#:: cn={6}kerberos.ldif&lt;br /&gt;
#:: cn={7}misc.ldif&lt;br /&gt;
#:: cn={8}openldap.ldif&lt;br /&gt;
#:: cn={9}nis.ldif&lt;br /&gt;
# Need to modify kerberos.ldif. &lt;br /&gt;
#* Find which number kerberos.ldif is listed as: &amp;lt;code&amp;gt;sudo ls /tmp/ldif_output/cn\=config/cn\=schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Edit it: &amp;lt;code&amp;gt; sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn={6}kerberos.ldif&amp;lt;/code&amp;gt;&lt;br /&gt;
#** change ''dn: cn={6}kerberos'' into ''dn: cn=kerberos,cn=schema,cn=config''&lt;br /&gt;
#** change ''cn: {6}kerberos'' into ''cn: kerberos''&lt;br /&gt;
#** Delete the bottom lines: from ''structuralObjectClasses: olcSchemaConfig'' to ''modifyTimestamp: 20090811205313Z''&lt;br /&gt;
# load new schema: &amp;lt;code&amp;gt;sudo ldapadd -x -D cn=admin,cn=config -W -f /tmp/ldif_output/cn\=config/cn\=schema/cn\={6}kerberos.ldif -H ldapi:///&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: ''adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
== 6. Starting ==&lt;br /&gt;
* Create your database with kdb5_ldap_util instead of kdb5_util:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -W -H ldapi:/// create  -s&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Initializing database for realm 'EXAMPLE.ORG'&lt;br /&gt;
You will be prompted for the database Master Password.&lt;br /&gt;
It is important that you NOT FORGET this password.&lt;br /&gt;
Enter KDC database master key: &lt;br /&gt;
Re-enter KDC database master key to verify: &lt;br /&gt;
&lt;br /&gt;
Kerberos container is missing. Creating now...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Stash the password:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -W -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&amp;lt;/code&amp;gt;&lt;br /&gt;
*: Checkpoint: If it works, you can do:&lt;br /&gt;
*:* &amp;lt;code&amp;gt;kadmin.local&amp;lt;/code&amp;gt;, try &amp;lt;code&amp;gt;listprincs&amp;lt;/code&amp;gt;, quit by typing &amp;lt;code&amp;gt;quit&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;krb5kdc&amp;lt;/code&amp;gt; &lt;br /&gt;
*: Checkpoint: &amp;lt;code&amp;gt;ps -ef | grep krb5kdc&amp;lt;/code&amp;gt; should show it running&lt;br /&gt;
&lt;br /&gt;
* Command to destroy kdb5_ldap_util: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -W -H ldapi:/// destroy&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Scratch Pad ==&lt;br /&gt;
&lt;br /&gt;
===Assume People have done===&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
&lt;br /&gt;
   16  make distclean&lt;br /&gt;
&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
&lt;br /&gt;
   19  make&lt;br /&gt;
&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
&lt;br /&gt;
    8  mkdir /tmp/krb5kdc (or should it be /tmp/sandbox/krb5kdc)?&lt;br /&gt;
&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
&lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
&lt;br /&gt;
   29  krb5kdc -n&lt;br /&gt;
&lt;br /&gt;
== Errors ==&lt;br /&gt;
* sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
*: ERROR: ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)&lt;br /&gt;
$ sudo /usr/sbin/slapd -h ldap:/// -g openldap -u openldap -F /etc/ldap/slapd.d/&lt;br /&gt;
haoqili@reach-my-dream:~/trunk/src$ sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -h ldap:///&lt;br /&gt;
*: ERROR: Could not create LDAP session handle for URI=ldap://ldap:%2F%2F%2F (-9): Bad parameter to an ldap routine&lt;/div&gt;</summary>
		<author><name>Haoqili</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2124</id>
		<title>LDAP on Kerberos</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2124"/>
				<updated>2009-08-18T18:48:53Z</updated>
		
		<summary type="html">&lt;p&gt;Haoqili: /* Scratch Pad */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==About==&lt;br /&gt;
A guide to set up ldap backend for kerberos.&lt;br /&gt;
&lt;br /&gt;
== To Do ==&lt;br /&gt;
* Slapd in sandbox, not /etc&lt;br /&gt;
* Simpler Domain names D.COM, R.COM&lt;br /&gt;
* Different domain names&lt;br /&gt;
* Figure out required schemas&lt;br /&gt;
* Figure out: In Kerb Schema Operations, I can do &amp;quot;or update slapd.conf with kerb schema or ldif&amp;quot; in some ubuntu&lt;br /&gt;
* Play around to get minimum set of requirement&lt;br /&gt;
&lt;br /&gt;
* update tree too, got a fix&lt;br /&gt;
&lt;br /&gt;
== 0. Sample code to follow ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
    8  mkdir krb5kdc&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
   16  make distclean&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
   19  make&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
   29  krb5kdc -n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 1. Information about the system ==&lt;br /&gt;
- packages&lt;br /&gt;
* Version of ubuntu&lt;br /&gt;
       lsb_release -a&lt;br /&gt;
       No LSB modules are available.&lt;br /&gt;
       Distributor ID:        Ubuntu&lt;br /&gt;
       Description:        Ubuntu 9.04&lt;br /&gt;
       Release:        9.04&lt;br /&gt;
       Codename:        jaunty&lt;br /&gt;
* Version of slapd: 2.4.15 (Mar 19 2009)&lt;br /&gt;
       slapd -V&lt;br /&gt;
       @(#) $OpenLDAP: slapd 2.4.15 (Mar 19 2009 10:08:25) $&lt;br /&gt;
       buildd@palmer:/build/buildd/openldap-2.4.15/debian/build/servers/slapd&lt;br /&gt;
&lt;br /&gt;
* Version of ldap-utils: 2.4.15&lt;br /&gt;
       dpkg -l ldap-utils&lt;br /&gt;
&lt;br /&gt;
== 2. Extract krb conf files ==&lt;br /&gt;
* It is crucial to have correct, consistent domain names.  You must have the dbmodules in krb5.conf.&lt;br /&gt;
* Save [[krb5.conf]]&lt;br /&gt;
* Save [[kdc.conf]]&lt;br /&gt;
* Save [[kadm5.acl]]&lt;br /&gt;
&lt;br /&gt;
== 3. Env and Setup==&lt;br /&gt;
You need to export these lines into your env. Based on where you saved these files.&lt;br /&gt;
&lt;br /&gt;
*export KRB5_CONFIG=/tmp/sandbox/krb5.conf&lt;br /&gt;
&lt;br /&gt;
*export KRB5_KDC_PROFILE=/tmp/sandbox/kdc.conf&lt;br /&gt;
&lt;br /&gt;
* make a krb5kdc folder: mkdir /tmp/sandbox/krb5kdc)&lt;br /&gt;
&lt;br /&gt;
Whatever you do, be consistent&lt;br /&gt;
&lt;br /&gt;
== 4. Build kerb. config ==&lt;br /&gt;
&lt;br /&gt;
# Install Packages:&lt;br /&gt;
#* &amp;lt;code&amp;gt; sudo apt-get install slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
#* for ldapsearch: &amp;lt;code&amp;gt;sudo apt-get install ldap-utils&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo apt-get install libldap2-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
# Set the &amp;quot;domain&amp;quot; of your LDAP server with &amp;lt;code&amp;gt;sudo dpkg-reconfigure slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
##: Indented are the debconf-get-selection lines&lt;br /&gt;
## Omit OpenLDAP server configuration: No&lt;br /&gt;
##: slapd   slapd/no_configuration  boolean false&lt;br /&gt;
## DNS domain name: example.org&lt;br /&gt;
##: slapd   slapd/domain    string  example.org&lt;br /&gt;
## Organization name: example.org [note: i used the same name for simplicity]&lt;br /&gt;
##: slapd   shared/organization     string  example.org&lt;br /&gt;
## Databases backend to use: HDB, instead of BDB&lt;br /&gt;
##: slapd   slapd/backend   select  HDB&lt;br /&gt;
## Do you want the database to be removed when slapd is purge: Yes&lt;br /&gt;
##: slapd   slapd/purge_database    boolean true&lt;br /&gt;
## Move old database: Yes&lt;br /&gt;
##: slapd   slapd/move_old_database boolean true&lt;br /&gt;
## Admin password: [your pwd]&lt;br /&gt;
##: slapd   slapd/password1 password&lt;br /&gt;
##: [I'm not sure about the debconf-get-selection line here.  There are 5 different password lines!]&lt;br /&gt;
## Confirm password: [your pwd]&lt;br /&gt;
##: slapd   slapd/password2 password&lt;br /&gt;
## Allow LDAPv2 protocol: No&lt;br /&gt;
##: slapd   slapd/allow_ldap_v2     boolean false&lt;br /&gt;
#: Checkpoint:  If you are successful, you should see as output:&lt;br /&gt;
#:: ''Stopping OpenLDAP: slapd.''&lt;br /&gt;
#::  ''Moving old database directory to /var/backups:''&lt;br /&gt;
#::  ''- directory unknown... done.''&lt;br /&gt;
#::  ''Creating initial slapd configuration... done.''&lt;br /&gt;
#::  ''Creating initial LDAP directory... done.''&lt;br /&gt;
#:: ''* Reloading AppArmor profiles ''&lt;br /&gt;
#::  ''...                                               [ OK ]'' &lt;br /&gt;
#::  ''Starting OpenLDAP: slapd.''&lt;br /&gt;
# If you haven't done so already, please copy kerberos.schema from your kerberos trunk into /etc/ldap/schema: &amp;lt;code&amp;gt;sudo cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
# To restrict access to the local machine, &amp;lt;code&amp;gt;sudo vim /etc/default/slapd&amp;lt;/code&amp;gt;, search for SLAPD_SERVICES and set it to: &amp;lt;pre&amp;gt;SLAPD_SERVICES=&amp;quot;ldapi:///&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Reconfigure your kerberos&lt;br /&gt;
#* Navigate to kerberos src&lt;br /&gt;
#* &amp;lt;code&amp;gt;make distclean&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;util/reconf&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;./configure --with-ldap&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo make install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 5. Kerb Schema Operations ==&lt;br /&gt;
Loosely followed [http://ajuda.ubuntu.cat/9.04/serverguide/kerberos-ldap.html Ubuntu Guide] and [http://web.mit.edu/kerberos/krb5-1.7/krb5-1.7/doc/krb5-admin.html#Configuring-Kerberos-with-OpenLDAP-back_002dend Kerberos V5 System Admin Guide]&lt;br /&gt;
&lt;br /&gt;
# You have not done so already, locate the kerberos.schema.  [[kerberos.schema]] which should be in /etc/ldap/schema/kerberos.schema.  If it is not there, please copy it there from your kerberos trunk: &amp;lt;code&amp;gt;cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Checkpoint: Make sure there is a list of different schemas in /etc/ldap/schema.  Such as&lt;br /&gt;
#:* core.schema&lt;br /&gt;
#:* inetorgperson.schema&lt;br /&gt;
#:* kerberos.schema&lt;br /&gt;
#:* misc.schema&lt;br /&gt;
#:* openldap.schema&lt;br /&gt;
# Make this [[schema_convert.conf]] at /tmp/schema_convert.conf.  Note! This is different from the schema_convert.conf in the Ubuntu Guide.&lt;br /&gt;
# Make the directory to hold output: &amp;lt;code&amp;gt;mkdir /tmp/ldif_output &amp;lt;/code&amp;gt;&lt;br /&gt;
# Convert schema --&amp;gt; LDIF with slaptest: &amp;lt;code&amp;gt;slaptest -f tmp/schema_convert.conf -F /tmp/ldif_output&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: &amp;quot;config file testing succeeded&amp;quot;&lt;br /&gt;
#: Checkpoint: If you &amp;lt;code&amp;gt;sudo ls /tmp/ldif_output/cn\=config/cn\=schema&amp;lt;/code&amp;gt;, you should see:&lt;br /&gt;
#:: cn={0}core.ldif       &lt;br /&gt;
#:: cn={1}corba.ldif          &lt;br /&gt;
#:: cn={2}cosine.ldif   &lt;br /&gt;
#:: cn={3}duaconf.ldif  &lt;br /&gt;
#:: cn={4}inetorgperson.ldif&lt;br /&gt;
#:: cn={5}java.ldif	&lt;br /&gt;
#:: cn={6}kerberos.ldif&lt;br /&gt;
#:: cn={7}misc.ldif&lt;br /&gt;
#:: cn={8}openldap.ldif&lt;br /&gt;
#:: cn={9}nis.ldif&lt;br /&gt;
# Need to modify kerberos.ldif. &lt;br /&gt;
#* Find which number kerberos.ldif is listed as: &amp;lt;code&amp;gt;sudo ls /tmp/ldif_output/cn\=config/cn\=schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Edit it: &amp;lt;code&amp;gt; sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn={6}kerberos.ldif&amp;lt;/code&amp;gt;&lt;br /&gt;
#** change ''dn: cn={6}kerberos'' into ''dn: cn=kerberos,cn=schema,cn=config''&lt;br /&gt;
#** change ''cn: {6}kerberos'' into ''cn: kerberos''&lt;br /&gt;
#** Delete the bottom lines: from ''structuralObjectClasses: olcSchemaConfig'' to ''modifyTimestamp: 20090811205313Z''&lt;br /&gt;
# load new schema: &amp;lt;code&amp;gt;sudo ldapadd -x -D cn=admin,cn=config -W -f /tmp/ldif_output/cn\=config/cn\=schema/cn\={6}kerberos.ldif -H ldapi:///&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: ''adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
== 6. Starting ==&lt;br /&gt;
* Create your database with kdb5_ldap_util instead of kdb5_util:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -W -H ldapi:/// create  -s&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Initializing database for realm 'EXAMPLE.ORG'&lt;br /&gt;
You will be prompted for the database Master Password.&lt;br /&gt;
It is important that you NOT FORGET this password.&lt;br /&gt;
Enter KDC database master key: &lt;br /&gt;
Re-enter KDC database master key to verify: &lt;br /&gt;
&lt;br /&gt;
Kerberos container is missing. Creating now...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Stash the password:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -W -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&amp;lt;/code&amp;gt;&lt;br /&gt;
*: Checkpoint: If it works, you can do:&lt;br /&gt;
*:* &amp;lt;code&amp;gt;kadmin.local&amp;lt;/code&amp;gt;, try &amp;lt;code&amp;gt;listprincs&amp;lt;/code&amp;gt;, quit by typing &amp;lt;code&amp;gt;quit&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;krb5kdc&amp;lt;/code&amp;gt; &lt;br /&gt;
*: Checkpoint: &amp;lt;code&amp;gt;ps -ef | grep krb5kdc&amp;lt;/code&amp;gt; should show it running&lt;br /&gt;
&lt;br /&gt;
* Command to destroy kdb5_ldap_util: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -W -H ldapi:/// destroy&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Scratch Pad ==&lt;br /&gt;
&lt;br /&gt;
===Assume People have done===&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
&lt;br /&gt;
   16  make distclean&lt;br /&gt;
&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
&lt;br /&gt;
   19  make&lt;br /&gt;
&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
&lt;br /&gt;
    8  mkdir /tmp/krb5kdc (or should it be /tmp/sandbox/krb5kdc)?&lt;br /&gt;
&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
&lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
&lt;br /&gt;
   29  krb5kdc -n&lt;br /&gt;
&lt;br /&gt;
== Errors ==&lt;br /&gt;
* sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
*: ERROR: ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)&lt;/div&gt;</summary>
		<author><name>Haoqili</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2123</id>
		<title>LDAP on Kerberos</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2123"/>
				<updated>2009-08-18T17:51:38Z</updated>
		
		<summary type="html">&lt;p&gt;Haoqili: /* To Do */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==About==&lt;br /&gt;
A guide to set up ldap backend for kerberos.&lt;br /&gt;
&lt;br /&gt;
== To Do ==&lt;br /&gt;
* Slapd in sandbox, not /etc&lt;br /&gt;
* Simpler Domain names D.COM, R.COM&lt;br /&gt;
* Different domain names&lt;br /&gt;
* Figure out required schemas&lt;br /&gt;
* Figure out: In Kerb Schema Operations, I can do &amp;quot;or update slapd.conf with kerb schema or ldif&amp;quot; in some ubuntu&lt;br /&gt;
* Play around to get minimum set of requirement&lt;br /&gt;
&lt;br /&gt;
* update tree too, got a fix&lt;br /&gt;
&lt;br /&gt;
== 0. Sample code to follow ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
    8  mkdir krb5kdc&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
   16  make distclean&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
   19  make&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
   29  krb5kdc -n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 1. Information about the system ==&lt;br /&gt;
- packages&lt;br /&gt;
* Version of ubuntu&lt;br /&gt;
       lsb_release -a&lt;br /&gt;
       No LSB modules are available.&lt;br /&gt;
       Distributor ID:        Ubuntu&lt;br /&gt;
       Description:        Ubuntu 9.04&lt;br /&gt;
       Release:        9.04&lt;br /&gt;
       Codename:        jaunty&lt;br /&gt;
* Version of slapd: 2.4.15 (Mar 19 2009)&lt;br /&gt;
       slapd -V&lt;br /&gt;
       @(#) $OpenLDAP: slapd 2.4.15 (Mar 19 2009 10:08:25) $&lt;br /&gt;
       buildd@palmer:/build/buildd/openldap-2.4.15/debian/build/servers/slapd&lt;br /&gt;
&lt;br /&gt;
* Version of ldap-utils: 2.4.15&lt;br /&gt;
       dpkg -l ldap-utils&lt;br /&gt;
&lt;br /&gt;
== 2. Extract krb conf files ==&lt;br /&gt;
* It is crucial to have correct, consistent domain names.  You must have the dbmodules in krb5.conf.&lt;br /&gt;
* Save [[krb5.conf]]&lt;br /&gt;
* Save [[kdc.conf]]&lt;br /&gt;
* Save [[kadm5.acl]]&lt;br /&gt;
&lt;br /&gt;
== 3. Env and Setup==&lt;br /&gt;
You need to export these lines into your env. Based on where you saved these files.&lt;br /&gt;
&lt;br /&gt;
*export KRB5_CONFIG=/tmp/sandbox/krb5.conf&lt;br /&gt;
&lt;br /&gt;
*export KRB5_KDC_PROFILE=/tmp/sandbox/kdc.conf&lt;br /&gt;
&lt;br /&gt;
* make a krb5kdc folder: mkdir /tmp/sandbox/krb5kdc)&lt;br /&gt;
&lt;br /&gt;
Whatever you do, be consistent&lt;br /&gt;
&lt;br /&gt;
== 4. Build kerb. config ==&lt;br /&gt;
&lt;br /&gt;
# Install Packages:&lt;br /&gt;
#* &amp;lt;code&amp;gt; sudo apt-get install slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
#* for ldapsearch: &amp;lt;code&amp;gt;sudo apt-get install ldap-utils&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo apt-get install libldap2-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
# Set the &amp;quot;domain&amp;quot; of your LDAP server with &amp;lt;code&amp;gt;sudo dpkg-reconfigure slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
##: Indented are the debconf-get-selection lines&lt;br /&gt;
## Omit OpenLDAP server configuration: No&lt;br /&gt;
##: slapd   slapd/no_configuration  boolean false&lt;br /&gt;
## DNS domain name: example.org&lt;br /&gt;
##: slapd   slapd/domain    string  example.org&lt;br /&gt;
## Organization name: example.org [note: i used the same name for simplicity]&lt;br /&gt;
##: slapd   shared/organization     string  example.org&lt;br /&gt;
## Databases backend to use: HDB, instead of BDB&lt;br /&gt;
##: slapd   slapd/backend   select  HDB&lt;br /&gt;
## Do you want the database to be removed when slapd is purge: Yes&lt;br /&gt;
##: slapd   slapd/purge_database    boolean true&lt;br /&gt;
## Move old database: Yes&lt;br /&gt;
##: slapd   slapd/move_old_database boolean true&lt;br /&gt;
## Admin password: [your pwd]&lt;br /&gt;
##: slapd   slapd/password1 password&lt;br /&gt;
##: [I'm not sure about the debconf-get-selection line here.  There are 5 different password lines!]&lt;br /&gt;
## Confirm password: [your pwd]&lt;br /&gt;
##: slapd   slapd/password2 password&lt;br /&gt;
## Allow LDAPv2 protocol: No&lt;br /&gt;
##: slapd   slapd/allow_ldap_v2     boolean false&lt;br /&gt;
#: Checkpoint:  If you are successful, you should see as output:&lt;br /&gt;
#:: ''Stopping OpenLDAP: slapd.''&lt;br /&gt;
#::  ''Moving old database directory to /var/backups:''&lt;br /&gt;
#::  ''- directory unknown... done.''&lt;br /&gt;
#::  ''Creating initial slapd configuration... done.''&lt;br /&gt;
#::  ''Creating initial LDAP directory... done.''&lt;br /&gt;
#:: ''* Reloading AppArmor profiles ''&lt;br /&gt;
#::  ''...                                               [ OK ]'' &lt;br /&gt;
#::  ''Starting OpenLDAP: slapd.''&lt;br /&gt;
# If you haven't done so already, please copy kerberos.schema from your kerberos trunk into /etc/ldap/schema: &amp;lt;code&amp;gt;sudo cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
# To restrict access to the local machine, &amp;lt;code&amp;gt;sudo vim /etc/default/slapd&amp;lt;/code&amp;gt;, search for SLAPD_SERVICES and set it to: &amp;lt;pre&amp;gt;SLAPD_SERVICES=&amp;quot;ldapi:///&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Reconfigure your kerberos&lt;br /&gt;
#* Navigate to kerberos src&lt;br /&gt;
#* &amp;lt;code&amp;gt;make distclean&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;util/reconf&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;./configure --with-ldap&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo make install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 5. Kerb Schema Operations ==&lt;br /&gt;
Loosely followed [http://ajuda.ubuntu.cat/9.04/serverguide/kerberos-ldap.html Ubuntu Guide] and [http://web.mit.edu/kerberos/krb5-1.7/krb5-1.7/doc/krb5-admin.html#Configuring-Kerberos-with-OpenLDAP-back_002dend Kerberos V5 System Admin Guide]&lt;br /&gt;
&lt;br /&gt;
# You have not done so already, locate the kerberos.schema.  [[kerberos.schema]] which should be in /etc/ldap/schema/kerberos.schema.  If it is not there, please copy it there from your kerberos trunk: &amp;lt;code&amp;gt;cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Checkpoint: Make sure there is a list of different schemas in /etc/ldap/schema.  Such as&lt;br /&gt;
#:* core.schema&lt;br /&gt;
#:* inetorgperson.schema&lt;br /&gt;
#:* kerberos.schema&lt;br /&gt;
#:* misc.schema&lt;br /&gt;
#:* openldap.schema&lt;br /&gt;
# Make this [[schema_convert.conf]] at /tmp/schema_convert.conf.  Note! This is different from the schema_convert.conf in the Ubuntu Guide.&lt;br /&gt;
# Make the directory to hold output: &amp;lt;code&amp;gt;mkdir /tmp/ldif_output &amp;lt;/code&amp;gt;&lt;br /&gt;
# Convert schema --&amp;gt; LDIF with slaptest: &amp;lt;code&amp;gt;slaptest -f tmp/schema_convert.conf -F /tmp/ldif_output&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: &amp;quot;config file testing succeeded&amp;quot;&lt;br /&gt;
#: Checkpoint: If you &amp;lt;code&amp;gt;sudo ls /tmp/ldif_output/cn\=config/cn\=schema&amp;lt;/code&amp;gt;, you should see:&lt;br /&gt;
#:: cn={0}core.ldif       &lt;br /&gt;
#:: cn={1}corba.ldif          &lt;br /&gt;
#:: cn={2}cosine.ldif   &lt;br /&gt;
#:: cn={3}duaconf.ldif  &lt;br /&gt;
#:: cn={4}inetorgperson.ldif&lt;br /&gt;
#:: cn={5}java.ldif	&lt;br /&gt;
#:: cn={6}kerberos.ldif&lt;br /&gt;
#:: cn={7}misc.ldif&lt;br /&gt;
#:: cn={8}openldap.ldif&lt;br /&gt;
#:: cn={9}nis.ldif&lt;br /&gt;
# Need to modify kerberos.ldif. &lt;br /&gt;
#* Find which number kerberos.ldif is listed as: &amp;lt;code&amp;gt;sudo ls /tmp/ldif_output/cn\=config/cn\=schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Edit it: &amp;lt;code&amp;gt; sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn={6}kerberos.ldif&amp;lt;/code&amp;gt;&lt;br /&gt;
#** change ''dn: cn={6}kerberos'' into ''dn: cn=kerberos,cn=schema,cn=config''&lt;br /&gt;
#** change ''cn: {6}kerberos'' into ''cn: kerberos''&lt;br /&gt;
#** Delete the bottom lines: from ''structuralObjectClasses: olcSchemaConfig'' to ''modifyTimestamp: 20090811205313Z''&lt;br /&gt;
# load new schema: &amp;lt;code&amp;gt;sudo ldapadd -x -D cn=admin,cn=config -W -f /tmp/ldif_output/cn\=config/cn\=schema/cn\={6}kerberos.ldif -H ldapi:///&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: ''adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
== 6. Starting ==&lt;br /&gt;
* Create your database with kdb5_ldap_util instead of kdb5_util:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -W -H ldapi:/// create  -s&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Initializing database for realm 'EXAMPLE.ORG'&lt;br /&gt;
You will be prompted for the database Master Password.&lt;br /&gt;
It is important that you NOT FORGET this password.&lt;br /&gt;
Enter KDC database master key: &lt;br /&gt;
Re-enter KDC database master key to verify: &lt;br /&gt;
&lt;br /&gt;
Kerberos container is missing. Creating now...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Stash the password:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -W -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&amp;lt;/code&amp;gt;&lt;br /&gt;
*: Checkpoint: If it works, you can do:&lt;br /&gt;
*:* &amp;lt;code&amp;gt;kadmin.local&amp;lt;/code&amp;gt;, try &amp;lt;code&amp;gt;listprincs&amp;lt;/code&amp;gt;, quit by typing &amp;lt;code&amp;gt;quit&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;krb5kdc&amp;lt;/code&amp;gt; &lt;br /&gt;
*: Checkpoint: &amp;lt;code&amp;gt;ps -ef | grep krb5kdc&amp;lt;/code&amp;gt; should show it running&lt;br /&gt;
&lt;br /&gt;
* Command to destroy kdb5_ldap_util: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -W -H ldapi:/// destroy&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Scratch Pad ==&lt;br /&gt;
&lt;br /&gt;
===Assume People have done===&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
&lt;br /&gt;
   16  make distclean&lt;br /&gt;
&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
&lt;br /&gt;
   19  make&lt;br /&gt;
&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
&lt;br /&gt;
    8  mkdir /tmp/krb5kdc (or should it be /tmp/sandbox/krb5kdc)?&lt;br /&gt;
&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
&lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
&lt;br /&gt;
   29  krb5kdc -n&lt;/div&gt;</summary>
		<author><name>Haoqili</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2122</id>
		<title>LDAP on Kerberos</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2122"/>
				<updated>2009-08-18T16:46:09Z</updated>
		
		<summary type="html">&lt;p&gt;Haoqili: /* To Do */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==About==&lt;br /&gt;
A guide to set up ldap backend for kerberos.&lt;br /&gt;
&lt;br /&gt;
== To Do ==&lt;br /&gt;
* Slapd in sandbox, not /etc&lt;br /&gt;
* Simpler Domain names D.COM, R.COM&lt;br /&gt;
* Different domain names&lt;br /&gt;
* Figure out required schemas&lt;br /&gt;
* Figure out: In Kerb Schema Operations, I can do &amp;quot;or update slapd.conf with kerb schema or ldif&amp;quot; in some ubuntu&lt;br /&gt;
* Play around to get minimum set of requirement&lt;br /&gt;
&lt;br /&gt;
== 0. Sample code to follow ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
    8  mkdir krb5kdc&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
   16  make distclean&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
   19  make&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
   29  krb5kdc -n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 1. Information about the system ==&lt;br /&gt;
- packages&lt;br /&gt;
* Version of ubuntu&lt;br /&gt;
       lsb_release -a&lt;br /&gt;
       No LSB modules are available.&lt;br /&gt;
       Distributor ID:        Ubuntu&lt;br /&gt;
       Description:        Ubuntu 9.04&lt;br /&gt;
       Release:        9.04&lt;br /&gt;
       Codename:        jaunty&lt;br /&gt;
* Version of slapd: 2.4.15 (Mar 19 2009)&lt;br /&gt;
       slapd -V&lt;br /&gt;
       @(#) $OpenLDAP: slapd 2.4.15 (Mar 19 2009 10:08:25) $&lt;br /&gt;
       buildd@palmer:/build/buildd/openldap-2.4.15/debian/build/servers/slapd&lt;br /&gt;
&lt;br /&gt;
* Version of ldap-utils: 2.4.15&lt;br /&gt;
       dpkg -l ldap-utils&lt;br /&gt;
&lt;br /&gt;
== 2. Extract krb conf files ==&lt;br /&gt;
* It is crucial to have correct, consistent domain names.  You must have the dbmodules in krb5.conf.&lt;br /&gt;
* Save [[krb5.conf]]&lt;br /&gt;
* Save [[kdc.conf]]&lt;br /&gt;
* Save [[kadm5.acl]]&lt;br /&gt;
&lt;br /&gt;
== 3. Env and Setup==&lt;br /&gt;
You need to export these lines into your env. Based on where you saved these files.&lt;br /&gt;
&lt;br /&gt;
*export KRB5_CONFIG=/tmp/sandbox/krb5.conf&lt;br /&gt;
&lt;br /&gt;
*export KRB5_KDC_PROFILE=/tmp/sandbox/kdc.conf&lt;br /&gt;
&lt;br /&gt;
* make a krb5kdc folder: mkdir /tmp/sandbox/krb5kdc)&lt;br /&gt;
&lt;br /&gt;
Whatever you do, be consistent&lt;br /&gt;
&lt;br /&gt;
== 4. Build kerb. config ==&lt;br /&gt;
&lt;br /&gt;
# Install Packages:&lt;br /&gt;
#* &amp;lt;code&amp;gt; sudo apt-get install slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
#* for ldapsearch: &amp;lt;code&amp;gt;sudo apt-get install ldap-utils&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo apt-get install libldap2-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
# Set the &amp;quot;domain&amp;quot; of your LDAP server with &amp;lt;code&amp;gt;sudo dpkg-reconfigure slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
##: Indented are the debconf-get-selection lines&lt;br /&gt;
## Omit OpenLDAP server configuration: No&lt;br /&gt;
##: slapd   slapd/no_configuration  boolean false&lt;br /&gt;
## DNS domain name: example.org&lt;br /&gt;
##: slapd   slapd/domain    string  example.org&lt;br /&gt;
## Organization name: example.org [note: i used the same name for simplicity]&lt;br /&gt;
##: slapd   shared/organization     string  example.org&lt;br /&gt;
## Databases backend to use: HDB, instead of BDB&lt;br /&gt;
##: slapd   slapd/backend   select  HDB&lt;br /&gt;
## Do you want the database to be removed when slapd is purge: Yes&lt;br /&gt;
##: slapd   slapd/purge_database    boolean true&lt;br /&gt;
## Move old database: Yes&lt;br /&gt;
##: slapd   slapd/move_old_database boolean true&lt;br /&gt;
## Admin password: [your pwd]&lt;br /&gt;
##: slapd   slapd/password1 password&lt;br /&gt;
##: [I'm not sure about the debconf-get-selection line here.  There are 5 different password lines!]&lt;br /&gt;
## Confirm password: [your pwd]&lt;br /&gt;
##: slapd   slapd/password2 password&lt;br /&gt;
## Allow LDAPv2 protocol: No&lt;br /&gt;
##: slapd   slapd/allow_ldap_v2     boolean false&lt;br /&gt;
#: Checkpoint:  If you are successful, you should see as output:&lt;br /&gt;
#:: ''Stopping OpenLDAP: slapd.''&lt;br /&gt;
#::  ''Moving old database directory to /var/backups:''&lt;br /&gt;
#::  ''- directory unknown... done.''&lt;br /&gt;
#::  ''Creating initial slapd configuration... done.''&lt;br /&gt;
#::  ''Creating initial LDAP directory... done.''&lt;br /&gt;
#:: ''* Reloading AppArmor profiles ''&lt;br /&gt;
#::  ''...                                               [ OK ]'' &lt;br /&gt;
#::  ''Starting OpenLDAP: slapd.''&lt;br /&gt;
# If you haven't done so already, please copy kerberos.schema from your kerberos trunk into /etc/ldap/schema: &amp;lt;code&amp;gt;sudo cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
# To restrict access to the local machine, &amp;lt;code&amp;gt;sudo vim /etc/default/slapd&amp;lt;/code&amp;gt;, search for SLAPD_SERVICES and set it to: &amp;lt;pre&amp;gt;SLAPD_SERVICES=&amp;quot;ldapi:///&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Reconfigure your kerberos&lt;br /&gt;
#* Navigate to kerberos src&lt;br /&gt;
#* &amp;lt;code&amp;gt;make distclean&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;util/reconf&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;./configure --with-ldap&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo make install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 5. Kerb Schema Operations ==&lt;br /&gt;
Loosely followed [http://ajuda.ubuntu.cat/9.04/serverguide/kerberos-ldap.html Ubuntu Guide] and [http://web.mit.edu/kerberos/krb5-1.7/krb5-1.7/doc/krb5-admin.html#Configuring-Kerberos-with-OpenLDAP-back_002dend Kerberos V5 System Admin Guide]&lt;br /&gt;
&lt;br /&gt;
# You have not done so already, locate the kerberos.schema.  [[kerberos.schema]] which should be in /etc/ldap/schema/kerberos.schema.  If it is not there, please copy it there from your kerberos trunk: &amp;lt;code&amp;gt;cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Checkpoint: Make sure there is a list of different schemas in /etc/ldap/schema.  Such as&lt;br /&gt;
#:* core.schema&lt;br /&gt;
#:* inetorgperson.schema&lt;br /&gt;
#:* kerberos.schema&lt;br /&gt;
#:* misc.schema&lt;br /&gt;
#:* openldap.schema&lt;br /&gt;
# Make this [[schema_convert.conf]] at /tmp/schema_convert.conf.  Note! This is different from the schema_convert.conf in the Ubuntu Guide.&lt;br /&gt;
# Make the directory to hold output: &amp;lt;code&amp;gt;mkdir /tmp/ldif_output &amp;lt;/code&amp;gt;&lt;br /&gt;
# Convert schema --&amp;gt; LDIF with slaptest: &amp;lt;code&amp;gt;slaptest -f tmp/schema_convert.conf -F /tmp/ldif_output&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: &amp;quot;config file testing succeeded&amp;quot;&lt;br /&gt;
#: Checkpoint: If you &amp;lt;code&amp;gt;sudo ls /tmp/ldif_output/cn\=config/cn\=schema&amp;lt;/code&amp;gt;, you should see:&lt;br /&gt;
#:: cn={0}core.ldif       &lt;br /&gt;
#:: cn={1}corba.ldif          &lt;br /&gt;
#:: cn={2}cosine.ldif   &lt;br /&gt;
#:: cn={3}duaconf.ldif  &lt;br /&gt;
#:: cn={4}inetorgperson.ldif&lt;br /&gt;
#:: cn={5}java.ldif	&lt;br /&gt;
#:: cn={6}kerberos.ldif&lt;br /&gt;
#:: cn={7}misc.ldif&lt;br /&gt;
#:: cn={8}openldap.ldif&lt;br /&gt;
#:: cn={9}nis.ldif&lt;br /&gt;
# Need to modify kerberos.ldif. &lt;br /&gt;
#* Find which number kerberos.ldif is listed as: &amp;lt;code&amp;gt;sudo ls /tmp/ldif_output/cn\=config/cn\=schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Edit it: &amp;lt;code&amp;gt; sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn={6}kerberos.ldif&amp;lt;/code&amp;gt;&lt;br /&gt;
#** change ''dn: cn={6}kerberos'' into ''dn: cn=kerberos,cn=schema,cn=config''&lt;br /&gt;
#** change ''cn: {6}kerberos'' into ''cn: kerberos''&lt;br /&gt;
#** Delete the bottom lines: from ''structuralObjectClasses: olcSchemaConfig'' to ''modifyTimestamp: 20090811205313Z''&lt;br /&gt;
# load new schema: &amp;lt;code&amp;gt;sudo ldapadd -x -D cn=admin,cn=config -W -f /tmp/ldif_output/cn\=config/cn\=schema/cn\={6}kerberos.ldif -H ldapi:///&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: ''adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
== 6. Starting ==&lt;br /&gt;
* Create your database with kdb5_ldap_util instead of kdb5_util:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -W -H ldapi:/// create  -s&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Initializing database for realm 'EXAMPLE.ORG'&lt;br /&gt;
You will be prompted for the database Master Password.&lt;br /&gt;
It is important that you NOT FORGET this password.&lt;br /&gt;
Enter KDC database master key: &lt;br /&gt;
Re-enter KDC database master key to verify: &lt;br /&gt;
&lt;br /&gt;
Kerberos container is missing. Creating now...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Stash the password:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -W -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&amp;lt;/code&amp;gt;&lt;br /&gt;
*: Checkpoint: If it works, you can do:&lt;br /&gt;
*:* &amp;lt;code&amp;gt;kadmin.local&amp;lt;/code&amp;gt;, try &amp;lt;code&amp;gt;listprincs&amp;lt;/code&amp;gt;, quit by typing &amp;lt;code&amp;gt;quit&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;krb5kdc&amp;lt;/code&amp;gt; &lt;br /&gt;
*: Checkpoint: &amp;lt;code&amp;gt;ps -ef | grep krb5kdc&amp;lt;/code&amp;gt; should show it running&lt;br /&gt;
&lt;br /&gt;
* Command to destroy kdb5_ldap_util: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -W -H ldapi:/// destroy&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Scratch Pad ==&lt;br /&gt;
&lt;br /&gt;
===Assume People have done===&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
&lt;br /&gt;
   16  make distclean&lt;br /&gt;
&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
&lt;br /&gt;
   19  make&lt;br /&gt;
&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
&lt;br /&gt;
    8  mkdir /tmp/krb5kdc (or should it be /tmp/sandbox/krb5kdc)?&lt;br /&gt;
&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
&lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
&lt;br /&gt;
   29  krb5kdc -n&lt;/div&gt;</summary>
		<author><name>Haoqili</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2120</id>
		<title>LDAP on Kerberos</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2120"/>
				<updated>2009-08-18T15:58:35Z</updated>
		
		<summary type="html">&lt;p&gt;Haoqili: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==About==&lt;br /&gt;
A guide to set up ldap backend for kerberos.&lt;br /&gt;
&lt;br /&gt;
== To Do ==&lt;br /&gt;
* Simpler Domain names D.COM, R.COM&lt;br /&gt;
* Different domain names&lt;br /&gt;
* Figure out required schemas&lt;br /&gt;
* Figure out: In Kerb Schema Operations, I can do &amp;quot;or update slapd.conf with kerb schema or ldif&amp;quot; in some ubuntu&lt;br /&gt;
* Play around to get minimum set of requirement&lt;br /&gt;
&lt;br /&gt;
== 0. Sample code to follow ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
    8  mkdir krb5kdc&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
   16  make distclean&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
   19  make&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
   29  krb5kdc -n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 1. Information about the system ==&lt;br /&gt;
- packages&lt;br /&gt;
* Version of ubuntu&lt;br /&gt;
       lsb_release -a&lt;br /&gt;
       No LSB modules are available.&lt;br /&gt;
       Distributor ID:        Ubuntu&lt;br /&gt;
       Description:        Ubuntu 9.04&lt;br /&gt;
       Release:        9.04&lt;br /&gt;
       Codename:        jaunty&lt;br /&gt;
* Version of slapd: 2.4.15 (Mar 19 2009)&lt;br /&gt;
       slapd -V&lt;br /&gt;
       @(#) $OpenLDAP: slapd 2.4.15 (Mar 19 2009 10:08:25) $&lt;br /&gt;
       buildd@palmer:/build/buildd/openldap-2.4.15/debian/build/servers/slapd&lt;br /&gt;
&lt;br /&gt;
* Version of ldap-utils: 2.4.15&lt;br /&gt;
       dpkg -l ldap-utils&lt;br /&gt;
&lt;br /&gt;
== 2. Extract krb conf files ==&lt;br /&gt;
* It is crucial to have correct, consistent domain names.  You must have the dbmodules in krb5.conf.&lt;br /&gt;
* Save [[krb5.conf]]&lt;br /&gt;
* Save [[kdc.conf]]&lt;br /&gt;
* Save [[kadm5.acl]]&lt;br /&gt;
&lt;br /&gt;
== 3. Env and Setup==&lt;br /&gt;
You need to export these lines into your env. Based on where you saved these files.&lt;br /&gt;
&lt;br /&gt;
*export KRB5_CONFIG=/tmp/sandbox/krb5.conf&lt;br /&gt;
&lt;br /&gt;
*export KRB5_KDC_PROFILE=/tmp/sandbox/kdc.conf&lt;br /&gt;
&lt;br /&gt;
* make a krb5kdc folder: mkdir /tmp/sandbox/krb5kdc)&lt;br /&gt;
&lt;br /&gt;
Whatever you do, be consistent&lt;br /&gt;
&lt;br /&gt;
== 4. Build kerb. config ==&lt;br /&gt;
&lt;br /&gt;
# Install Packages:&lt;br /&gt;
#* &amp;lt;code&amp;gt; sudo apt-get install slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
#* for ldapsearch: &amp;lt;code&amp;gt;sudo apt-get install ldap-utils&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo apt-get install libldap2-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
# Set the &amp;quot;domain&amp;quot; of your LDAP server with &amp;lt;code&amp;gt;sudo dpkg-reconfigure slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
##: Indented are the debconf-get-selection lines&lt;br /&gt;
## Omit OpenLDAP server configuration: No&lt;br /&gt;
##: slapd   slapd/no_configuration  boolean false&lt;br /&gt;
## DNS domain name: example.org&lt;br /&gt;
##: slapd   slapd/domain    string  example.org&lt;br /&gt;
## Organization name: example.org [note: i used the same name for simplicity]&lt;br /&gt;
##: slapd   shared/organization     string  example.org&lt;br /&gt;
## Databases backend to use: HDB, instead of BDB&lt;br /&gt;
##: slapd   slapd/backend   select  HDB&lt;br /&gt;
## Do you want the database to be removed when slapd is purge: Yes&lt;br /&gt;
##: slapd   slapd/purge_database    boolean true&lt;br /&gt;
## Move old database: Yes&lt;br /&gt;
##: slapd   slapd/move_old_database boolean true&lt;br /&gt;
## Admin password: [your pwd]&lt;br /&gt;
##: slapd   slapd/password1 password&lt;br /&gt;
##: [I'm not sure about the debconf-get-selection line here.  There are 5 different password lines!]&lt;br /&gt;
## Confirm password: [your pwd]&lt;br /&gt;
##: slapd   slapd/password2 password&lt;br /&gt;
## Allow LDAPv2 protocol: No&lt;br /&gt;
##: slapd   slapd/allow_ldap_v2     boolean false&lt;br /&gt;
#: Checkpoint:  If you are successful, you should see as output:&lt;br /&gt;
#:: ''Stopping OpenLDAP: slapd.''&lt;br /&gt;
#::  ''Moving old database directory to /var/backups:''&lt;br /&gt;
#::  ''- directory unknown... done.''&lt;br /&gt;
#::  ''Creating initial slapd configuration... done.''&lt;br /&gt;
#::  ''Creating initial LDAP directory... done.''&lt;br /&gt;
#:: ''* Reloading AppArmor profiles ''&lt;br /&gt;
#::  ''...                                               [ OK ]'' &lt;br /&gt;
#::  ''Starting OpenLDAP: slapd.''&lt;br /&gt;
# If you haven't done so already, please copy kerberos.schema from your kerberos trunk into /etc/ldap/schema: &amp;lt;code&amp;gt;sudo cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
# To restrict access to the local machine, &amp;lt;code&amp;gt;sudo vim /etc/default/slapd&amp;lt;/code&amp;gt;, search for SLAPD_SERVICES and set it to: &amp;lt;pre&amp;gt;SLAPD_SERVICES=&amp;quot;ldapi:///&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Reconfigure your kerberos&lt;br /&gt;
#* Navigate to kerberos src&lt;br /&gt;
#* &amp;lt;code&amp;gt;make distclean&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;util/reconf&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;./configure --with-ldap&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo make install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 5. Kerb Schema Operations ==&lt;br /&gt;
Loosely followed [http://ajuda.ubuntu.cat/9.04/serverguide/kerberos-ldap.html Ubuntu Guide] and [http://web.mit.edu/kerberos/krb5-1.7/krb5-1.7/doc/krb5-admin.html#Configuring-Kerberos-with-OpenLDAP-back_002dend Kerberos V5 System Admin Guide]&lt;br /&gt;
&lt;br /&gt;
# You have not done so already, locate the kerberos.schema.  [[kerberos.schema]] which should be in /etc/ldap/schema/kerberos.schema.  If it is not there, please copy it there from your kerberos trunk: &amp;lt;code&amp;gt;cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Checkpoint: Make sure there is a list of different schemas in /etc/ldap/schema.  Such as&lt;br /&gt;
#:* core.schema&lt;br /&gt;
#:* inetorgperson.schema&lt;br /&gt;
#:* kerberos.schema&lt;br /&gt;
#:* misc.schema&lt;br /&gt;
#:* openldap.schema&lt;br /&gt;
# Make this [[schema_convert.conf]] at /tmp/schema_convert.conf.  Note! This is different from the schema_convert.conf in the Ubuntu Guide.&lt;br /&gt;
# Make the directory to hold output: &amp;lt;code&amp;gt;mkdir /tmp/ldif_output &amp;lt;/code&amp;gt;&lt;br /&gt;
# Convert schema --&amp;gt; LDIF with slaptest: &amp;lt;code&amp;gt;slaptest -f tmp/schema_convert.conf -F /tmp/ldif_output&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: &amp;quot;config file testing succeeded&amp;quot;&lt;br /&gt;
#: Checkpoint: If you &amp;lt;code&amp;gt;sudo ls /tmp/ldif_output/cn\=config/cn\=schema&amp;lt;/code&amp;gt;, you should see:&lt;br /&gt;
#:: cn={0}core.ldif       &lt;br /&gt;
#:: cn={1}corba.ldif          &lt;br /&gt;
#:: cn={2}cosine.ldif   &lt;br /&gt;
#:: cn={3}duaconf.ldif  &lt;br /&gt;
#:: cn={4}inetorgperson.ldif&lt;br /&gt;
#:: cn={5}java.ldif	&lt;br /&gt;
#:: cn={6}kerberos.ldif&lt;br /&gt;
#:: cn={7}misc.ldif&lt;br /&gt;
#:: cn={8}openldap.ldif&lt;br /&gt;
#:: cn={9}nis.ldif&lt;br /&gt;
# Need to modify kerberos.ldif. &lt;br /&gt;
#* Find which number kerberos.ldif is listed as: &amp;lt;code&amp;gt;sudo ls /tmp/ldif_output/cn\=config/cn\=schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Edit it: &amp;lt;code&amp;gt; sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn={6}kerberos.ldif&amp;lt;/code&amp;gt;&lt;br /&gt;
#** change ''dn: cn={6}kerberos'' into ''dn: cn=kerberos,cn=schema,cn=config''&lt;br /&gt;
#** change ''cn: {6}kerberos'' into ''cn: kerberos''&lt;br /&gt;
#** Delete the bottom lines: from ''structuralObjectClasses: olcSchemaConfig'' to ''modifyTimestamp: 20090811205313Z''&lt;br /&gt;
# load new schema: &amp;lt;code&amp;gt;sudo ldapadd -x -D cn=admin,cn=config -W -f /tmp/ldif_output/cn\=config/cn\=schema/cn\={6}kerberos.ldif -H ldapi:///&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: ''adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
== 6. Starting ==&lt;br /&gt;
* Create your database with kdb5_ldap_util instead of kdb5_util:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -W -H ldapi:/// create  -s&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Initializing database for realm 'EXAMPLE.ORG'&lt;br /&gt;
You will be prompted for the database Master Password.&lt;br /&gt;
It is important that you NOT FORGET this password.&lt;br /&gt;
Enter KDC database master key: &lt;br /&gt;
Re-enter KDC database master key to verify: &lt;br /&gt;
&lt;br /&gt;
Kerberos container is missing. Creating now...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Stash the password:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -W -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&amp;lt;/code&amp;gt;&lt;br /&gt;
*: Checkpoint: If it works, you can do:&lt;br /&gt;
*:* &amp;lt;code&amp;gt;kadmin.local&amp;lt;/code&amp;gt;, try &amp;lt;code&amp;gt;listprincs&amp;lt;/code&amp;gt;, quit by typing &amp;lt;code&amp;gt;quit&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;krb5kdc&amp;lt;/code&amp;gt; &lt;br /&gt;
*: Checkpoint: &amp;lt;code&amp;gt;ps -ef | grep krb5kdc&amp;lt;/code&amp;gt; should show it running&lt;br /&gt;
&lt;br /&gt;
* Command to destroy kdb5_ldap_util: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -W -H ldapi:/// destroy&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Scratch Pad ==&lt;br /&gt;
&lt;br /&gt;
===Assume People have done===&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
&lt;br /&gt;
   16  make distclean&lt;br /&gt;
&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
&lt;br /&gt;
   19  make&lt;br /&gt;
&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
&lt;br /&gt;
    8  mkdir /tmp/krb5kdc (or should it be /tmp/sandbox/krb5kdc)?&lt;br /&gt;
&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
&lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
&lt;br /&gt;
   29  krb5kdc -n&lt;/div&gt;</summary>
		<author><name>Haoqili</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=Kdc.conf&amp;diff=2119</id>
		<title>Kdc.conf</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=Kdc.conf&amp;diff=2119"/>
				<updated>2009-08-18T15:56:08Z</updated>
		
		<summary type="html">&lt;p&gt;Haoqili: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;save it in /tmp/kdc.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[kdcdefaults]&lt;br /&gt;
        kdc_ports = 8888&lt;br /&gt;
&lt;br /&gt;
[realms]&lt;br /&gt;
        EXAMPLE.ORG = {&lt;br /&gt;
                database_name = /tmp/krb5kdc/principal&lt;br /&gt;
                acl_file = /tmp/kadm5.acl&lt;br /&gt;
&lt;br /&gt;
                key_stash_file = /tmp/krb5kdc/.k5.EXAMPLE.ORG&lt;br /&gt;
                admin_keytab = FILE:/tmp/krb5kdc/kadm5.keytab&lt;br /&gt;
                kdc_ports = 8888&lt;br /&gt;
                kpasswd_port = 8887&lt;br /&gt;
                kadmind_port = 8886&lt;br /&gt;
                max_life = 10h 0m 0s&lt;br /&gt;
                max_renewable_life = 7d 0h 0m 0s&lt;br /&gt;
        }&lt;br /&gt;
[logging]&lt;br /&gt;
        kdc = FILE:/tmp/kdc.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==/tmp/kdc_template.conf==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[kdcdefaults]&lt;br /&gt;
        kdc_ports = 8888&lt;br /&gt;
&lt;br /&gt;
[realms]&lt;br /&gt;
        EXAMPLE.ORG = {&lt;br /&gt;
                database_name = %(sandir)s/principal&lt;br /&gt;
                acl_file = %(sandir)s/kadm5.acl&lt;br /&gt;
                key_stash_file = %(sandir)s/.k5.EXAMPLE.ORG&lt;br /&gt;
                admin_keytab = FILE:%(sandir)s/kadm5.keytab&lt;br /&gt;
                kdc_ports = 8888&lt;br /&gt;
                kpasswd_port = 8887&lt;br /&gt;
                kadmind_port = 8886&lt;br /&gt;
                max_life = 10h 0m 0s&lt;br /&gt;
                max_renewable_life = 7d 0h 0m 0s&lt;br /&gt;
        }&lt;br /&gt;
[logging]&lt;br /&gt;
        kdc = FILE:/tmp/myrealKDC.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Haoqili</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=Krb5.conf&amp;diff=2118</id>
		<title>Krb5.conf</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=Krb5.conf&amp;diff=2118"/>
				<updated>2009-08-18T15:55:38Z</updated>
		
		<summary type="html">&lt;p&gt;Haoqili: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;save it in /tmp/krb5.conf&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[libdefaults]&lt;br /&gt;
        default_realm = EXAMPLE.ORG&lt;br /&gt;
        default_tkt_enctypes = des3-hmac-sha1 aes128-cts&lt;br /&gt;
        default_tgs_enctypes = des3-hmac-sha1 aes128-cts&lt;br /&gt;
&lt;br /&gt;
[realms]&lt;br /&gt;
        EXAMPLE.ORG = {&lt;br /&gt;
                admin_server = A.EXAMPLE.ORG&lt;br /&gt;
                default_domain = EXAMPLE.ORG&lt;br /&gt;
                kdc = localhost.localdomain:8888&lt;br /&gt;
                database_module = LDAP&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
[dbdefaults]&lt;br /&gt;
        ldap_kerberos_container_dn = &amp;quot;cn=krbContainer,dc=example,dc=org&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[dbmodules]&lt;br /&gt;
        LDAP = {&lt;br /&gt;
        db_library = kldap&lt;br /&gt;
        ldap_kerberos_container_dn = &amp;quot;cn=krbContainer,dc=example,dc=org&amp;quot;&lt;br /&gt;
        ldap_kdc_dn = cn=admin,dc=example,dc=org&lt;br /&gt;
        ldap_kadmind_dn = cn=admin,dc=example,dc=org&lt;br /&gt;
        ldap_service_password_file = /tmp/krb5kdc/admin.stash&lt;br /&gt;
        ldap_servers = ldapi:///&lt;br /&gt;
        }&lt;br /&gt;
[domain_realm]&lt;br /&gt;
&lt;br /&gt;
[logging]&lt;br /&gt;
        kdc = FILE:/tmp/kdc_fromkrb.log&lt;br /&gt;
        default = FILE:/tmp/krb5.log&lt;br /&gt;
        admin_server = FILE:/tmp/admin.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==/tmp/krb5_template.conf==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[libdefaults]&lt;br /&gt;
        default_realm = EXAMPLE.ORG&lt;br /&gt;
        default_tkt_enctypes = des3-hmac-sha1 aes128-cts&lt;br /&gt;
        default_tgs_enctypes = des3-hmac-sha1 aes128-cts&lt;br /&gt;
&lt;br /&gt;
[realms]&lt;br /&gt;
        EXAMPLE.ORG = {&lt;br /&gt;
                admin_server = A.EXAMPLE.ORG&lt;br /&gt;
                default_domain = EXAMPLE.ORG&lt;br /&gt;
                kdc = %(localFQDN)s:8888&lt;br /&gt;
                database_module = LDAP&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
[dbdefaults]&lt;br /&gt;
        ldap_kerberos_container_dn = &amp;quot;cn=krbContainer,dc=example,dc=org&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[dbmodules]&lt;br /&gt;
        LDAP = {&lt;br /&gt;
        db_library = kldap&lt;br /&gt;
        ldap_kerberos_container_dn = &amp;quot;cn=krbContainer,dc=example,dc=org&amp;quot;&lt;br /&gt;
        ldap_kdc_dn = cn=admin,dc=example,dc=org&lt;br /&gt;
        ldap_kadmind_dn = cn=admin,dc=example,dc=org&lt;br /&gt;
        ldap_service_password_file = /tmp/krb5kdc/admin.stash&lt;br /&gt;
        ldap_servers = ldapi:///&lt;br /&gt;
        }&lt;br /&gt;
[domain_realm]&lt;br /&gt;
&lt;br /&gt;
[logging]&lt;br /&gt;
        kdc = FILE:/tmp/kdc_fromkrb.log&lt;br /&gt;
        default = FILE:/tmp/krb5.log&lt;br /&gt;
        admin_server = FILE:/tmp/admin.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Haoqili</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=Krb5.conf&amp;diff=2117</id>
		<title>Krb5.conf</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=Krb5.conf&amp;diff=2117"/>
				<updated>2009-08-18T15:54:53Z</updated>
		
		<summary type="html">&lt;p&gt;Haoqili: took out old&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/tmp/krb5_t.conf&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[libdefaults]&lt;br /&gt;
        default_realm = EXAMPLE.ORG&lt;br /&gt;
        default_tkt_enctypes = des3-hmac-sha1 aes128-cts&lt;br /&gt;
        default_tgs_enctypes = des3-hmac-sha1 aes128-cts&lt;br /&gt;
&lt;br /&gt;
[realms]&lt;br /&gt;
        EXAMPLE.ORG = {&lt;br /&gt;
                admin_server = A.EXAMPLE.ORG&lt;br /&gt;
                default_domain = EXAMPLE.ORG&lt;br /&gt;
                kdc = %(localFQDN)s:8888&lt;br /&gt;
                database_module = LDAP&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
[dbdefaults]&lt;br /&gt;
        ldap_kerberos_container_dn = &amp;quot;cn=krbContainer,dc=example,dc=org&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[dbmodules]&lt;br /&gt;
        LDAP = {&lt;br /&gt;
        db_library = kldap&lt;br /&gt;
        ldap_kerberos_container_dn = &amp;quot;cn=krbContainer,dc=example,dc=org&amp;quot;&lt;br /&gt;
        ldap_kdc_dn = cn=admin,dc=example,dc=org&lt;br /&gt;
        ldap_kadmind_dn = cn=admin,dc=example,dc=org&lt;br /&gt;
        ldap_service_password_file = /tmp/krb5kdc/admin.stash&lt;br /&gt;
        ldap_servers = ldapi:///&lt;br /&gt;
        }&lt;br /&gt;
[domain_realm]&lt;br /&gt;
&lt;br /&gt;
[logging]&lt;br /&gt;
        kdc = FILE:/tmp/kdc_fromkrb.log&lt;br /&gt;
        default = FILE:/tmp/krb5.log&lt;br /&gt;
        admin_server = FILE:/tmp/admin.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--------------------------&lt;br /&gt;
&lt;br /&gt;
you can save it in /tmp/krb5.conf&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[libdefaults]&lt;br /&gt;
        default_realm = EXAMPLE.ORG&lt;br /&gt;
        default_tkt_enctypes = des3-hmac-sha1 aes128-cts&lt;br /&gt;
        default_tgs_enctypes = des3-hmac-sha1 aes128-cts&lt;br /&gt;
&lt;br /&gt;
[realms]&lt;br /&gt;
        EXAMPLE.ORG = {&lt;br /&gt;
                admin_server = A.EXAMPLE.ORG&lt;br /&gt;
                default_domain = EXAMPLE.ORG&lt;br /&gt;
                kdc = localhost.localdomain:8888&lt;br /&gt;
                database_module = LDAP&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
[dbdefaults]&lt;br /&gt;
        ldap_kerberos_container_dn = &amp;quot;cn=krbContainer,dc=example,dc=org&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[dbmodules]&lt;br /&gt;
        LDAP = {&lt;br /&gt;
        db_library = kldap&lt;br /&gt;
        ldap_kerberos_container_dn = &amp;quot;cn=krbContainer,dc=example,dc=org&amp;quot;&lt;br /&gt;
        ldap_kdc_dn = cn=admin,dc=example,dc=org&lt;br /&gt;
        ldap_kadmind_dn = cn=admin,dc=example,dc=org&lt;br /&gt;
        ldap_service_password_file = /tmp/krb5kdc/admin.stash&lt;br /&gt;
        ldap_servers = ldapi:///&lt;br /&gt;
        }&lt;br /&gt;
[domain_realm]&lt;br /&gt;
&lt;br /&gt;
[logging]&lt;br /&gt;
        kdc = FILE:/tmp/kdc_fromkrb.log&lt;br /&gt;
        default = FILE:/tmp/krb5.log&lt;br /&gt;
        admin_server = FILE:/tmp/admin.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Haoqili</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=Kdc.conf&amp;diff=2116</id>
		<title>Kdc.conf</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=Kdc.conf&amp;diff=2116"/>
				<updated>2009-08-18T15:53:40Z</updated>
		
		<summary type="html">&lt;p&gt;Haoqili: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/tmp/kdc_t.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[kdcdefaults]&lt;br /&gt;
        kdc_ports = 8888&lt;br /&gt;
&lt;br /&gt;
[realms]&lt;br /&gt;
        EXAMPLE.ORG = {&lt;br /&gt;
                database_name = %(sandir)s/principal&lt;br /&gt;
                acl_file = %(sandir)s/kadm5.acl&lt;br /&gt;
                key_stash_file = %(sandir)s/.k5.EXAMPLE.ORG&lt;br /&gt;
                admin_keytab = FILE:%(sandir)s/kadm5.keytab&lt;br /&gt;
                kdc_ports = 8888&lt;br /&gt;
                kpasswd_port = 8887&lt;br /&gt;
                kadmind_port = 8886&lt;br /&gt;
                max_life = 10h 0m 0s&lt;br /&gt;
                max_renewable_life = 7d 0h 0m 0s&lt;br /&gt;
        }&lt;br /&gt;
[logging]&lt;br /&gt;
        kdc = FILE:/tmp/myrealKDC.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--------------------&lt;br /&gt;
&lt;br /&gt;
you can save it in /tmp/kdc.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[kdcdefaults]&lt;br /&gt;
        kdc_ports = 8888&lt;br /&gt;
&lt;br /&gt;
[realms]&lt;br /&gt;
        EXAMPLE.ORG = {&lt;br /&gt;
                database_name = /tmp/krb5kdc/principal&lt;br /&gt;
                acl_file = /tmp/kadm5.acl&lt;br /&gt;
&lt;br /&gt;
                key_stash_file = /tmp/krb5kdc/.k5.EXAMPLE.ORG&lt;br /&gt;
                admin_keytab = FILE:/tmp/krb5kdc/kadm5.keytab&lt;br /&gt;
                kdc_ports = 8888&lt;br /&gt;
                kpasswd_port = 8887&lt;br /&gt;
                kadmind_port = 8886&lt;br /&gt;
                max_life = 10h 0m 0s&lt;br /&gt;
                max_renewable_life = 7d 0h 0m 0s&lt;br /&gt;
        }&lt;br /&gt;
[logging]&lt;br /&gt;
        kdc = FILE:/tmp/kdc.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Haoqili</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=Kdc.conf&amp;diff=2115</id>
		<title>Kdc.conf</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=Kdc.conf&amp;diff=2115"/>
				<updated>2009-08-18T15:53:16Z</updated>
		
		<summary type="html">&lt;p&gt;Haoqili: took out old&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/tmp/kdc_t.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[kdcdefaults]&lt;br /&gt;
        kdc_ports = 8888&lt;br /&gt;
&lt;br /&gt;
[realms]&lt;br /&gt;
        EXAMPLE.ORG = {&lt;br /&gt;
                database_name = %(sandir)s/principal&lt;br /&gt;
                acl_file = %(sandir)s/kadm5.acl&lt;br /&gt;
                key_stash_file = %(sandir)s/.k5.EXAMPLE.ORG&lt;br /&gt;
                admin_keytab = FILE:%(sandir)s/kadm5.keytab&lt;br /&gt;
                kdc_ports = 8888&lt;br /&gt;
                kpasswd_port = 8887&lt;br /&gt;
                kadmind_port = 8886&lt;br /&gt;
                max_life = 10h 0m 0s&lt;br /&gt;
                max_renewable_life = 7d 0h 0m 0s&lt;br /&gt;
        }&lt;br /&gt;
[logging]&lt;br /&gt;
        kdc = FILE:/tmp/myrealKDC.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--------------------&lt;br /&gt;
&lt;br /&gt;
you can save it in /tmp/kdc.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[kdcdefaults]&lt;br /&gt;
        kdc_ports = 8888&lt;br /&gt;
&lt;br /&gt;
[realms]&lt;br /&gt;
        EXAMPLE.ORG = {&lt;br /&gt;
                database_name = /tmp/krb5kdc/principal&lt;br /&gt;
                acl_file = /tmp/kadm5.acl&lt;br /&gt;
&lt;br /&gt;
                key_stash_file = /tmp/krb5kdc/.k5.EXAMPLE.ORG&lt;br /&gt;
                admin_keytab = FILE:/tmp/krb5kdc/kadm5.keytab&lt;br /&gt;
                kdc_ports = 8888&lt;br /&gt;
                kpasswd_port = 8887&lt;br /&gt;
                kadmind_port = 8886&lt;br /&gt;
                max_life = 10h 0m 0s&lt;br /&gt;
                max_renewable_life = 7d 0h 0m 0s&lt;br /&gt;
        }&lt;br /&gt;
[logging]&lt;br /&gt;
        kdc = FILE:/tmp/myrealKDC.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Haoqili</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=Kadm5.acl&amp;diff=2114</id>
		<title>Kadm5.acl</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=Kadm5.acl&amp;diff=2114"/>
				<updated>2009-08-18T15:52:48Z</updated>
		
		<summary type="html">&lt;p&gt;Haoqili: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;save: /tmp/kadm5.acl&lt;br /&gt;
&lt;br /&gt;
Yes, it is only one line long&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
*/admin *&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Haoqili</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2113</id>
		<title>LDAP on Kerberos</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2113"/>
				<updated>2009-08-18T15:51:30Z</updated>
		
		<summary type="html">&lt;p&gt;Haoqili: /* 5. Kerb Schema Operations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== To Do ==&lt;br /&gt;
* Simpler Domain names D.COM, R.COM&lt;br /&gt;
* Different domain names&lt;br /&gt;
* Figure out required schemas&lt;br /&gt;
* Figure out: In Kerb Schema Operations, I can do &amp;quot;or update slapd.conf with kerb schema or ldif&amp;quot; in some ubuntu&lt;br /&gt;
* Play around to get minimum set of requirement&lt;br /&gt;
&lt;br /&gt;
== 0. Sample code to follow ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
    8  mkdir krb5kdc&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
   16  make distclean&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
   19  make&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
   29  krb5kdc -n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 1. Information about the system ==&lt;br /&gt;
- packages&lt;br /&gt;
* Version of ubuntu&lt;br /&gt;
       lsb_release -a&lt;br /&gt;
       No LSB modules are available.&lt;br /&gt;
       Distributor ID:        Ubuntu&lt;br /&gt;
       Description:        Ubuntu 9.04&lt;br /&gt;
       Release:        9.04&lt;br /&gt;
       Codename:        jaunty&lt;br /&gt;
* Version of slapd: 2.4.15 (Mar 19 2009)&lt;br /&gt;
       slapd -V&lt;br /&gt;
       @(#) $OpenLDAP: slapd 2.4.15 (Mar 19 2009 10:08:25) $&lt;br /&gt;
       buildd@palmer:/build/buildd/openldap-2.4.15/debian/build/servers/slapd&lt;br /&gt;
&lt;br /&gt;
* Version of ldap-utils: 2.4.15&lt;br /&gt;
       dpkg -l ldap-utils&lt;br /&gt;
&lt;br /&gt;
== 2. Extract krb conf files ==&lt;br /&gt;
* It is crucial to have correct, consistent domain names.  You must have the dbmodules in krb5.conf.&lt;br /&gt;
* Save [[krb5.conf]]&lt;br /&gt;
* Save [[kdc.conf]]&lt;br /&gt;
* Save [[kadm5.acl]]&lt;br /&gt;
&lt;br /&gt;
== 3. Env and Setup==&lt;br /&gt;
You need to export these lines into your env. Based on where you saved these files.&lt;br /&gt;
&lt;br /&gt;
*export KRB5_CONFIG=/tmp/sandbox/krb5.conf&lt;br /&gt;
&lt;br /&gt;
*export KRB5_KDC_PROFILE=/tmp/sandbox/kdc.conf&lt;br /&gt;
&lt;br /&gt;
* make a krb5kdc folder: mkdir /tmp/sandbox/krb5kdc)&lt;br /&gt;
&lt;br /&gt;
Whatever you do, be consistent&lt;br /&gt;
&lt;br /&gt;
== 4. Build kerb. config ==&lt;br /&gt;
&lt;br /&gt;
# Install Packages:&lt;br /&gt;
#* &amp;lt;code&amp;gt; sudo apt-get install slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
#* for ldapsearch: &amp;lt;code&amp;gt;sudo apt-get install ldap-utils&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo apt-get install libldap2-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
# Set the &amp;quot;domain&amp;quot; of your LDAP server with &amp;lt;code&amp;gt;sudo dpkg-reconfigure slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
##: Indented are the debconf-get-selection lines&lt;br /&gt;
## Omit OpenLDAP server configuration: No&lt;br /&gt;
##: slapd   slapd/no_configuration  boolean false&lt;br /&gt;
## DNS domain name: example.org&lt;br /&gt;
##: slapd   slapd/domain    string  example.org&lt;br /&gt;
## Organization name: example.org [note: i used the same name for simplicity]&lt;br /&gt;
##: slapd   shared/organization     string  example.org&lt;br /&gt;
## Databases backend to use: HDB, instead of BDB&lt;br /&gt;
##: slapd   slapd/backend   select  HDB&lt;br /&gt;
## Do you want the database to be removed when slapd is purge: Yes&lt;br /&gt;
##: slapd   slapd/purge_database    boolean true&lt;br /&gt;
## Move old database: Yes&lt;br /&gt;
##: slapd   slapd/move_old_database boolean true&lt;br /&gt;
## Admin password: [your pwd]&lt;br /&gt;
##: slapd   slapd/password1 password&lt;br /&gt;
##: [I'm not sure about the debconf-get-selection line here.  There are 5 different password lines!]&lt;br /&gt;
## Confirm password: [your pwd]&lt;br /&gt;
##: slapd   slapd/password2 password&lt;br /&gt;
## Allow LDAPv2 protocol: No&lt;br /&gt;
##: slapd   slapd/allow_ldap_v2     boolean false&lt;br /&gt;
#: Checkpoint:  If you are successful, you should see as output:&lt;br /&gt;
#:: ''Stopping OpenLDAP: slapd.''&lt;br /&gt;
#::  ''Moving old database directory to /var/backups:''&lt;br /&gt;
#::  ''- directory unknown... done.''&lt;br /&gt;
#::  ''Creating initial slapd configuration... done.''&lt;br /&gt;
#::  ''Creating initial LDAP directory... done.''&lt;br /&gt;
#:: ''* Reloading AppArmor profiles ''&lt;br /&gt;
#::  ''...                                               [ OK ]'' &lt;br /&gt;
#::  ''Starting OpenLDAP: slapd.''&lt;br /&gt;
# If you haven't done so already, please copy kerberos.schema from your kerberos trunk into /etc/ldap/schema: &amp;lt;code&amp;gt;sudo cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
# To restrict access to the local machine, &amp;lt;code&amp;gt;sudo vim /etc/default/slapd&amp;lt;/code&amp;gt;, search for SLAPD_SERVICES and set it to: &amp;lt;pre&amp;gt;SLAPD_SERVICES=&amp;quot;ldapi:///&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Reconfigure your kerberos&lt;br /&gt;
#* Navigate to kerberos src&lt;br /&gt;
#* &amp;lt;code&amp;gt;make distclean&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;util/reconf&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;./configure --with-ldap&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo make install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 5. Kerb Schema Operations ==&lt;br /&gt;
Loosely followed [http://ajuda.ubuntu.cat/9.04/serverguide/kerberos-ldap.html Ubuntu Guide] and [http://web.mit.edu/kerberos/krb5-1.7/krb5-1.7/doc/krb5-admin.html#Configuring-Kerberos-with-OpenLDAP-back_002dend Kerberos V5 System Admin Guide]&lt;br /&gt;
&lt;br /&gt;
# You have not done so already, locate the kerberos.schema.  [[kerberos.schema]] which should be in /etc/ldap/schema/kerberos.schema.  If it is not there, please copy it there from your kerberos trunk: &amp;lt;code&amp;gt;cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Checkpoint: Make sure there is a list of different schemas in /etc/ldap/schema.  Such as&lt;br /&gt;
#:* core.schema&lt;br /&gt;
#:* inetorgperson.schema&lt;br /&gt;
#:* kerberos.schema&lt;br /&gt;
#:* misc.schema&lt;br /&gt;
#:* openldap.schema&lt;br /&gt;
# Make this [[schema_convert.conf]] at /tmp/schema_convert.conf.  Note! This is different from the schema_convert.conf in the Ubuntu Guide.&lt;br /&gt;
# Make the directory to hold output: &amp;lt;code&amp;gt;mkdir /tmp/ldif_output &amp;lt;/code&amp;gt;&lt;br /&gt;
# Convert schema --&amp;gt; LDIF with slaptest: &amp;lt;code&amp;gt;slaptest -f tmp/schema_convert.conf -F /tmp/ldif_output&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: &amp;quot;config file testing succeeded&amp;quot;&lt;br /&gt;
#: Checkpoint: If you &amp;lt;code&amp;gt;sudo ls /tmp/ldif_output/cn\=config/cn\=schema&amp;lt;/code&amp;gt;, you should see:&lt;br /&gt;
#:: cn={0}core.ldif       &lt;br /&gt;
#:: cn={1}corba.ldif          &lt;br /&gt;
#:: cn={2}cosine.ldif   &lt;br /&gt;
#:: cn={3}duaconf.ldif  &lt;br /&gt;
#:: cn={4}inetorgperson.ldif&lt;br /&gt;
#:: cn={5}java.ldif	&lt;br /&gt;
#:: cn={6}kerberos.ldif&lt;br /&gt;
#:: cn={7}misc.ldif&lt;br /&gt;
#:: cn={8}openldap.ldif&lt;br /&gt;
#:: cn={9}nis.ldif&lt;br /&gt;
# Need to modify kerberos.ldif. &lt;br /&gt;
#* Find which number kerberos.ldif is listed as: &amp;lt;code&amp;gt;sudo ls /tmp/ldif_output/cn\=config/cn\=schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Edit it: &amp;lt;code&amp;gt; sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn={6}kerberos.ldif&amp;lt;/code&amp;gt;&lt;br /&gt;
#** change ''dn: cn={6}kerberos'' into ''dn: cn=kerberos,cn=schema,cn=config''&lt;br /&gt;
#** change ''cn: {6}kerberos'' into ''cn: kerberos''&lt;br /&gt;
#** Delete the bottom lines: from ''structuralObjectClasses: olcSchemaConfig'' to ''modifyTimestamp: 20090811205313Z''&lt;br /&gt;
# load new schema: &amp;lt;code&amp;gt;sudo ldapadd -x -D cn=admin,cn=config -W -f /tmp/ldif_output/cn\=config/cn\=schema/cn\={6}kerberos.ldif -H ldapi:///&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: ''adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
== 6. Starting ==&lt;br /&gt;
* Create your database with kdb5_ldap_util instead of kdb5_util:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -W -H ldapi:/// create  -s&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Initializing database for realm 'EXAMPLE.ORG'&lt;br /&gt;
You will be prompted for the database Master Password.&lt;br /&gt;
It is important that you NOT FORGET this password.&lt;br /&gt;
Enter KDC database master key: &lt;br /&gt;
Re-enter KDC database master key to verify: &lt;br /&gt;
&lt;br /&gt;
Kerberos container is missing. Creating now...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Stash the password:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -W -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&amp;lt;/code&amp;gt;&lt;br /&gt;
*: Checkpoint: If it works, you can do:&lt;br /&gt;
*:* &amp;lt;code&amp;gt;kadmin.local&amp;lt;/code&amp;gt;, try &amp;lt;code&amp;gt;listprincs&amp;lt;/code&amp;gt;, quit by typing &amp;lt;code&amp;gt;quit&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;krb5kdc&amp;lt;/code&amp;gt; &lt;br /&gt;
*: Checkpoint: &amp;lt;code&amp;gt;ps -ef | grep krb5kdc&amp;lt;/code&amp;gt; should show it running&lt;br /&gt;
&lt;br /&gt;
* Command to destroy kdb5_ldap_util: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -W -H ldapi:/// destroy&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Scratch Pad ==&lt;br /&gt;
&lt;br /&gt;
===Assume People have done===&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
&lt;br /&gt;
   16  make distclean&lt;br /&gt;
&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
&lt;br /&gt;
   19  make&lt;br /&gt;
&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
&lt;br /&gt;
    8  mkdir /tmp/krb5kdc (or should it be /tmp/sandbox/krb5kdc)?&lt;br /&gt;
&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
&lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
&lt;br /&gt;
   29  krb5kdc -n&lt;/div&gt;</summary>
		<author><name>Haoqili</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2112</id>
		<title>LDAP on Kerberos</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2112"/>
				<updated>2009-08-18T15:50:48Z</updated>
		
		<summary type="html">&lt;p&gt;Haoqili: /* 6. Starting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== To Do ==&lt;br /&gt;
* Simpler Domain names D.COM, R.COM&lt;br /&gt;
* Different domain names&lt;br /&gt;
* Figure out required schemas&lt;br /&gt;
* Figure out: In Kerb Schema Operations, I can do &amp;quot;or update slapd.conf with kerb schema or ldif&amp;quot; in some ubuntu&lt;br /&gt;
* Play around to get minimum set of requirement&lt;br /&gt;
&lt;br /&gt;
== 0. Sample code to follow ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
    8  mkdir krb5kdc&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
   16  make distclean&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
   19  make&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
   29  krb5kdc -n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 1. Information about the system ==&lt;br /&gt;
- packages&lt;br /&gt;
* Version of ubuntu&lt;br /&gt;
       lsb_release -a&lt;br /&gt;
       No LSB modules are available.&lt;br /&gt;
       Distributor ID:        Ubuntu&lt;br /&gt;
       Description:        Ubuntu 9.04&lt;br /&gt;
       Release:        9.04&lt;br /&gt;
       Codename:        jaunty&lt;br /&gt;
* Version of slapd: 2.4.15 (Mar 19 2009)&lt;br /&gt;
       slapd -V&lt;br /&gt;
       @(#) $OpenLDAP: slapd 2.4.15 (Mar 19 2009 10:08:25) $&lt;br /&gt;
       buildd@palmer:/build/buildd/openldap-2.4.15/debian/build/servers/slapd&lt;br /&gt;
&lt;br /&gt;
* Version of ldap-utils: 2.4.15&lt;br /&gt;
       dpkg -l ldap-utils&lt;br /&gt;
&lt;br /&gt;
== 2. Extract krb conf files ==&lt;br /&gt;
* It is crucial to have correct, consistent domain names.  You must have the dbmodules in krb5.conf.&lt;br /&gt;
* Save [[krb5.conf]]&lt;br /&gt;
* Save [[kdc.conf]]&lt;br /&gt;
* Save [[kadm5.acl]]&lt;br /&gt;
&lt;br /&gt;
== 3. Env and Setup==&lt;br /&gt;
You need to export these lines into your env. Based on where you saved these files.&lt;br /&gt;
&lt;br /&gt;
*export KRB5_CONFIG=/tmp/sandbox/krb5.conf&lt;br /&gt;
&lt;br /&gt;
*export KRB5_KDC_PROFILE=/tmp/sandbox/kdc.conf&lt;br /&gt;
&lt;br /&gt;
* make a krb5kdc folder: mkdir /tmp/sandbox/krb5kdc)&lt;br /&gt;
&lt;br /&gt;
Whatever you do, be consistent&lt;br /&gt;
&lt;br /&gt;
== 4. Build kerb. config ==&lt;br /&gt;
&lt;br /&gt;
# Install Packages:&lt;br /&gt;
#* &amp;lt;code&amp;gt; sudo apt-get install slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
#* for ldapsearch: &amp;lt;code&amp;gt;sudo apt-get install ldap-utils&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo apt-get install libldap2-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
# Set the &amp;quot;domain&amp;quot; of your LDAP server with &amp;lt;code&amp;gt;sudo dpkg-reconfigure slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
##: Indented are the debconf-get-selection lines&lt;br /&gt;
## Omit OpenLDAP server configuration: No&lt;br /&gt;
##: slapd   slapd/no_configuration  boolean false&lt;br /&gt;
## DNS domain name: example.org&lt;br /&gt;
##: slapd   slapd/domain    string  example.org&lt;br /&gt;
## Organization name: example.org [note: i used the same name for simplicity]&lt;br /&gt;
##: slapd   shared/organization     string  example.org&lt;br /&gt;
## Databases backend to use: HDB, instead of BDB&lt;br /&gt;
##: slapd   slapd/backend   select  HDB&lt;br /&gt;
## Do you want the database to be removed when slapd is purge: Yes&lt;br /&gt;
##: slapd   slapd/purge_database    boolean true&lt;br /&gt;
## Move old database: Yes&lt;br /&gt;
##: slapd   slapd/move_old_database boolean true&lt;br /&gt;
## Admin password: [your pwd]&lt;br /&gt;
##: slapd   slapd/password1 password&lt;br /&gt;
##: [I'm not sure about the debconf-get-selection line here.  There are 5 different password lines!]&lt;br /&gt;
## Confirm password: [your pwd]&lt;br /&gt;
##: slapd   slapd/password2 password&lt;br /&gt;
## Allow LDAPv2 protocol: No&lt;br /&gt;
##: slapd   slapd/allow_ldap_v2     boolean false&lt;br /&gt;
#: Checkpoint:  If you are successful, you should see as output:&lt;br /&gt;
#:: ''Stopping OpenLDAP: slapd.''&lt;br /&gt;
#::  ''Moving old database directory to /var/backups:''&lt;br /&gt;
#::  ''- directory unknown... done.''&lt;br /&gt;
#::  ''Creating initial slapd configuration... done.''&lt;br /&gt;
#::  ''Creating initial LDAP directory... done.''&lt;br /&gt;
#:: ''* Reloading AppArmor profiles ''&lt;br /&gt;
#::  ''...                                               [ OK ]'' &lt;br /&gt;
#::  ''Starting OpenLDAP: slapd.''&lt;br /&gt;
# If you haven't done so already, please copy kerberos.schema from your kerberos trunk into /etc/ldap/schema: &amp;lt;code&amp;gt;sudo cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
# To restrict access to the local machine, &amp;lt;code&amp;gt;sudo vim /etc/default/slapd&amp;lt;/code&amp;gt;, search for SLAPD_SERVICES and set it to: &amp;lt;pre&amp;gt;SLAPD_SERVICES=&amp;quot;ldapi:///&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Reconfigure your kerberos&lt;br /&gt;
#* Navigate to kerberos src&lt;br /&gt;
#* &amp;lt;code&amp;gt;make distclean&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;util/reconf&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;./configure --with-ldap&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo make install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 5. Kerb Schema Operations ==&lt;br /&gt;
Loosely followed [http://ajuda.ubuntu.cat/9.04/serverguide/kerberos-ldap.html Ubuntu Guide] and [http://web.mit.edu/kerberos/krb5-1.7/krb5-1.7/doc/krb5-admin.html#Configuring-Kerberos-with-OpenLDAP-back_002dend Kerberos V5 System Admin Guide]&lt;br /&gt;
&lt;br /&gt;
# You have not done so already, locate the kerberos.schema.  [[kerberos.schema]] which should be in /etc/ldap/schema/kerberos.schema.  If it is not there, please copy it there from your kerberos trunk: &amp;lt;code&amp;gt;cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Checkpoint: Make sure there is a list of different schemas in /etc/ldap/schema.  Such as&lt;br /&gt;
#:* core.schema&lt;br /&gt;
#:* inetorgperson.schema&lt;br /&gt;
#:* kerberos.schema&lt;br /&gt;
#:* misc.schema&lt;br /&gt;
#:* openldap.schema&lt;br /&gt;
# Make this [[schema_convert.conf]] at /tmp/schema_convert.conf.  Note! This is different from the schema_convert.conf in the Ubuntu Guide.&lt;br /&gt;
# Make the directory to hold output: &amp;lt;code&amp;gt;mkdir /tmp/ldif_output &amp;lt;/code&amp;gt;&lt;br /&gt;
# Convert schema --&amp;gt; LDIF with slaptest: &amp;lt;code&amp;gt;slaptest -f tmp/schema_convert.conf -F /tmp/ldif_output&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: &amp;quot;config file testing succeeded&amp;quot;&lt;br /&gt;
#: Checkpoint: If you &amp;lt;code&amp;gt;sudo ls /tmp/ldif_output/cn\=config/cn\=schema&amp;lt;/code&amp;gt;, you should see:&lt;br /&gt;
#:: cn={0}core.ldif       &lt;br /&gt;
#:: cn={1}corba.ldif          &lt;br /&gt;
#:: cn={2}cosine.ldif   &lt;br /&gt;
#:: cn={3}duaconf.ldif  &lt;br /&gt;
#:: cn={4}inetorgperson.ldif&lt;br /&gt;
#:: cn={5}java.ldif	&lt;br /&gt;
#:: cn={6}kerberos.ldif&lt;br /&gt;
#:: cn={7}misc.ldif&lt;br /&gt;
#:: cn={8}openldap.ldif&lt;br /&gt;
#:: cn={9}nis.ldif&lt;br /&gt;
# Need to modify kerberos.ldif. &lt;br /&gt;
#* Find which number kerberos.ldif is listed as: &amp;lt;code&amp;gt;sudo ls /tmp/ldif_output/cn\=config/cn\=schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Edit it: &amp;lt;code&amp;gt; sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn={6}kerberos.ldif&amp;lt;/code&amp;gt;&lt;br /&gt;
#** change ''dn: cn={6}kerberos'' into ''dn: cn=kerberos,cn=schema,cn=config''&lt;br /&gt;
#** change ''cn: {6}kerberos'' into ''cn: kerberos''&lt;br /&gt;
#** Delete the bottom lines: from ''structuralObjectClasses: olcSchemaConfig'' to ''modifyTimestamp: 20090811205313Z''&lt;br /&gt;
# load new schema, replace &amp;quot;-w a&amp;quot; with your password: &amp;lt;code&amp;gt;sudo ldapadd -x -D cn=admin,cn=config -W -f /tmp/ldif_output/cn\=config/cn\=schema/cn\={6}kerberos.ldif -H ldapi:///&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: ''adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
== 6. Starting ==&lt;br /&gt;
* Create your database with kdb5_ldap_util instead of kdb5_util:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -W -H ldapi:/// create  -s&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Initializing database for realm 'EXAMPLE.ORG'&lt;br /&gt;
You will be prompted for the database Master Password.&lt;br /&gt;
It is important that you NOT FORGET this password.&lt;br /&gt;
Enter KDC database master key: &lt;br /&gt;
Re-enter KDC database master key to verify: &lt;br /&gt;
&lt;br /&gt;
Kerberos container is missing. Creating now...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Stash the password:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -W -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&amp;lt;/code&amp;gt;&lt;br /&gt;
*: Checkpoint: If it works, you can do:&lt;br /&gt;
*:* &amp;lt;code&amp;gt;kadmin.local&amp;lt;/code&amp;gt;, try &amp;lt;code&amp;gt;listprincs&amp;lt;/code&amp;gt;, quit by typing &amp;lt;code&amp;gt;quit&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;krb5kdc&amp;lt;/code&amp;gt; &lt;br /&gt;
*: Checkpoint: &amp;lt;code&amp;gt;ps -ef | grep krb5kdc&amp;lt;/code&amp;gt; should show it running&lt;br /&gt;
&lt;br /&gt;
* Command to destroy kdb5_ldap_util: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -W -H ldapi:/// destroy&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Scratch Pad ==&lt;br /&gt;
&lt;br /&gt;
===Assume People have done===&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
&lt;br /&gt;
   16  make distclean&lt;br /&gt;
&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
&lt;br /&gt;
   19  make&lt;br /&gt;
&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
&lt;br /&gt;
    8  mkdir /tmp/krb5kdc (or should it be /tmp/sandbox/krb5kdc)?&lt;br /&gt;
&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
&lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
&lt;br /&gt;
   29  krb5kdc -n&lt;/div&gt;</summary>
		<author><name>Haoqili</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2111</id>
		<title>LDAP on Kerberos</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2111"/>
				<updated>2009-08-18T15:50:13Z</updated>
		
		<summary type="html">&lt;p&gt;Haoqili: /* 6. Starting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== To Do ==&lt;br /&gt;
* Simpler Domain names D.COM, R.COM&lt;br /&gt;
* Different domain names&lt;br /&gt;
* Figure out required schemas&lt;br /&gt;
* Figure out: In Kerb Schema Operations, I can do &amp;quot;or update slapd.conf with kerb schema or ldif&amp;quot; in some ubuntu&lt;br /&gt;
* Play around to get minimum set of requirement&lt;br /&gt;
&lt;br /&gt;
== 0. Sample code to follow ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
    8  mkdir krb5kdc&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
   16  make distclean&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
   19  make&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
   29  krb5kdc -n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 1. Information about the system ==&lt;br /&gt;
- packages&lt;br /&gt;
* Version of ubuntu&lt;br /&gt;
       lsb_release -a&lt;br /&gt;
       No LSB modules are available.&lt;br /&gt;
       Distributor ID:        Ubuntu&lt;br /&gt;
       Description:        Ubuntu 9.04&lt;br /&gt;
       Release:        9.04&lt;br /&gt;
       Codename:        jaunty&lt;br /&gt;
* Version of slapd: 2.4.15 (Mar 19 2009)&lt;br /&gt;
       slapd -V&lt;br /&gt;
       @(#) $OpenLDAP: slapd 2.4.15 (Mar 19 2009 10:08:25) $&lt;br /&gt;
       buildd@palmer:/build/buildd/openldap-2.4.15/debian/build/servers/slapd&lt;br /&gt;
&lt;br /&gt;
* Version of ldap-utils: 2.4.15&lt;br /&gt;
       dpkg -l ldap-utils&lt;br /&gt;
&lt;br /&gt;
== 2. Extract krb conf files ==&lt;br /&gt;
* It is crucial to have correct, consistent domain names.  You must have the dbmodules in krb5.conf.&lt;br /&gt;
* Save [[krb5.conf]]&lt;br /&gt;
* Save [[kdc.conf]]&lt;br /&gt;
* Save [[kadm5.acl]]&lt;br /&gt;
&lt;br /&gt;
== 3. Env and Setup==&lt;br /&gt;
You need to export these lines into your env. Based on where you saved these files.&lt;br /&gt;
&lt;br /&gt;
*export KRB5_CONFIG=/tmp/sandbox/krb5.conf&lt;br /&gt;
&lt;br /&gt;
*export KRB5_KDC_PROFILE=/tmp/sandbox/kdc.conf&lt;br /&gt;
&lt;br /&gt;
* make a krb5kdc folder: mkdir /tmp/sandbox/krb5kdc)&lt;br /&gt;
&lt;br /&gt;
Whatever you do, be consistent&lt;br /&gt;
&lt;br /&gt;
== 4. Build kerb. config ==&lt;br /&gt;
&lt;br /&gt;
# Install Packages:&lt;br /&gt;
#* &amp;lt;code&amp;gt; sudo apt-get install slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
#* for ldapsearch: &amp;lt;code&amp;gt;sudo apt-get install ldap-utils&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo apt-get install libldap2-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
# Set the &amp;quot;domain&amp;quot; of your LDAP server with &amp;lt;code&amp;gt;sudo dpkg-reconfigure slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
##: Indented are the debconf-get-selection lines&lt;br /&gt;
## Omit OpenLDAP server configuration: No&lt;br /&gt;
##: slapd   slapd/no_configuration  boolean false&lt;br /&gt;
## DNS domain name: example.org&lt;br /&gt;
##: slapd   slapd/domain    string  example.org&lt;br /&gt;
## Organization name: example.org [note: i used the same name for simplicity]&lt;br /&gt;
##: slapd   shared/organization     string  example.org&lt;br /&gt;
## Databases backend to use: HDB, instead of BDB&lt;br /&gt;
##: slapd   slapd/backend   select  HDB&lt;br /&gt;
## Do you want the database to be removed when slapd is purge: Yes&lt;br /&gt;
##: slapd   slapd/purge_database    boolean true&lt;br /&gt;
## Move old database: Yes&lt;br /&gt;
##: slapd   slapd/move_old_database boolean true&lt;br /&gt;
## Admin password: [your pwd]&lt;br /&gt;
##: slapd   slapd/password1 password&lt;br /&gt;
##: [I'm not sure about the debconf-get-selection line here.  There are 5 different password lines!]&lt;br /&gt;
## Confirm password: [your pwd]&lt;br /&gt;
##: slapd   slapd/password2 password&lt;br /&gt;
## Allow LDAPv2 protocol: No&lt;br /&gt;
##: slapd   slapd/allow_ldap_v2     boolean false&lt;br /&gt;
#: Checkpoint:  If you are successful, you should see as output:&lt;br /&gt;
#:: ''Stopping OpenLDAP: slapd.''&lt;br /&gt;
#::  ''Moving old database directory to /var/backups:''&lt;br /&gt;
#::  ''- directory unknown... done.''&lt;br /&gt;
#::  ''Creating initial slapd configuration... done.''&lt;br /&gt;
#::  ''Creating initial LDAP directory... done.''&lt;br /&gt;
#:: ''* Reloading AppArmor profiles ''&lt;br /&gt;
#::  ''...                                               [ OK ]'' &lt;br /&gt;
#::  ''Starting OpenLDAP: slapd.''&lt;br /&gt;
# If you haven't done so already, please copy kerberos.schema from your kerberos trunk into /etc/ldap/schema: &amp;lt;code&amp;gt;sudo cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
# To restrict access to the local machine, &amp;lt;code&amp;gt;sudo vim /etc/default/slapd&amp;lt;/code&amp;gt;, search for SLAPD_SERVICES and set it to: &amp;lt;pre&amp;gt;SLAPD_SERVICES=&amp;quot;ldapi:///&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Reconfigure your kerberos&lt;br /&gt;
#* Navigate to kerberos src&lt;br /&gt;
#* &amp;lt;code&amp;gt;make distclean&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;util/reconf&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;./configure --with-ldap&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo make install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 5. Kerb Schema Operations ==&lt;br /&gt;
Loosely followed [http://ajuda.ubuntu.cat/9.04/serverguide/kerberos-ldap.html Ubuntu Guide] and [http://web.mit.edu/kerberos/krb5-1.7/krb5-1.7/doc/krb5-admin.html#Configuring-Kerberos-with-OpenLDAP-back_002dend Kerberos V5 System Admin Guide]&lt;br /&gt;
&lt;br /&gt;
# You have not done so already, locate the kerberos.schema.  [[kerberos.schema]] which should be in /etc/ldap/schema/kerberos.schema.  If it is not there, please copy it there from your kerberos trunk: &amp;lt;code&amp;gt;cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Checkpoint: Make sure there is a list of different schemas in /etc/ldap/schema.  Such as&lt;br /&gt;
#:* core.schema&lt;br /&gt;
#:* inetorgperson.schema&lt;br /&gt;
#:* kerberos.schema&lt;br /&gt;
#:* misc.schema&lt;br /&gt;
#:* openldap.schema&lt;br /&gt;
# Make this [[schema_convert.conf]] at /tmp/schema_convert.conf.  Note! This is different from the schema_convert.conf in the Ubuntu Guide.&lt;br /&gt;
# Make the directory to hold output: &amp;lt;code&amp;gt;mkdir /tmp/ldif_output &amp;lt;/code&amp;gt;&lt;br /&gt;
# Convert schema --&amp;gt; LDIF with slaptest: &amp;lt;code&amp;gt;slaptest -f tmp/schema_convert.conf -F /tmp/ldif_output&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: &amp;quot;config file testing succeeded&amp;quot;&lt;br /&gt;
#: Checkpoint: If you &amp;lt;code&amp;gt;sudo ls /tmp/ldif_output/cn\=config/cn\=schema&amp;lt;/code&amp;gt;, you should see:&lt;br /&gt;
#:: cn={0}core.ldif       &lt;br /&gt;
#:: cn={1}corba.ldif          &lt;br /&gt;
#:: cn={2}cosine.ldif   &lt;br /&gt;
#:: cn={3}duaconf.ldif  &lt;br /&gt;
#:: cn={4}inetorgperson.ldif&lt;br /&gt;
#:: cn={5}java.ldif	&lt;br /&gt;
#:: cn={6}kerberos.ldif&lt;br /&gt;
#:: cn={7}misc.ldif&lt;br /&gt;
#:: cn={8}openldap.ldif&lt;br /&gt;
#:: cn={9}nis.ldif&lt;br /&gt;
# Need to modify kerberos.ldif. &lt;br /&gt;
#* Find which number kerberos.ldif is listed as: &amp;lt;code&amp;gt;sudo ls /tmp/ldif_output/cn\=config/cn\=schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Edit it: &amp;lt;code&amp;gt; sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn={6}kerberos.ldif&amp;lt;/code&amp;gt;&lt;br /&gt;
#** change ''dn: cn={6}kerberos'' into ''dn: cn=kerberos,cn=schema,cn=config''&lt;br /&gt;
#** change ''cn: {6}kerberos'' into ''cn: kerberos''&lt;br /&gt;
#** Delete the bottom lines: from ''structuralObjectClasses: olcSchemaConfig'' to ''modifyTimestamp: 20090811205313Z''&lt;br /&gt;
# load new schema, replace &amp;quot;-w a&amp;quot; with your password: &amp;lt;code&amp;gt;sudo ldapadd -x -D cn=admin,cn=config -W -f /tmp/ldif_output/cn\=config/cn\=schema/cn\={6}kerberos.ldif -H ldapi:///&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: ''adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
== 6. Starting ==&lt;br /&gt;
* Create your database with kdb5_ldap_util instead of kdb5_util:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -W -H ldapi:/// create  -s&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Initializing database for realm 'EXAMPLE.ORG'&lt;br /&gt;
You will be prompted for the database Master Password.&lt;br /&gt;
It is important that you NOT FORGET this password.&lt;br /&gt;
Enter KDC database master key: &lt;br /&gt;
Re-enter KDC database master key to verify: &lt;br /&gt;
&lt;br /&gt;
Kerberos container is missing. Creating now...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Stash the password:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -W -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&amp;lt;/code&amp;gt;&lt;br /&gt;
*: Checkpoint: If it works, you can do:&lt;br /&gt;
*:* &amp;lt;code&amp;gt;kadmin.local&amp;lt;/code&amp;gt;, try &amp;lt;code&amp;gt;listprincs&amp;lt;/code&amp;gt;, quit by typing &amp;lt;code&amp;gt;quit&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;krb5kdc&amp;lt;/code&amp;gt; &lt;br /&gt;
*: If it runs, the cursor blinks on a new line&lt;br /&gt;
&lt;br /&gt;
* Command to destroy kdb5_ldap_util: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -W -H ldapi:/// destroy&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Scratch Pad ==&lt;br /&gt;
&lt;br /&gt;
===Assume People have done===&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
&lt;br /&gt;
   16  make distclean&lt;br /&gt;
&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
&lt;br /&gt;
   19  make&lt;br /&gt;
&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
&lt;br /&gt;
    8  mkdir /tmp/krb5kdc (or should it be /tmp/sandbox/krb5kdc)?&lt;br /&gt;
&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
&lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
&lt;br /&gt;
   29  krb5kdc -n&lt;/div&gt;</summary>
		<author><name>Haoqili</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2110</id>
		<title>LDAP on Kerberos</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2110"/>
				<updated>2009-08-18T15:49:05Z</updated>
		
		<summary type="html">&lt;p&gt;Haoqili: /* 5. Kerb Schema Operations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== To Do ==&lt;br /&gt;
* Simpler Domain names D.COM, R.COM&lt;br /&gt;
* Different domain names&lt;br /&gt;
* Figure out required schemas&lt;br /&gt;
* Figure out: In Kerb Schema Operations, I can do &amp;quot;or update slapd.conf with kerb schema or ldif&amp;quot; in some ubuntu&lt;br /&gt;
* Play around to get minimum set of requirement&lt;br /&gt;
&lt;br /&gt;
== 0. Sample code to follow ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
    8  mkdir krb5kdc&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
   16  make distclean&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
   19  make&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
   29  krb5kdc -n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 1. Information about the system ==&lt;br /&gt;
- packages&lt;br /&gt;
* Version of ubuntu&lt;br /&gt;
       lsb_release -a&lt;br /&gt;
       No LSB modules are available.&lt;br /&gt;
       Distributor ID:        Ubuntu&lt;br /&gt;
       Description:        Ubuntu 9.04&lt;br /&gt;
       Release:        9.04&lt;br /&gt;
       Codename:        jaunty&lt;br /&gt;
* Version of slapd: 2.4.15 (Mar 19 2009)&lt;br /&gt;
       slapd -V&lt;br /&gt;
       @(#) $OpenLDAP: slapd 2.4.15 (Mar 19 2009 10:08:25) $&lt;br /&gt;
       buildd@palmer:/build/buildd/openldap-2.4.15/debian/build/servers/slapd&lt;br /&gt;
&lt;br /&gt;
* Version of ldap-utils: 2.4.15&lt;br /&gt;
       dpkg -l ldap-utils&lt;br /&gt;
&lt;br /&gt;
== 2. Extract krb conf files ==&lt;br /&gt;
* It is crucial to have correct, consistent domain names.  You must have the dbmodules in krb5.conf.&lt;br /&gt;
* Save [[krb5.conf]]&lt;br /&gt;
* Save [[kdc.conf]]&lt;br /&gt;
* Save [[kadm5.acl]]&lt;br /&gt;
&lt;br /&gt;
== 3. Env and Setup==&lt;br /&gt;
You need to export these lines into your env. Based on where you saved these files.&lt;br /&gt;
&lt;br /&gt;
*export KRB5_CONFIG=/tmp/sandbox/krb5.conf&lt;br /&gt;
&lt;br /&gt;
*export KRB5_KDC_PROFILE=/tmp/sandbox/kdc.conf&lt;br /&gt;
&lt;br /&gt;
* make a krb5kdc folder: mkdir /tmp/sandbox/krb5kdc)&lt;br /&gt;
&lt;br /&gt;
Whatever you do, be consistent&lt;br /&gt;
&lt;br /&gt;
== 4. Build kerb. config ==&lt;br /&gt;
&lt;br /&gt;
# Install Packages:&lt;br /&gt;
#* &amp;lt;code&amp;gt; sudo apt-get install slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
#* for ldapsearch: &amp;lt;code&amp;gt;sudo apt-get install ldap-utils&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo apt-get install libldap2-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
# Set the &amp;quot;domain&amp;quot; of your LDAP server with &amp;lt;code&amp;gt;sudo dpkg-reconfigure slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
##: Indented are the debconf-get-selection lines&lt;br /&gt;
## Omit OpenLDAP server configuration: No&lt;br /&gt;
##: slapd   slapd/no_configuration  boolean false&lt;br /&gt;
## DNS domain name: example.org&lt;br /&gt;
##: slapd   slapd/domain    string  example.org&lt;br /&gt;
## Organization name: example.org [note: i used the same name for simplicity]&lt;br /&gt;
##: slapd   shared/organization     string  example.org&lt;br /&gt;
## Databases backend to use: HDB, instead of BDB&lt;br /&gt;
##: slapd   slapd/backend   select  HDB&lt;br /&gt;
## Do you want the database to be removed when slapd is purge: Yes&lt;br /&gt;
##: slapd   slapd/purge_database    boolean true&lt;br /&gt;
## Move old database: Yes&lt;br /&gt;
##: slapd   slapd/move_old_database boolean true&lt;br /&gt;
## Admin password: [your pwd]&lt;br /&gt;
##: slapd   slapd/password1 password&lt;br /&gt;
##: [I'm not sure about the debconf-get-selection line here.  There are 5 different password lines!]&lt;br /&gt;
## Confirm password: [your pwd]&lt;br /&gt;
##: slapd   slapd/password2 password&lt;br /&gt;
## Allow LDAPv2 protocol: No&lt;br /&gt;
##: slapd   slapd/allow_ldap_v2     boolean false&lt;br /&gt;
#: Checkpoint:  If you are successful, you should see as output:&lt;br /&gt;
#:: ''Stopping OpenLDAP: slapd.''&lt;br /&gt;
#::  ''Moving old database directory to /var/backups:''&lt;br /&gt;
#::  ''- directory unknown... done.''&lt;br /&gt;
#::  ''Creating initial slapd configuration... done.''&lt;br /&gt;
#::  ''Creating initial LDAP directory... done.''&lt;br /&gt;
#:: ''* Reloading AppArmor profiles ''&lt;br /&gt;
#::  ''...                                               [ OK ]'' &lt;br /&gt;
#::  ''Starting OpenLDAP: slapd.''&lt;br /&gt;
# If you haven't done so already, please copy kerberos.schema from your kerberos trunk into /etc/ldap/schema: &amp;lt;code&amp;gt;sudo cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
# To restrict access to the local machine, &amp;lt;code&amp;gt;sudo vim /etc/default/slapd&amp;lt;/code&amp;gt;, search for SLAPD_SERVICES and set it to: &amp;lt;pre&amp;gt;SLAPD_SERVICES=&amp;quot;ldapi:///&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Reconfigure your kerberos&lt;br /&gt;
#* Navigate to kerberos src&lt;br /&gt;
#* &amp;lt;code&amp;gt;make distclean&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;util/reconf&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;./configure --with-ldap&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo make install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 5. Kerb Schema Operations ==&lt;br /&gt;
Loosely followed [http://ajuda.ubuntu.cat/9.04/serverguide/kerberos-ldap.html Ubuntu Guide] and [http://web.mit.edu/kerberos/krb5-1.7/krb5-1.7/doc/krb5-admin.html#Configuring-Kerberos-with-OpenLDAP-back_002dend Kerberos V5 System Admin Guide]&lt;br /&gt;
&lt;br /&gt;
# You have not done so already, locate the kerberos.schema.  [[kerberos.schema]] which should be in /etc/ldap/schema/kerberos.schema.  If it is not there, please copy it there from your kerberos trunk: &amp;lt;code&amp;gt;cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Checkpoint: Make sure there is a list of different schemas in /etc/ldap/schema.  Such as&lt;br /&gt;
#:* core.schema&lt;br /&gt;
#:* inetorgperson.schema&lt;br /&gt;
#:* kerberos.schema&lt;br /&gt;
#:* misc.schema&lt;br /&gt;
#:* openldap.schema&lt;br /&gt;
# Make this [[schema_convert.conf]] at /tmp/schema_convert.conf.  Note! This is different from the schema_convert.conf in the Ubuntu Guide.&lt;br /&gt;
# Make the directory to hold output: &amp;lt;code&amp;gt;mkdir /tmp/ldif_output &amp;lt;/code&amp;gt;&lt;br /&gt;
# Convert schema --&amp;gt; LDIF with slaptest: &amp;lt;code&amp;gt;slaptest -f tmp/schema_convert.conf -F /tmp/ldif_output&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: &amp;quot;config file testing succeeded&amp;quot;&lt;br /&gt;
#: Checkpoint: If you &amp;lt;code&amp;gt;sudo ls /tmp/ldif_output/cn\=config/cn\=schema&amp;lt;/code&amp;gt;, you should see:&lt;br /&gt;
#:: cn={0}core.ldif       &lt;br /&gt;
#:: cn={1}corba.ldif          &lt;br /&gt;
#:: cn={2}cosine.ldif   &lt;br /&gt;
#:: cn={3}duaconf.ldif  &lt;br /&gt;
#:: cn={4}inetorgperson.ldif&lt;br /&gt;
#:: cn={5}java.ldif	&lt;br /&gt;
#:: cn={6}kerberos.ldif&lt;br /&gt;
#:: cn={7}misc.ldif&lt;br /&gt;
#:: cn={8}openldap.ldif&lt;br /&gt;
#:: cn={9}nis.ldif&lt;br /&gt;
# Need to modify kerberos.ldif. &lt;br /&gt;
#* Find which number kerberos.ldif is listed as: &amp;lt;code&amp;gt;sudo ls /tmp/ldif_output/cn\=config/cn\=schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Edit it: &amp;lt;code&amp;gt; sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn={6}kerberos.ldif&amp;lt;/code&amp;gt;&lt;br /&gt;
#** change ''dn: cn={6}kerberos'' into ''dn: cn=kerberos,cn=schema,cn=config''&lt;br /&gt;
#** change ''cn: {6}kerberos'' into ''cn: kerberos''&lt;br /&gt;
#** Delete the bottom lines: from ''structuralObjectClasses: olcSchemaConfig'' to ''modifyTimestamp: 20090811205313Z''&lt;br /&gt;
# load new schema, replace &amp;quot;-w a&amp;quot; with your password: &amp;lt;code&amp;gt;sudo ldapadd -x -D cn=admin,cn=config -W -f /tmp/ldif_output/cn\=config/cn\=schema/cn\={6}kerberos.ldif -H ldapi:///&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: ''adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
== 6. Starting ==&lt;br /&gt;
* Create your database with kdb5_ldap_util instead of kdb5_util:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create  -s&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Initializing database for realm 'EXAMPLE.ORG'&lt;br /&gt;
You will be prompted for the database Master Password.&lt;br /&gt;
It is important that you NOT FORGET this password.&lt;br /&gt;
Enter KDC database master key: &lt;br /&gt;
Re-enter KDC database master key to verify: &lt;br /&gt;
&lt;br /&gt;
Kerberos container is missing. Creating now...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Stash the password:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&amp;lt;/code&amp;gt;&lt;br /&gt;
*: If it works, you can do:&lt;br /&gt;
*:* &amp;lt;code&amp;gt;kadmin.local&amp;lt;/code&amp;gt;, try &amp;lt;code&amp;gt;listprincs&amp;lt;/code&amp;gt;, quit by typing &amp;lt;code&amp;gt;quit&amp;lt;/code&amp;gt;&lt;br /&gt;
*:* &amp;lt;code&amp;gt;krb5kdc -n&amp;lt;/code&amp;gt; if it runs, the cursor blinks on a new line&lt;br /&gt;
&lt;br /&gt;
* Command to destroy kdb5_ldap_util: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// destroy&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Scratch Pad ==&lt;br /&gt;
&lt;br /&gt;
===Assume People have done===&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
&lt;br /&gt;
   16  make distclean&lt;br /&gt;
&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
&lt;br /&gt;
   19  make&lt;br /&gt;
&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
&lt;br /&gt;
    8  mkdir /tmp/krb5kdc (or should it be /tmp/sandbox/krb5kdc)?&lt;br /&gt;
&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
&lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
&lt;br /&gt;
   29  krb5kdc -n&lt;/div&gt;</summary>
		<author><name>Haoqili</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2109</id>
		<title>LDAP on Kerberos</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2109"/>
				<updated>2009-08-18T15:48:35Z</updated>
		
		<summary type="html">&lt;p&gt;Haoqili: /* 5. Kerb Schema Operations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== To Do ==&lt;br /&gt;
* Simpler Domain names D.COM, R.COM&lt;br /&gt;
* Different domain names&lt;br /&gt;
* Figure out required schemas&lt;br /&gt;
* Figure out: In Kerb Schema Operations, I can do &amp;quot;or update slapd.conf with kerb schema or ldif&amp;quot; in some ubuntu&lt;br /&gt;
* Play around to get minimum set of requirement&lt;br /&gt;
&lt;br /&gt;
== 0. Sample code to follow ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
    8  mkdir krb5kdc&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
   16  make distclean&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
   19  make&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
   29  krb5kdc -n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 1. Information about the system ==&lt;br /&gt;
- packages&lt;br /&gt;
* Version of ubuntu&lt;br /&gt;
       lsb_release -a&lt;br /&gt;
       No LSB modules are available.&lt;br /&gt;
       Distributor ID:        Ubuntu&lt;br /&gt;
       Description:        Ubuntu 9.04&lt;br /&gt;
       Release:        9.04&lt;br /&gt;
       Codename:        jaunty&lt;br /&gt;
* Version of slapd: 2.4.15 (Mar 19 2009)&lt;br /&gt;
       slapd -V&lt;br /&gt;
       @(#) $OpenLDAP: slapd 2.4.15 (Mar 19 2009 10:08:25) $&lt;br /&gt;
       buildd@palmer:/build/buildd/openldap-2.4.15/debian/build/servers/slapd&lt;br /&gt;
&lt;br /&gt;
* Version of ldap-utils: 2.4.15&lt;br /&gt;
       dpkg -l ldap-utils&lt;br /&gt;
&lt;br /&gt;
== 2. Extract krb conf files ==&lt;br /&gt;
* It is crucial to have correct, consistent domain names.  You must have the dbmodules in krb5.conf.&lt;br /&gt;
* Save [[krb5.conf]]&lt;br /&gt;
* Save [[kdc.conf]]&lt;br /&gt;
* Save [[kadm5.acl]]&lt;br /&gt;
&lt;br /&gt;
== 3. Env and Setup==&lt;br /&gt;
You need to export these lines into your env. Based on where you saved these files.&lt;br /&gt;
&lt;br /&gt;
*export KRB5_CONFIG=/tmp/sandbox/krb5.conf&lt;br /&gt;
&lt;br /&gt;
*export KRB5_KDC_PROFILE=/tmp/sandbox/kdc.conf&lt;br /&gt;
&lt;br /&gt;
* make a krb5kdc folder: mkdir /tmp/sandbox/krb5kdc)&lt;br /&gt;
&lt;br /&gt;
Whatever you do, be consistent&lt;br /&gt;
&lt;br /&gt;
== 4. Build kerb. config ==&lt;br /&gt;
&lt;br /&gt;
# Install Packages:&lt;br /&gt;
#* &amp;lt;code&amp;gt; sudo apt-get install slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
#* for ldapsearch: &amp;lt;code&amp;gt;sudo apt-get install ldap-utils&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo apt-get install libldap2-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
# Set the &amp;quot;domain&amp;quot; of your LDAP server with &amp;lt;code&amp;gt;sudo dpkg-reconfigure slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
##: Indented are the debconf-get-selection lines&lt;br /&gt;
## Omit OpenLDAP server configuration: No&lt;br /&gt;
##: slapd   slapd/no_configuration  boolean false&lt;br /&gt;
## DNS domain name: example.org&lt;br /&gt;
##: slapd   slapd/domain    string  example.org&lt;br /&gt;
## Organization name: example.org [note: i used the same name for simplicity]&lt;br /&gt;
##: slapd   shared/organization     string  example.org&lt;br /&gt;
## Databases backend to use: HDB, instead of BDB&lt;br /&gt;
##: slapd   slapd/backend   select  HDB&lt;br /&gt;
## Do you want the database to be removed when slapd is purge: Yes&lt;br /&gt;
##: slapd   slapd/purge_database    boolean true&lt;br /&gt;
## Move old database: Yes&lt;br /&gt;
##: slapd   slapd/move_old_database boolean true&lt;br /&gt;
## Admin password: [your pwd]&lt;br /&gt;
##: slapd   slapd/password1 password&lt;br /&gt;
##: [I'm not sure about the debconf-get-selection line here.  There are 5 different password lines!]&lt;br /&gt;
## Confirm password: [your pwd]&lt;br /&gt;
##: slapd   slapd/password2 password&lt;br /&gt;
## Allow LDAPv2 protocol: No&lt;br /&gt;
##: slapd   slapd/allow_ldap_v2     boolean false&lt;br /&gt;
#: Checkpoint:  If you are successful, you should see as output:&lt;br /&gt;
#:: ''Stopping OpenLDAP: slapd.''&lt;br /&gt;
#::  ''Moving old database directory to /var/backups:''&lt;br /&gt;
#::  ''- directory unknown... done.''&lt;br /&gt;
#::  ''Creating initial slapd configuration... done.''&lt;br /&gt;
#::  ''Creating initial LDAP directory... done.''&lt;br /&gt;
#:: ''* Reloading AppArmor profiles ''&lt;br /&gt;
#::  ''...                                               [ OK ]'' &lt;br /&gt;
#::  ''Starting OpenLDAP: slapd.''&lt;br /&gt;
# If you haven't done so already, please copy kerberos.schema from your kerberos trunk into /etc/ldap/schema: &amp;lt;code&amp;gt;sudo cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
# To restrict access to the local machine, &amp;lt;code&amp;gt;sudo vim /etc/default/slapd&amp;lt;/code&amp;gt;, search for SLAPD_SERVICES and set it to: &amp;lt;pre&amp;gt;SLAPD_SERVICES=&amp;quot;ldapi:///&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Reconfigure your kerberos&lt;br /&gt;
#* Navigate to kerberos src&lt;br /&gt;
#* &amp;lt;code&amp;gt;make distclean&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;util/reconf&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;./configure --with-ldap&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo make install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 5. Kerb Schema Operations ==&lt;br /&gt;
Loosely followed [http://ajuda.ubuntu.cat/9.04/serverguide/kerberos-ldap.html Ubuntu Guide] and [http://web.mit.edu/kerberos/krb5-1.7/krb5-1.7/doc/krb5-admin.html#Configuring-Kerberos-with-OpenLDAP-back_002dend Kerberos V5 System Admin Guide]&lt;br /&gt;
&lt;br /&gt;
# You have not done so already, locate the kerberos.schema.  [[kerberos.schema]] which should be in /etc/ldap/schema/kerberos.schema.  If it is not there, please copy it there from your kerberos trunk: &amp;lt;code&amp;gt;cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Checkpoint: Make sure there is a list of different schemas in /etc/ldap/schema.  Such as&lt;br /&gt;
#:* core.schema&lt;br /&gt;
#:* inetorgperson.schema&lt;br /&gt;
#:* kerberos.schema&lt;br /&gt;
#:* misc.schema&lt;br /&gt;
#:* openldap.schema&lt;br /&gt;
# Make this [[schema_convert.conf]] at /tmp/schema_convert.conf.  Note! This is different from the schema_convert.conf in the Ubuntu Guide.&lt;br /&gt;
# Make the directory to hold output: &amp;lt;code&amp;gt;mkdir /tmp/ldif_output &amp;lt;/code&amp;gt;&lt;br /&gt;
# Convert schema --&amp;gt; LDIF with slaptest: &amp;lt;code&amp;gt;slaptest -f tmp/schema_convert.conf -F /tmp/ldif_output&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: &amp;quot;config file testing succeeded&amp;quot;&lt;br /&gt;
#: Checkpoint: If you &amp;lt;code&amp;gt;sudo ls /tmp/ldif_output/cn\=config/cn\=schema&amp;lt;/code&amp;gt;, you should see:&lt;br /&gt;
#:: cn={0}core.ldif       &lt;br /&gt;
#:: cn={1}corba.ldif          &lt;br /&gt;
#:: cn={2}cosine.ldif   &lt;br /&gt;
#:: cn={3}duaconf.ldif  &lt;br /&gt;
#:: cn={4}inetorgperson.ldif&lt;br /&gt;
#:: cn={5}java.ldif	&lt;br /&gt;
#:: cn={6}kerberos.ldif&lt;br /&gt;
#:: cn={7}misc.ldif&lt;br /&gt;
#:: cn={8}openldap.ldif&lt;br /&gt;
#:: cn={9}nis.ldif&lt;br /&gt;
# Need to modify kerberos.ldif. &lt;br /&gt;
#* Find which number kerberos.ldif is listed as: &amp;lt;code&amp;gt;sudo ls /tmp/ldif_output/cn\=config/cn\=schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Edit it: &amp;lt;code&amp;gt; sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn={6}kerberos.ldif&amp;lt;/code&amp;gt;&lt;br /&gt;
#** change ''dn: cn={6}kerberos'' into ''dn: cn=kerberos,cn=schema,cn=config''&lt;br /&gt;
#** change ''cn: {6}kerberos'' into ''cn: kerberos''&lt;br /&gt;
#** Delete the bottom lines: from ''structuralObjectClasses: olcSchemaConfig'' to ''modifyTimestamp: 20090811205313Z''&lt;br /&gt;
# load new schema, replace &amp;quot;-w a&amp;quot; with your password: &amp;lt;code&amp;gt;sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\={6}kerberos.ldif -H ldapi:///&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: ''adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
== 6. Starting ==&lt;br /&gt;
* Create your database with kdb5_ldap_util instead of kdb5_util:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create  -s&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Initializing database for realm 'EXAMPLE.ORG'&lt;br /&gt;
You will be prompted for the database Master Password.&lt;br /&gt;
It is important that you NOT FORGET this password.&lt;br /&gt;
Enter KDC database master key: &lt;br /&gt;
Re-enter KDC database master key to verify: &lt;br /&gt;
&lt;br /&gt;
Kerberos container is missing. Creating now...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Stash the password:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&amp;lt;/code&amp;gt;&lt;br /&gt;
*: If it works, you can do:&lt;br /&gt;
*:* &amp;lt;code&amp;gt;kadmin.local&amp;lt;/code&amp;gt;, try &amp;lt;code&amp;gt;listprincs&amp;lt;/code&amp;gt;, quit by typing &amp;lt;code&amp;gt;quit&amp;lt;/code&amp;gt;&lt;br /&gt;
*:* &amp;lt;code&amp;gt;krb5kdc -n&amp;lt;/code&amp;gt; if it runs, the cursor blinks on a new line&lt;br /&gt;
&lt;br /&gt;
* Command to destroy kdb5_ldap_util: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// destroy&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Scratch Pad ==&lt;br /&gt;
&lt;br /&gt;
===Assume People have done===&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
&lt;br /&gt;
   16  make distclean&lt;br /&gt;
&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
&lt;br /&gt;
   19  make&lt;br /&gt;
&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
&lt;br /&gt;
    8  mkdir /tmp/krb5kdc (or should it be /tmp/sandbox/krb5kdc)?&lt;br /&gt;
&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
&lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
&lt;br /&gt;
   29  krb5kdc -n&lt;/div&gt;</summary>
		<author><name>Haoqili</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2108</id>
		<title>LDAP on Kerberos</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2108"/>
				<updated>2009-08-18T15:47:31Z</updated>
		
		<summary type="html">&lt;p&gt;Haoqili: /* 5. Kerb Schema Operations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== To Do ==&lt;br /&gt;
* Simpler Domain names D.COM, R.COM&lt;br /&gt;
* Different domain names&lt;br /&gt;
* Figure out required schemas&lt;br /&gt;
* Figure out: In Kerb Schema Operations, I can do &amp;quot;or update slapd.conf with kerb schema or ldif&amp;quot; in some ubuntu&lt;br /&gt;
* Play around to get minimum set of requirement&lt;br /&gt;
&lt;br /&gt;
== 0. Sample code to follow ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
    8  mkdir krb5kdc&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
   16  make distclean&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
   19  make&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
   29  krb5kdc -n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 1. Information about the system ==&lt;br /&gt;
- packages&lt;br /&gt;
* Version of ubuntu&lt;br /&gt;
       lsb_release -a&lt;br /&gt;
       No LSB modules are available.&lt;br /&gt;
       Distributor ID:        Ubuntu&lt;br /&gt;
       Description:        Ubuntu 9.04&lt;br /&gt;
       Release:        9.04&lt;br /&gt;
       Codename:        jaunty&lt;br /&gt;
* Version of slapd: 2.4.15 (Mar 19 2009)&lt;br /&gt;
       slapd -V&lt;br /&gt;
       @(#) $OpenLDAP: slapd 2.4.15 (Mar 19 2009 10:08:25) $&lt;br /&gt;
       buildd@palmer:/build/buildd/openldap-2.4.15/debian/build/servers/slapd&lt;br /&gt;
&lt;br /&gt;
* Version of ldap-utils: 2.4.15&lt;br /&gt;
       dpkg -l ldap-utils&lt;br /&gt;
&lt;br /&gt;
== 2. Extract krb conf files ==&lt;br /&gt;
* It is crucial to have correct, consistent domain names.  You must have the dbmodules in krb5.conf.&lt;br /&gt;
* Save [[krb5.conf]]&lt;br /&gt;
* Save [[kdc.conf]]&lt;br /&gt;
* Save [[kadm5.acl]]&lt;br /&gt;
&lt;br /&gt;
== 3. Env and Setup==&lt;br /&gt;
You need to export these lines into your env. Based on where you saved these files.&lt;br /&gt;
&lt;br /&gt;
*export KRB5_CONFIG=/tmp/sandbox/krb5.conf&lt;br /&gt;
&lt;br /&gt;
*export KRB5_KDC_PROFILE=/tmp/sandbox/kdc.conf&lt;br /&gt;
&lt;br /&gt;
* make a krb5kdc folder: mkdir /tmp/sandbox/krb5kdc)&lt;br /&gt;
&lt;br /&gt;
Whatever you do, be consistent&lt;br /&gt;
&lt;br /&gt;
== 4. Build kerb. config ==&lt;br /&gt;
&lt;br /&gt;
# Install Packages:&lt;br /&gt;
#* &amp;lt;code&amp;gt; sudo apt-get install slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
#* for ldapsearch: &amp;lt;code&amp;gt;sudo apt-get install ldap-utils&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo apt-get install libldap2-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
# Set the &amp;quot;domain&amp;quot; of your LDAP server with &amp;lt;code&amp;gt;sudo dpkg-reconfigure slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
##: Indented are the debconf-get-selection lines&lt;br /&gt;
## Omit OpenLDAP server configuration: No&lt;br /&gt;
##: slapd   slapd/no_configuration  boolean false&lt;br /&gt;
## DNS domain name: example.org&lt;br /&gt;
##: slapd   slapd/domain    string  example.org&lt;br /&gt;
## Organization name: example.org [note: i used the same name for simplicity]&lt;br /&gt;
##: slapd   shared/organization     string  example.org&lt;br /&gt;
## Databases backend to use: HDB, instead of BDB&lt;br /&gt;
##: slapd   slapd/backend   select  HDB&lt;br /&gt;
## Do you want the database to be removed when slapd is purge: Yes&lt;br /&gt;
##: slapd   slapd/purge_database    boolean true&lt;br /&gt;
## Move old database: Yes&lt;br /&gt;
##: slapd   slapd/move_old_database boolean true&lt;br /&gt;
## Admin password: [your pwd]&lt;br /&gt;
##: slapd   slapd/password1 password&lt;br /&gt;
##: [I'm not sure about the debconf-get-selection line here.  There are 5 different password lines!]&lt;br /&gt;
## Confirm password: [your pwd]&lt;br /&gt;
##: slapd   slapd/password2 password&lt;br /&gt;
## Allow LDAPv2 protocol: No&lt;br /&gt;
##: slapd   slapd/allow_ldap_v2     boolean false&lt;br /&gt;
#: Checkpoint:  If you are successful, you should see as output:&lt;br /&gt;
#:: ''Stopping OpenLDAP: slapd.''&lt;br /&gt;
#::  ''Moving old database directory to /var/backups:''&lt;br /&gt;
#::  ''- directory unknown... done.''&lt;br /&gt;
#::  ''Creating initial slapd configuration... done.''&lt;br /&gt;
#::  ''Creating initial LDAP directory... done.''&lt;br /&gt;
#:: ''* Reloading AppArmor profiles ''&lt;br /&gt;
#::  ''...                                               [ OK ]'' &lt;br /&gt;
#::  ''Starting OpenLDAP: slapd.''&lt;br /&gt;
# If you haven't done so already, please copy kerberos.schema from your kerberos trunk into /etc/ldap/schema: &amp;lt;code&amp;gt;sudo cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
# To restrict access to the local machine, &amp;lt;code&amp;gt;sudo vim /etc/default/slapd&amp;lt;/code&amp;gt;, search for SLAPD_SERVICES and set it to: &amp;lt;pre&amp;gt;SLAPD_SERVICES=&amp;quot;ldapi:///&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Reconfigure your kerberos&lt;br /&gt;
#* Navigate to kerberos src&lt;br /&gt;
#* &amp;lt;code&amp;gt;make distclean&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;util/reconf&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;./configure --with-ldap&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo make install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 5. Kerb Schema Operations ==&lt;br /&gt;
Loosely followed [http://ajuda.ubuntu.cat/9.04/serverguide/kerberos-ldap.html Ubuntu Guide] and [http://web.mit.edu/kerberos/krb5-1.7/krb5-1.7/doc/krb5-admin.html#Configuring-Kerberos-with-OpenLDAP-back_002dend Kerberos V5 System Admin Guide]&lt;br /&gt;
&lt;br /&gt;
# You have not done so already, locate the kerberos.schema.  [[kerberos.schema]] which should be in /etc/ldap/schema/kerberos.schema.  If it is not there, please copy it there from your kerberos trunk: &amp;lt;code&amp;gt;cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Checkpoint: Make sure there is a list of different schemas in /etc/ldap/schema.  Such as&lt;br /&gt;
#:* core.schema&lt;br /&gt;
#:* inetorgperson.schema&lt;br /&gt;
#:* kerberos.schema&lt;br /&gt;
#:* misc.schema&lt;br /&gt;
#:* openldap.schema&lt;br /&gt;
# Make this [[schema_convert.conf]] at /tmp/schema_convert.conf.  Note! This is different from the schema_convert.conf in the Ubuntu Guide.&lt;br /&gt;
# Make the directory to hold output: &amp;lt;code&amp;gt;mkdir /tmp/ldif_output &amp;lt;/code&amp;gt;&lt;br /&gt;
# Convert schema --&amp;gt; LDIF with slaptest: &amp;lt;code&amp;gt;slaptest -f tmp/schema_convert.conf -F /tmp/ldif_output&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: &amp;quot;config file testing succeeded&amp;quot;&lt;br /&gt;
#: Checkpoint: If you &amp;lt;code&amp;gt;sudo ls /tmp/ldif_output/cn\=config/cn\=schema&amp;lt;/code&amp;gt;, you should see:&lt;br /&gt;
#:: cn={0}core.ldif     cn={4}inetorgperson.ldif  cn={8}openldap.ldif&lt;br /&gt;
#:: cn={1}corba.ldif    cn={5}java.ldif	      cn={9}nis.ldif&lt;br /&gt;
#:: cn={2}cosine.ldif   cn={6}kerberos.ldif&lt;br /&gt;
#:: cn={3}duaconf.ldif  cn={7}misc.ldif&lt;br /&gt;
# Need to modify kerberos.ldif. &lt;br /&gt;
#* Find which number kerberos.ldif is listed as: &amp;lt;code&amp;gt;sudo ls /tmp/ldif_output/cn\=config/cn\=schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Edit it: &amp;lt;code&amp;gt; sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn={6}kerberos.ldif&amp;lt;/code&amp;gt;&lt;br /&gt;
#** change ''dn: cn={6}kerberos'' into ''dn: cn=kerberos,cn=schema,cn=config''&lt;br /&gt;
#** change ''cn: {6}kerberos'' into ''cn: kerberos''&lt;br /&gt;
#** Delete the bottom lines: from ''structuralObjectClasses: olcSchemaConfig'' to ''modifyTimestamp: 20090811205313Z''&lt;br /&gt;
# load new schema, replace &amp;quot;-w a&amp;quot; with your password: &amp;lt;code&amp;gt;sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\={6}kerberos.ldif -H ldapi:///&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: ''adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
== 6. Starting ==&lt;br /&gt;
* Create your database with kdb5_ldap_util instead of kdb5_util:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create  -s&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Initializing database for realm 'EXAMPLE.ORG'&lt;br /&gt;
You will be prompted for the database Master Password.&lt;br /&gt;
It is important that you NOT FORGET this password.&lt;br /&gt;
Enter KDC database master key: &lt;br /&gt;
Re-enter KDC database master key to verify: &lt;br /&gt;
&lt;br /&gt;
Kerberos container is missing. Creating now...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Stash the password:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&amp;lt;/code&amp;gt;&lt;br /&gt;
*: If it works, you can do:&lt;br /&gt;
*:* &amp;lt;code&amp;gt;kadmin.local&amp;lt;/code&amp;gt;, try &amp;lt;code&amp;gt;listprincs&amp;lt;/code&amp;gt;, quit by typing &amp;lt;code&amp;gt;quit&amp;lt;/code&amp;gt;&lt;br /&gt;
*:* &amp;lt;code&amp;gt;krb5kdc -n&amp;lt;/code&amp;gt; if it runs, the cursor blinks on a new line&lt;br /&gt;
&lt;br /&gt;
* Command to destroy kdb5_ldap_util: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// destroy&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Scratch Pad ==&lt;br /&gt;
&lt;br /&gt;
===Assume People have done===&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
&lt;br /&gt;
   16  make distclean&lt;br /&gt;
&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
&lt;br /&gt;
   19  make&lt;br /&gt;
&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
&lt;br /&gt;
    8  mkdir /tmp/krb5kdc (or should it be /tmp/sandbox/krb5kdc)?&lt;br /&gt;
&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
&lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
&lt;br /&gt;
   29  krb5kdc -n&lt;/div&gt;</summary>
		<author><name>Haoqili</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2107</id>
		<title>LDAP on Kerberos</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2107"/>
				<updated>2009-08-18T15:41:53Z</updated>
		
		<summary type="html">&lt;p&gt;Haoqili: /* To Do */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== To Do ==&lt;br /&gt;
* Simpler Domain names D.COM, R.COM&lt;br /&gt;
* Different domain names&lt;br /&gt;
* Figure out required schemas&lt;br /&gt;
* Figure out: In Kerb Schema Operations, I can do &amp;quot;or update slapd.conf with kerb schema or ldif&amp;quot; in some ubuntu&lt;br /&gt;
* Play around to get minimum set of requirement&lt;br /&gt;
&lt;br /&gt;
== 0. Sample code to follow ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
    8  mkdir krb5kdc&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
   16  make distclean&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
   19  make&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
   29  krb5kdc -n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 1. Information about the system ==&lt;br /&gt;
- packages&lt;br /&gt;
* Version of ubuntu&lt;br /&gt;
       lsb_release -a&lt;br /&gt;
       No LSB modules are available.&lt;br /&gt;
       Distributor ID:        Ubuntu&lt;br /&gt;
       Description:        Ubuntu 9.04&lt;br /&gt;
       Release:        9.04&lt;br /&gt;
       Codename:        jaunty&lt;br /&gt;
* Version of slapd: 2.4.15 (Mar 19 2009)&lt;br /&gt;
       slapd -V&lt;br /&gt;
       @(#) $OpenLDAP: slapd 2.4.15 (Mar 19 2009 10:08:25) $&lt;br /&gt;
       buildd@palmer:/build/buildd/openldap-2.4.15/debian/build/servers/slapd&lt;br /&gt;
&lt;br /&gt;
* Version of ldap-utils: 2.4.15&lt;br /&gt;
       dpkg -l ldap-utils&lt;br /&gt;
&lt;br /&gt;
== 2. Extract krb conf files ==&lt;br /&gt;
* It is crucial to have correct, consistent domain names.  You must have the dbmodules in krb5.conf.&lt;br /&gt;
* Save [[krb5.conf]]&lt;br /&gt;
* Save [[kdc.conf]]&lt;br /&gt;
* Save [[kadm5.acl]]&lt;br /&gt;
&lt;br /&gt;
== 3. Env and Setup==&lt;br /&gt;
You need to export these lines into your env. Based on where you saved these files.&lt;br /&gt;
&lt;br /&gt;
*export KRB5_CONFIG=/tmp/sandbox/krb5.conf&lt;br /&gt;
&lt;br /&gt;
*export KRB5_KDC_PROFILE=/tmp/sandbox/kdc.conf&lt;br /&gt;
&lt;br /&gt;
* make a krb5kdc folder: mkdir /tmp/sandbox/krb5kdc)&lt;br /&gt;
&lt;br /&gt;
Whatever you do, be consistent&lt;br /&gt;
&lt;br /&gt;
== 4. Build kerb. config ==&lt;br /&gt;
&lt;br /&gt;
# Install Packages:&lt;br /&gt;
#* &amp;lt;code&amp;gt; sudo apt-get install slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
#* for ldapsearch: &amp;lt;code&amp;gt;sudo apt-get install ldap-utils&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo apt-get install libldap2-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
# Set the &amp;quot;domain&amp;quot; of your LDAP server with &amp;lt;code&amp;gt;sudo dpkg-reconfigure slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
##: Indented are the debconf-get-selection lines&lt;br /&gt;
## Omit OpenLDAP server configuration: No&lt;br /&gt;
##: slapd   slapd/no_configuration  boolean false&lt;br /&gt;
## DNS domain name: example.org&lt;br /&gt;
##: slapd   slapd/domain    string  example.org&lt;br /&gt;
## Organization name: example.org [note: i used the same name for simplicity]&lt;br /&gt;
##: slapd   shared/organization     string  example.org&lt;br /&gt;
## Databases backend to use: HDB, instead of BDB&lt;br /&gt;
##: slapd   slapd/backend   select  HDB&lt;br /&gt;
## Do you want the database to be removed when slapd is purge: Yes&lt;br /&gt;
##: slapd   slapd/purge_database    boolean true&lt;br /&gt;
## Move old database: Yes&lt;br /&gt;
##: slapd   slapd/move_old_database boolean true&lt;br /&gt;
## Admin password: [your pwd]&lt;br /&gt;
##: slapd   slapd/password1 password&lt;br /&gt;
##: [I'm not sure about the debconf-get-selection line here.  There are 5 different password lines!]&lt;br /&gt;
## Confirm password: [your pwd]&lt;br /&gt;
##: slapd   slapd/password2 password&lt;br /&gt;
## Allow LDAPv2 protocol: No&lt;br /&gt;
##: slapd   slapd/allow_ldap_v2     boolean false&lt;br /&gt;
#: Checkpoint:  If you are successful, you should see as output:&lt;br /&gt;
#:: ''Stopping OpenLDAP: slapd.''&lt;br /&gt;
#::  ''Moving old database directory to /var/backups:''&lt;br /&gt;
#::  ''- directory unknown... done.''&lt;br /&gt;
#::  ''Creating initial slapd configuration... done.''&lt;br /&gt;
#::  ''Creating initial LDAP directory... done.''&lt;br /&gt;
#:: ''* Reloading AppArmor profiles ''&lt;br /&gt;
#::  ''...                                               [ OK ]'' &lt;br /&gt;
#::  ''Starting OpenLDAP: slapd.''&lt;br /&gt;
# If you haven't done so already, please copy kerberos.schema from your kerberos trunk into /etc/ldap/schema: &amp;lt;code&amp;gt;sudo cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
# To restrict access to the local machine, &amp;lt;code&amp;gt;sudo vim /etc/default/slapd&amp;lt;/code&amp;gt;, search for SLAPD_SERVICES and set it to: &amp;lt;pre&amp;gt;SLAPD_SERVICES=&amp;quot;ldapi:///&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Reconfigure your kerberos&lt;br /&gt;
#* Navigate to kerberos src&lt;br /&gt;
#* &amp;lt;code&amp;gt;make distclean&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;util/reconf&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;./configure --with-ldap&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo make install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 5. Kerb Schema Operations ==&lt;br /&gt;
Loosely followed [http://ajuda.ubuntu.cat/9.04/serverguide/kerberos-ldap.html Ubuntu Guide] and [http://web.mit.edu/kerberos/krb5-1.7/krb5-1.7/doc/krb5-admin.html#Configuring-Kerberos-with-OpenLDAP-back_002dend Kerberos V5 System Admin Guide]&lt;br /&gt;
&lt;br /&gt;
# You have not done so already, locate the kerberos.schema.  [[kerberos.schema]] which should be in /etc/ldap/schema/kerberos.schema.  If it is not there, please copy it there from your kerberos trunk: &amp;lt;code&amp;gt;cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Checkpoint: Make sure there is a list of different schemas in /etc/ldap/schema.  Such as&lt;br /&gt;
#:* core.schema&lt;br /&gt;
#:* inetorgperson.schema&lt;br /&gt;
#:* kerberos.schema&lt;br /&gt;
#:* misc.schema&lt;br /&gt;
#:* openldap.schema&lt;br /&gt;
# Make this [[schema_convert.conf]] at /tmp/schema_convert.conf.  Note! This is different from the schema_convert.conf in the Ubuntu Guide.&lt;br /&gt;
# Make the directory to hold output: &amp;lt;code&amp;gt;mkdir /tmp/ldif_output &amp;lt;/code&amp;gt;&lt;br /&gt;
# Convert schema --&amp;gt; LDIF with slaptest: &amp;lt;code&amp;gt;slaptest -f tmp/schema_convert.conf -F /tmp/ldif_output&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: &amp;quot;config file testing succeeded&amp;quot;&lt;br /&gt;
#: Checkpoint: Make sure you have &amp;quot;cn=config&amp;quot; in you /tmp/ldif_output&lt;br /&gt;
# Need to modify kerberos.ldif. &lt;br /&gt;
#* Find which number kerberos.ldif is listed as: &amp;lt;code&amp;gt;sudo ls /tmp/ldif_output/cn\=config/cn\=schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Edit it: &amp;lt;code&amp;gt; sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn={6}kerberos.ldif&amp;lt;/code&amp;gt;&lt;br /&gt;
#** change ''dn: cn={6}kerberos'' into ''dn: cn=kerberos,cn=schema,cn=config''&lt;br /&gt;
#** change ''cn: {6}kerberos'' into ''cn: kerberos''&lt;br /&gt;
#** Delete the bottom lines: from ''structuralObjectClasses: olcSchemaConfig'' to ''modifyTimestamp: 20090811205313Z''&lt;br /&gt;
# load new schema, replace &amp;quot;-w a&amp;quot; with your password: &amp;lt;code&amp;gt;sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\={6}kerberos.ldif -H ldapi:///&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: ''adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
== 6. Starting ==&lt;br /&gt;
* Create your database with kdb5_ldap_util instead of kdb5_util:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create  -s&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Initializing database for realm 'EXAMPLE.ORG'&lt;br /&gt;
You will be prompted for the database Master Password.&lt;br /&gt;
It is important that you NOT FORGET this password.&lt;br /&gt;
Enter KDC database master key: &lt;br /&gt;
Re-enter KDC database master key to verify: &lt;br /&gt;
&lt;br /&gt;
Kerberos container is missing. Creating now...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Stash the password:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&amp;lt;/code&amp;gt;&lt;br /&gt;
*: If it works, you can do:&lt;br /&gt;
*:* &amp;lt;code&amp;gt;kadmin.local&amp;lt;/code&amp;gt;, try &amp;lt;code&amp;gt;listprincs&amp;lt;/code&amp;gt;, quit by typing &amp;lt;code&amp;gt;quit&amp;lt;/code&amp;gt;&lt;br /&gt;
*:* &amp;lt;code&amp;gt;krb5kdc -n&amp;lt;/code&amp;gt; if it runs, the cursor blinks on a new line&lt;br /&gt;
&lt;br /&gt;
* Command to destroy kdb5_ldap_util: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// destroy&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Scratch Pad ==&lt;br /&gt;
&lt;br /&gt;
===Assume People have done===&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
&lt;br /&gt;
   16  make distclean&lt;br /&gt;
&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
&lt;br /&gt;
   19  make&lt;br /&gt;
&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
&lt;br /&gt;
    8  mkdir /tmp/krb5kdc (or should it be /tmp/sandbox/krb5kdc)?&lt;br /&gt;
&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
&lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
&lt;br /&gt;
   29  krb5kdc -n&lt;/div&gt;</summary>
		<author><name>Haoqili</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=Schema_convert.conf&amp;diff=2106</id>
		<title>Schema convert.conf</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=Schema_convert.conf&amp;diff=2106"/>
				<updated>2009-08-18T15:40:47Z</updated>
		
		<summary type="html">&lt;p&gt;Haoqili: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/tmp/schema_convert.conf&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
include /etc/ldap/schema/core.schema&lt;br /&gt;
include /etc/ldap/schema/corba.schema&lt;br /&gt;
include /etc/ldap/schema/cosine.schema&lt;br /&gt;
include /etc/ldap/schema/duaconf.schema&lt;br /&gt;
include /etc/ldap/schema/inetorgperson.schema&lt;br /&gt;
include /etc/ldap/schema/java.schema&lt;br /&gt;
include /etc/ldap/schema/kerberos.schema&lt;br /&gt;
include /etc/ldap/schema/misc.schema&lt;br /&gt;
include /etc/ldap/schema/openldap.schema&lt;br /&gt;
include /etc/ldap/schema/nis.schema&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Haoqili</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2105</id>
		<title>LDAP on Kerberos</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2105"/>
				<updated>2009-08-18T15:40:27Z</updated>
		
		<summary type="html">&lt;p&gt;Haoqili: /* 5. Kerb Schema Operations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== To Do ==&lt;br /&gt;
* Simpler Domain names D.COM, R.COM&lt;br /&gt;
* Different domain names&lt;br /&gt;
* Figure out required schemas&lt;br /&gt;
* Play around to get minimum set of requirement&lt;br /&gt;
&lt;br /&gt;
== 0. Sample code to follow ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
    8  mkdir krb5kdc&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
   16  make distclean&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
   19  make&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
   29  krb5kdc -n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 1. Information about the system ==&lt;br /&gt;
- packages&lt;br /&gt;
* Version of ubuntu&lt;br /&gt;
       lsb_release -a&lt;br /&gt;
       No LSB modules are available.&lt;br /&gt;
       Distributor ID:        Ubuntu&lt;br /&gt;
       Description:        Ubuntu 9.04&lt;br /&gt;
       Release:        9.04&lt;br /&gt;
       Codename:        jaunty&lt;br /&gt;
* Version of slapd: 2.4.15 (Mar 19 2009)&lt;br /&gt;
       slapd -V&lt;br /&gt;
       @(#) $OpenLDAP: slapd 2.4.15 (Mar 19 2009 10:08:25) $&lt;br /&gt;
       buildd@palmer:/build/buildd/openldap-2.4.15/debian/build/servers/slapd&lt;br /&gt;
&lt;br /&gt;
* Version of ldap-utils: 2.4.15&lt;br /&gt;
       dpkg -l ldap-utils&lt;br /&gt;
&lt;br /&gt;
== 2. Extract krb conf files ==&lt;br /&gt;
* It is crucial to have correct, consistent domain names.  You must have the dbmodules in krb5.conf.&lt;br /&gt;
* Save [[krb5.conf]]&lt;br /&gt;
* Save [[kdc.conf]]&lt;br /&gt;
* Save [[kadm5.acl]]&lt;br /&gt;
&lt;br /&gt;
== 3. Env and Setup==&lt;br /&gt;
You need to export these lines into your env. Based on where you saved these files.&lt;br /&gt;
&lt;br /&gt;
*export KRB5_CONFIG=/tmp/sandbox/krb5.conf&lt;br /&gt;
&lt;br /&gt;
*export KRB5_KDC_PROFILE=/tmp/sandbox/kdc.conf&lt;br /&gt;
&lt;br /&gt;
* make a krb5kdc folder: mkdir /tmp/sandbox/krb5kdc)&lt;br /&gt;
&lt;br /&gt;
Whatever you do, be consistent&lt;br /&gt;
&lt;br /&gt;
== 4. Build kerb. config ==&lt;br /&gt;
&lt;br /&gt;
# Install Packages:&lt;br /&gt;
#* &amp;lt;code&amp;gt; sudo apt-get install slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
#* for ldapsearch: &amp;lt;code&amp;gt;sudo apt-get install ldap-utils&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo apt-get install libldap2-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
# Set the &amp;quot;domain&amp;quot; of your LDAP server with &amp;lt;code&amp;gt;sudo dpkg-reconfigure slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
##: Indented are the debconf-get-selection lines&lt;br /&gt;
## Omit OpenLDAP server configuration: No&lt;br /&gt;
##: slapd   slapd/no_configuration  boolean false&lt;br /&gt;
## DNS domain name: example.org&lt;br /&gt;
##: slapd   slapd/domain    string  example.org&lt;br /&gt;
## Organization name: example.org [note: i used the same name for simplicity]&lt;br /&gt;
##: slapd   shared/organization     string  example.org&lt;br /&gt;
## Databases backend to use: HDB, instead of BDB&lt;br /&gt;
##: slapd   slapd/backend   select  HDB&lt;br /&gt;
## Do you want the database to be removed when slapd is purge: Yes&lt;br /&gt;
##: slapd   slapd/purge_database    boolean true&lt;br /&gt;
## Move old database: Yes&lt;br /&gt;
##: slapd   slapd/move_old_database boolean true&lt;br /&gt;
## Admin password: [your pwd]&lt;br /&gt;
##: slapd   slapd/password1 password&lt;br /&gt;
##: [I'm not sure about the debconf-get-selection line here.  There are 5 different password lines!]&lt;br /&gt;
## Confirm password: [your pwd]&lt;br /&gt;
##: slapd   slapd/password2 password&lt;br /&gt;
## Allow LDAPv2 protocol: No&lt;br /&gt;
##: slapd   slapd/allow_ldap_v2     boolean false&lt;br /&gt;
#: Checkpoint:  If you are successful, you should see as output:&lt;br /&gt;
#:: ''Stopping OpenLDAP: slapd.''&lt;br /&gt;
#::  ''Moving old database directory to /var/backups:''&lt;br /&gt;
#::  ''- directory unknown... done.''&lt;br /&gt;
#::  ''Creating initial slapd configuration... done.''&lt;br /&gt;
#::  ''Creating initial LDAP directory... done.''&lt;br /&gt;
#:: ''* Reloading AppArmor profiles ''&lt;br /&gt;
#::  ''...                                               [ OK ]'' &lt;br /&gt;
#::  ''Starting OpenLDAP: slapd.''&lt;br /&gt;
# If you haven't done so already, please copy kerberos.schema from your kerberos trunk into /etc/ldap/schema: &amp;lt;code&amp;gt;sudo cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
# To restrict access to the local machine, &amp;lt;code&amp;gt;sudo vim /etc/default/slapd&amp;lt;/code&amp;gt;, search for SLAPD_SERVICES and set it to: &amp;lt;pre&amp;gt;SLAPD_SERVICES=&amp;quot;ldapi:///&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Reconfigure your kerberos&lt;br /&gt;
#* Navigate to kerberos src&lt;br /&gt;
#* &amp;lt;code&amp;gt;make distclean&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;util/reconf&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;./configure --with-ldap&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo make install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 5. Kerb Schema Operations ==&lt;br /&gt;
Loosely followed [http://ajuda.ubuntu.cat/9.04/serverguide/kerberos-ldap.html Ubuntu Guide] and [http://web.mit.edu/kerberos/krb5-1.7/krb5-1.7/doc/krb5-admin.html#Configuring-Kerberos-with-OpenLDAP-back_002dend Kerberos V5 System Admin Guide]&lt;br /&gt;
&lt;br /&gt;
# You have not done so already, locate the kerberos.schema.  [[kerberos.schema]] which should be in /etc/ldap/schema/kerberos.schema.  If it is not there, please copy it there from your kerberos trunk: &amp;lt;code&amp;gt;cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Checkpoint: Make sure there is a list of different schemas in /etc/ldap/schema.  Such as&lt;br /&gt;
#:* core.schema&lt;br /&gt;
#:* inetorgperson.schema&lt;br /&gt;
#:* kerberos.schema&lt;br /&gt;
#:* misc.schema&lt;br /&gt;
#:* openldap.schema&lt;br /&gt;
# Make this [[schema_convert.conf]] at /tmp/schema_convert.conf.  Note! This is different from the schema_convert.conf in the Ubuntu Guide.&lt;br /&gt;
# Make the directory to hold output: &amp;lt;code&amp;gt;mkdir /tmp/ldif_output &amp;lt;/code&amp;gt;&lt;br /&gt;
# Convert schema --&amp;gt; LDIF with slaptest: &amp;lt;code&amp;gt;slaptest -f tmp/schema_convert.conf -F /tmp/ldif_output&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: &amp;quot;config file testing succeeded&amp;quot;&lt;br /&gt;
#: Checkpoint: Make sure you have &amp;quot;cn=config&amp;quot; in you /tmp/ldif_output&lt;br /&gt;
# Need to modify kerberos.ldif. &lt;br /&gt;
#* Find which number kerberos.ldif is listed as: &amp;lt;code&amp;gt;sudo ls /tmp/ldif_output/cn\=config/cn\=schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Edit it: &amp;lt;code&amp;gt; sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn={6}kerberos.ldif&amp;lt;/code&amp;gt;&lt;br /&gt;
#** change ''dn: cn={6}kerberos'' into ''dn: cn=kerberos,cn=schema,cn=config''&lt;br /&gt;
#** change ''cn: {6}kerberos'' into ''cn: kerberos''&lt;br /&gt;
#** Delete the bottom lines: from ''structuralObjectClasses: olcSchemaConfig'' to ''modifyTimestamp: 20090811205313Z''&lt;br /&gt;
# load new schema, replace &amp;quot;-w a&amp;quot; with your password: &amp;lt;code&amp;gt;sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\={6}kerberos.ldif -H ldapi:///&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: ''adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
== 6. Starting ==&lt;br /&gt;
* Create your database with kdb5_ldap_util instead of kdb5_util:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create  -s&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Initializing database for realm 'EXAMPLE.ORG'&lt;br /&gt;
You will be prompted for the database Master Password.&lt;br /&gt;
It is important that you NOT FORGET this password.&lt;br /&gt;
Enter KDC database master key: &lt;br /&gt;
Re-enter KDC database master key to verify: &lt;br /&gt;
&lt;br /&gt;
Kerberos container is missing. Creating now...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Stash the password:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&amp;lt;/code&amp;gt;&lt;br /&gt;
*: If it works, you can do:&lt;br /&gt;
*:* &amp;lt;code&amp;gt;kadmin.local&amp;lt;/code&amp;gt;, try &amp;lt;code&amp;gt;listprincs&amp;lt;/code&amp;gt;, quit by typing &amp;lt;code&amp;gt;quit&amp;lt;/code&amp;gt;&lt;br /&gt;
*:* &amp;lt;code&amp;gt;krb5kdc -n&amp;lt;/code&amp;gt; if it runs, the cursor blinks on a new line&lt;br /&gt;
&lt;br /&gt;
* Command to destroy kdb5_ldap_util: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// destroy&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Scratch Pad ==&lt;br /&gt;
&lt;br /&gt;
===Assume People have done===&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
&lt;br /&gt;
   16  make distclean&lt;br /&gt;
&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
&lt;br /&gt;
   19  make&lt;br /&gt;
&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
&lt;br /&gt;
    8  mkdir /tmp/krb5kdc (or should it be /tmp/sandbox/krb5kdc)?&lt;br /&gt;
&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
&lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
&lt;br /&gt;
   29  krb5kdc -n&lt;/div&gt;</summary>
		<author><name>Haoqili</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2104</id>
		<title>LDAP on Kerberos</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2104"/>
				<updated>2009-08-18T15:39:23Z</updated>
		
		<summary type="html">&lt;p&gt;Haoqili: /* To Do */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== To Do ==&lt;br /&gt;
* Simpler Domain names D.COM, R.COM&lt;br /&gt;
* Different domain names&lt;br /&gt;
* Figure out required schemas&lt;br /&gt;
* Play around to get minimum set of requirement&lt;br /&gt;
&lt;br /&gt;
== 0. Sample code to follow ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
    8  mkdir krb5kdc&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
   16  make distclean&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
   19  make&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
   29  krb5kdc -n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 1. Information about the system ==&lt;br /&gt;
- packages&lt;br /&gt;
* Version of ubuntu&lt;br /&gt;
       lsb_release -a&lt;br /&gt;
       No LSB modules are available.&lt;br /&gt;
       Distributor ID:        Ubuntu&lt;br /&gt;
       Description:        Ubuntu 9.04&lt;br /&gt;
       Release:        9.04&lt;br /&gt;
       Codename:        jaunty&lt;br /&gt;
* Version of slapd: 2.4.15 (Mar 19 2009)&lt;br /&gt;
       slapd -V&lt;br /&gt;
       @(#) $OpenLDAP: slapd 2.4.15 (Mar 19 2009 10:08:25) $&lt;br /&gt;
       buildd@palmer:/build/buildd/openldap-2.4.15/debian/build/servers/slapd&lt;br /&gt;
&lt;br /&gt;
* Version of ldap-utils: 2.4.15&lt;br /&gt;
       dpkg -l ldap-utils&lt;br /&gt;
&lt;br /&gt;
== 2. Extract krb conf files ==&lt;br /&gt;
* It is crucial to have correct, consistent domain names.  You must have the dbmodules in krb5.conf.&lt;br /&gt;
* Save [[krb5.conf]]&lt;br /&gt;
* Save [[kdc.conf]]&lt;br /&gt;
* Save [[kadm5.acl]]&lt;br /&gt;
&lt;br /&gt;
== 3. Env and Setup==&lt;br /&gt;
You need to export these lines into your env. Based on where you saved these files.&lt;br /&gt;
&lt;br /&gt;
*export KRB5_CONFIG=/tmp/sandbox/krb5.conf&lt;br /&gt;
&lt;br /&gt;
*export KRB5_KDC_PROFILE=/tmp/sandbox/kdc.conf&lt;br /&gt;
&lt;br /&gt;
* make a krb5kdc folder: mkdir /tmp/sandbox/krb5kdc)&lt;br /&gt;
&lt;br /&gt;
Whatever you do, be consistent&lt;br /&gt;
&lt;br /&gt;
== 4. Build kerb. config ==&lt;br /&gt;
&lt;br /&gt;
# Install Packages:&lt;br /&gt;
#* &amp;lt;code&amp;gt; sudo apt-get install slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
#* for ldapsearch: &amp;lt;code&amp;gt;sudo apt-get install ldap-utils&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo apt-get install libldap2-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
# Set the &amp;quot;domain&amp;quot; of your LDAP server with &amp;lt;code&amp;gt;sudo dpkg-reconfigure slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
##: Indented are the debconf-get-selection lines&lt;br /&gt;
## Omit OpenLDAP server configuration: No&lt;br /&gt;
##: slapd   slapd/no_configuration  boolean false&lt;br /&gt;
## DNS domain name: example.org&lt;br /&gt;
##: slapd   slapd/domain    string  example.org&lt;br /&gt;
## Organization name: example.org [note: i used the same name for simplicity]&lt;br /&gt;
##: slapd   shared/organization     string  example.org&lt;br /&gt;
## Databases backend to use: HDB, instead of BDB&lt;br /&gt;
##: slapd   slapd/backend   select  HDB&lt;br /&gt;
## Do you want the database to be removed when slapd is purge: Yes&lt;br /&gt;
##: slapd   slapd/purge_database    boolean true&lt;br /&gt;
## Move old database: Yes&lt;br /&gt;
##: slapd   slapd/move_old_database boolean true&lt;br /&gt;
## Admin password: [your pwd]&lt;br /&gt;
##: slapd   slapd/password1 password&lt;br /&gt;
##: [I'm not sure about the debconf-get-selection line here.  There are 5 different password lines!]&lt;br /&gt;
## Confirm password: [your pwd]&lt;br /&gt;
##: slapd   slapd/password2 password&lt;br /&gt;
## Allow LDAPv2 protocol: No&lt;br /&gt;
##: slapd   slapd/allow_ldap_v2     boolean false&lt;br /&gt;
#: Checkpoint:  If you are successful, you should see as output:&lt;br /&gt;
#:: ''Stopping OpenLDAP: slapd.''&lt;br /&gt;
#::  ''Moving old database directory to /var/backups:''&lt;br /&gt;
#::  ''- directory unknown... done.''&lt;br /&gt;
#::  ''Creating initial slapd configuration... done.''&lt;br /&gt;
#::  ''Creating initial LDAP directory... done.''&lt;br /&gt;
#:: ''* Reloading AppArmor profiles ''&lt;br /&gt;
#::  ''...                                               [ OK ]'' &lt;br /&gt;
#::  ''Starting OpenLDAP: slapd.''&lt;br /&gt;
# If you haven't done so already, please copy kerberos.schema from your kerberos trunk into /etc/ldap/schema: &amp;lt;code&amp;gt;sudo cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
# To restrict access to the local machine, &amp;lt;code&amp;gt;sudo vim /etc/default/slapd&amp;lt;/code&amp;gt;, search for SLAPD_SERVICES and set it to: &amp;lt;pre&amp;gt;SLAPD_SERVICES=&amp;quot;ldapi:///&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Reconfigure your kerberos&lt;br /&gt;
#* Navigate to kerberos src&lt;br /&gt;
#* &amp;lt;code&amp;gt;make distclean&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;util/reconf&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;./configure --with-ldap&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo make install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 5. Kerb Schema Operations ==&lt;br /&gt;
Loosely followed [http://ajuda.ubuntu.cat/9.04/serverguide/kerberos-ldap.html Ubuntu Guide] and [http://web.mit.edu/kerberos/krb5-1.7/krb5-1.7/doc/krb5-admin.html#Configuring-Kerberos-with-OpenLDAP-back_002dend Kerberos V5 System Admin Guide]&lt;br /&gt;
&lt;br /&gt;
# You have not done so already, locate the kerberos.schema.  [[kerberos.schema]] which should be in /etc/ldap/schema/kerberos.schema.  If it is not there, please copy it there from your kerberos trunk: &amp;lt;code&amp;gt;cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Checkpoint: Make sure there is a list of different schemas in /etc/ldap/schema.  Such as&lt;br /&gt;
#:* core.schema&lt;br /&gt;
#:* inetorgperson.schema&lt;br /&gt;
#:* kerberos.schema&lt;br /&gt;
#:* misc.schema&lt;br /&gt;
#:* openldap.schema&lt;br /&gt;
# Make this [[schema_convert.conf]].  Note! This is different from the schema_convert.conf in the Ubuntu Guide.&lt;br /&gt;
# Make the directory to hold output: &amp;lt;code&amp;gt;mkdir /tmp/ldif_output &amp;lt;/code&amp;gt;&lt;br /&gt;
# Convert schema --&amp;gt; LDIF with slaptest: &amp;lt;code&amp;gt;slaptest -f [path to]/schema_convert.conf -F /tmp/ldif_output&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: &amp;quot;config file testing succeeded&amp;quot;&lt;br /&gt;
#: Checkpoint: Make sure you have &amp;quot;cn=config&amp;quot; in you /tmp/ldif_output&lt;br /&gt;
# Need to modify kerberos.ldif. &lt;br /&gt;
#* Find which number kerberos.ldif is listed as: &amp;lt;code&amp;gt;sudo ls /tmp/ldif_output/cn\=config/cn\=schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Edit it: &amp;lt;code&amp;gt; sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn={6}kerberos.ldif&amp;lt;/code&amp;gt;&lt;br /&gt;
#** change ''dn: cn={6}kerberos'' into ''dn: cn=kerberos,cn=schema,cn=config''&lt;br /&gt;
#** change ''cn: {6}kerberos'' into ''cn: kerberos''&lt;br /&gt;
#** Delete the bottom lines: from ''structuralObjectClasses: olcSchemaConfig'' to ''modifyTimestamp: 20090811205313Z''&lt;br /&gt;
# load new schema, replace &amp;quot;-w a&amp;quot; with your password: &amp;lt;code&amp;gt;sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\={6}kerberos.ldif -H ldapi:///&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: ''adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
== 6. Starting ==&lt;br /&gt;
* Create your database with kdb5_ldap_util instead of kdb5_util:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create  -s&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Initializing database for realm 'EXAMPLE.ORG'&lt;br /&gt;
You will be prompted for the database Master Password.&lt;br /&gt;
It is important that you NOT FORGET this password.&lt;br /&gt;
Enter KDC database master key: &lt;br /&gt;
Re-enter KDC database master key to verify: &lt;br /&gt;
&lt;br /&gt;
Kerberos container is missing. Creating now...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Stash the password:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&amp;lt;/code&amp;gt;&lt;br /&gt;
*: If it works, you can do:&lt;br /&gt;
*:* &amp;lt;code&amp;gt;kadmin.local&amp;lt;/code&amp;gt;, try &amp;lt;code&amp;gt;listprincs&amp;lt;/code&amp;gt;, quit by typing &amp;lt;code&amp;gt;quit&amp;lt;/code&amp;gt;&lt;br /&gt;
*:* &amp;lt;code&amp;gt;krb5kdc -n&amp;lt;/code&amp;gt; if it runs, the cursor blinks on a new line&lt;br /&gt;
&lt;br /&gt;
* Command to destroy kdb5_ldap_util: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// destroy&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Scratch Pad ==&lt;br /&gt;
&lt;br /&gt;
===Assume People have done===&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
&lt;br /&gt;
   16  make distclean&lt;br /&gt;
&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
&lt;br /&gt;
   19  make&lt;br /&gt;
&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
&lt;br /&gt;
    8  mkdir /tmp/krb5kdc (or should it be /tmp/sandbox/krb5kdc)?&lt;br /&gt;
&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
&lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
&lt;br /&gt;
   29  krb5kdc -n&lt;/div&gt;</summary>
		<author><name>Haoqili</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2103</id>
		<title>LDAP on Kerberos</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2103"/>
				<updated>2009-08-18T15:39:08Z</updated>
		
		<summary type="html">&lt;p&gt;Haoqili: /* 5. Kerb Schema Operations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== To Do ==&lt;br /&gt;
* Simpler Domain names D.COM, R.COM&lt;br /&gt;
* Different domain names&lt;br /&gt;
* Play around to get minimum set of requirement&lt;br /&gt;
&lt;br /&gt;
== 0. Sample code to follow ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
    8  mkdir krb5kdc&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
   16  make distclean&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
   19  make&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
   29  krb5kdc -n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 1. Information about the system ==&lt;br /&gt;
- packages&lt;br /&gt;
* Version of ubuntu&lt;br /&gt;
       lsb_release -a&lt;br /&gt;
       No LSB modules are available.&lt;br /&gt;
       Distributor ID:        Ubuntu&lt;br /&gt;
       Description:        Ubuntu 9.04&lt;br /&gt;
       Release:        9.04&lt;br /&gt;
       Codename:        jaunty&lt;br /&gt;
* Version of slapd: 2.4.15 (Mar 19 2009)&lt;br /&gt;
       slapd -V&lt;br /&gt;
       @(#) $OpenLDAP: slapd 2.4.15 (Mar 19 2009 10:08:25) $&lt;br /&gt;
       buildd@palmer:/build/buildd/openldap-2.4.15/debian/build/servers/slapd&lt;br /&gt;
&lt;br /&gt;
* Version of ldap-utils: 2.4.15&lt;br /&gt;
       dpkg -l ldap-utils&lt;br /&gt;
&lt;br /&gt;
== 2. Extract krb conf files ==&lt;br /&gt;
* It is crucial to have correct, consistent domain names.  You must have the dbmodules in krb5.conf.&lt;br /&gt;
* Save [[krb5.conf]]&lt;br /&gt;
* Save [[kdc.conf]]&lt;br /&gt;
* Save [[kadm5.acl]]&lt;br /&gt;
&lt;br /&gt;
== 3. Env and Setup==&lt;br /&gt;
You need to export these lines into your env. Based on where you saved these files.&lt;br /&gt;
&lt;br /&gt;
*export KRB5_CONFIG=/tmp/sandbox/krb5.conf&lt;br /&gt;
&lt;br /&gt;
*export KRB5_KDC_PROFILE=/tmp/sandbox/kdc.conf&lt;br /&gt;
&lt;br /&gt;
* make a krb5kdc folder: mkdir /tmp/sandbox/krb5kdc)&lt;br /&gt;
&lt;br /&gt;
Whatever you do, be consistent&lt;br /&gt;
&lt;br /&gt;
== 4. Build kerb. config ==&lt;br /&gt;
&lt;br /&gt;
# Install Packages:&lt;br /&gt;
#* &amp;lt;code&amp;gt; sudo apt-get install slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
#* for ldapsearch: &amp;lt;code&amp;gt;sudo apt-get install ldap-utils&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo apt-get install libldap2-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
# Set the &amp;quot;domain&amp;quot; of your LDAP server with &amp;lt;code&amp;gt;sudo dpkg-reconfigure slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
##: Indented are the debconf-get-selection lines&lt;br /&gt;
## Omit OpenLDAP server configuration: No&lt;br /&gt;
##: slapd   slapd/no_configuration  boolean false&lt;br /&gt;
## DNS domain name: example.org&lt;br /&gt;
##: slapd   slapd/domain    string  example.org&lt;br /&gt;
## Organization name: example.org [note: i used the same name for simplicity]&lt;br /&gt;
##: slapd   shared/organization     string  example.org&lt;br /&gt;
## Databases backend to use: HDB, instead of BDB&lt;br /&gt;
##: slapd   slapd/backend   select  HDB&lt;br /&gt;
## Do you want the database to be removed when slapd is purge: Yes&lt;br /&gt;
##: slapd   slapd/purge_database    boolean true&lt;br /&gt;
## Move old database: Yes&lt;br /&gt;
##: slapd   slapd/move_old_database boolean true&lt;br /&gt;
## Admin password: [your pwd]&lt;br /&gt;
##: slapd   slapd/password1 password&lt;br /&gt;
##: [I'm not sure about the debconf-get-selection line here.  There are 5 different password lines!]&lt;br /&gt;
## Confirm password: [your pwd]&lt;br /&gt;
##: slapd   slapd/password2 password&lt;br /&gt;
## Allow LDAPv2 protocol: No&lt;br /&gt;
##: slapd   slapd/allow_ldap_v2     boolean false&lt;br /&gt;
#: Checkpoint:  If you are successful, you should see as output:&lt;br /&gt;
#:: ''Stopping OpenLDAP: slapd.''&lt;br /&gt;
#::  ''Moving old database directory to /var/backups:''&lt;br /&gt;
#::  ''- directory unknown... done.''&lt;br /&gt;
#::  ''Creating initial slapd configuration... done.''&lt;br /&gt;
#::  ''Creating initial LDAP directory... done.''&lt;br /&gt;
#:: ''* Reloading AppArmor profiles ''&lt;br /&gt;
#::  ''...                                               [ OK ]'' &lt;br /&gt;
#::  ''Starting OpenLDAP: slapd.''&lt;br /&gt;
# If you haven't done so already, please copy kerberos.schema from your kerberos trunk into /etc/ldap/schema: &amp;lt;code&amp;gt;sudo cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
# To restrict access to the local machine, &amp;lt;code&amp;gt;sudo vim /etc/default/slapd&amp;lt;/code&amp;gt;, search for SLAPD_SERVICES and set it to: &amp;lt;pre&amp;gt;SLAPD_SERVICES=&amp;quot;ldapi:///&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Reconfigure your kerberos&lt;br /&gt;
#* Navigate to kerberos src&lt;br /&gt;
#* &amp;lt;code&amp;gt;make distclean&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;util/reconf&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;./configure --with-ldap&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo make install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 5. Kerb Schema Operations ==&lt;br /&gt;
Loosely followed [http://ajuda.ubuntu.cat/9.04/serverguide/kerberos-ldap.html Ubuntu Guide] and [http://web.mit.edu/kerberos/krb5-1.7/krb5-1.7/doc/krb5-admin.html#Configuring-Kerberos-with-OpenLDAP-back_002dend Kerberos V5 System Admin Guide]&lt;br /&gt;
&lt;br /&gt;
# You have not done so already, locate the kerberos.schema.  [[kerberos.schema]] which should be in /etc/ldap/schema/kerberos.schema.  If it is not there, please copy it there from your kerberos trunk: &amp;lt;code&amp;gt;cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Checkpoint: Make sure there is a list of different schemas in /etc/ldap/schema.  Such as&lt;br /&gt;
#:* core.schema&lt;br /&gt;
#:* inetorgperson.schema&lt;br /&gt;
#:* kerberos.schema&lt;br /&gt;
#:* misc.schema&lt;br /&gt;
#:* openldap.schema&lt;br /&gt;
# Make this [[schema_convert.conf]].  Note! This is different from the schema_convert.conf in the Ubuntu Guide.&lt;br /&gt;
# Make the directory to hold output: &amp;lt;code&amp;gt;mkdir /tmp/ldif_output &amp;lt;/code&amp;gt;&lt;br /&gt;
# Convert schema --&amp;gt; LDIF with slaptest: &amp;lt;code&amp;gt;slaptest -f [path to]/schema_convert.conf -F /tmp/ldif_output&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: &amp;quot;config file testing succeeded&amp;quot;&lt;br /&gt;
#: Checkpoint: Make sure you have &amp;quot;cn=config&amp;quot; in you /tmp/ldif_output&lt;br /&gt;
# Need to modify kerberos.ldif. &lt;br /&gt;
#* Find which number kerberos.ldif is listed as: &amp;lt;code&amp;gt;sudo ls /tmp/ldif_output/cn\=config/cn\=schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Edit it: &amp;lt;code&amp;gt; sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn={6}kerberos.ldif&amp;lt;/code&amp;gt;&lt;br /&gt;
#** change ''dn: cn={6}kerberos'' into ''dn: cn=kerberos,cn=schema,cn=config''&lt;br /&gt;
#** change ''cn: {6}kerberos'' into ''cn: kerberos''&lt;br /&gt;
#** Delete the bottom lines: from ''structuralObjectClasses: olcSchemaConfig'' to ''modifyTimestamp: 20090811205313Z''&lt;br /&gt;
# load new schema, replace &amp;quot;-w a&amp;quot; with your password: &amp;lt;code&amp;gt;sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\={6}kerberos.ldif -H ldapi:///&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: ''adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
== 6. Starting ==&lt;br /&gt;
* Create your database with kdb5_ldap_util instead of kdb5_util:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create  -s&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Initializing database for realm 'EXAMPLE.ORG'&lt;br /&gt;
You will be prompted for the database Master Password.&lt;br /&gt;
It is important that you NOT FORGET this password.&lt;br /&gt;
Enter KDC database master key: &lt;br /&gt;
Re-enter KDC database master key to verify: &lt;br /&gt;
&lt;br /&gt;
Kerberos container is missing. Creating now...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Stash the password:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&amp;lt;/code&amp;gt;&lt;br /&gt;
*: If it works, you can do:&lt;br /&gt;
*:* &amp;lt;code&amp;gt;kadmin.local&amp;lt;/code&amp;gt;, try &amp;lt;code&amp;gt;listprincs&amp;lt;/code&amp;gt;, quit by typing &amp;lt;code&amp;gt;quit&amp;lt;/code&amp;gt;&lt;br /&gt;
*:* &amp;lt;code&amp;gt;krb5kdc -n&amp;lt;/code&amp;gt; if it runs, the cursor blinks on a new line&lt;br /&gt;
&lt;br /&gt;
* Command to destroy kdb5_ldap_util: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// destroy&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Scratch Pad ==&lt;br /&gt;
&lt;br /&gt;
===Assume People have done===&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
&lt;br /&gt;
   16  make distclean&lt;br /&gt;
&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
&lt;br /&gt;
   19  make&lt;br /&gt;
&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
&lt;br /&gt;
    8  mkdir /tmp/krb5kdc (or should it be /tmp/sandbox/krb5kdc)?&lt;br /&gt;
&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
&lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
&lt;br /&gt;
   29  krb5kdc -n&lt;/div&gt;</summary>
		<author><name>Haoqili</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2102</id>
		<title>LDAP on Kerberos</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2102"/>
				<updated>2009-08-18T15:37:28Z</updated>
		
		<summary type="html">&lt;p&gt;Haoqili: /* 4. Build kerb. config */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== To Do ==&lt;br /&gt;
* Simpler Domain names D.COM, R.COM&lt;br /&gt;
* Different domain names&lt;br /&gt;
* Play around to get minimum set of requirement&lt;br /&gt;
&lt;br /&gt;
== 0. Sample code to follow ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
    8  mkdir krb5kdc&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
   16  make distclean&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
   19  make&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
   29  krb5kdc -n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 1. Information about the system ==&lt;br /&gt;
- packages&lt;br /&gt;
* Version of ubuntu&lt;br /&gt;
       lsb_release -a&lt;br /&gt;
       No LSB modules are available.&lt;br /&gt;
       Distributor ID:        Ubuntu&lt;br /&gt;
       Description:        Ubuntu 9.04&lt;br /&gt;
       Release:        9.04&lt;br /&gt;
       Codename:        jaunty&lt;br /&gt;
* Version of slapd: 2.4.15 (Mar 19 2009)&lt;br /&gt;
       slapd -V&lt;br /&gt;
       @(#) $OpenLDAP: slapd 2.4.15 (Mar 19 2009 10:08:25) $&lt;br /&gt;
       buildd@palmer:/build/buildd/openldap-2.4.15/debian/build/servers/slapd&lt;br /&gt;
&lt;br /&gt;
* Version of ldap-utils: 2.4.15&lt;br /&gt;
       dpkg -l ldap-utils&lt;br /&gt;
&lt;br /&gt;
== 2. Extract krb conf files ==&lt;br /&gt;
* It is crucial to have correct, consistent domain names.  You must have the dbmodules in krb5.conf.&lt;br /&gt;
* Save [[krb5.conf]]&lt;br /&gt;
* Save [[kdc.conf]]&lt;br /&gt;
* Save [[kadm5.acl]]&lt;br /&gt;
&lt;br /&gt;
== 3. Env and Setup==&lt;br /&gt;
You need to export these lines into your env. Based on where you saved these files.&lt;br /&gt;
&lt;br /&gt;
*export KRB5_CONFIG=/tmp/sandbox/krb5.conf&lt;br /&gt;
&lt;br /&gt;
*export KRB5_KDC_PROFILE=/tmp/sandbox/kdc.conf&lt;br /&gt;
&lt;br /&gt;
* make a krb5kdc folder: mkdir /tmp/sandbox/krb5kdc)&lt;br /&gt;
&lt;br /&gt;
Whatever you do, be consistent&lt;br /&gt;
&lt;br /&gt;
== 4. Build kerb. config ==&lt;br /&gt;
&lt;br /&gt;
# Install Packages:&lt;br /&gt;
#* &amp;lt;code&amp;gt; sudo apt-get install slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
#* for ldapsearch: &amp;lt;code&amp;gt;sudo apt-get install ldap-utils&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo apt-get install libldap2-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
# Set the &amp;quot;domain&amp;quot; of your LDAP server with &amp;lt;code&amp;gt;sudo dpkg-reconfigure slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
##: Indented are the debconf-get-selection lines&lt;br /&gt;
## Omit OpenLDAP server configuration: No&lt;br /&gt;
##: slapd   slapd/no_configuration  boolean false&lt;br /&gt;
## DNS domain name: example.org&lt;br /&gt;
##: slapd   slapd/domain    string  example.org&lt;br /&gt;
## Organization name: example.org [note: i used the same name for simplicity]&lt;br /&gt;
##: slapd   shared/organization     string  example.org&lt;br /&gt;
## Databases backend to use: HDB, instead of BDB&lt;br /&gt;
##: slapd   slapd/backend   select  HDB&lt;br /&gt;
## Do you want the database to be removed when slapd is purge: Yes&lt;br /&gt;
##: slapd   slapd/purge_database    boolean true&lt;br /&gt;
## Move old database: Yes&lt;br /&gt;
##: slapd   slapd/move_old_database boolean true&lt;br /&gt;
## Admin password: [your pwd]&lt;br /&gt;
##: slapd   slapd/password1 password&lt;br /&gt;
##: [I'm not sure about the debconf-get-selection line here.  There are 5 different password lines!]&lt;br /&gt;
## Confirm password: [your pwd]&lt;br /&gt;
##: slapd   slapd/password2 password&lt;br /&gt;
## Allow LDAPv2 protocol: No&lt;br /&gt;
##: slapd   slapd/allow_ldap_v2     boolean false&lt;br /&gt;
#: Checkpoint:  If you are successful, you should see as output:&lt;br /&gt;
#:: ''Stopping OpenLDAP: slapd.''&lt;br /&gt;
#::  ''Moving old database directory to /var/backups:''&lt;br /&gt;
#::  ''- directory unknown... done.''&lt;br /&gt;
#::  ''Creating initial slapd configuration... done.''&lt;br /&gt;
#::  ''Creating initial LDAP directory... done.''&lt;br /&gt;
#:: ''* Reloading AppArmor profiles ''&lt;br /&gt;
#::  ''...                                               [ OK ]'' &lt;br /&gt;
#::  ''Starting OpenLDAP: slapd.''&lt;br /&gt;
# If you haven't done so already, please copy kerberos.schema from your kerberos trunk into /etc/ldap/schema: &amp;lt;code&amp;gt;sudo cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
# To restrict access to the local machine, &amp;lt;code&amp;gt;sudo vim /etc/default/slapd&amp;lt;/code&amp;gt;, search for SLAPD_SERVICES and set it to: &amp;lt;pre&amp;gt;SLAPD_SERVICES=&amp;quot;ldapi:///&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Reconfigure your kerberos&lt;br /&gt;
#* Navigate to kerberos src&lt;br /&gt;
#* &amp;lt;code&amp;gt;make distclean&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;util/reconf&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;./configure --with-ldap&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo make install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 5. Kerb Schema Operations ==&lt;br /&gt;
Loosely followed [http://ajuda.ubuntu.cat/9.04/serverguide/kerberos-ldap.html Ubuntu Guide] and [http://web.mit.edu/kerberos/krb5-1.7/krb5-1.7/doc/krb5-admin.html#Configuring-Kerberos-with-OpenLDAP-back_002dend Kerberos V5 System Admin Guide]&lt;br /&gt;
&lt;br /&gt;
# You have not done so already, locate the kerberos.schema.  [[kerberos.schema]] which should be in /etc/ldap/schema/kerberos.schema.  If it is not there, please copy it there from your kerberos trunk: &amp;lt;code&amp;gt;cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Checkpoint: Make sure there is a list of different schemas in /etc/ldap/schema.  Such as core.schema&lt;br /&gt;
# Make this [[schema_convert.conf]].  Note! This is different from the schema_convert.conf in the Ubuntu Guide.&lt;br /&gt;
# Make the directory to hold output: &amp;lt;code&amp;gt;mkdir /tmp/ldif_output &amp;lt;/code&amp;gt;&lt;br /&gt;
# Convert schema --&amp;gt; LDIF with slaptest: &amp;lt;code&amp;gt;slaptest -f [path to]/schema_convert.conf -F /tmp/ldif_output&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: &amp;quot;config file testing succeeded&amp;quot;&lt;br /&gt;
#: Checkpoint: Make sure you have &amp;quot;cn=config&amp;quot; in you /tmp/ldif_output&lt;br /&gt;
# Need to modify kerberos.ldif. &lt;br /&gt;
#* Find which number kerberos.ldif is listed as: &amp;lt;code&amp;gt;sudo ls /tmp/ldif_output/cn\=config/cn\=schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Edit it: &amp;lt;code&amp;gt; sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn={6}kerberos.ldif&amp;lt;/code&amp;gt;&lt;br /&gt;
#** change ''dn: cn={6}kerberos'' into ''dn: cn=kerberos,cn=schema,cn=config''&lt;br /&gt;
#** change ''cn: {6}kerberos'' into ''cn: kerberos''&lt;br /&gt;
#** Delete the bottom lines: from ''structuralObjectClasses: olcSchemaConfig'' to ''modifyTimestamp: 20090811205313Z''&lt;br /&gt;
# load new schema, replace &amp;quot;-w a&amp;quot; with your password: &amp;lt;code&amp;gt;sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\={6}kerberos.ldif -H ldapi:///&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: ''adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
== 6. Starting ==&lt;br /&gt;
* Create your database with kdb5_ldap_util instead of kdb5_util:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create  -s&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Initializing database for realm 'EXAMPLE.ORG'&lt;br /&gt;
You will be prompted for the database Master Password.&lt;br /&gt;
It is important that you NOT FORGET this password.&lt;br /&gt;
Enter KDC database master key: &lt;br /&gt;
Re-enter KDC database master key to verify: &lt;br /&gt;
&lt;br /&gt;
Kerberos container is missing. Creating now...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Stash the password:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&amp;lt;/code&amp;gt;&lt;br /&gt;
*: If it works, you can do:&lt;br /&gt;
*:* &amp;lt;code&amp;gt;kadmin.local&amp;lt;/code&amp;gt;, try &amp;lt;code&amp;gt;listprincs&amp;lt;/code&amp;gt;, quit by typing &amp;lt;code&amp;gt;quit&amp;lt;/code&amp;gt;&lt;br /&gt;
*:* &amp;lt;code&amp;gt;krb5kdc -n&amp;lt;/code&amp;gt; if it runs, the cursor blinks on a new line&lt;br /&gt;
&lt;br /&gt;
* Command to destroy kdb5_ldap_util: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// destroy&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Scratch Pad ==&lt;br /&gt;
&lt;br /&gt;
===Assume People have done===&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
&lt;br /&gt;
   16  make distclean&lt;br /&gt;
&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
&lt;br /&gt;
   19  make&lt;br /&gt;
&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
&lt;br /&gt;
    8  mkdir /tmp/krb5kdc (or should it be /tmp/sandbox/krb5kdc)?&lt;br /&gt;
&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
&lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
&lt;br /&gt;
   29  krb5kdc -n&lt;/div&gt;</summary>
		<author><name>Haoqili</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2101</id>
		<title>LDAP on Kerberos</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2101"/>
				<updated>2009-08-18T15:36:32Z</updated>
		
		<summary type="html">&lt;p&gt;Haoqili: /* 4. Build kerb. config */   Zhanna's comments&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== To Do ==&lt;br /&gt;
* Simpler Domain names D.COM, R.COM&lt;br /&gt;
* Different domain names&lt;br /&gt;
* Play around to get minimum set of requirement&lt;br /&gt;
&lt;br /&gt;
== 0. Sample code to follow ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
    8  mkdir krb5kdc&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
   16  make distclean&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
   19  make&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
   29  krb5kdc -n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 1. Information about the system ==&lt;br /&gt;
- packages&lt;br /&gt;
* Version of ubuntu&lt;br /&gt;
       lsb_release -a&lt;br /&gt;
       No LSB modules are available.&lt;br /&gt;
       Distributor ID:        Ubuntu&lt;br /&gt;
       Description:        Ubuntu 9.04&lt;br /&gt;
       Release:        9.04&lt;br /&gt;
       Codename:        jaunty&lt;br /&gt;
* Version of slapd: 2.4.15 (Mar 19 2009)&lt;br /&gt;
       slapd -V&lt;br /&gt;
       @(#) $OpenLDAP: slapd 2.4.15 (Mar 19 2009 10:08:25) $&lt;br /&gt;
       buildd@palmer:/build/buildd/openldap-2.4.15/debian/build/servers/slapd&lt;br /&gt;
&lt;br /&gt;
* Version of ldap-utils: 2.4.15&lt;br /&gt;
       dpkg -l ldap-utils&lt;br /&gt;
&lt;br /&gt;
== 2. Extract krb conf files ==&lt;br /&gt;
* It is crucial to have correct, consistent domain names.  You must have the dbmodules in krb5.conf.&lt;br /&gt;
* Save [[krb5.conf]]&lt;br /&gt;
* Save [[kdc.conf]]&lt;br /&gt;
* Save [[kadm5.acl]]&lt;br /&gt;
&lt;br /&gt;
== 3. Env and Setup==&lt;br /&gt;
You need to export these lines into your env. Based on where you saved these files.&lt;br /&gt;
&lt;br /&gt;
*export KRB5_CONFIG=/tmp/sandbox/krb5.conf&lt;br /&gt;
&lt;br /&gt;
*export KRB5_KDC_PROFILE=/tmp/sandbox/kdc.conf&lt;br /&gt;
&lt;br /&gt;
* make a krb5kdc folder: mkdir /tmp/sandbox/krb5kdc)&lt;br /&gt;
&lt;br /&gt;
Whatever you do, be consistent&lt;br /&gt;
&lt;br /&gt;
== 4. Build kerb. config ==&lt;br /&gt;
&lt;br /&gt;
# Install Packages:&lt;br /&gt;
#* &amp;lt;code&amp;gt; sudo apt-get install slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
#* for ldapsearch: &amp;lt;code&amp;gt;sudo apt-get install ldap-utils&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo apt-get install libldap2-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
# Set the &amp;quot;domain&amp;quot; of your LDAP server with &amp;lt;code&amp;gt;sudo dpkg-reconfigure slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
##: debconf-get-selection lines&lt;br /&gt;
## Omit OpenLDAP server configuration: No&lt;br /&gt;
##: slapd   slapd/no_configuration  boolean false&lt;br /&gt;
## DNS domain name: example.org&lt;br /&gt;
##: slapd   slapd/domain    string  example.org&lt;br /&gt;
## Organization name: example.org [note: i used the same name for simplicity]&lt;br /&gt;
##: slapd   shared/organization     string  example.org&lt;br /&gt;
## Databases backend to use: HDB, instead of BDB&lt;br /&gt;
##: slapd   slapd/backend   select  HDB&lt;br /&gt;
## Do you want the database to be removed when slapd is purge: Yes&lt;br /&gt;
##: slapd   slapd/purge_database    boolean true&lt;br /&gt;
## Move old database: Yes&lt;br /&gt;
##: slapd   slapd/move_old_database boolean true&lt;br /&gt;
## Admin password: [your pwd]&lt;br /&gt;
##: slapd   slapd/password1 password&lt;br /&gt;
##: [I'm not sure about the debconf-get-selection line here.  There are 5 different password lines!]&lt;br /&gt;
## Confirm password: [your pwd]&lt;br /&gt;
##: slapd   slapd/password2 password&lt;br /&gt;
## Allow LDAPv2 protocol: No&lt;br /&gt;
##: slapd   slapd/allow_ldap_v2     boolean false&lt;br /&gt;
#: Checkpoint:  If you are successful, you should see as output:&lt;br /&gt;
#:: ''Stopping OpenLDAP: slapd.''&lt;br /&gt;
#::  ''Moving old database directory to /var/backups:''&lt;br /&gt;
#::  ''- directory unknown... done.''&lt;br /&gt;
#::  ''Creating initial slapd configuration... done.''&lt;br /&gt;
#::  ''Creating initial LDAP directory... done.''&lt;br /&gt;
#:: ''* Reloading AppArmor profiles ''&lt;br /&gt;
#::  ''...                                               [ OK ]'' &lt;br /&gt;
#::  ''Starting OpenLDAP: slapd.''&lt;br /&gt;
# If you haven't done so already, please copy kerberos.schema from your kerberos trunk into /etc/ldap/schema: &amp;lt;code&amp;gt;sudo cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
# To restrict access to the local machine, &amp;lt;code&amp;gt;sudo vim /etc/default/slapd&amp;lt;/code&amp;gt;, search for SLAPD_SERVICES and set it to: &amp;lt;pre&amp;gt;SLAPD_SERVICES=&amp;quot;ldapi:///&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Reconfigure your kerberos&lt;br /&gt;
#* Navigate to kerberos src&lt;br /&gt;
#* &amp;lt;code&amp;gt;make distclean&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;util/reconf&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;./configure --with-ldap&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo make install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 5. Kerb Schema Operations ==&lt;br /&gt;
Loosely followed [http://ajuda.ubuntu.cat/9.04/serverguide/kerberos-ldap.html Ubuntu Guide] and [http://web.mit.edu/kerberos/krb5-1.7/krb5-1.7/doc/krb5-admin.html#Configuring-Kerberos-with-OpenLDAP-back_002dend Kerberos V5 System Admin Guide]&lt;br /&gt;
&lt;br /&gt;
# You have not done so already, locate the kerberos.schema.  [[kerberos.schema]] which should be in /etc/ldap/schema/kerberos.schema.  If it is not there, please copy it there from your kerberos trunk: &amp;lt;code&amp;gt;cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Checkpoint: Make sure there is a list of different schemas in /etc/ldap/schema.  Such as core.schema&lt;br /&gt;
# Make this [[schema_convert.conf]].  Note! This is different from the schema_convert.conf in the Ubuntu Guide.&lt;br /&gt;
# Make the directory to hold output: &amp;lt;code&amp;gt;mkdir /tmp/ldif_output &amp;lt;/code&amp;gt;&lt;br /&gt;
# Convert schema --&amp;gt; LDIF with slaptest: &amp;lt;code&amp;gt;slaptest -f [path to]/schema_convert.conf -F /tmp/ldif_output&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: &amp;quot;config file testing succeeded&amp;quot;&lt;br /&gt;
#: Checkpoint: Make sure you have &amp;quot;cn=config&amp;quot; in you /tmp/ldif_output&lt;br /&gt;
# Need to modify kerberos.ldif. &lt;br /&gt;
#* Find which number kerberos.ldif is listed as: &amp;lt;code&amp;gt;sudo ls /tmp/ldif_output/cn\=config/cn\=schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Edit it: &amp;lt;code&amp;gt; sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn={6}kerberos.ldif&amp;lt;/code&amp;gt;&lt;br /&gt;
#** change ''dn: cn={6}kerberos'' into ''dn: cn=kerberos,cn=schema,cn=config''&lt;br /&gt;
#** change ''cn: {6}kerberos'' into ''cn: kerberos''&lt;br /&gt;
#** Delete the bottom lines: from ''structuralObjectClasses: olcSchemaConfig'' to ''modifyTimestamp: 20090811205313Z''&lt;br /&gt;
# load new schema, replace &amp;quot;-w a&amp;quot; with your password: &amp;lt;code&amp;gt;sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\={6}kerberos.ldif -H ldapi:///&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: ''adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
== 6. Starting ==&lt;br /&gt;
* Create your database with kdb5_ldap_util instead of kdb5_util:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create  -s&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Initializing database for realm 'EXAMPLE.ORG'&lt;br /&gt;
You will be prompted for the database Master Password.&lt;br /&gt;
It is important that you NOT FORGET this password.&lt;br /&gt;
Enter KDC database master key: &lt;br /&gt;
Re-enter KDC database master key to verify: &lt;br /&gt;
&lt;br /&gt;
Kerberos container is missing. Creating now...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Stash the password:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&amp;lt;/code&amp;gt;&lt;br /&gt;
*: If it works, you can do:&lt;br /&gt;
*:* &amp;lt;code&amp;gt;kadmin.local&amp;lt;/code&amp;gt;, try &amp;lt;code&amp;gt;listprincs&amp;lt;/code&amp;gt;, quit by typing &amp;lt;code&amp;gt;quit&amp;lt;/code&amp;gt;&lt;br /&gt;
*:* &amp;lt;code&amp;gt;krb5kdc -n&amp;lt;/code&amp;gt; if it runs, the cursor blinks on a new line&lt;br /&gt;
&lt;br /&gt;
* Command to destroy kdb5_ldap_util: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// destroy&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Scratch Pad ==&lt;br /&gt;
&lt;br /&gt;
===Assume People have done===&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
&lt;br /&gt;
   16  make distclean&lt;br /&gt;
&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
&lt;br /&gt;
   19  make&lt;br /&gt;
&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
&lt;br /&gt;
    8  mkdir /tmp/krb5kdc (or should it be /tmp/sandbox/krb5kdc)?&lt;br /&gt;
&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
&lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
&lt;br /&gt;
   29  krb5kdc -n&lt;/div&gt;</summary>
		<author><name>Haoqili</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2100</id>
		<title>LDAP on Kerberos</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2100"/>
				<updated>2009-08-18T15:34:01Z</updated>
		
		<summary type="html">&lt;p&gt;Haoqili: /* 3. Env and Setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== To Do ==&lt;br /&gt;
* Simpler Domain names D.COM, R.COM&lt;br /&gt;
* Different domain names&lt;br /&gt;
* Play around to get minimum set of requirement&lt;br /&gt;
&lt;br /&gt;
== 0. Sample code to follow ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
    8  mkdir krb5kdc&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
   16  make distclean&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
   19  make&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
   29  krb5kdc -n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 1. Information about the system ==&lt;br /&gt;
- packages&lt;br /&gt;
* Version of ubuntu&lt;br /&gt;
       lsb_release -a&lt;br /&gt;
       No LSB modules are available.&lt;br /&gt;
       Distributor ID:        Ubuntu&lt;br /&gt;
       Description:        Ubuntu 9.04&lt;br /&gt;
       Release:        9.04&lt;br /&gt;
       Codename:        jaunty&lt;br /&gt;
* Version of slapd: 2.4.15 (Mar 19 2009)&lt;br /&gt;
       slapd -V&lt;br /&gt;
       @(#) $OpenLDAP: slapd 2.4.15 (Mar 19 2009 10:08:25) $&lt;br /&gt;
       buildd@palmer:/build/buildd/openldap-2.4.15/debian/build/servers/slapd&lt;br /&gt;
&lt;br /&gt;
* Version of ldap-utils: 2.4.15&lt;br /&gt;
       dpkg -l ldap-utils&lt;br /&gt;
&lt;br /&gt;
== 2. Extract krb conf files ==&lt;br /&gt;
* It is crucial to have correct, consistent domain names.  You must have the dbmodules in krb5.conf.&lt;br /&gt;
* Save [[krb5.conf]]&lt;br /&gt;
* Save [[kdc.conf]]&lt;br /&gt;
* Save [[kadm5.acl]]&lt;br /&gt;
&lt;br /&gt;
== 3. Env and Setup==&lt;br /&gt;
You need to export these lines into your env. Based on where you saved these files.&lt;br /&gt;
&lt;br /&gt;
*export KRB5_CONFIG=/tmp/sandbox/krb5.conf&lt;br /&gt;
&lt;br /&gt;
*export KRB5_KDC_PROFILE=/tmp/sandbox/kdc.conf&lt;br /&gt;
&lt;br /&gt;
* make a krb5kdc folder: mkdir /tmp/sandbox/krb5kdc)&lt;br /&gt;
&lt;br /&gt;
Whatever you do, be consistent&lt;br /&gt;
&lt;br /&gt;
== 4. Build kerb. config ==&lt;br /&gt;
&lt;br /&gt;
# Install slapd package: &amp;lt;code&amp;gt; sudo apt-get install slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Asks for password.&lt;br /&gt;
# Install ldap-utils package (for ldapsearch): &amp;lt;code&amp;gt;sudo apt-get install ldap-utils&amp;lt;/code&amp;gt;&lt;br /&gt;
# Set the &amp;quot;domain&amp;quot; of your LDAP server with &amp;lt;code&amp;gt;sudo dpkg-reconfigure slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
##: debconf-get-selection lines&lt;br /&gt;
## Omit OpenLDAP server configuration: No&lt;br /&gt;
##: slapd   slapd/no_configuration  boolean false&lt;br /&gt;
## DNS domain name: example.org&lt;br /&gt;
##: slapd   slapd/domain    string  example.org&lt;br /&gt;
## Organization name: example.org [note: i used the same name for simplicity]&lt;br /&gt;
##: slapd   shared/organization     string  example.org&lt;br /&gt;
## Databases backend to use: HDB, instead of BDB&lt;br /&gt;
##: slapd   slapd/backend   select  HDB&lt;br /&gt;
## Do you want the database to be removed when slapd is purge: Yes&lt;br /&gt;
##: slapd   slapd/purge_database    boolean true&lt;br /&gt;
## Move old database: Yes&lt;br /&gt;
##: slapd   slapd/move_old_database boolean true&lt;br /&gt;
## Admin password: a&lt;br /&gt;
##: slapd   slapd/password1 password&lt;br /&gt;
##: [I'm not sure about the debconf-get-selection line here.  There are 5 different password lines!]&lt;br /&gt;
## Confirm password: a&lt;br /&gt;
##: slapd   slapd/password2 password&lt;br /&gt;
## Allow LDAPv2 protocol: No&lt;br /&gt;
##: slapd   slapd/allow_ldap_v2     boolean false&lt;br /&gt;
#: Checkpoint:  If you are successful, you should see as output:&lt;br /&gt;
#:: ''Stopping OpenLDAP: slapd.''&lt;br /&gt;
#::  ''Moving old database directory to /var/backups:''&lt;br /&gt;
#::  ''- directory unknown... done.''&lt;br /&gt;
#::  ''Creating initial slapd configuration... done.''&lt;br /&gt;
#::  ''Creating initial LDAP directory... done.''&lt;br /&gt;
#:: ''* Reloading AppArmor profiles ''&lt;br /&gt;
#::  ''...                                               [ OK ]'' &lt;br /&gt;
#::  ''Starting OpenLDAP: slapd.''&lt;br /&gt;
# If you haven't done so already, please copy kerberos.schema from your kerberos trunk into /etc/ldap/schema: &amp;lt;code&amp;gt;sudo cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
# To restrict access to the local machine, &amp;lt;code&amp;gt;sudo vim /etc/default/slapd&amp;lt;/code&amp;gt;, search for SLAPD_SERVICES and set it to: &amp;lt;pre&amp;gt;SLAPD_SERVICES=&amp;quot;ldapi:///&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
# To build Kerberos with LDAP back end support, install: &amp;lt;code&amp;gt;sudo apt-get install libldap2-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
# Reconfigure your kerberos&lt;br /&gt;
#* Navigate to kerberos src&lt;br /&gt;
#* &amp;lt;code&amp;gt;make distclean&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;util/reconf&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;./configure --with-ldap&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo make install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 5. Kerb Schema Operations ==&lt;br /&gt;
Loosely followed [http://ajuda.ubuntu.cat/9.04/serverguide/kerberos-ldap.html Ubuntu Guide] and [http://web.mit.edu/kerberos/krb5-1.7/krb5-1.7/doc/krb5-admin.html#Configuring-Kerberos-with-OpenLDAP-back_002dend Kerberos V5 System Admin Guide]&lt;br /&gt;
&lt;br /&gt;
# You have not done so already, locate the kerberos.schema.  [[kerberos.schema]] which should be in /etc/ldap/schema/kerberos.schema.  If it is not there, please copy it there from your kerberos trunk: &amp;lt;code&amp;gt;cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Checkpoint: Make sure there is a list of different schemas in /etc/ldap/schema.  Such as core.schema&lt;br /&gt;
# Make this [[schema_convert.conf]].  Note! This is different from the schema_convert.conf in the Ubuntu Guide.&lt;br /&gt;
# Make the directory to hold output: &amp;lt;code&amp;gt;mkdir /tmp/ldif_output &amp;lt;/code&amp;gt;&lt;br /&gt;
# Convert schema --&amp;gt; LDIF with slaptest: &amp;lt;code&amp;gt;slaptest -f [path to]/schema_convert.conf -F /tmp/ldif_output&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: &amp;quot;config file testing succeeded&amp;quot;&lt;br /&gt;
#: Checkpoint: Make sure you have &amp;quot;cn=config&amp;quot; in you /tmp/ldif_output&lt;br /&gt;
# Need to modify kerberos.ldif. &lt;br /&gt;
#* Find which number kerberos.ldif is listed as: &amp;lt;code&amp;gt;sudo ls /tmp/ldif_output/cn\=config/cn\=schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Edit it: &amp;lt;code&amp;gt; sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn={6}kerberos.ldif&amp;lt;/code&amp;gt;&lt;br /&gt;
#** change ''dn: cn={6}kerberos'' into ''dn: cn=kerberos,cn=schema,cn=config''&lt;br /&gt;
#** change ''cn: {6}kerberos'' into ''cn: kerberos''&lt;br /&gt;
#** Delete the bottom lines: from ''structuralObjectClasses: olcSchemaConfig'' to ''modifyTimestamp: 20090811205313Z''&lt;br /&gt;
# load new schema, replace &amp;quot;-w a&amp;quot; with your password: &amp;lt;code&amp;gt;sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\={6}kerberos.ldif -H ldapi:///&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: ''adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
== 6. Starting ==&lt;br /&gt;
* Create your database with kdb5_ldap_util instead of kdb5_util:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create  -s&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Initializing database for realm 'EXAMPLE.ORG'&lt;br /&gt;
You will be prompted for the database Master Password.&lt;br /&gt;
It is important that you NOT FORGET this password.&lt;br /&gt;
Enter KDC database master key: &lt;br /&gt;
Re-enter KDC database master key to verify: &lt;br /&gt;
&lt;br /&gt;
Kerberos container is missing. Creating now...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Stash the password:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&amp;lt;/code&amp;gt;&lt;br /&gt;
*: If it works, you can do:&lt;br /&gt;
*:* &amp;lt;code&amp;gt;kadmin.local&amp;lt;/code&amp;gt;, try &amp;lt;code&amp;gt;listprincs&amp;lt;/code&amp;gt;, quit by typing &amp;lt;code&amp;gt;quit&amp;lt;/code&amp;gt;&lt;br /&gt;
*:* &amp;lt;code&amp;gt;krb5kdc -n&amp;lt;/code&amp;gt; if it runs, the cursor blinks on a new line&lt;br /&gt;
&lt;br /&gt;
* Command to destroy kdb5_ldap_util: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// destroy&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Scratch Pad ==&lt;br /&gt;
&lt;br /&gt;
===Assume People have done===&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
&lt;br /&gt;
   16  make distclean&lt;br /&gt;
&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
&lt;br /&gt;
   19  make&lt;br /&gt;
&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
&lt;br /&gt;
    8  mkdir /tmp/krb5kdc (or should it be /tmp/sandbox/krb5kdc)?&lt;br /&gt;
&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
&lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
&lt;br /&gt;
   29  krb5kdc -n&lt;/div&gt;</summary>
		<author><name>Haoqili</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2099</id>
		<title>LDAP on Kerberos</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2099"/>
				<updated>2009-08-18T15:33:39Z</updated>
		
		<summary type="html">&lt;p&gt;Haoqili: /* 3. Env and Setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== To Do ==&lt;br /&gt;
* Simpler Domain names D.COM, R.COM&lt;br /&gt;
* Different domain names&lt;br /&gt;
* Play around to get minimum set of requirement&lt;br /&gt;
&lt;br /&gt;
== 0. Sample code to follow ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
    8  mkdir krb5kdc&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
   16  make distclean&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
   19  make&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
   29  krb5kdc -n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 1. Information about the system ==&lt;br /&gt;
- packages&lt;br /&gt;
* Version of ubuntu&lt;br /&gt;
       lsb_release -a&lt;br /&gt;
       No LSB modules are available.&lt;br /&gt;
       Distributor ID:        Ubuntu&lt;br /&gt;
       Description:        Ubuntu 9.04&lt;br /&gt;
       Release:        9.04&lt;br /&gt;
       Codename:        jaunty&lt;br /&gt;
* Version of slapd: 2.4.15 (Mar 19 2009)&lt;br /&gt;
       slapd -V&lt;br /&gt;
       @(#) $OpenLDAP: slapd 2.4.15 (Mar 19 2009 10:08:25) $&lt;br /&gt;
       buildd@palmer:/build/buildd/openldap-2.4.15/debian/build/servers/slapd&lt;br /&gt;
&lt;br /&gt;
* Version of ldap-utils: 2.4.15&lt;br /&gt;
       dpkg -l ldap-utils&lt;br /&gt;
&lt;br /&gt;
== 2. Extract krb conf files ==&lt;br /&gt;
* It is crucial to have correct, consistent domain names.  You must have the dbmodules in krb5.conf.&lt;br /&gt;
* Save [[krb5.conf]]&lt;br /&gt;
* Save [[kdc.conf]]&lt;br /&gt;
* Save [[kadm5.acl]]&lt;br /&gt;
&lt;br /&gt;
== 3. Env and Setup==&lt;br /&gt;
You need to export these lines into your env. Based on where you saved these files.&lt;br /&gt;
&lt;br /&gt;
*export KRB5_CONFIG=/tmp/sandbox/krb5.conf&lt;br /&gt;
&lt;br /&gt;
*export KRB5_KDC_PROFILE=/tmp/sandbox/kdc.conf&lt;br /&gt;
&lt;br /&gt;
* make a krb5kdc folder (like in /tmp/krb5kdc)&lt;br /&gt;
&lt;br /&gt;
Whatever you do, be consistent&lt;br /&gt;
&lt;br /&gt;
== 4. Build kerb. config ==&lt;br /&gt;
&lt;br /&gt;
# Install slapd package: &amp;lt;code&amp;gt; sudo apt-get install slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Asks for password.&lt;br /&gt;
# Install ldap-utils package (for ldapsearch): &amp;lt;code&amp;gt;sudo apt-get install ldap-utils&amp;lt;/code&amp;gt;&lt;br /&gt;
# Set the &amp;quot;domain&amp;quot; of your LDAP server with &amp;lt;code&amp;gt;sudo dpkg-reconfigure slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
##: debconf-get-selection lines&lt;br /&gt;
## Omit OpenLDAP server configuration: No&lt;br /&gt;
##: slapd   slapd/no_configuration  boolean false&lt;br /&gt;
## DNS domain name: example.org&lt;br /&gt;
##: slapd   slapd/domain    string  example.org&lt;br /&gt;
## Organization name: example.org [note: i used the same name for simplicity]&lt;br /&gt;
##: slapd   shared/organization     string  example.org&lt;br /&gt;
## Databases backend to use: HDB, instead of BDB&lt;br /&gt;
##: slapd   slapd/backend   select  HDB&lt;br /&gt;
## Do you want the database to be removed when slapd is purge: Yes&lt;br /&gt;
##: slapd   slapd/purge_database    boolean true&lt;br /&gt;
## Move old database: Yes&lt;br /&gt;
##: slapd   slapd/move_old_database boolean true&lt;br /&gt;
## Admin password: a&lt;br /&gt;
##: slapd   slapd/password1 password&lt;br /&gt;
##: [I'm not sure about the debconf-get-selection line here.  There are 5 different password lines!]&lt;br /&gt;
## Confirm password: a&lt;br /&gt;
##: slapd   slapd/password2 password&lt;br /&gt;
## Allow LDAPv2 protocol: No&lt;br /&gt;
##: slapd   slapd/allow_ldap_v2     boolean false&lt;br /&gt;
#: Checkpoint:  If you are successful, you should see as output:&lt;br /&gt;
#:: ''Stopping OpenLDAP: slapd.''&lt;br /&gt;
#::  ''Moving old database directory to /var/backups:''&lt;br /&gt;
#::  ''- directory unknown... done.''&lt;br /&gt;
#::  ''Creating initial slapd configuration... done.''&lt;br /&gt;
#::  ''Creating initial LDAP directory... done.''&lt;br /&gt;
#:: ''* Reloading AppArmor profiles ''&lt;br /&gt;
#::  ''...                                               [ OK ]'' &lt;br /&gt;
#::  ''Starting OpenLDAP: slapd.''&lt;br /&gt;
# If you haven't done so already, please copy kerberos.schema from your kerberos trunk into /etc/ldap/schema: &amp;lt;code&amp;gt;sudo cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
# To restrict access to the local machine, &amp;lt;code&amp;gt;sudo vim /etc/default/slapd&amp;lt;/code&amp;gt;, search for SLAPD_SERVICES and set it to: &amp;lt;pre&amp;gt;SLAPD_SERVICES=&amp;quot;ldapi:///&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
# To build Kerberos with LDAP back end support, install: &amp;lt;code&amp;gt;sudo apt-get install libldap2-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
# Reconfigure your kerberos&lt;br /&gt;
#* Navigate to kerberos src&lt;br /&gt;
#* &amp;lt;code&amp;gt;make distclean&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;util/reconf&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;./configure --with-ldap&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo make install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 5. Kerb Schema Operations ==&lt;br /&gt;
Loosely followed [http://ajuda.ubuntu.cat/9.04/serverguide/kerberos-ldap.html Ubuntu Guide] and [http://web.mit.edu/kerberos/krb5-1.7/krb5-1.7/doc/krb5-admin.html#Configuring-Kerberos-with-OpenLDAP-back_002dend Kerberos V5 System Admin Guide]&lt;br /&gt;
&lt;br /&gt;
# You have not done so already, locate the kerberos.schema.  [[kerberos.schema]] which should be in /etc/ldap/schema/kerberos.schema.  If it is not there, please copy it there from your kerberos trunk: &amp;lt;code&amp;gt;cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Checkpoint: Make sure there is a list of different schemas in /etc/ldap/schema.  Such as core.schema&lt;br /&gt;
# Make this [[schema_convert.conf]].  Note! This is different from the schema_convert.conf in the Ubuntu Guide.&lt;br /&gt;
# Make the directory to hold output: &amp;lt;code&amp;gt;mkdir /tmp/ldif_output &amp;lt;/code&amp;gt;&lt;br /&gt;
# Convert schema --&amp;gt; LDIF with slaptest: &amp;lt;code&amp;gt;slaptest -f [path to]/schema_convert.conf -F /tmp/ldif_output&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: &amp;quot;config file testing succeeded&amp;quot;&lt;br /&gt;
#: Checkpoint: Make sure you have &amp;quot;cn=config&amp;quot; in you /tmp/ldif_output&lt;br /&gt;
# Need to modify kerberos.ldif. &lt;br /&gt;
#* Find which number kerberos.ldif is listed as: &amp;lt;code&amp;gt;sudo ls /tmp/ldif_output/cn\=config/cn\=schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Edit it: &amp;lt;code&amp;gt; sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn={6}kerberos.ldif&amp;lt;/code&amp;gt;&lt;br /&gt;
#** change ''dn: cn={6}kerberos'' into ''dn: cn=kerberos,cn=schema,cn=config''&lt;br /&gt;
#** change ''cn: {6}kerberos'' into ''cn: kerberos''&lt;br /&gt;
#** Delete the bottom lines: from ''structuralObjectClasses: olcSchemaConfig'' to ''modifyTimestamp: 20090811205313Z''&lt;br /&gt;
# load new schema, replace &amp;quot;-w a&amp;quot; with your password: &amp;lt;code&amp;gt;sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\={6}kerberos.ldif -H ldapi:///&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: ''adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
== 6. Starting ==&lt;br /&gt;
* Create your database with kdb5_ldap_util instead of kdb5_util:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create  -s&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Initializing database for realm 'EXAMPLE.ORG'&lt;br /&gt;
You will be prompted for the database Master Password.&lt;br /&gt;
It is important that you NOT FORGET this password.&lt;br /&gt;
Enter KDC database master key: &lt;br /&gt;
Re-enter KDC database master key to verify: &lt;br /&gt;
&lt;br /&gt;
Kerberos container is missing. Creating now...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Stash the password:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&amp;lt;/code&amp;gt;&lt;br /&gt;
*: If it works, you can do:&lt;br /&gt;
*:* &amp;lt;code&amp;gt;kadmin.local&amp;lt;/code&amp;gt;, try &amp;lt;code&amp;gt;listprincs&amp;lt;/code&amp;gt;, quit by typing &amp;lt;code&amp;gt;quit&amp;lt;/code&amp;gt;&lt;br /&gt;
*:* &amp;lt;code&amp;gt;krb5kdc -n&amp;lt;/code&amp;gt; if it runs, the cursor blinks on a new line&lt;br /&gt;
&lt;br /&gt;
* Command to destroy kdb5_ldap_util: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// destroy&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Scratch Pad ==&lt;br /&gt;
&lt;br /&gt;
===Assume People have done===&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
&lt;br /&gt;
   16  make distclean&lt;br /&gt;
&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
&lt;br /&gt;
   19  make&lt;br /&gt;
&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
&lt;br /&gt;
    8  mkdir /tmp/krb5kdc (or should it be /tmp/sandbox/krb5kdc)?&lt;br /&gt;
&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
&lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
&lt;br /&gt;
   29  krb5kdc -n&lt;/div&gt;</summary>
		<author><name>Haoqili</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2091</id>
		<title>LDAP on Kerberos</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2091"/>
				<updated>2009-08-18T12:35:49Z</updated>
		
		<summary type="html">&lt;p&gt;Haoqili: /* Assume People have done= */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== To Do ==&lt;br /&gt;
* Simpler Domain names D.COM, R.COM&lt;br /&gt;
* Different domain names&lt;br /&gt;
* Play around to get minimum set of requirement&lt;br /&gt;
&lt;br /&gt;
== 0. Sample code to follow ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
    8  mkdir krb5kdc&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
   16  make distclean&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
   19  make&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
   29  krb5kdc -n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 1. Information about the system ==&lt;br /&gt;
- packages&lt;br /&gt;
* Version of ubuntu&lt;br /&gt;
       lsb_release -a&lt;br /&gt;
       No LSB modules are available.&lt;br /&gt;
       Distributor ID:        Ubuntu&lt;br /&gt;
       Description:        Ubuntu 9.04&lt;br /&gt;
       Release:        9.04&lt;br /&gt;
       Codename:        jaunty&lt;br /&gt;
* Version of slapd: 2.4.15 (Mar 19 2009)&lt;br /&gt;
       slapd -V&lt;br /&gt;
       @(#) $OpenLDAP: slapd 2.4.15 (Mar 19 2009 10:08:25) $&lt;br /&gt;
       buildd@palmer:/build/buildd/openldap-2.4.15/debian/build/servers/slapd&lt;br /&gt;
&lt;br /&gt;
* Version of ldap-utils: 2.4.15&lt;br /&gt;
       dpkg -l ldap-utils&lt;br /&gt;
&lt;br /&gt;
== 2. Extract krb conf files ==&lt;br /&gt;
* It is crucial to have correct, consistent domain names.  You must have the dbmodules in krb5.conf.&lt;br /&gt;
* Save [[krb5.conf]]&lt;br /&gt;
* Save [[kdc.conf]]&lt;br /&gt;
* Save [[kadm5.acl]]&lt;br /&gt;
&lt;br /&gt;
== 3. Env and Setup==&lt;br /&gt;
You need to export these lines into your env. Based on where you saved these files.&lt;br /&gt;
&lt;br /&gt;
KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
&lt;br /&gt;
KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
&lt;br /&gt;
\# LD_LIBRARY_PATH=[path to the kerberos src]/src/lib&lt;br /&gt;
&lt;br /&gt;
I saved mine here:&lt;br /&gt;
&lt;br /&gt;
KRB5_CONFIG=/home/haoqili/trunk/src/tests/kdc_realm2/sandbox/krb5.conf&lt;br /&gt;
&lt;br /&gt;
KRB5_KDC_PROFILE=/home/haoqili/trunk/src/tests/kdc_realm2/sandbox/kdc.conf&lt;br /&gt;
&lt;br /&gt;
\# LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib&lt;br /&gt;
&lt;br /&gt;
-------&lt;br /&gt;
You should also make a krb5kdc folder (like in /tmp/krb5kdc)&lt;br /&gt;
&lt;br /&gt;
Whatever you do, be consistent&lt;br /&gt;
&lt;br /&gt;
== 4. Build kerb. config ==&lt;br /&gt;
&lt;br /&gt;
# Install slapd package: &amp;lt;code&amp;gt; sudo apt-get install slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Asks for password.&lt;br /&gt;
# Install ldap-utils package (for ldapsearch): &amp;lt;code&amp;gt;sudo apt-get install ldap-utils&amp;lt;/code&amp;gt;&lt;br /&gt;
# Set the &amp;quot;domain&amp;quot; of your LDAP server with &amp;lt;code&amp;gt;sudo dpkg-reconfigure slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
##: debconf-get-selection lines&lt;br /&gt;
## Omit OpenLDAP server configuration: No&lt;br /&gt;
##: slapd   slapd/no_configuration  boolean false&lt;br /&gt;
## DNS domain name: example.org&lt;br /&gt;
##: slapd   slapd/domain    string  example.org&lt;br /&gt;
## Organization name: example.org [note: i used the same name for simplicity]&lt;br /&gt;
##: slapd   shared/organization     string  example.org&lt;br /&gt;
## Databases backend to use: HDB, instead of BDB&lt;br /&gt;
##: slapd   slapd/backend   select  HDB&lt;br /&gt;
## Do you want the database to be removed when slapd is purge: Yes&lt;br /&gt;
##: slapd   slapd/purge_database    boolean true&lt;br /&gt;
## Move old database: Yes&lt;br /&gt;
##: slapd   slapd/move_old_database boolean true&lt;br /&gt;
## Admin password: a&lt;br /&gt;
##: slapd   slapd/password1 password&lt;br /&gt;
##: [I'm not sure about the debconf-get-selection line here.  There are 5 different password lines!]&lt;br /&gt;
## Confirm password: a&lt;br /&gt;
##: slapd   slapd/password2 password&lt;br /&gt;
## Allow LDAPv2 protocol: No&lt;br /&gt;
##: slapd   slapd/allow_ldap_v2     boolean false&lt;br /&gt;
#: Checkpoint:  If you are successful, you should see as output:&lt;br /&gt;
#:: ''Stopping OpenLDAP: slapd.''&lt;br /&gt;
#::  ''Moving old database directory to /var/backups:''&lt;br /&gt;
#::  ''- directory unknown... done.''&lt;br /&gt;
#::  ''Creating initial slapd configuration... done.''&lt;br /&gt;
#::  ''Creating initial LDAP directory... done.''&lt;br /&gt;
#:: ''* Reloading AppArmor profiles ''&lt;br /&gt;
#::  ''...                                               [ OK ]'' &lt;br /&gt;
#::  ''Starting OpenLDAP: slapd.''&lt;br /&gt;
# If you haven't done so already, please copy kerberos.schema from your kerberos trunk into /etc/ldap/schema: &amp;lt;code&amp;gt;sudo cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
# To restrict access to the local machine, &amp;lt;code&amp;gt;sudo vim /etc/default/slapd&amp;lt;/code&amp;gt;, search for SLAPD_SERVICES and set it to: &amp;lt;pre&amp;gt;SLAPD_SERVICES=&amp;quot;ldapi:///&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
# To build Kerberos with LDAP back end support, install: &amp;lt;code&amp;gt;sudo apt-get install libldap2-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
# Reconfigure your kerberos&lt;br /&gt;
#* Navigate to kerberos src&lt;br /&gt;
#* &amp;lt;code&amp;gt;make distclean&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;util/reconf&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;./configure --with-ldap&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo make install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 5. Kerb Schema Operations ==&lt;br /&gt;
Loosely followed [http://ajuda.ubuntu.cat/9.04/serverguide/kerberos-ldap.html Ubuntu Guide] and [http://web.mit.edu/kerberos/krb5-1.7/krb5-1.7/doc/krb5-admin.html#Configuring-Kerberos-with-OpenLDAP-back_002dend Kerberos V5 System Admin Guide]&lt;br /&gt;
&lt;br /&gt;
# You have not done so already, locate the kerberos.schema.  [[kerberos.schema]] which should be in /etc/ldap/schema/kerberos.schema.  If it is not there, please copy it there from your kerberos trunk: &amp;lt;code&amp;gt;cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Checkpoint: Make sure there is a list of different schemas in /etc/ldap/schema.  Such as core.schema&lt;br /&gt;
# Make this [[schema_convert.conf]].  Note! This is different from the schema_convert.conf in the Ubuntu Guide.&lt;br /&gt;
# Make the directory to hold output: &amp;lt;code&amp;gt;mkdir /tmp/ldif_output &amp;lt;/code&amp;gt;&lt;br /&gt;
# Convert schema --&amp;gt; LDIF with slaptest: &amp;lt;code&amp;gt;slaptest -f [path to]/schema_convert.conf -F /tmp/ldif_output&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: &amp;quot;config file testing succeeded&amp;quot;&lt;br /&gt;
#: Checkpoint: Make sure you have &amp;quot;cn=config&amp;quot; in you /tmp/ldif_output&lt;br /&gt;
# Need to modify kerberos.ldif. &lt;br /&gt;
#* Find which number kerberos.ldif is listed as: &amp;lt;code&amp;gt;sudo ls /tmp/ldif_output/cn\=config/cn\=schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Edit it: &amp;lt;code&amp;gt; sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn={6}kerberos.ldif&amp;lt;/code&amp;gt;&lt;br /&gt;
#** change ''dn: cn={6}kerberos'' into ''dn: cn=kerberos,cn=schema,cn=config''&lt;br /&gt;
#** change ''cn: {6}kerberos'' into ''cn: kerberos''&lt;br /&gt;
#** Delete the bottom lines: from ''structuralObjectClasses: olcSchemaConfig'' to ''modifyTimestamp: 20090811205313Z''&lt;br /&gt;
# load new schema, replace &amp;quot;-w a&amp;quot; with your password: &amp;lt;code&amp;gt;sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\={6}kerberos.ldif -H ldapi:///&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: ''adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
== 6. Starting ==&lt;br /&gt;
* Create your database with kdb5_ldap_util instead of kdb5_util:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create  -s&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Initializing database for realm 'EXAMPLE.ORG'&lt;br /&gt;
You will be prompted for the database Master Password.&lt;br /&gt;
It is important that you NOT FORGET this password.&lt;br /&gt;
Enter KDC database master key: &lt;br /&gt;
Re-enter KDC database master key to verify: &lt;br /&gt;
&lt;br /&gt;
Kerberos container is missing. Creating now...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Stash the password:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&amp;lt;/code&amp;gt;&lt;br /&gt;
*: If it works, you can do:&lt;br /&gt;
*:* &amp;lt;code&amp;gt;kadmin.local&amp;lt;/code&amp;gt;, try &amp;lt;code&amp;gt;listprincs&amp;lt;/code&amp;gt;, quit by typing &amp;lt;code&amp;gt;quit&amp;lt;/code&amp;gt;&lt;br /&gt;
*:* &amp;lt;code&amp;gt;krb5kdc -n&amp;lt;/code&amp;gt; if it runs, the cursor blinks on a new line&lt;br /&gt;
&lt;br /&gt;
* Command to destroy kdb5_ldap_util: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// destroy&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Scratch Pad ==&lt;br /&gt;
&lt;br /&gt;
===Assume People have done===&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
&lt;br /&gt;
   16  make distclean&lt;br /&gt;
&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
&lt;br /&gt;
   19  make&lt;br /&gt;
&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
&lt;br /&gt;
    8  mkdir /tmp/krb5kdc (or should it be /tmp/sandbox/krb5kdc)?&lt;br /&gt;
&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
&lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
&lt;br /&gt;
   29  krb5kdc -n&lt;/div&gt;</summary>
		<author><name>Haoqili</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2090</id>
		<title>LDAP on Kerberos</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2090"/>
				<updated>2009-08-18T12:31:59Z</updated>
		
		<summary type="html">&lt;p&gt;Haoqili: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== To Do ==&lt;br /&gt;
* Simpler Domain names D.COM, R.COM&lt;br /&gt;
* Different domain names&lt;br /&gt;
* Play around to get minimum set of requirement&lt;br /&gt;
&lt;br /&gt;
== 0. Sample code to follow ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
    8  mkdir krb5kdc&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
   16  make distclean&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
   19  make&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
   29  krb5kdc -n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 1. Information about the system ==&lt;br /&gt;
- packages&lt;br /&gt;
* Version of ubuntu&lt;br /&gt;
       lsb_release -a&lt;br /&gt;
       No LSB modules are available.&lt;br /&gt;
       Distributor ID:        Ubuntu&lt;br /&gt;
       Description:        Ubuntu 9.04&lt;br /&gt;
       Release:        9.04&lt;br /&gt;
       Codename:        jaunty&lt;br /&gt;
* Version of slapd: 2.4.15 (Mar 19 2009)&lt;br /&gt;
       slapd -V&lt;br /&gt;
       @(#) $OpenLDAP: slapd 2.4.15 (Mar 19 2009 10:08:25) $&lt;br /&gt;
       buildd@palmer:/build/buildd/openldap-2.4.15/debian/build/servers/slapd&lt;br /&gt;
&lt;br /&gt;
* Version of ldap-utils: 2.4.15&lt;br /&gt;
       dpkg -l ldap-utils&lt;br /&gt;
&lt;br /&gt;
== 2. Extract krb conf files ==&lt;br /&gt;
* It is crucial to have correct, consistent domain names.  You must have the dbmodules in krb5.conf.&lt;br /&gt;
* Save [[krb5.conf]]&lt;br /&gt;
* Save [[kdc.conf]]&lt;br /&gt;
* Save [[kadm5.acl]]&lt;br /&gt;
&lt;br /&gt;
== 3. Env and Setup==&lt;br /&gt;
You need to export these lines into your env. Based on where you saved these files.&lt;br /&gt;
&lt;br /&gt;
KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
&lt;br /&gt;
KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
&lt;br /&gt;
\# LD_LIBRARY_PATH=[path to the kerberos src]/src/lib&lt;br /&gt;
&lt;br /&gt;
I saved mine here:&lt;br /&gt;
&lt;br /&gt;
KRB5_CONFIG=/home/haoqili/trunk/src/tests/kdc_realm2/sandbox/krb5.conf&lt;br /&gt;
&lt;br /&gt;
KRB5_KDC_PROFILE=/home/haoqili/trunk/src/tests/kdc_realm2/sandbox/kdc.conf&lt;br /&gt;
&lt;br /&gt;
\# LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib&lt;br /&gt;
&lt;br /&gt;
-------&lt;br /&gt;
You should also make a krb5kdc folder (like in /tmp/krb5kdc)&lt;br /&gt;
&lt;br /&gt;
Whatever you do, be consistent&lt;br /&gt;
&lt;br /&gt;
== 4. Build kerb. config ==&lt;br /&gt;
&lt;br /&gt;
# Install slapd package: &amp;lt;code&amp;gt; sudo apt-get install slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Asks for password.&lt;br /&gt;
# Install ldap-utils package (for ldapsearch): &amp;lt;code&amp;gt;sudo apt-get install ldap-utils&amp;lt;/code&amp;gt;&lt;br /&gt;
# Set the &amp;quot;domain&amp;quot; of your LDAP server with &amp;lt;code&amp;gt;sudo dpkg-reconfigure slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
##: debconf-get-selection lines&lt;br /&gt;
## Omit OpenLDAP server configuration: No&lt;br /&gt;
##: slapd   slapd/no_configuration  boolean false&lt;br /&gt;
## DNS domain name: example.org&lt;br /&gt;
##: slapd   slapd/domain    string  example.org&lt;br /&gt;
## Organization name: example.org [note: i used the same name for simplicity]&lt;br /&gt;
##: slapd   shared/organization     string  example.org&lt;br /&gt;
## Databases backend to use: HDB, instead of BDB&lt;br /&gt;
##: slapd   slapd/backend   select  HDB&lt;br /&gt;
## Do you want the database to be removed when slapd is purge: Yes&lt;br /&gt;
##: slapd   slapd/purge_database    boolean true&lt;br /&gt;
## Move old database: Yes&lt;br /&gt;
##: slapd   slapd/move_old_database boolean true&lt;br /&gt;
## Admin password: a&lt;br /&gt;
##: slapd   slapd/password1 password&lt;br /&gt;
##: [I'm not sure about the debconf-get-selection line here.  There are 5 different password lines!]&lt;br /&gt;
## Confirm password: a&lt;br /&gt;
##: slapd   slapd/password2 password&lt;br /&gt;
## Allow LDAPv2 protocol: No&lt;br /&gt;
##: slapd   slapd/allow_ldap_v2     boolean false&lt;br /&gt;
#: Checkpoint:  If you are successful, you should see as output:&lt;br /&gt;
#:: ''Stopping OpenLDAP: slapd.''&lt;br /&gt;
#::  ''Moving old database directory to /var/backups:''&lt;br /&gt;
#::  ''- directory unknown... done.''&lt;br /&gt;
#::  ''Creating initial slapd configuration... done.''&lt;br /&gt;
#::  ''Creating initial LDAP directory... done.''&lt;br /&gt;
#:: ''* Reloading AppArmor profiles ''&lt;br /&gt;
#::  ''...                                               [ OK ]'' &lt;br /&gt;
#::  ''Starting OpenLDAP: slapd.''&lt;br /&gt;
# If you haven't done so already, please copy kerberos.schema from your kerberos trunk into /etc/ldap/schema: &amp;lt;code&amp;gt;sudo cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
# To restrict access to the local machine, &amp;lt;code&amp;gt;sudo vim /etc/default/slapd&amp;lt;/code&amp;gt;, search for SLAPD_SERVICES and set it to: &amp;lt;pre&amp;gt;SLAPD_SERVICES=&amp;quot;ldapi:///&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
# To build Kerberos with LDAP back end support, install: &amp;lt;code&amp;gt;sudo apt-get install libldap2-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
# Reconfigure your kerberos&lt;br /&gt;
#* Navigate to kerberos src&lt;br /&gt;
#* &amp;lt;code&amp;gt;make distclean&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;util/reconf&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;./configure --with-ldap&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo make install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 5. Kerb Schema Operations ==&lt;br /&gt;
Loosely followed [http://ajuda.ubuntu.cat/9.04/serverguide/kerberos-ldap.html Ubuntu Guide] and [http://web.mit.edu/kerberos/krb5-1.7/krb5-1.7/doc/krb5-admin.html#Configuring-Kerberos-with-OpenLDAP-back_002dend Kerberos V5 System Admin Guide]&lt;br /&gt;
&lt;br /&gt;
# You have not done so already, locate the kerberos.schema.  [[kerberos.schema]] which should be in /etc/ldap/schema/kerberos.schema.  If it is not there, please copy it there from your kerberos trunk: &amp;lt;code&amp;gt;cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Checkpoint: Make sure there is a list of different schemas in /etc/ldap/schema.  Such as core.schema&lt;br /&gt;
# Make this [[schema_convert.conf]].  Note! This is different from the schema_convert.conf in the Ubuntu Guide.&lt;br /&gt;
# Make the directory to hold output: &amp;lt;code&amp;gt;mkdir /tmp/ldif_output &amp;lt;/code&amp;gt;&lt;br /&gt;
# Convert schema --&amp;gt; LDIF with slaptest: &amp;lt;code&amp;gt;slaptest -f [path to]/schema_convert.conf -F /tmp/ldif_output&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: &amp;quot;config file testing succeeded&amp;quot;&lt;br /&gt;
#: Checkpoint: Make sure you have &amp;quot;cn=config&amp;quot; in you /tmp/ldif_output&lt;br /&gt;
# Need to modify kerberos.ldif. &lt;br /&gt;
#* Find which number kerberos.ldif is listed as: &amp;lt;code&amp;gt;sudo ls /tmp/ldif_output/cn\=config/cn\=schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Edit it: &amp;lt;code&amp;gt; sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn={6}kerberos.ldif&amp;lt;/code&amp;gt;&lt;br /&gt;
#** change ''dn: cn={6}kerberos'' into ''dn: cn=kerberos,cn=schema,cn=config''&lt;br /&gt;
#** change ''cn: {6}kerberos'' into ''cn: kerberos''&lt;br /&gt;
#** Delete the bottom lines: from ''structuralObjectClasses: olcSchemaConfig'' to ''modifyTimestamp: 20090811205313Z''&lt;br /&gt;
# load new schema, replace &amp;quot;-w a&amp;quot; with your password: &amp;lt;code&amp;gt;sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\={6}kerberos.ldif -H ldapi:///&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: ''adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
== 6. Starting ==&lt;br /&gt;
* Create your database with kdb5_ldap_util instead of kdb5_util:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create  -s&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Initializing database for realm 'EXAMPLE.ORG'&lt;br /&gt;
You will be prompted for the database Master Password.&lt;br /&gt;
It is important that you NOT FORGET this password.&lt;br /&gt;
Enter KDC database master key: &lt;br /&gt;
Re-enter KDC database master key to verify: &lt;br /&gt;
&lt;br /&gt;
Kerberos container is missing. Creating now...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Stash the password:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&amp;lt;/code&amp;gt;&lt;br /&gt;
*: If it works, you can do:&lt;br /&gt;
*:* &amp;lt;code&amp;gt;kadmin.local&amp;lt;/code&amp;gt;, try &amp;lt;code&amp;gt;listprincs&amp;lt;/code&amp;gt;, quit by typing &amp;lt;code&amp;gt;quit&amp;lt;/code&amp;gt;&lt;br /&gt;
*:* &amp;lt;code&amp;gt;krb5kdc -n&amp;lt;/code&amp;gt; if it runs, the cursor blinks on a new line&lt;br /&gt;
&lt;br /&gt;
* Command to destroy kdb5_ldap_util: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// destroy&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Scratch Pad ==&lt;br /&gt;
&lt;br /&gt;
===Assume People have done====&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
&lt;br /&gt;
   16  make distclean&lt;br /&gt;
&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
&lt;br /&gt;
   19  make&lt;br /&gt;
&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
&lt;br /&gt;
    8  mkdir /tmp/krb5kdc (or should it be /tmp/sandbox/krb5kdc)?&lt;br /&gt;
&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
&lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
&lt;br /&gt;
   29  krb5kdc -n&lt;/div&gt;</summary>
		<author><name>Haoqili</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2089</id>
		<title>LDAP on Kerberos</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2089"/>
				<updated>2009-08-18T05:37:00Z</updated>
		
		<summary type="html">&lt;p&gt;Haoqili: /* 4. Build kerb. config */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 0. Sample code to follow ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
    8  mkdir krb5kdc&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
   16  make distclean&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
   19  make&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
   29  krb5kdc -n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 1. Information about the system ==&lt;br /&gt;
- packages&lt;br /&gt;
* Version of ubuntu&lt;br /&gt;
       lsb_release -a&lt;br /&gt;
       No LSB modules are available.&lt;br /&gt;
       Distributor ID:        Ubuntu&lt;br /&gt;
       Description:        Ubuntu 9.04&lt;br /&gt;
       Release:        9.04&lt;br /&gt;
       Codename:        jaunty&lt;br /&gt;
* Version of slapd: 2.4.15 (Mar 19 2009)&lt;br /&gt;
       slapd -V&lt;br /&gt;
       @(#) $OpenLDAP: slapd 2.4.15 (Mar 19 2009 10:08:25) $&lt;br /&gt;
       buildd@palmer:/build/buildd/openldap-2.4.15/debian/build/servers/slapd&lt;br /&gt;
&lt;br /&gt;
* Version of ldap-utils: 2.4.15&lt;br /&gt;
       dpkg -l ldap-utils&lt;br /&gt;
&lt;br /&gt;
== 2. Extract krb conf files ==&lt;br /&gt;
* It is crucial to have correct, consistent domain names.  You must have the dbmodules in krb5.conf.&lt;br /&gt;
* Save [[krb5.conf]]&lt;br /&gt;
* Save [[kdc.conf]]&lt;br /&gt;
* Save [[kadm5.acl]]&lt;br /&gt;
&lt;br /&gt;
== 3. Env and Setup==&lt;br /&gt;
You need to export these lines into your env. Based on where you saved these files.&lt;br /&gt;
&lt;br /&gt;
KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
&lt;br /&gt;
KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
&lt;br /&gt;
\# LD_LIBRARY_PATH=[path to the kerberos src]/src/lib&lt;br /&gt;
&lt;br /&gt;
I saved mine here:&lt;br /&gt;
&lt;br /&gt;
KRB5_CONFIG=/home/haoqili/trunk/src/tests/kdc_realm2/sandbox/krb5.conf&lt;br /&gt;
&lt;br /&gt;
KRB5_KDC_PROFILE=/home/haoqili/trunk/src/tests/kdc_realm2/sandbox/kdc.conf&lt;br /&gt;
&lt;br /&gt;
\# LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib&lt;br /&gt;
&lt;br /&gt;
-------&lt;br /&gt;
You should also make a krb5kdc folder (like in /tmp/krb5kdc)&lt;br /&gt;
&lt;br /&gt;
Whatever you do, be consistent&lt;br /&gt;
&lt;br /&gt;
== 4. Build kerb. config ==&lt;br /&gt;
&lt;br /&gt;
# Install slapd package: &amp;lt;code&amp;gt; sudo apt-get install slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Asks for password.&lt;br /&gt;
# Install ldap-utils package (for ldapsearch): &amp;lt;code&amp;gt;sudo apt-get install ldap-utils&amp;lt;/code&amp;gt;&lt;br /&gt;
# Set the &amp;quot;domain&amp;quot; of your LDAP server with &amp;lt;code&amp;gt;sudo dpkg-reconfigure slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
##: debconf-get-selection lines&lt;br /&gt;
## Omit OpenLDAP server configuration: No&lt;br /&gt;
##: slapd   slapd/no_configuration  boolean false&lt;br /&gt;
## DNS domain name: example.org&lt;br /&gt;
##: slapd   slapd/domain    string  example.org&lt;br /&gt;
## Organization name: example.org [note: i used the same name for simplicity]&lt;br /&gt;
##: slapd   shared/organization     string  example.org&lt;br /&gt;
## Databases backend to use: HDB, instead of BDB&lt;br /&gt;
##: slapd   slapd/backend   select  HDB&lt;br /&gt;
## Do you want the database to be removed when slapd is purge: Yes&lt;br /&gt;
##: slapd   slapd/purge_database    boolean true&lt;br /&gt;
## Move old database: Yes&lt;br /&gt;
##: slapd   slapd/move_old_database boolean true&lt;br /&gt;
## Admin password: a&lt;br /&gt;
##: slapd   slapd/password1 password&lt;br /&gt;
##: [I'm not sure about the debconf-get-selection line here.  There are 5 different password lines!]&lt;br /&gt;
## Confirm password: a&lt;br /&gt;
##: slapd   slapd/password2 password&lt;br /&gt;
## Allow LDAPv2 protocol: No&lt;br /&gt;
##: slapd   slapd/allow_ldap_v2     boolean false&lt;br /&gt;
#: Checkpoint:  If you are successful, you should see as output:&lt;br /&gt;
#:: ''Stopping OpenLDAP: slapd.''&lt;br /&gt;
#::  ''Moving old database directory to /var/backups:''&lt;br /&gt;
#::  ''- directory unknown... done.''&lt;br /&gt;
#::  ''Creating initial slapd configuration... done.''&lt;br /&gt;
#::  ''Creating initial LDAP directory... done.''&lt;br /&gt;
#:: ''* Reloading AppArmor profiles ''&lt;br /&gt;
#::  ''...                                               [ OK ]'' &lt;br /&gt;
#::  ''Starting OpenLDAP: slapd.''&lt;br /&gt;
# If you haven't done so already, please copy kerberos.schema from your kerberos trunk into /etc/ldap/schema: &amp;lt;code&amp;gt;sudo cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
# To restrict access to the local machine, &amp;lt;code&amp;gt;sudo vim /etc/default/slapd&amp;lt;/code&amp;gt;, search for SLAPD_SERVICES and set it to: &amp;lt;pre&amp;gt;SLAPD_SERVICES=&amp;quot;ldapi:///&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
# To build Kerberos with LDAP back end support, install: &amp;lt;code&amp;gt;sudo apt-get install libldap2-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
# Reconfigure your kerberos&lt;br /&gt;
#* Navigate to kerberos src&lt;br /&gt;
#* &amp;lt;code&amp;gt;make distclean&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;util/reconf&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;./configure --with-ldap&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo make install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 5. Kerb Schema Operations ==&lt;br /&gt;
Loosely followed [http://ajuda.ubuntu.cat/9.04/serverguide/kerberos-ldap.html Ubuntu Guide] and [http://web.mit.edu/kerberos/krb5-1.7/krb5-1.7/doc/krb5-admin.html#Configuring-Kerberos-with-OpenLDAP-back_002dend Kerberos V5 System Admin Guide]&lt;br /&gt;
&lt;br /&gt;
# You have not done so already, locate the kerberos.schema.  [[kerberos.schema]] which should be in /etc/ldap/schema/kerberos.schema.  If it is not there, please copy it there from your kerberos trunk: &amp;lt;code&amp;gt;cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Checkpoint: Make sure there is a list of different schemas in /etc/ldap/schema.  Such as core.schema&lt;br /&gt;
# Make this [[schema_convert.conf]].  Note! This is different from the schema_convert.conf in the Ubuntu Guide.&lt;br /&gt;
# Make the directory to hold output: &amp;lt;code&amp;gt;mkdir /tmp/ldif_output &amp;lt;/code&amp;gt;&lt;br /&gt;
# Convert schema --&amp;gt; LDIF with slaptest: &amp;lt;code&amp;gt;slaptest -f [path to]/schema_convert.conf -F /tmp/ldif_output&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: &amp;quot;config file testing succeeded&amp;quot;&lt;br /&gt;
#: Checkpoint: Make sure you have &amp;quot;cn=config&amp;quot; in you /tmp/ldif_output&lt;br /&gt;
# Need to modify kerberos.ldif. &lt;br /&gt;
#* Find which number kerberos.ldif is listed as: &amp;lt;code&amp;gt;sudo ls /tmp/ldif_output/cn\=config/cn\=schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Edit it: &amp;lt;code&amp;gt; sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn={6}kerberos.ldif&amp;lt;/code&amp;gt;&lt;br /&gt;
#** change ''dn: cn={6}kerberos'' into ''dn: cn=kerberos,cn=schema,cn=config''&lt;br /&gt;
#** change ''cn: {6}kerberos'' into ''cn: kerberos''&lt;br /&gt;
#** Delete the bottom lines: from ''structuralObjectClasses: olcSchemaConfig'' to ''modifyTimestamp: 20090811205313Z''&lt;br /&gt;
# load new schema, replace &amp;quot;-w a&amp;quot; with your password: &amp;lt;code&amp;gt;sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\={6}kerberos.ldif -H ldapi:///&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: ''adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
== 6. Starting ==&lt;br /&gt;
* Create your database with kdb5_ldap_util instead of kdb5_util:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create  -s&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Initializing database for realm 'EXAMPLE.ORG'&lt;br /&gt;
You will be prompted for the database Master Password.&lt;br /&gt;
It is important that you NOT FORGET this password.&lt;br /&gt;
Enter KDC database master key: &lt;br /&gt;
Re-enter KDC database master key to verify: &lt;br /&gt;
&lt;br /&gt;
Kerberos container is missing. Creating now...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Stash the password:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&amp;lt;/code&amp;gt;&lt;br /&gt;
*: If it works, you can do:&lt;br /&gt;
*:* &amp;lt;code&amp;gt;kadmin.local&amp;lt;/code&amp;gt;, try &amp;lt;code&amp;gt;listprincs&amp;lt;/code&amp;gt;, quit by typing &amp;lt;code&amp;gt;quit&amp;lt;/code&amp;gt;&lt;br /&gt;
*:* &amp;lt;code&amp;gt;krb5kdc -n&amp;lt;/code&amp;gt; if it runs, the cursor blinks on a new line&lt;br /&gt;
&lt;br /&gt;
* Command to destroy kdb5_ldap_util: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// destroy&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Scratch Pad ==&lt;br /&gt;
&lt;br /&gt;
===Assume People have done====&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
&lt;br /&gt;
   16  make distclean&lt;br /&gt;
&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
&lt;br /&gt;
   19  make&lt;br /&gt;
&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
&lt;br /&gt;
    8  mkdir /tmp/krb5kdc (or should it be /tmp/sandbox/krb5kdc)?&lt;br /&gt;
&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
&lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
&lt;br /&gt;
   29  krb5kdc -n&lt;/div&gt;</summary>
		<author><name>Haoqili</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2088</id>
		<title>LDAP on Kerberos</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2088"/>
				<updated>2009-08-18T05:35:20Z</updated>
		
		<summary type="html">&lt;p&gt;Haoqili: /* 4. Build kerb. config */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 0. Sample code to follow ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
    8  mkdir krb5kdc&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
   16  make distclean&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
   19  make&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
   29  krb5kdc -n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 1. Information about the system ==&lt;br /&gt;
- packages&lt;br /&gt;
* Version of ubuntu&lt;br /&gt;
       lsb_release -a&lt;br /&gt;
       No LSB modules are available.&lt;br /&gt;
       Distributor ID:        Ubuntu&lt;br /&gt;
       Description:        Ubuntu 9.04&lt;br /&gt;
       Release:        9.04&lt;br /&gt;
       Codename:        jaunty&lt;br /&gt;
* Version of slapd: 2.4.15 (Mar 19 2009)&lt;br /&gt;
       slapd -V&lt;br /&gt;
       @(#) $OpenLDAP: slapd 2.4.15 (Mar 19 2009 10:08:25) $&lt;br /&gt;
       buildd@palmer:/build/buildd/openldap-2.4.15/debian/build/servers/slapd&lt;br /&gt;
&lt;br /&gt;
* Version of ldap-utils: 2.4.15&lt;br /&gt;
       dpkg -l ldap-utils&lt;br /&gt;
&lt;br /&gt;
== 2. Extract krb conf files ==&lt;br /&gt;
* It is crucial to have correct, consistent domain names.  You must have the dbmodules in krb5.conf.&lt;br /&gt;
* Save [[krb5.conf]]&lt;br /&gt;
* Save [[kdc.conf]]&lt;br /&gt;
* Save [[kadm5.acl]]&lt;br /&gt;
&lt;br /&gt;
== 3. Env and Setup==&lt;br /&gt;
You need to export these lines into your env. Based on where you saved these files.&lt;br /&gt;
&lt;br /&gt;
KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
&lt;br /&gt;
KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
&lt;br /&gt;
\# LD_LIBRARY_PATH=[path to the kerberos src]/src/lib&lt;br /&gt;
&lt;br /&gt;
I saved mine here:&lt;br /&gt;
&lt;br /&gt;
KRB5_CONFIG=/home/haoqili/trunk/src/tests/kdc_realm2/sandbox/krb5.conf&lt;br /&gt;
&lt;br /&gt;
KRB5_KDC_PROFILE=/home/haoqili/trunk/src/tests/kdc_realm2/sandbox/kdc.conf&lt;br /&gt;
&lt;br /&gt;
\# LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib&lt;br /&gt;
&lt;br /&gt;
-------&lt;br /&gt;
You should also make a krb5kdc folder (like in /tmp/krb5kdc)&lt;br /&gt;
&lt;br /&gt;
Whatever you do, be consistent&lt;br /&gt;
&lt;br /&gt;
== 4. Build kerb. config ==&lt;br /&gt;
&lt;br /&gt;
# Install slapd package: &amp;lt;code&amp;gt; sudo apt-get install slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Asks for password.&lt;br /&gt;
# Install ldap-utils package (for ldapsearch): &amp;lt;code&amp;gt;sudo apt-get install ldap-utils&amp;lt;/code&amp;gt;&lt;br /&gt;
# Set the &amp;quot;domain&amp;quot; of your LDAP server with &amp;lt;code&amp;gt;sudo dpkg-reconfigure slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
## Omit OpenLDAP server configuration: No&lt;br /&gt;
##: slapd   slapd/no_configuration  boolean false&lt;br /&gt;
## DNS domain name: example.org&lt;br /&gt;
##: slapd   slapd/domain    string  example.org&lt;br /&gt;
## Organization name: example.org [note: i used the same name for simplicity]&lt;br /&gt;
##: slapd   shared/organization     string  example.org&lt;br /&gt;
## Databases backend to use: HDB, instead of BDB&lt;br /&gt;
##: slapd   slapd/backend   select  HDB&lt;br /&gt;
## Do you want the database to be removed when slapd is purge: Yes&lt;br /&gt;
##: slapd   slapd/purge_database    boolean true&lt;br /&gt;
## Move old database: Yes&lt;br /&gt;
##: slapd   slapd/move_old_database boolean true&lt;br /&gt;
## Admin password: a&lt;br /&gt;
##: slapd   slapd/password1 password&lt;br /&gt;
##: [I'm not sure about the debconf-get-selection line here.  There are 5 different password lines!]&lt;br /&gt;
## Confirm password: a&lt;br /&gt;
##: slapd   slapd/password2 password&lt;br /&gt;
## Allow LDAPv2 protocol: No&lt;br /&gt;
##: slapd   slapd/allow_ldap_v2     boolean false&lt;br /&gt;
#: Checkpoint:  If you are successful, you should see as output:&lt;br /&gt;
#:: ''Stopping OpenLDAP: slapd.''&lt;br /&gt;
#::  ''Moving old database directory to /var/backups:''&lt;br /&gt;
#::  ''- directory unknown... done.''&lt;br /&gt;
#::  ''Creating initial slapd configuration... done.''&lt;br /&gt;
#::  ''Creating initial LDAP directory... done.''&lt;br /&gt;
#:: ''* Reloading AppArmor profiles ''&lt;br /&gt;
#::  ''...                                               [ OK ]'' &lt;br /&gt;
#::  ''Starting OpenLDAP: slapd.''&lt;br /&gt;
# If you haven't done so already, please copy kerberos.schema from your kerberos trunk into /etc/ldap/schema: &amp;lt;code&amp;gt;sudo cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
# To restrict access to the local machine, &amp;lt;code&amp;gt;sudo vim /etc/default/slapd&amp;lt;/code&amp;gt;, search for SLAPD_SERVICES and set it to: &amp;lt;pre&amp;gt;SLAPD_SERVICES=&amp;quot;ldapi:///&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
# To build Kerberos with LDAP back end support, install: &amp;lt;code&amp;gt;sudo apt-get install libldap2-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
# Reconfigure your kerberos&lt;br /&gt;
#* Navigate to kerberos src&lt;br /&gt;
#* &amp;lt;code&amp;gt;make distclean&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;util/reconf&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;./configure --with-ldap&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo make install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 5. Kerb Schema Operations ==&lt;br /&gt;
Loosely followed [http://ajuda.ubuntu.cat/9.04/serverguide/kerberos-ldap.html Ubuntu Guide] and [http://web.mit.edu/kerberos/krb5-1.7/krb5-1.7/doc/krb5-admin.html#Configuring-Kerberos-with-OpenLDAP-back_002dend Kerberos V5 System Admin Guide]&lt;br /&gt;
&lt;br /&gt;
# You have not done so already, locate the kerberos.schema.  [[kerberos.schema]] which should be in /etc/ldap/schema/kerberos.schema.  If it is not there, please copy it there from your kerberos trunk: &amp;lt;code&amp;gt;cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Checkpoint: Make sure there is a list of different schemas in /etc/ldap/schema.  Such as core.schema&lt;br /&gt;
# Make this [[schema_convert.conf]].  Note! This is different from the schema_convert.conf in the Ubuntu Guide.&lt;br /&gt;
# Make the directory to hold output: &amp;lt;code&amp;gt;mkdir /tmp/ldif_output &amp;lt;/code&amp;gt;&lt;br /&gt;
# Convert schema --&amp;gt; LDIF with slaptest: &amp;lt;code&amp;gt;slaptest -f [path to]/schema_convert.conf -F /tmp/ldif_output&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: &amp;quot;config file testing succeeded&amp;quot;&lt;br /&gt;
#: Checkpoint: Make sure you have &amp;quot;cn=config&amp;quot; in you /tmp/ldif_output&lt;br /&gt;
# Need to modify kerberos.ldif. &lt;br /&gt;
#* Find which number kerberos.ldif is listed as: &amp;lt;code&amp;gt;sudo ls /tmp/ldif_output/cn\=config/cn\=schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Edit it: &amp;lt;code&amp;gt; sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn={6}kerberos.ldif&amp;lt;/code&amp;gt;&lt;br /&gt;
#** change ''dn: cn={6}kerberos'' into ''dn: cn=kerberos,cn=schema,cn=config''&lt;br /&gt;
#** change ''cn: {6}kerberos'' into ''cn: kerberos''&lt;br /&gt;
#** Delete the bottom lines: from ''structuralObjectClasses: olcSchemaConfig'' to ''modifyTimestamp: 20090811205313Z''&lt;br /&gt;
# load new schema, replace &amp;quot;-w a&amp;quot; with your password: &amp;lt;code&amp;gt;sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\={6}kerberos.ldif -H ldapi:///&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: ''adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
== 6. Starting ==&lt;br /&gt;
* Create your database with kdb5_ldap_util instead of kdb5_util:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create  -s&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Initializing database for realm 'EXAMPLE.ORG'&lt;br /&gt;
You will be prompted for the database Master Password.&lt;br /&gt;
It is important that you NOT FORGET this password.&lt;br /&gt;
Enter KDC database master key: &lt;br /&gt;
Re-enter KDC database master key to verify: &lt;br /&gt;
&lt;br /&gt;
Kerberos container is missing. Creating now...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Stash the password:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&amp;lt;/code&amp;gt;&lt;br /&gt;
*: If it works, you can do:&lt;br /&gt;
*:* &amp;lt;code&amp;gt;kadmin.local&amp;lt;/code&amp;gt;, try &amp;lt;code&amp;gt;listprincs&amp;lt;/code&amp;gt;, quit by typing &amp;lt;code&amp;gt;quit&amp;lt;/code&amp;gt;&lt;br /&gt;
*:* &amp;lt;code&amp;gt;krb5kdc -n&amp;lt;/code&amp;gt; if it runs, the cursor blinks on a new line&lt;br /&gt;
&lt;br /&gt;
* Command to destroy kdb5_ldap_util: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// destroy&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Scratch Pad ==&lt;br /&gt;
&lt;br /&gt;
===Assume People have done====&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
&lt;br /&gt;
   16  make distclean&lt;br /&gt;
&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
&lt;br /&gt;
   19  make&lt;br /&gt;
&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
&lt;br /&gt;
    8  mkdir /tmp/krb5kdc (or should it be /tmp/sandbox/krb5kdc)?&lt;br /&gt;
&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
&lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
&lt;br /&gt;
   29  krb5kdc -n&lt;/div&gt;</summary>
		<author><name>Haoqili</name></author>	</entry>

	<entry>
		<id>https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2087</id>
		<title>LDAP on Kerberos</title>
		<link rel="alternate" type="text/html" href="https://k5wiki.kerberos.org/wiki?title=LDAP_on_Kerberos&amp;diff=2087"/>
				<updated>2009-08-18T03:08:59Z</updated>
		
		<summary type="html">&lt;p&gt;Haoqili: /* 4. Build kerb. config */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 0. Sample code to follow ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
    8  mkdir krb5kdc&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
   16  make distclean&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
   19  make&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
   29  krb5kdc -n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 1. Information about the system ==&lt;br /&gt;
- packages&lt;br /&gt;
* Version of ubuntu&lt;br /&gt;
       lsb_release -a&lt;br /&gt;
       No LSB modules are available.&lt;br /&gt;
       Distributor ID:        Ubuntu&lt;br /&gt;
       Description:        Ubuntu 9.04&lt;br /&gt;
       Release:        9.04&lt;br /&gt;
       Codename:        jaunty&lt;br /&gt;
* Version of slapd: 2.4.15 (Mar 19 2009)&lt;br /&gt;
       slapd -V&lt;br /&gt;
       @(#) $OpenLDAP: slapd 2.4.15 (Mar 19 2009 10:08:25) $&lt;br /&gt;
       buildd@palmer:/build/buildd/openldap-2.4.15/debian/build/servers/slapd&lt;br /&gt;
&lt;br /&gt;
* Version of ldap-utils: 2.4.15&lt;br /&gt;
       dpkg -l ldap-utils&lt;br /&gt;
&lt;br /&gt;
== 2. Extract krb conf files ==&lt;br /&gt;
* It is crucial to have correct, consistent domain names.  You must have the dbmodules in krb5.conf.&lt;br /&gt;
* Save [[krb5.conf]]&lt;br /&gt;
* Save [[kdc.conf]]&lt;br /&gt;
* Save [[kadm5.acl]]&lt;br /&gt;
&lt;br /&gt;
== 3. Env and Setup==&lt;br /&gt;
You need to export these lines into your env. Based on where you saved these files.&lt;br /&gt;
&lt;br /&gt;
KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
&lt;br /&gt;
KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
&lt;br /&gt;
\# LD_LIBRARY_PATH=[path to the kerberos src]/src/lib&lt;br /&gt;
&lt;br /&gt;
I saved mine here:&lt;br /&gt;
&lt;br /&gt;
KRB5_CONFIG=/home/haoqili/trunk/src/tests/kdc_realm2/sandbox/krb5.conf&lt;br /&gt;
&lt;br /&gt;
KRB5_KDC_PROFILE=/home/haoqili/trunk/src/tests/kdc_realm2/sandbox/kdc.conf&lt;br /&gt;
&lt;br /&gt;
\# LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib&lt;br /&gt;
&lt;br /&gt;
-------&lt;br /&gt;
You should also make a krb5kdc folder (like in /tmp/krb5kdc)&lt;br /&gt;
&lt;br /&gt;
Whatever you do, be consistent&lt;br /&gt;
&lt;br /&gt;
== 4. Build kerb. config ==&lt;br /&gt;
&lt;br /&gt;
# Install slapd package: &amp;lt;code&amp;gt; sudo apt-get install slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Asks for password.&lt;br /&gt;
# Install ldap-utils package (for ldapsearch): &amp;lt;code&amp;gt;sudo apt-get install ldap-utils&amp;lt;/code&amp;gt;&lt;br /&gt;
# Set the &amp;quot;domain&amp;quot; of your LDAP server with &amp;lt;code&amp;gt;sudo dpkg-reconfigure slapd&amp;lt;/code&amp;gt;&lt;br /&gt;
## Omit OpenLDAP server configuration: No&lt;br /&gt;
##: slapd \t  slapd/no_configuration  boolean false&lt;br /&gt;
## DNS domain name: example.org&lt;br /&gt;
##: slapd   slapd/domain    string  example.org&lt;br /&gt;
## Organization name: example.org [note: i used the same name for simplicity]&lt;br /&gt;
## Databases backend to use: HDB&lt;br /&gt;
## Do you want the database to be removed when slapd is purge: Yes&lt;br /&gt;
## Move old database: Yes&lt;br /&gt;
## Admin password: a&lt;br /&gt;
## Confirm password: a&lt;br /&gt;
## Allow LDAPv2 protocol: No&lt;br /&gt;
#: Checkpoint:  If you are successful, you should see as output:&lt;br /&gt;
#:: ''Stopping OpenLDAP: slapd.''&lt;br /&gt;
#::  ''Moving old database directory to /var/backups:''&lt;br /&gt;
#::  ''- directory unknown... done.''&lt;br /&gt;
#::  ''Creating initial slapd configuration... done.''&lt;br /&gt;
#::  ''Creating initial LDAP directory... done.''&lt;br /&gt;
#:: ''* Reloading AppArmor profiles ''&lt;br /&gt;
#::  ''...                                               [ OK ]'' &lt;br /&gt;
#::  ''Starting OpenLDAP: slapd.''&lt;br /&gt;
# If you haven't done so already, please copy kerberos.schema from your kerberos trunk into /etc/ldap/schema: &amp;lt;code&amp;gt;sudo cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
# To restrict access to the local machine, &amp;lt;code&amp;gt;sudo vim /etc/default/slapd&amp;lt;/code&amp;gt;, search for SLAPD_SERVICES and set it to: &amp;lt;pre&amp;gt;SLAPD_SERVICES=&amp;quot;ldapi:///&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
# To build Kerberos with LDAP back end support, install: &amp;lt;code&amp;gt;sudo apt-get install libldap2-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
# Reconfigure your kerberos&lt;br /&gt;
#* Navigate to kerberos src&lt;br /&gt;
#* &amp;lt;code&amp;gt;make distclean&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;util/reconf&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;./configure --with-ldap&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo make install&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 5. Kerb Schema Operations ==&lt;br /&gt;
Loosely followed [http://ajuda.ubuntu.cat/9.04/serverguide/kerberos-ldap.html Ubuntu Guide] and [http://web.mit.edu/kerberos/krb5-1.7/krb5-1.7/doc/krb5-admin.html#Configuring-Kerberos-with-OpenLDAP-back_002dend Kerberos V5 System Admin Guide]&lt;br /&gt;
&lt;br /&gt;
# You have not done so already, locate the kerberos.schema.  [[kerberos.schema]] which should be in /etc/ldap/schema/kerberos.schema.  If it is not there, please copy it there from your kerberos trunk: &amp;lt;code&amp;gt;cp src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Checkpoint: Make sure there is a list of different schemas in /etc/ldap/schema.  Such as core.schema&lt;br /&gt;
# Make this [[schema_convert.conf]].  Note! This is different from the schema_convert.conf in the Ubuntu Guide.&lt;br /&gt;
# Make the directory to hold output: &amp;lt;code&amp;gt;mkdir /tmp/ldif_output &amp;lt;/code&amp;gt;&lt;br /&gt;
# Convert schema --&amp;gt; LDIF with slaptest: &amp;lt;code&amp;gt;slaptest -f [path to]/schema_convert.conf -F /tmp/ldif_output&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: &amp;quot;config file testing succeeded&amp;quot;&lt;br /&gt;
#: Checkpoint: Make sure you have &amp;quot;cn=config&amp;quot; in you /tmp/ldif_output&lt;br /&gt;
# Need to modify kerberos.ldif. &lt;br /&gt;
#* Find which number kerberos.ldif is listed as: &amp;lt;code&amp;gt;sudo ls /tmp/ldif_output/cn\=config/cn\=schema&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Edit it: &amp;lt;code&amp;gt; sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn={6}kerberos.ldif&amp;lt;/code&amp;gt;&lt;br /&gt;
#** change ''dn: cn={6}kerberos'' into ''dn: cn=kerberos,cn=schema,cn=config''&lt;br /&gt;
#** change ''cn: {6}kerberos'' into ''cn: kerberos''&lt;br /&gt;
#** Delete the bottom lines: from ''structuralObjectClasses: olcSchemaConfig'' to ''modifyTimestamp: 20090811205313Z''&lt;br /&gt;
# load new schema, replace &amp;quot;-w a&amp;quot; with your password: &amp;lt;code&amp;gt;sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\={6}kerberos.ldif -H ldapi:///&amp;lt;/code&amp;gt;&lt;br /&gt;
#: Output: ''adding new entry &amp;quot;cn=kerberos,cn=schema,cn=config&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
== 6. Starting ==&lt;br /&gt;
* Create your database with kdb5_ldap_util instead of kdb5_util:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create  -s&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Initializing database for realm 'EXAMPLE.ORG'&lt;br /&gt;
You will be prompted for the database Master Password.&lt;br /&gt;
It is important that you NOT FORGET this password.&lt;br /&gt;
Enter KDC database master key: &lt;br /&gt;
Re-enter KDC database master key to verify: &lt;br /&gt;
&lt;br /&gt;
Kerberos container is missing. Creating now...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Stash the password:&lt;br /&gt;
*: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&amp;lt;/code&amp;gt;&lt;br /&gt;
*: If it works, you can do:&lt;br /&gt;
*:* &amp;lt;code&amp;gt;kadmin.local&amp;lt;/code&amp;gt;, try &amp;lt;code&amp;gt;listprincs&amp;lt;/code&amp;gt;, quit by typing &amp;lt;code&amp;gt;quit&amp;lt;/code&amp;gt;&lt;br /&gt;
*:* &amp;lt;code&amp;gt;krb5kdc -n&amp;lt;/code&amp;gt; if it runs, the cursor blinks on a new line&lt;br /&gt;
&lt;br /&gt;
* Command to destroy kdb5_ldap_util: &amp;lt;code&amp;gt;kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// destroy&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Scratch Pad ==&lt;br /&gt;
&lt;br /&gt;
===Assume People have done====&lt;br /&gt;
    1  cd /tmp&lt;br /&gt;
&lt;br /&gt;
    9  sudo apt-get install slapd&lt;br /&gt;
&lt;br /&gt;
   10  sudo apt-get install ldap-utils&lt;br /&gt;
&lt;br /&gt;
   14  sudo apt-get install libldap2-dev&lt;br /&gt;
&lt;br /&gt;
   15  cd /home/haoqili/trunk/src/&lt;br /&gt;
&lt;br /&gt;
   16  make distclean&lt;br /&gt;
&lt;br /&gt;
   17  util/reconf&lt;br /&gt;
&lt;br /&gt;
   18  ./configure --with-ldap&lt;br /&gt;
&lt;br /&gt;
   19  make&lt;br /&gt;
&lt;br /&gt;
   20  sudo make install&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
    2  vim krb5.conf&lt;br /&gt;
&lt;br /&gt;
    3  vim kdc.conf&lt;br /&gt;
&lt;br /&gt;
    4  vim kadm5.acl&lt;br /&gt;
&lt;br /&gt;
    5  export KRB5_CONFIG=/tmp/krb5.conf&lt;br /&gt;
&lt;br /&gt;
    6  export KRB5_KDC_PROFILE=/tmp/kdc.conf&lt;br /&gt;
&lt;br /&gt;
    7  export LD_LIBRARY_PATH=/home/haoqili/trunk/src/lib/&lt;br /&gt;
&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
---------------------------------------&lt;br /&gt;
&lt;br /&gt;
    8  mkdir /tmp/krb5kdc (or should it be /tmp/sandbox/krb5kdc)?&lt;br /&gt;
&lt;br /&gt;
   11  sudo dpkg-reconfigure slapd&lt;br /&gt;
&lt;br /&gt;
   12  sudo cp /home/haoqili/trunk/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema /etc/ldap/schema/&lt;br /&gt;
&lt;br /&gt;
   13  sudo vim /etc/default/slapd&lt;br /&gt;
&lt;br /&gt;
   21  vim /tmp/schema_convert.conf&lt;br /&gt;
&lt;br /&gt;
   22  mkdir /tmp/ldif_output&lt;br /&gt;
&lt;br /&gt;
   23  slaptest -f /tmp/schema_convert.conf -F /tmp/ldif_output/&lt;br /&gt;
&lt;br /&gt;
   24  sudo vim /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif &lt;br /&gt;
&lt;br /&gt;
   25  sudo ldapadd -x -D cn=admin,cn=config -w a -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{6\}kerberos.ldif -H ldapi:///&lt;br /&gt;
&lt;br /&gt;
   26  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// create -s&lt;br /&gt;
&lt;br /&gt;
   27  kdb5_ldap_util -D cn=admin,dc=example,dc=org -w a -H ldapi:/// stashsrvpw cn=admin,dc=example,dc=org&lt;br /&gt;
&lt;br /&gt;
   28  kadmin.local&lt;br /&gt;
&lt;br /&gt;
   29  krb5kdc -n&lt;/div&gt;</summary>
		<author><name>Haoqili</name></author>	</entry>

	</feed>