none
[openafs-wiki.git] / AFSLore / SMBtoAFS.mdwn
1 <div>
2   <ul>
3     <li><a href="#Using Samba as an AFS gateway"> Using Samba as an AFS gateway</a><ul>
4         <li><a href="#Plain text passwords sent over n"> Plain text passwords sent over network</a><ul>
5             <li><a href="#Compile Samba --with-pam"> Compile Samba --with-pam</a></li>
6             <li><a href="#Compile Samba --with-afs"> Compile Samba --with-afs</a></li>
7           </ul>
8         </li>
9         <li><a href="#No plain text passwords sent ove"> No plain text passwords sent over network</a><ul>
10             <li><a href="#kSAMBA"> kSAMBA</a></li>
11             <li><a href="#SMBKlog"> SMBKlog</a></li>
12             <li><a href="#FOKSTRAUT"> FOKSTRAUT</a></li>
13           </ul>
14         </li>
15         <li><a href="#Random Links"> Random Links</a></li>
16         <li><a href="#Discussion / What are you doing?"> Discussion / What are you doing?</a></li>
17       </ul>
18     </li>
19   </ul>
20 </div>
21
22 # <a name="Using Samba as an AFS gateway"></a> Using Samba as an AFS gateway
23
24 Recently I've been researching methods of using Samba as an AFS gateway. Below are my findings so far. Please feel free to add/correct stuff. -- [[DanielClark]] - 04 Aug 2002
25
26 ## <a name="Plain text passwords sent over n"></a> Plain text passwords sent over network
27
28 In these solutions the plain text password is sent over the network. This requires [[EnablePlainTextPassword]] be set on your Windows hosts. Plain text passwords are necessary with stock Samba because the method that SMB uses for secure authentication is not compatible with Kerberos. Therefore the Samba server must have your plain text password so it can in turn get you AFS tokens using your password.
29
30 Advantages:
31
32 - No new software needs to be installed on clients
33 - Only required change on clients is to set a registry key
34
35 Disadvantages:
36
37 - Passwords sent in plain text over the network
38 - Clients may initially try to use plain text passwords to login to SMB servers other than the AFS gateway
39 - Client gets no warning before AFS tokens expire
40 - To get new tokens, client must unmap and then remap the drive letter corresponding to the AFS gateway
41
42 ### <a name="Compile Samba --with-pam"></a> Compile Samba --with-pam
43
44 This causes Samba to use pluggable authentication modules (PAM) for authentication. PAM is available on many Unix variants, notably Linux and Solaris. There are PAM modules for the various Kerberos implementations that work with AFS; the module for the default kaserver comes with [[OpenAFS]]. For some more info on PAM see the [Samba doc](http://de.samba.org/samba/ftp/docs/htmldocs/Samba-HOWTO-Collection.html#PAM). Many precompiled versions of Samba are built with this option (i.e. Redhat's Samba RPMs)
45
46 Advantages:
47
48 - The only method that is integrated into Samba core and pretty much guaranteed to be maintained and work with all future Samba releases, as it is generally useful to people for purposes other then using Samba as an AFS gateway. There seem to be no people on the Samba core team that have an active interest in AFS.
49
50 Disadvantages:
51
52 - Doesn't work with operating systems that do not support PAM.
53
54 ### <a name="Compile Samba --with-afs"></a> Compile Samba --with-afs
55
56 This links Samba against AFS authentication code directly.
57
58 Advantages:
59
60 - May work with systems that do not support PAM.
61
62 Disadvantages:
63
64 - Not actively maintained. Author states the option may be suffering from bit rot.
65 - Several people have mentioned difficulty getting the library and header paths right, mentioning conflicts between [[OpenAFS]], [[OpenSSL]] and non-AFS Kerberos libraries and header files. It is unclear if this code is works with the latest Samba and [[OpenAFS]] releases at all.
66 - May need to hunt around on the internet for a patch to make this work against a specific OS type and Samba version, and then use that older Samba version.
67   - Patch for AIX / Samba 2.0.4b: <http://www.mail-archive.com/info-afs@transarc.com/msg02493.html>
68
69 ## <a name="No plain text passwords sent ove"></a> No plain text passwords sent over network
70
71 These are methods that avoid sending plain text passwords over the network.
72
73 Advantages:
74
75 - Increased security
76
77 Disadvantages:
78
79 - Requires modifications to stock Samba distribution
80 - Requires additional infrastructure beyond Samba
81 - All are primarily internal projects that people did for their employers, support may be minimal to nonexistent.
82
83 ### <a name="kSAMBA"></a> kSAMBA
84
85 kSamba is used for AFS translation in University of Michigan Campus sites. It also allows Windows workstations to authenticate and connect to UNIX SMB (Server Message Block) servers via a Kerberos out-of-band negotiation. This allows users to connect without entering a SMB password. A version of Samba 2.0.6 modified to support AFS and Kerberos is implemented on the server side.
86
87 <table border="1" cellpadding="0" cellspacing="0">
88   <tr>
89     <td> URL </td>
90     <td><a href="http://rsug.itd.umich.edu/software/ksamba.html" target="_top">http://rsug.itd.umich.edu/software/ksamba.html</a></td>
91   </tr>
92   <tr>
93     <td> Email </td>
94     <td><a href="mailto:ifs.via.samba@umich.edu">ifs.via.samba@umich.edu</a></td>
95   </tr>
96 </table>
97
98 Advantages:
99
100 - Very good security. Plain text passwords are not required to be sent over the network or kept on the Samba server.
101 - Has been in active use by a good number of clients for several years.
102 - Looks like it might have an interface to manipulate AFS permissions - see <http://lists.samba.org/pipermail/samba/1997-November/033982.html>
103
104 Disadvantages:
105
106 - Seems to be pretty specific to UMich's site - unclear if anyone else is using it.
107 - Requires each Windows client to install some software
108   - Windows client software doesn't seem to be open source
109   - Windows client software won't install on Windows 2000 or XP
110 - Looks like it may be tied to a specific Kerberos implementation
111 - Must run Samba 2.0.6 or do some porting to newer version
112
113 ### <a name="SMBKlog"></a> SMBKlog
114
115 SMBKlog uses out-of-band authentication over SSL. The server sends the client an RSA public key - the client encrypts the password with the public key and sends it to the server, which then decrypts it. There is an email explaining it at <http://samba.cadcamlab.org/lists/samba-technical/Jul2001/00363.html> .
116
117 <table border="1" cellpadding="0" cellspacing="0">
118   <tr>
119     <td> URL </td>
120     <td><a href="http://www22.brinkster.com/jvrobert" target="_top">http://www22.brinkster.com/jvrobert</a></td>
121   </tr>
122   <tr>
123     <td> Email </td>
124     <td> Jason Robertson <a href="mailto:jason.v.robertson@intel.com">jason.v.robertson@intel.com</a></td>
125   </tr>
126 </table>
127
128 Advantages:
129
130 - Password not sent over network in plain text
131 - Not specific to any particular Kerberos/AFS implementation [ Transarc/OpenAFS OK ]
132 - Uses [[OpenSSL]] so probably relatively easy to write new Windows clients
133 - Successfully used at Intel to comply with corporate security requirements
134
135 Disadvantages:
136
137 - Password exists in plain text form on Samba server, at least in memory, for some period of time (Samba server decrypts password to plaintext form and uses that to get AFS tokens)
138 - Requires each Windows client to install some software
139   - Windows client software dies on Windows 2000 and XP [ May be fixed in current version ]
140 - Must run specific Samba version or do some porting to newer version [ Should be straightforward ]
141 - Not under heavy active development.
142
143 Updates:
144
145 - Frank Cameron (<cameron@ctc.com>) updated Jason's smbklog patches to work with Samba 2.2.7
146   - [samba-2.2.7-afstoken.patch](http://www.dementia.org/twiki//view/samba-2.2.7-afstoken.patch): Updated smbklog patch for Samba 2.2.7
147 - Also available is a patch to compile Samba 2.2.7 on [[RedHat]] 8
148   - [samba-2.2.7\_afstoken.spec](http://www.dementia.org/twiki//view/samba-2.2.7_afstoken.spec): Spec file to build Samba 2.2.7 w/ SMBKlog on RH 8
149
150 ### <a name="FOKSTRAUT"></a> FOKSTRAUT
151
152 **Fokstraut and Samba - Dealing with Authentication and Performance Issues On A Large Scale Samba Service**
153
154 Robert Beck &amp; Steve Holstead, _University of Alberta_
155
156 **Abstract**
157
158 At the University of Alberta, we have approximately 55,000 user id's using central services authenticated by Kerberos. We use AFS for central file service. We use Samba to provide Windows compatible access to much of our central file service. Samba contains a number of useful features for Microsoft Windows compatibility, including a kludge to deal with the problem of Windows sending an all uppercase version of a user's password. We observed that when Windows connects to a share, it frequently attempts many incorrect passwords repeatedly before trying the correct one. This created a very heavy authentication load on our central Samba service when users would connect every morning and authenticate. We observed this load and noticed that most of our problems were caused by repeated attempts to authenticate, and the high cost of checking these attempts.
159
160 To help reduce the load due to authentication, we implemented FOKSTRAUT, a set of modifications to Samba to cache recent password failures and successes in a DBM database built by the Samba server as it runs. By caching the recent failures we avoid expensive re-checks of the (many) other passwords Windows likes to send us. We also cache the correct case of the real password, and by doing so we avoid the expensive overhead of "cracking" an all uppercase password When Windows decides to send one. We also use FOKSTRAUT to cache the NT and LanMan password hashes of a users password once we see a successful authentication. This then allows us to use the newer Windows NT password hash after the user has connected once, without having to centrally convert and maintain a large SMB password file, and while maintaining the ability of our server to access services such as AFS which can not be authenticated against using the Windows password hash alone. Performance on our service has been drastically improved since the implementation of FOKSTRAUT.
161
162 <table border="1" cellpadding="0" cellspacing="0">
163   <tr>
164     <td> URL </td>
165     <td colspan="2"><a href="http://www.usenix.org/events/lisa2000/full_papers/beck/beck_html/" target="_top">http://www.usenix.org/events/lisa2000/full_papers/beck/beck_html/</a></td>
166   </tr>
167   <tr>
168     <td>   </td>
169     <td><a href="http://www.ualberta.ca/~sholstea/patches.tar" target="_top">http://www.ualberta.ca/~sholstea/patches.tar</a></td>
170     <td> Patches against Samba 2.2.4 </td>
171   </tr>
172   <tr>
173     <td> Email </td>
174     <td colspan="2"> Steve Holstead <a href="mailto:Steve.Holstead@ualberta.ca">Steve.Holstead@ualberta.ca</a></td>
175   </tr>
176   <tr>
177     <td>   </td>
178     <td colspan="2"> Robert Beck <a href="mailto:beck@bofh.ucs.ualberta.ca">beck@bofh.ucs.ualberta.ca</a> or <a href="mailto:beck@obtuse.com">beck@obtuse.com</a></td>
179   </tr>
180 </table>
181
182 Advantages:
183
184 - Password not sent over network in plain text
185 - In use for several years with a large number of clients
186 - Has advantages other than secure AFS login
187 - Seems to be under active development
188   - Support for automatic reauthentication before token lifetime ends recently added
189 - Requires no changes to Windows Clients. This is a unique feature of this method.
190 - Everything is under BSD style license terms
191
192 Disadvantages:
193
194 - Requires some out-of-band secure infrastructure for users to change their passwords.
195   - Authors mention using a simple script on a login server in which a user can make an SMB connect and authenticate themselves. Unsure of the security of this solution.
196   - Another possibility would be a web application behind an SSL server running on the same host as the Samba server.
197 - Passwords must be stored in cleartext on the Samba server.
198
199 ## <a name="Random Links"></a> Random Links
200
201 2002-05 discussion on samba-technical: [http://marc.theaimsgroup.com/?l=samba-technical&amp;m=102214554108308&amp;w=2](http://marc.theaimsgroup.com/?l=samba-technical&m=102214554108308&w=2)
202
203 ## <a name="Discussion / What are you doing?"></a> Discussion / What are you doing?