spelling and text fixes, from Dave Love
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@14411 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
147
doc/win2k.texi
147
doc/win2k.texi
@@ -10,12 +10,13 @@ peculiarities, and bugs. This chapter is a short summary of the things
|
||||
that we have found out while trying to test Heimdal against Windows
|
||||
2000. Another big problem with the Kerberos implementation in Windows
|
||||
2000 is that the available documentation is more focused on getting
|
||||
things to work rather than how they work and not that useful in figuring
|
||||
things to work rather than how they work, and not that useful in figuring
|
||||
out how things really work.
|
||||
|
||||
This information should apply to Heimdal @value{VERSION} and Windows
|
||||
2000 Professional. It's of course subject all the time and mostly consists of
|
||||
our not so inspired guesses. Hopefully it's still somewhat useful.
|
||||
2000 Professional. It's of course subject to change all the time and
|
||||
mostly consists of our not so inspired guesses. Hopefully it's still
|
||||
somewhat useful.
|
||||
|
||||
@menu
|
||||
* Configuring Windows 2000 to use a Heimdal KDC::
|
||||
@@ -31,15 +32,15 @@ our not so inspired guesses. Hopefully it's still somewhat useful.
|
||||
@comment node-name, next, precious, up
|
||||
@section Configuring Windows 2000 to use a Heimdal KDC
|
||||
|
||||
You need the command line program called @code{ksetup.exe} which is available
|
||||
in the file @code{SUPPORT/TOOLS/SUPPORT.CAB} on the Windows 2000 Professional
|
||||
You need the command line program called @command{ksetup.exe} which is available
|
||||
in the file @file{SUPPORT/TOOLS/SUPPORT.CAB} on the Windows 2000 Professional
|
||||
CD-ROM. This program is used to configure the Kerberos settings on a
|
||||
Workstation.
|
||||
|
||||
@code{Ksetup} store the domain information under the registry key:
|
||||
@command{Ksetup} store the domain information under the registry key:
|
||||
@code{HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\LSA\Kerberos\Domains}.
|
||||
|
||||
Use the kadmin program in Heimdal to create a host principal in the
|
||||
Use the @command{kadmin} program in Heimdal to create a host principal in the
|
||||
Kerberos realm.
|
||||
|
||||
@example
|
||||
@@ -47,7 +48,7 @@ unix% kadmin
|
||||
kadmin> ank --password=password host/datan.example.com
|
||||
@end example
|
||||
|
||||
The name @code{datan.example.com} should be replaced with DNS name of
|
||||
The name @samp{datan.example.com} should be replaced with DNS name of
|
||||
the workstation.
|
||||
|
||||
You must configure the workstation as a member of a workgroup, as opposed
|
||||
@@ -58,26 +59,26 @@ C:> ksetup /setdomain EXAMPLE.COM
|
||||
C:> ksetup /addkdc EXAMPLE.COM kdc.example.com
|
||||
@end example
|
||||
|
||||
Set the machine password, i.e. create the local keytab:
|
||||
Set the machine password, i.e.@: create the local keytab:
|
||||
@example
|
||||
C:> ksetup /setmachpassword password
|
||||
@end example
|
||||
|
||||
The password used in @code{ksetup /setmachpassword} must be the same
|
||||
as the password used in the @code{kadmin ank} command.
|
||||
The password used in @kdb{ksetup /setmachpassword} must be the same
|
||||
as the password used in the @kdb{kadmin ank} command.
|
||||
|
||||
The workstation must now be rebooted.
|
||||
|
||||
A mapping between local NT users and Kerberos principals must be specified,
|
||||
you have two choices:
|
||||
A mapping between local NT users and Kerberos principals must be specified.
|
||||
You have two choices. First:
|
||||
|
||||
@example
|
||||
C:> ksetup /mapuser user@@MY.REALM nt_user
|
||||
@end example
|
||||
|
||||
This will map a user to a specific principal, this allows you to have
|
||||
This will map a user to a specific principal; this allows you to have
|
||||
other usernames in the realm than in your NT user database. (Don't ask
|
||||
me why on earth you would want that...)
|
||||
me why on earth you would want that@enddots{})
|
||||
|
||||
You can also say:
|
||||
@example
|
||||
@@ -98,18 +99,18 @@ Server) for the domain.
|
||||
|
||||
By default the trust will be non-transitive. This means that only users
|
||||
directly from the trusted domain may authenticate. This can be changed
|
||||
to transitive by using the @code{netdom.exe} tool. @code{netdom.exe}
|
||||
to transitive by using the @command{netdom.exe} tool. @command{netdom.exe}
|
||||
can also be used to add the trust between two realms.
|
||||
|
||||
You need to tell Windows 2000 on what hosts to find the KDCs for the
|
||||
non-Windows realm with @code{ksetup}, see @xref{Configuring Windows 2000
|
||||
non-Windows realm with @command{ksetup}, see @xref{Configuring Windows 2000
|
||||
to use a Heimdal KDC}.
|
||||
|
||||
This need to be done on all computers that want enable cross-realm
|
||||
login with @code{Mapped Names}.
|
||||
This needs to be done on all computers that want enable cross-realm
|
||||
login with @code{Mapped Names}. @c XXX probably shouldn't be @code
|
||||
|
||||
Then you need to add the inter-realm keys on the Windows kdc. Start the
|
||||
Domain Tree Management tool. (Found in Programs, Administrative tools,
|
||||
Then you need to add the inter-realm keys on the Windows KDC@. Start the
|
||||
Domain Tree Management tool (found in Programs, Administrative tools,
|
||||
Active Directory Domains and Trusts).
|
||||
|
||||
Right click on Properties of your domain, select the Trust tab. Press
|
||||
@@ -117,10 +118,10 @@ Add on the appropriate trust windows and enter domain name and
|
||||
password. When prompted if this is a non-Windows Kerberos realm, press
|
||||
OK.
|
||||
|
||||
Do not forget to add trusts in both directions.
|
||||
Do not forget to add trusts in both directions (if that's what you want).
|
||||
|
||||
If you want to use @code{netdom.exe} instead of the Domain Tree
|
||||
Management tool, you do it like this,
|
||||
If you want to use @command{netdom.exe} instead of the Domain Tree
|
||||
Management tool, you do it like this:
|
||||
|
||||
@example
|
||||
netdom trust NT.REALM.EXAMPLE.COM /Domain:EXAMPLE.COM /add /realm /passwordt:TrustPassword
|
||||
@@ -131,12 +132,12 @@ some tweaks that you need to do to @file{krb5.conf} beforehand.
|
||||
|
||||
@example
|
||||
[libdefaults]
|
||||
default_etypes = des-cbc-crc
|
||||
default_etypes_des = des-cbc-crc
|
||||
default_etypes = des-cbc-crc
|
||||
default_etypes_des = des-cbc-crc
|
||||
@end example
|
||||
|
||||
since otherwise checksum types that are not understood by Windows 2000
|
||||
will be generated (@xref{Quirks of Windows 2000 KDC}.).
|
||||
will be generated (@pxref{Quirks of Windows 2000 KDC}).
|
||||
|
||||
Another issue is salting. Since Windows 2000 does not seem to
|
||||
understand Kerberos 4 salted hashes you might need to turn off anything
|
||||
@@ -144,10 +145,22 @@ similar to the following if you have it, at least while adding the
|
||||
principals that are going to share keys with Windows 2000.
|
||||
|
||||
@example
|
||||
[kadmin]default_keys = v5 v4
|
||||
[kadmin]
|
||||
default_keys = v5 v4
|
||||
@end example
|
||||
|
||||
You must also set:
|
||||
So remove v4 from default keys.
|
||||
|
||||
What you probably want to use is this:
|
||||
|
||||
@example
|
||||
[kadmin]
|
||||
default_keys = des-cbc-crc:pw-salt arcfour-hmac-md5:pw-salt
|
||||
@end example
|
||||
|
||||
@c XXX check this
|
||||
Note that before Windows 2003, arcfour-hmac-md5 wasn't supported
|
||||
beteen Windows realms and Non Windows realms.
|
||||
|
||||
Once that is also done, you can add the required inter-realm keys:
|
||||
|
||||
@@ -158,9 +171,9 @@ kadmin add krbtgt/REALM.EXAMPLE.COM@@NT.EXAMPLE.COM
|
||||
|
||||
Use the same passwords for both keys.
|
||||
|
||||
Do not forget to reboot before trying the new realm-trust (after running
|
||||
@code{ksetup}). It looks like it might work, but packets are never sent to the
|
||||
non-Windows KDC.
|
||||
Do not forget to reboot before trying the new realm-trust (after
|
||||
running @command{ksetup}). It looks like it might work, but packets are
|
||||
never sent to the non-Windows KDC.
|
||||
|
||||
@node Create account mappings, Encryption types, Inter-Realm keys (trust) between Windows 2000 and a Heimdal KDC, Windows 2000 compatability
|
||||
@comment node-name, next, precious, up
|
||||
@@ -174,21 +187,23 @@ are going to do a name mapping for and choose Name mapping.
|
||||
Click on the Kerberos Names tab and add a new principal from the
|
||||
non-Windows domain.
|
||||
|
||||
@c XXX check entry name then I have network again
|
||||
This adds @samp{authorizationNames} entry to the users LDAP entry to
|
||||
the Active Directory LDAP catalog. When you create users by script you
|
||||
can add this entry instead.
|
||||
|
||||
@node Encryption types, Authorization data, Create account mappings, Windows 2000 compatability
|
||||
@comment node-name, next, previous, up
|
||||
@section Encryption types
|
||||
|
||||
Windows 2000 supports both the standard DES encryptions (des-cbc-crc and
|
||||
des-cbc-md5) and its own proprietary encryption that is based on MD4 and
|
||||
rc4 that is documented in and is supposed to be described in
|
||||
Windows 2000 supports both the standard DES encryptions (@samp{des-cbc-crc} and
|
||||
@samp{des-cbc-md5}) and its own proprietary encryption that is based on MD4 and
|
||||
RC4 that is documented in and is supposed to be described in
|
||||
@file{draft-brezak-win2k-krb-rc4-hmac-03.txt}. New users will get both
|
||||
MD4 and DES keys. Users that are converted from a NT4 database, will
|
||||
only have MD4 passwords and will need a password change to get a DES
|
||||
key.
|
||||
|
||||
Heimdal implements both of these encryption types, but since DES is the
|
||||
standard and the hmac-code is somewhat newer, it is likely to work better.
|
||||
|
||||
@node Authorization data, Quirks of Windows 2000 KDC, Encryption types, Windows 2000 compatability
|
||||
@comment node-name, next, previous, up
|
||||
@section Authorization data
|
||||
@@ -210,7 +225,7 @@ database. Make sure it has a DES key.
|
||||
@item Run @kbd{ktutil add} to add the key for that principal to a
|
||||
keytab.
|
||||
@item Run @kbd{appl/test/nt_gss_server -p 2000 -s authsamp
|
||||
--dump-auth=file} where file is an appropriate file.
|
||||
--dump-auth=@var{file}} where @var{file} is an appropriate file.
|
||||
@item It should authenticate and dump for you the authorization data in
|
||||
the file.
|
||||
@item The tool @kbd{lib/asn1/asn1_print} is somewhat useful for
|
||||
@@ -221,18 +236,17 @@ analyzing the data.
|
||||
@comment node-name, next, previous, up
|
||||
@section Quirks of Windows 2000 KDC
|
||||
|
||||
There are some issues with salts and Windows 2000. Using an empty salt,
|
||||
which is the only one that Kerberos 4 supported and is therefore known
|
||||
as a Kerberos 4 compatible salt does not work, as far as we can tell
|
||||
from out experiments and users reports. Therefore, you have to make
|
||||
There are some issues with salts and Windows 2000. Using an empty salt---which is the only one that Kerberos 4 supported, and is therefore known
|
||||
as a Kerberos 4 compatible salt---does not work, as far as we can tell
|
||||
from out experiments and users' reports. Therefore, you have to make
|
||||
sure you keep around keys with all the different types of salts that are
|
||||
required.
|
||||
required. Microsoft have fixed this issue post Windows 2003.
|
||||
|
||||
Microsoft seems also to have forgotten to implement the checksum
|
||||
algorithms @samp{rsa-md4-des} and @samp{rsa-md5-des}. This can make Name
|
||||
mapping (@pxref{Create account mappings}) fail if a @code{des-cbc-md5} key
|
||||
is used. To make the KDC return only @code{des-cbc-crc} you must delete
|
||||
the @code{des-cbc-md5} key from the kdc using the @code{kadmin
|
||||
mapping (@pxref{Create account mappings}) fail if a @samp{des-cbc-md5} key
|
||||
is used. To make the KDC return only @samp{des-cbc-crc} you must delete
|
||||
the @samp{des-cbc-md5} key from the kdc using the @kdb{kadmin
|
||||
del_enctype} command.
|
||||
|
||||
@example
|
||||
@@ -256,41 +270,41 @@ unsupported types are generated.
|
||||
|
||||
See also our paper presented at the 2001 usenix Annual Technical
|
||||
Conference, available in the proceedings or at
|
||||
@url{http://www.usenix.org/publications/library/proceedings/usenix01/freenix01/westerlund.html}.
|
||||
@uref{http://www.usenix.org/publications/library/proceedings/usenix01/freenix01/westerlund.html}.
|
||||
|
||||
There are lots of text about Kerberos on Microsoft's web site, here is a
|
||||
There are lots of texts about Kerberos on Microsoft's web site, here is a
|
||||
short list of the interesting documents that we have managed to find.
|
||||
|
||||
@itemize @bullet
|
||||
|
||||
@item Step-by-Step Guide to Kerberos 5 (krb5 1.0) Interoperability -
|
||||
@url{http://www.microsoft.com/windows2000/library/planning/security/kerbsteps.asp}
|
||||
Kerberos GSS-API (in Windows-ize SSPI), Windows as a client in a
|
||||
@item Step-by-Step Guide to Kerberos 5 (krb5 1.0) Interoperability:
|
||||
@uref{http://www.microsoft.com/windows2000/library/planning/security/kerbsteps.asp}.
|
||||
Kerberos GSS-API (in Windows-eze SSPI), Windows as a client in a
|
||||
non-Windows KDC realm, adding unix clients to a Windows 2000 KDC, and
|
||||
adding cross-realm trust (@xref{Inter-Realm keys (trust) between Windows 2000
|
||||
and a Heimdal KDC}.).
|
||||
adding cross-realm trust (@pxref{Inter-Realm keys (trust) between Windows 2000
|
||||
and a Heimdal KDC}).
|
||||
|
||||
@item Windows 2000 Kerberos Authentication -
|
||||
@url{http://www.microsoft.com/TechNet/win2000/win2ksrv/technote/kerberos.asp}
|
||||
@item Windows 2000 Kerberos Authentication:
|
||||
@uref{http://www.microsoft.com/TechNet/win2000/win2ksrv/technote/kerberos.asp}.
|
||||
White paper that describes how Kerberos is used in Windows 2000.
|
||||
|
||||
@item Overview of kerberos -
|
||||
@url{http://support.microsoft.com/support/kb/articles/Q248/7/58.ASP}
|
||||
@item Overview of Kerberos:
|
||||
@uref{http://support.microsoft.com/support/kb/articles/Q248/7/58.ASP}.
|
||||
Links to useful other links.
|
||||
|
||||
@item Klist for windows -
|
||||
@url{http://msdn.microsoft.com/library/periodic/period00/security0500.htm}
|
||||
Describes where to get a klist for Windows 2000.
|
||||
@c @item Klist for Windows:
|
||||
@c @uref{http://msdn.microsoft.com/library/periodic/period00/security0500.htm}.
|
||||
@c Describes where to get a klist for Windows 2000.
|
||||
|
||||
@item Event logging for kerberos -
|
||||
@url{http://support.microsoft.com/support/kb/articles/Q262/1/77.ASP}.
|
||||
@item Event logging for Kerberos:
|
||||
@uref{http://support.microsoft.com/support/kb/articles/Q262/1/77.ASP}.
|
||||
Basicly it say that you can add a registry key
|
||||
@code{HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters\LogLevel}
|
||||
with value DWORD equal to 1, and then you'll get logging in the Event
|
||||
Logger.
|
||||
|
||||
@item Access to the active directory through LDAP
|
||||
@url{http://msdn.microsoft.com/library/techart/kerberossamp.htm}
|
||||
@c @item Access to the Active Directory through LDAP:
|
||||
@c @uref{http://msdn.microsoft.com/library/techart/kerberossamp.htm}
|
||||
|
||||
@end itemize
|
||||
|
||||
@@ -298,5 +312,4 @@ Other useful programs include these:
|
||||
|
||||
@itemize @bullet
|
||||
@item pwdump2
|
||||
@url{http://www.webspan.net/~tas/pwdump2/}
|
||||
@end itemize
|
||||
@uref{http://www.bindview.com/Support/RAZOR/Utilities/Windows/pwdump2_readme.cfm}@end itemize
|
||||
|
Reference in New Issue
Block a user