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             <li><a href="#kimpersonate"> kimpersonate </a></li>
14           </ul>
15         </li>
16         <li><a href="#Random Links"> Random Links</a></li>
17         <li><a href="#Attachments"> Attachments</a></li>
18       </ul>
19     </li>
20   </ul>
21 </div>
22
23 # <a name="Using Samba as an AFS gateway"></a> Using Samba as an AFS gateway
24
25 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
26
27 ## <a name="Plain text passwords sent over n"></a> Plain text passwords sent over network
28
29 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.
30
31 Advantages:
32
33 - No new software needs to be installed on clients
34 - Only required change on clients is to set a registry key
35
36 Disadvantages:
37
38 - Passwords sent in plain text over the network
39 - Clients may initially try to use plain text passwords to login to SMB servers other than the AFS gateway
40 - Client gets no warning before AFS tokens expire
41 - To get new tokens, client must unmap and then remap the drive letter corresponding to the AFS gateway
42
43 ### <a name="Compile Samba --with-pam"></a> Compile Samba --with-pam
44
45 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)
46
47 Advantages:
48
49 - 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.
50
51 Disadvantages:
52
53 - Doesn't work with operating systems that do not support PAM.
54
55 ### <a name="Compile Samba --with-afs"></a> Compile Samba --with-afs
56
57 This links Samba against AFS authentication code directly.
58
59 Advantages:
60
61 - May work with systems that do not support PAM.
62
63 Disadvantages:
64
65 - Not actively maintained. Author states the option may be suffering from bit rot.
66 - 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.
67 - 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.
68   - Patch for AIX / Samba 2.0.4b: <http://www.mail-archive.com/info-afs@transarc.com/msg02493.html>
69
70 ## <a name="No plain text passwords sent ove"></a> No plain text passwords sent over network
71
72 These are methods that avoid sending plain text passwords over the network.
73
74 Advantages:
75
76 - Increased security
77
78 Disadvantages:
79
80 - Requires modifications to stock Samba distribution
81 - Requires additional infrastructure beyond Samba
82 - All are primarily internal projects that people did for their employers, support may be minimal to nonexistent.
83
84 ### <a name="kSAMBA"></a> kSAMBA
85
86 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.
87
88 <table border="1" cellpadding="0" cellspacing="0">
89   <tr>
90     <td> URL </td>
91     <td><a href="http://rsug.itd.umich.edu/software/ksamba.html" target="_top">http://rsug.itd.umich.edu/software/ksamba.html</a></td>
92   </tr>
93   <tr>
94     <td> Email </td>
95     <td><a href="mailto:ifs.via.samba@umich.edu">ifs.via.samba@umich.edu</a></td>
96   </tr>
97 </table>
98
99 Advantages:
100
101 - Very good security. Plain text passwords are not required to be sent over the network or kept on the Samba server.
102 - Has been in active use by a good number of clients for several years.
103 - Looks like it might have an interface to manipulate AFS permissions - see <http://lists.samba.org/pipermail/samba/1997-November/033982.html>
104
105 Disadvantages:
106
107 - Seems to be pretty specific to UMich's site - unclear if anyone else is using it.
108 - Requires each Windows client to install some software
109   - Windows client software doesn't seem to be open source
110   - Windows client software won't install on Windows 2000 or XP
111 - Looks like it may be tied to a specific Kerberos implementation
112 - Must run Samba 2.0.6 or do some porting to newer version
113
114 ### <a name="SMBKlog"></a> SMBKlog
115
116 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> .
117
118 <table border="1" cellpadding="0" cellspacing="0">
119   <tr>
120     <td> URL </td>
121     <td><a href="http://www22.brinkster.com/jvrobert" target="_top">http://www22.brinkster.com/jvrobert</a></td>
122   </tr>
123   <tr>
124     <td> Email </td>
125     <td> Jason Robertson <a href="mailto:jason.v.robertson@intel.com">jason.v.robertson@intel.com</a></td>
126   </tr>
127 </table>
128
129 Advantages:
130
131 - Password not sent over network in plain text
132 - Not specific to any particular Kerberos/AFS implementation [ Transarc/OpenAFS OK ]
133 - Uses [[OpenSSL]] so probably relatively easy to write new Windows clients
134 - Successfully used at Intel to comply with corporate security requirements
135
136 Disadvantages:
137
138 - 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)
139 - Requires each Windows client to install some software
140   - Windows client software dies on Windows 2000 and XP [ May be fixed in current version ]
141 - Must run specific Samba version or do some porting to newer version [ Should be straightforward ]
142 - Not under heavy active development.
143
144 Updates:
145
146 - Frank Cameron (<cameron@ctc.com>) updated Jason's smbklog patches to work with Samba 2.2.7
147   - [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
148 - Also available is a patch to compile Samba 2.2.7 on [[RedHat]] 8
149   - [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
150
151 ### <a name="FOKSTRAUT"></a> FOKSTRAUT
152
153 **Fokstraut and Samba - Dealing with Authentication and Performance Issues On A Large Scale Samba Service**
154
155 Robert Beck &amp; Steve Holstead, _University of Alberta_
156
157 **Abstract**
158
159 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.
160
161 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.
162
163 <table border="1" cellpadding="0" cellspacing="0">
164   <tr>
165     <td> URL </td>
166     <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>
167   </tr>
168   <tr>
169     <td>   </td>
170     <td><a href="http://www.ualberta.ca/~sholstea/patches.tar" target="_top">http://www.ualberta.ca/~sholstea/patches.tar</a></td>
171     <td> Patches against Samba 2.2.4 </td>
172   </tr>
173   <tr>
174     <td> Email </td>
175     <td colspan="2"> Steve Holstead <a href="mailto:Steve.Holstead@ualberta.ca">Steve.Holstead@ualberta.ca</a></td>
176   </tr>
177   <tr>
178     <td>   </td>
179     <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>
180   </tr>
181 </table>
182
183 Advantages:
184
185 - Password not sent over network in plain text
186 - In use for several years with a large number of clients
187 - Has advantages other than secure AFS login
188 - Seems to be under active development
189   - Support for automatic reauthentication before token lifetime ends recently added
190 - Requires no changes to Windows Clients. This is a unique feature of this method.
191 - Everything is under BSD style license terms
192
193 Disadvantages:
194
195 - Requires some out-of-band secure infrastructure for users to change their passwords.
196   - 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.
197   - Another possibility would be a web application behind an SSL server running on the same host as the Samba server.
198 - Passwords must be stored in cleartext on the Samba server.
199
200 ### <a name="kimpersonate"></a> kimpersonate
201
202 The major problem when exporting the AFS filespace read-write to SMB (Windows fileshareing) using Samba is the transfer of the user token to the smb-server. The simple may is to use clear-text password between the Windows client and the samba-server, and then to get tokens for the user with this password. This solution is clearly not acceptable for security aware AFS administrators.
203
204 Describe here how to make AFS work "securely" with samba.
205
206 On solution is to use \`kimpersonate' + store afs key on fileserver (talk to Love).
207
208 - <https://lists.openafs.org/pipermail/openafs-info/2003-July/010026.html>
209 - <http://www.mail-archive.com/openafs-info@openafs.org/msg08471.html>
210 - <http://openbsd.mirrors.pair.com/src/usr.sbin/afs/src/doc/arla.info>
211 - <http://www.it.kth.se/~aep/licentiate/PB-lanman2001.pdf>
212
213 Anyone have links to better doc on this?
214
215 ## <a name="Random Links"></a> Random Links
216
217 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)
218
219 ## <a name="Attachments"></a> Attachments