windows-virtual-memory-20041224
[openafs.git] / doc / txt / winnotes / afs-install-notes.txt
1 OpenAFS for Windows 1.3.74 Installation Notes
2 ---------------------------------------------
3
4 The OpenAFS for Windows product was very poorly maintained throughout the 
5 1.2.x release cycle.  While the Unix version was being enhanced and its 
6 quality was improving the Windows version stagnated.  The IBM AFS 3.6 product 
7 was not designed for the Windows 2000/XP/2003 operating system nor was it 
8 architected with highly disconnected environments in mind.
9
10 The 1.3.x series of releases not only fixes a large number of bugs in the 1.2 
11 series but also attempts to enhance the functionality of the product to better 
12 fit the usage model of today's users.  Several items standout.  
13
14
15 1. The Kerberos 4 infrastructure on which the 1.2 series is reliant is no 
16 longer secure.  Cross-realm Kerberos is very important in the AFS context and 
17 most sites have or are migrating to Kerberos 5 environments.  The 1.3 series 
18 integrates with the MIT Kerberos for Windows 2.6.x product to provide Kerberos 
19 5 functionality including the ability to auto-renew credentials and obtain 
20 single sign-on capabilities with the Microsoft Windows Kerberos Logon Service.
21
22 As of 1.3.65, the OpenAFS client will directly use Kerberos 5 tickets as tokens if 
23 KFW is installed.  The client requires that all of the AFS Servers with which it 
24 communicates support the use of Kerberos 5 tickets as tokens (aka 2b tokens).
25 This means that all of the AFS servers must be running OpenAFS release 1.2.8 or 
26 higher.  Transarc servers do not support Kerberos 5 tickets as tokens.
27
28 When using a Microsoft Windows Active Directory as the KDC which issues the 
29 service ticket for the AFS cell there are two things to consider.  First, the 
30 Kerberos 5 tickets issued by Active Directory can be quite large when compared 
31 to tickets issued by a traditional KDC due to the incorporation of 
32 authorization data in the PAC.  If this is your situation you either must 
33 modify your 1.2.x servers to support tokens larger than a few hundred bytes; 
34 or install the 1.3.64 or higher release on your servers.  Second, Windows 2003 
35 Active Directory will issue service tickets utilizing the DES-CBC-MD5 enctype. 
36 OpenAFS releases older than 1.3.64 will not properly support this enctype.
37
38
39 2. The AFS Client Service does not provide robust behavior in an environment 
40 with a plug-n-play network environment.  Changes to the number of network 
41 adapters or the assigned IP addresses will cause the service to panic.  The 
42 recommended work around for this problem is to install the Microsoft Loopback 
43 Adapter on the machine.  When the MLA is installed with a static IP address 
44 the AFS Client Service will bind only to the loopback and not be affected by 
45 changes to state of other network adapters installed on the system.  
46
47 Starting in the 1.3.65 release the installers provided by OpenAFS.org will 
48 install the Microsoft Loopback Adapter for you with a name of "AFS" and a 
49 pre-assigned IP address in the 10.x.x.x range.
50
51 One of the benefits of using the MLA is that the NETBIOS names used for the 
52 AFS Client's SMB server do not have to be published on any adapter other than 
53 the MLA.  This means that the names no longer need to be unique.  When the MLA 
54 is in use, the NETBIOS name associated with the AFS Client Service is simply 
55 "AFS".  When the MLA is not in use the NETBIOS name is "MACHINE-AFS".
56
57 When the MLA is installed, UNC paths of the form \\AFS\cellname\path may be used.
58
59
60 3. Traditionally, when the AFS Client Service starts it must be able to 
61 access the "root.afs" volume of the default cell.  The "root.afs" volume
62 contains a set of read-only and read-write mount points to the "root.cell"
63 volumes of various cells the administrator of the default cell believes
64 should be accessible.  If the "root.afs" volume is 
65 inaccessible when the client service is started, the service will panic.  
66 Since many users now use laptops or otherwise operate in disconnected 
67 environments in which a VPN may be needed to access the cell's servers, it is 
68 often the case that the "root.afs" volume for the default cell is not 
69 reachable and the AFS Client Service will not successfully start. 
70  
71 The OpenAFS Client Service now supports a fake "root.afs" volume which is 
72 dynamically constructed when the service starts.  This mode is called 
73 Freelance mode.  Freelance mode is turned on by default.
74
75 The contents of the fake "root.afs" volume are constructed dynamically as
76 cells are accessed.  When the fake "root.afs" volume is constructed it will
77 only contain two mount points: a read-only and read-write mount point used
78 to access the "root.cell" volume of the default AFS cell.  Any attempt to
79 access a valid cell name will automatically result in a new mount point 
80 being created in the fake "root.afs" volume.  If the cellname begins with
81 a "." the mount point will be read-write; otherwise the mount point will
82 be read-only.  These mount points are preserved in the registry at key:
83
84   HKLM\SOFTWARE\OpenAFS\Client\Freelance
85
86 Additional mount points may be manually created using the "fs mkmount"
87 command.  Mount points may be removed using the "fs rmmount" command.
88
89     >fs mkmount \\AFS\all\athena.mit.edu root.cell athena.mit.edu
90     >fs mkmount \\AFS\all\.athena.mit.edu root.cell athena.mit.edu -rw
91     >fs rmmount \\AFS\all\athena.mit.edu
92     >fs rmmount \\AFS\all\.athena.mit.edu
93
94 Beginning in 1.3.74, the Freelance fake root.afs volume will support
95 the creation of symlinks.
96
97   >symlink make \\afs\all\link \\afs\all\athena.mit.edu\user\j\a\jaltman
98
99   >symlink list \\afs\all\link
100   '\\afs\all\link' is a symlink to 'athena.mit.edu\user\j\a\jaltman'
101
102   >symlink rm \\afs\all\link
103
104 The symlinks are stored in the registry at:
105
106   HKLM\SOFTWARE\OpenAFS\Client\Freelance\Symlinks 
107      
108
109 4. The OpenAFS for Windows client will use AFSDB DNS records to 
110 discover cell information when it is not located in the local CellServDB file 
111 (\Program Files\OpenAFS\Client\CellServDB).
112
113
114 5. OpenAFS for Windows 1.3.72 only supports Windows 2000, Windows XP, and 
115 Windows 2003.  Windows NT 4.0 and the entire Windows 9x/Me line are no
116 longer supported.  Older releases of OpenAFS are available for download
117 if those operating systems must be supported.  The last version with support
118 for Win9x is 1.2.2b.  The last version with support for Windows NT 4.0 is
119 1.2.10.
120
121
122 6. OpenAFS for Windows installs a WinLogon Network Provider to provide
123 Integrated Logon (Single Sign-on) functionality. Integrated Logon can be used 
124 when the Windows username and password match the username and password 
125 associated with the default cell's Kerberos realm.  For example, if the 
126 windows username is "jaltman" and the default cell is "athena.mit.edu", then 
127 Integrated Logon can be successfully used if the windows password matches the 
128 password used for the Kerberos principal "jaltman@ATHENA.MIT.EDU".
129
130 Integrated Logon is required if you desire the ability to store roaming user 
131 profiles within the AFS file system.  OpenAFS does not provide tools for 
132 synchronizing the Windows and Kerberos user accounts and passwords.
133
134 If KFW is installed, the Integrated Logon will use Kerberos 5 to obtain 
135 tokens.  Otherwise, Kerberos 4 is used.
136
137 There is a High Security mode for use with Integrated Logon when multiple 
138 users will share a single machine.  There are known problems with this mode.  
139 In particular, if you are using this mode it is crucial that new AFS tokens 
140 not be obtained after the logon session starts except via the AFS Systray tool 
141 as started by the AFS Network Provider.  If the AFS Systray tool is stopped 
142 you must log off to obtain new tokens.  Do not use external tools such as 
143 "aklog.exe" if High Security mode is turned on. As of 1.3.70, OpenAFS supports 
144 Authenticated SMB connections which removes the need for High Security mode. 
145 DO NOT USE IT!!!!! 
146
147 What Integrated Logon does not do:
148  (a) Integrated Logon does not have the ability to obtain Kerberos 5
149      tickets for use during the Windows Session.  At the current time there
150      is no mechanism by which a Kerberos 5 CCAPI credentials cache can
151      be constructed during the logon process such that it will exist in 
152      the user's logon session.
153  (b) Integrated Logon does not have the ability to cache the user's 
154      username and password for the purpose of obtaining tokens if the
155      Kerberos KDC is inaccessible at logon time.
156
157
158 7. The AFS Systray tool (afscreds.exe) supports several new command line 
159 options: 
160
161     -A = autoinit 
162     -M = renew drive maps 
163     -N = ip address change detection 
164     -Z = unmap drives
165
166 autoinit will result in automated attempts to acquire AFS tokens when 
167 afscreds.exe is started.  afscreds.exe will attempt to utilize tickets stored
168 in the MSLSA credentials cache; any existing CCAPI credentials cache; and
169 finally display an Obtain Tokens dialog to the user.  When used in combination 
170 with ip address change detection, afscreds.exe will attempt to acquire AFS 
171 tokens whenever the IP address list changes and the Kerberos KDC is 
172 accessible.
173
174 The renew drive maps option is used to ensure that the user drive maps 
175 constructed via the AFS tools (not NET USE) are re-constructed each time
176 afscreds.exe is started.
177
178 By default afscreds.exe is configured by the OpenAFS.org installers to use -A 
179 -N -M -Q as startup options.  Currently, there is no UI to change this selection 
180 after install time although these options may be altered via the registry either 
181 per machine or per user.  See AfscredsShortcutParams in registry.txt.
182
183
184 8. As of 1.3.71, the OpenAFS for Windows client supports a local Windows
185 authorization group called "AFS Client Admins".  This group is used in
186 place of the "Administrators" group to determine which users are allowed
187 to modify the AFS Client Service configuration via either afs_config.exe
188 or fs.exe.  For example, the following fs.exe commands are now restricted 
189 to members of the "AFS Client Admin" group:
190
191     - checkservers with a non-zero timer value
192     - setcachesize
193     - newcell
194     - sysname with a new sysname list
195     - exportafs
196     - setcell
197     - setserverprefs
198     - storebehind
199     - setcrypt
200     - cscpolicy
201     - trace
202
203 Setting the default sysname for a machine should be done via the registry and 
204 not via "fs sysname".
205
206 The local "SYSTEM" account is always a member of the "AFS Client Admin" group.
207
208 The initial membership of the "AFS Client Admin" group when created by the 
209 installer is equivalent to the local "Administrators" group.
210
211
212 9. The AFS Client should support UNC paths everywhere.  Power users that make
213 extensive use of the command line shell, cmd.exe, might want to consider using 
214 JP Software's 4NT command processor.  Unlike cmd.exe, 4NT does fully support
215 UNC paths and can use a UNC path as the default device.
216
217
218 10. The AFS Client ships with its own version of aklog.exe which should be 
219 used in preference to those obtained by third party sources.  The OpenAFS
220 aklog.exe supports Kerberos 5 as well as the ability to auto-generate
221 pts IDs for user's obtaining tokens to foreign cells.
222
223 Usage: aklog [-d] [[-cell | -c] cell [-k krb_realm]]
224              [[-p | -path] pathname]
225              [-noprdb] [-force]
226              [-5 | -4]
227
228    -d gives debugging information.
229    krb_realm is the kerberos realm of a cell.
230    pathname is the name of a directory to which you wish to authenticate.
231    -noprdb means don't try to determine AFS ID.
232    -5 or -4 selects whether to use Kerberos V or Kerberos IV.
233       (default is Kerberos V)
234    No commandline arguments means authenticate to the local cell.
235
236
237 11. The AFS Server functionality provided with OpenAFS 1.3.72 might work but 
238 should be considered highly experimental.  It has not been thoroughly tested.
239 Any data which would cause pain if lost should not be stored in an OpenAFS 
240 Server on Windows.
241
242 A few notes on the usage of the AFS Client Service if it is going to be 
243 used with the OpenAFS AFS Server:
244
245 (a) When the AFS Server is installed Freelance mode must be turned off.  
246
247 (b) The AFS Server and related tools only support the built in kaserver
248 (Kerberos IV).  If the AFS Server is being used, MIT Kerberos for Windows
249 should not be used.
250
251
252 12. The OpenAFS for Windows installers now include Symbol information which 
253 should be installed if you are experiencing problems and need to send crash 
254 reports.  This is true in both the release and the debug versions of the 
255 installers.  The differences between the release and debug versions are 
256 whether or not the binaries were compiled with optimization; whether the
257 debug symbols are installed by default; and whether additional debug 
258 statements were compiled into the binaries.
259
260
261 13. OpenAFS for Windows does not support files larger than 2GB.  
262
263
264 14. Local RPC is used as the default RPC mechanism for setting 
265 tokens.  TCP RPC is required to be installed and is used for debugging 
266 and other functions.
267
268
269 15. OpenAFS for Windows automatically open ports in the Windows 
270 Internet Connection Firewall.
271
272
273 16. The OpenAFS for Windows installer by default activates a weak form of 
274 encrypted data transfer between the AFS client and the AFS servers.  This
275 is often referred to as "fcrypt" mode.
276
277
278 17. OpenAFS 1.3.71 adds support for authenticated SMB connections using 
279 either NTLM or GSS SPNEGO (NTLM, Kerberos 5, ...).  In previous versions
280 of OpenAFS the SMB connections were unauthenticated which left open the
281 door for several security holes which could be used to obtain access to
282 the use of other user's tokens on shared machines.  With the introduction
283 of authenticated SMB connections the so called High Security mode should
284 no longer be used.  
285
286 When GSS SPNEGO results in a Kerberos 5 authentication, the Windows SMB
287 client will attempt to retrieve service tickets for "cifs/afs@REALM" (if 
288 the loopback adapter is in use) or "cifs/machine-afs@REALM" (if the loopback
289 adapter is not being used).  It is extremely important that this service 
290 principal not exist in the KDC database.   If the request for this ticket
291 fails, a subsequent request for "cifs/HOST$@REALM" will be issued.  This 
292 service principal should exist in the KDC database.  The key associated 
293 with this service principal must match the key assigned to 
294 "host/machine@REALM".  If the local machine is part of a Windows Domain
295 this will all be taken care of for you.  If the local machine is using
296 a non-MS KDC for authentication, then your KDC administrator will have to
297 add these service principals to the list of principals to be maintained
298 for each host.
299
300
301 18. As of 1.3.70, INI files are no longer used for the storage of AFS 
302 configuration data.  No longer are there any AFS related files stored in the
303 %WINDIR% directory.  The CellServDB file is no longer called "afsdsbmt.ini"
304 and it is stored in the OpenAFS\Client directory.  The afs_freelance.ini
305 and afsdsbmt.ini file data has been moved to the registry.  
306
307 IMPORTANT: while the CellServDB file location and freelance mountpoint
308 data will be automatically migrated; there is no mechanism for automatic
309 migration of Submounts, Drive Mappings, Active Maps, and CSCPolicy data.
310
311
312 19. As of 1.3.70, the OpenAFS Client is compatible with Windows XP SP2
313 and Windows 2003 SP1.  The Internet Connection Firewall will be 
314 automatically adjusted to allow the receipt of incoming callback messages 
315 from the AFS file server.  In addition, the appropriate Back Connection 
316 entries are added to the registry to allow SMB authentication to be 
317 performed across the loopback connection.
318
319
320 20. As of 1.3.70, the OpenAFS Client Service supports the CIFS Remote
321 Admin Protocol which provides browsing of server and share information.
322 This significantly enhances the interoperability of AFS volumes within the
323 Explorer Shell and Microsoft Office applications.
324
325
326 21. OpenAFS will now automatically forget a user's tokens upon Logoff
327 unless the user's profile was loaded from an AFS volume.  In this situation
328 there is no mechanism to determine when the profile has been successfully
329 written back to the network.  It is therefore unsafe to release the user's
330 tokens.  Whether or not the profile has been loaded from the registry can
331 be determined for Local Accounts, Active Directory accounts and NT4 
332 accounts.
333                                                    
334
335 22. Terminal Server installations.
336 When installing under Terminal Server, you must execute the NSIS installer
337 (.exe) from within the Add/Remove Programs Control Panel.  Failure to do so 
338 will result in AFS not running properly.  The AFS Server should not 
339 be installed on a machine with Terminal Server installed.
340
341
342 23. AFS is a Unix native file system.  As such the OpenAFS client attempts
343 to treat the files stored in AFS as they would be on Unix.  File and directory
344 names beginning with a "." are automatically given the Hidden attribute so
345 they will not normally be displayed.
346
347
348 24. Some organizations which have AFS cell names and Kerberos realm names
349 which differ by more then just lower and upper case rely on a modification
350 to krb524d which maps a Kerberos 5 ticket from realm FOO to a Kerberos 4
351 ticket in realm BAR.  This allows user@FOO to appear to be user@bar for
352 the purposes of accessing the AFS cell.  As of OpenAFS 1.2.8, support was
353 added to allow the immediate use of Kerberos 5 tickets as AFS (2b) tokens.
354 This is the first building block necessary to break away from the 
355 limitations of Kerberos 4 with AFS.  By using Kerberos 5 directly we
356 avoid the security holes inherent in Kerberos 4 cross-realm.  We also
357 gain access to cryptographically stronger algorithms for authentication
358 and encryption. 
359
360 Another reason for using Kerberos 5 directly is because the krb524 service
361 runs on a port (4444) which has become increasingly blocked by ISPs.  The
362 port was used to spread a worm which attacked Microsoft Windows in the 
363 summer of 2003.  When the port is blocked users find that they are unable
364 to authenticate.
365
366 Replacing the Kerberos 4 ticket with a Kerberos 5 ticket is a win in all
367 situations except when the cell name does not match the realm name and
368 the principal names placed into the ACLs are not the principal names from
369 the Kerberos 5 ticket.  To support this transition, OpenAFS for Windows
370 in 1.3.72 adds a new registry value to force the use of krb524d.  However,
371 the availability of this option should only be used by individuals until
372 such time as their organizations can provide a more permanent solution.
373
374
375 25. The Status Cache (AFS Config Control Panel: Advanced Page) is defined
376 to have a maximum number of entries.  Each entry represents a single file
377 or directory entry accessed within the AFS file system.  When the maximum
378 number of entries are allocated, entries will begin to be reused according
379 to a least recently used (LRU) algorithm.  If the number of files or 
380 directories being accessed repeatedly by your applications is greater then
381 the maximum number of entries, your host will begin to experience thrashing
382 of the Status Cache and all requests will result in network operations.
383
384 If you are experiencing poor performance you might want to increase the 
385 maximum number of Status Cache entries.  Each entry requires 164K.  Only
386 those entries which are used are allocated.
387
388
389 26. "Netbios over TCP/IP" must be active on the machine in order for
390 communication with the AFS Client Service to succeed.  If "Netbios over
391 TCP/IP" is disabled on the machine, then communication with the AFS Client
392 Service will be impossible.
393
394
395 27. The AFS Client Service and related binaries are digitally signed by
396 "Secure Endpoints Inc." beginning with the 1.3.7400 release of OpenAFS
397 for Windows.  Starting in the 1.3.7500 release, the AFS Client Service
398 will perform a run-time verification check to ensure that all AFS related
399 DLLs loaded by the service match the same file version number and were
400 signed by the same entity.  This check has been added to prevent the
401 stability problems caused by more then one version of AFS being installed
402 on a machine at the same time.  Many hours of support time have been wasted
403 tracking down problems caused by the mixture of files from different 
404 releases.  
405
406 The registry.txt file documents the "VerifyServiceSignature" registry
407 value which can be used to disable the signature check.  The file version
408 check cannot be disabled.
409
410
411 28. The maximum cache size is approximately 1.3GB.  This is the largest
412 contiguous block of memory in the 2GB process address space which can be
413 used for the memory mapped file.  Due to fragmentation of the process 
414 spaced caused by the digital signature verification code, any attempt to
415 specify a cache size greater then 700MB will result in the automatic
416 disabling of the signature check.
417
418
419 29. OpenAFS for Windows implements an SMB server which is used as a
420 gateway to the AFS filesystem.  Because of the use of SMB, Windows 
421 stores all files into AFS using the OEM code pages such as CP437 (United 
422 States) or CP850 (Western Europe).  These code pages are incompatible 
423 with the ISO Latin-1 character set typically used as a default on Unix
424 systems in both the United States and Western Europe.  Filenames stored
425 by OpenAFS for Windows are therefore unreadable on Unix systems if they
426 include any of the following characters:
427
428      [Ç]  128  08/00  200  80  C cedilla
429      [ü]  129  08/01  201  81  u diaeresis
430      [é]  130  08/02  202  82  e acute
431      [â]  131  08/03  203  83  a circumflex
432      [ä]  132  08/04  204  84  a diaeresis
433      [à]  133  08/05  205  85  a grave
434      [å]  134  08/06  206  86  a ring
435      [ç]  135  08/07  207  87  c cedilla
436      [ê]  136  08/08  210  88  e circumflex
437      [ë]  137  08/09  211  89  e diaeresis
438      [è]  138  08/10  212  8A  e grave
439      [ï]  139  08/11  213  8B  i diaeresis
440      [î]  140  08/12  214  8C  i circumflex
441      [ì]  141  08/13  215  8D  i grave
442      [Ä]  142  08/14  216  8E  A diaeresis
443      [Å]  143  08/15  217  8F  A ring
444      [É]  144  09/00  220  90  E acute
445      [æ]  145  09/01  221  91  ae diphthong
446      [Æ]  146  09/02  222  92  AE diphthong
447      [ô]  147  09/03  223  93  o circumflex
448      [ö]  148  09/04  224  94  o diaeresis
449      [ò]  149  09/05  225  95  o grave
450      [û]  150  09/06  226  96  u circumflex
451      [ù]  151  09/07  227  97  u grave
452      [ÿ]  152  09/08  230  98  y diaeresis
453      [Ö]  153  09/09  231  99  O diaeresis
454      [Ü]  154  09/10  232  9A  U diaeresis
455      [ø]  155  09/11  233  9B  o slash
456      [£]  156  09/12  234  9C  Pound sterling sign
457      [Ø]  157  09/13  235  9D  O slash
458      [×]  158  09/14  236  9E  Multiplication sign
459      [ƒ]  159  09/15  237  9F  Florin sign
460
461 As of 1.3.75, a new registry value, HKLM\SOFTWARE\OpenAFS\Client 
462 "StoreAnsiFilenames" can be set to instruct OpenAFS for Windows to store 
463 filenames using the ANSI Code Page instead of the OEM Code Page.  The ANSI
464 Code Page is a compatible superset of Latin-1.  This setting is not the 
465 default setting because making this change would prevent OpenAFS for Windows 
466 from being able to access filenames containing the above characters which
467 were created without this setting.
468
469
470 30. There is a known issue with storing Windows Roaming Profiles when
471 the profile contains either directories or files with names which cannot
472 be represented in the local OEM character set.  In this case, attempts
473 to write the profile back to AFS will fail.  OpenAFS for Windows does
474 not currently support UNICODE.  To avoid this problem some sites run
475 logoff scripts (assigned by group policy) which rename all files to use
476 only the supported characters for the locale.
477
478
479 ------------------------------------------------------------------------
480
481 Reporting Bugs:
482
483 Bug reports should be sent to openafs-bugs@openafs.org.  Please include as 
484 much information as possible about the issue.  If you are reporting a crash, 
485 please install the debugging symbols by re-running the installer.  If a dump 
486 file is available for the problem include it along with the AFS Client Trace 
487 file  %WINDIR%\TEMP\afsd.log.  The AFS Client startup log is 
488 %WINDIR%\TEMP\afsd_init.log.  Send the last continuous block of log 
489 information from this file.
490
491 ------------------------------------------------------------------------
492
493 How to Contribute to the Development of OpenAFS for Windows:
494
495 Contributions to the development of OpenAFS for Windows are needed. 
496 Contributions may take many forms including cash donations, support contracts, 
497 donated developer time, and even donated tech writer time.
498
499 If you wish to be involved in OpenAFS for Windows development please join the 
500 openafs-win32-devel@openafs.org mailing list.
501
502   https://lists.openafs.org/mailman/listinfo/openafs-win32-devel
503
504 User questions should be sent to the openafs-info@openafs.org mailing list.  
505
506   https://lists.openafs.org/mailman/listinfo/openafs-info
507
508 You must join mailing lists if you wish to post to the list without incurring 
509 a moderation delay.
510