Migrating a Kerberos Realm

Ken Raeburn raeburn at MIT.EDU
Wed Nov 1 20:23:59 EST 2006


On Nov 1, 2006, at 17:38, Edward Murrell wrote:
> I'd like to know if anyone has any practical experience in migrating a
> Kerberos realm.
>
> Back in the day, when I was learning about Kerberos, I set up the  
> local
> realm with the name 'OFFICE'. Since we had a local domain of the same
> name, this was fine, and I propergated information via DNS and
> everything was happy.
>
> Since then, we've expanded somewhat, and we now have a bunch of off- 
> site
> servers. Currently, I've got a bunch of servers in the US, and some in
> NZ, as well as our local office servers, and workstations. It turns  
> out
> that it is possible to make this work, but it requires bigger config
> file than, and updating the files every time something changes.
>
> [libdefaults]
>         default_realm = OFFICE
>
>
> The plan is to move the whole shebang to a COMANY.COM realm. However,
> I'd like to do this while causing as little downtime and disruption as
> possible. I had originally planned to run two realms in parallel and
> tell them to trust each other. Unfortunately,  MIT Kerberos doesn't
> appear to allow you to run two KDC's on the same server.

You can, but you have to write the config files to specify different  
port numbers for them.  (The code doesn't currently support using  
only some of a machine's IP addresses, if you wanted to put one on  
one address and one on another.)  The code theoretically supports  
serving multiple realms out of one KDC process, too, but we don't  
test that functionality often.  I'd be interested in any observations  
if you try it.

You may also be able to convert entries from one realm into entries  
in the other realm.  It'll take a bit of programming work, because  
our tools don't directly support it, but basically, you'd start with  
copying database records over.  That would include the raw keys  
(encrypted in the database master key, which would have to be kept  
the same while this is done), but not the passwords.  In programs  
like kinit, the keys are constructed from the password and a "salt"  
string, which by default is in turn constructed from the principal  
name, including the realm name.  But the database can store a special  
salt string for a principal's key, so you'd modify some (most?)  
entries for users to have the salt string computed based on the old  
realm name.

You'd still have to distribute new keytabs, update config files,  
etc., for the transition, but it may keep you from needing to reset  
everyone's passwords, rekey machines, etc.

Ken



More information about the Kerberos mailing list