| 1 | <html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 12. Integrating Additional Services</title><link rel="stylesheet" href="../samba.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.74.0"><link rel="home" href="index.html" title="Samba-3 by Example"><link rel="up" href="RefSection.html" title="Part III. Reference Section"><link rel="prev" href="kerberos.html" title="Chapter 11. Active Directory, Kerberos, and Security"><link rel="next" href="HA.html" title="Chapter 13. Performance, Reliability, and Availability"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 12. Integrating Additional Services</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="kerberos.html">Prev</a> </td><th width="60%" align="center">Part III. Reference Section</th><td width="20%" align="right"> <a accesskey="n" href="HA.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="DomApps"></a>Chapter 12. Integrating Additional Services</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a href="DomApps.html#id2616020">Introduction</a></span></dt><dd><dl><dt><span class="sect2"><a href="DomApps.html#id2616051">Assignment Tasks</a></span></dt></dl></dd><dt><span class="sect1"><a href="DomApps.html#id2616160">Dissection and Discussion</a></span></dt><dd><dl><dt><span class="sect2"><a href="DomApps.html#id2616193">Technical Issues</a></span></dt><dt><span class="sect2"><a href="DomApps.html#id2616349">Political Issues</a></span></dt></dl></dd><dt><span class="sect1"><a href="DomApps.html#id2616373">Implementation</a></span></dt><dd><dl><dt><span class="sect2"><a href="DomApps.html#ch10-one">Removal of Pre-Existing Conflicting RPMs</a></span></dt><dt><span class="sect2"><a href="DomApps.html#id2618225">Key Points Learned</a></span></dt></dl></dd><dt><span class="sect1"><a href="DomApps.html#id2618286">Questions and Answers</a></span></dt></dl></div><p>
|
|---|
| 2 | <a class="indexterm" name="id2615971"></a>
|
|---|
| 3 | <a class="indexterm" name="id2615977"></a>
|
|---|
| 4 | <a class="indexterm" name="id2615984"></a>
|
|---|
| 5 | <a class="indexterm" name="id2615991"></a>
|
|---|
| 6 | <a class="indexterm" name="id2615998"></a>
|
|---|
| 7 | You've come a long way now. You have pretty much mastered Samba-3 for
|
|---|
| 8 | most uses it can be put to. Up until now, you have cast Samba-3 in the leading
|
|---|
| 9 | role, and where authentication was required, you have used one or another of
|
|---|
| 10 | Samba's many authentication backends (from flat text files with smbpasswd
|
|---|
| 11 | to LDAP directory integration with ldapsam). Now you can design a
|
|---|
| 12 | solution for a new Abmas business. This business is running Windows Server
|
|---|
| 13 | 2003 and Active Directory, and these are to stay. It's time to master
|
|---|
| 14 | implementing Samba and Samba-supported services in a domain controlled by
|
|---|
| 15 | the latest Windows authentication technologies. Let's get started this is
|
|---|
| 16 | leading edge.
|
|---|
| 17 | </p><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2616020"></a>Introduction</h2></div></div></div><p>
|
|---|
| 18 | Abmas has continued its miraculous growth; indeed, nothing seems to be able
|
|---|
| 19 | to stop its diversification into multiple (and seemingly unrelated) fields.
|
|---|
| 20 | Its latest acquisition is Abmas Snack Foods, a big player in the snack-food
|
|---|
| 21 | business.
|
|---|
| 22 | </p><p>
|
|---|
| 23 | With this acquisition comes new challenges for you and your team. Abmas Snack
|
|---|
| 24 | Foods is a well-developed business with a huge and heterogeneous network. It
|
|---|
| 25 | already has Windows, NetWare, and Proprietary UNIX, but as yet no Samba or Linux.
|
|---|
| 26 | The network is mature and well-established, and there is no question of its chosen
|
|---|
| 27 | user authentication scheme being changed for now. You need to take a wise new
|
|---|
| 28 | approach.
|
|---|
| 29 | </p><p>
|
|---|
| 30 | You have decided to set the ball rolling by introducing Samba-3 into the network
|
|---|
| 31 | gradually, taking over key services and easing the way to a full migration and,
|
|---|
| 32 | therefore, integration into Abmas's existing business later.
|
|---|
| 33 | </p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2616051"></a>Assignment Tasks</h3></div></div></div><p>
|
|---|
| 34 | <a class="indexterm" name="id2616059"></a>
|
|---|
| 35 | <a class="indexterm" name="id2616068"></a>
|
|---|
| 36 | You've promised the skeptical Abmas Snack Foods management team
|
|---|
| 37 | that you can show them how Samba can ease itself and other Open Source
|
|---|
| 38 | technologies into their existing infrastructure and deliver sound business
|
|---|
| 39 | advantages. Cost cutting is high on their agenda (a major promise of the
|
|---|
| 40 | acquisition). You have chosen Web proxying and caching as your proving ground.
|
|---|
| 41 | </p><p>
|
|---|
| 42 | <a class="indexterm" name="id2616086"></a>
|
|---|
| 43 | <a class="indexterm" name="id2616093"></a>
|
|---|
| 44 | Abmas Snack Foods has several thousand users housed at its head office
|
|---|
| 45 | and multiple regional offices, plants, and warehouses. A high proportion of
|
|---|
| 46 | the business's work is done online, so Internet access for most of these
|
|---|
| 47 | users is essential. All Internet access, including for all regional offices,
|
|---|
| 48 | is funneled through the head office and is the job of the (now your) networking
|
|---|
| 49 | team. The bandwidth requirements were horrific (comparable to a small ISP), and
|
|---|
| 50 | the team soon discovered proxying and caching. In fact, they became one of
|
|---|
| 51 | the earliest commercial users of Microsoft ISA.
|
|---|
| 52 | </p><p>
|
|---|
| 53 | <a class="indexterm" name="id2616114"></a>
|
|---|
| 54 | <a class="indexterm" name="id2616121"></a>
|
|---|
| 55 | <a class="indexterm" name="id2616128"></a>
|
|---|
| 56 | The team is not happy with ISA. Because it never lived up to its marketing promises,
|
|---|
| 57 | it underperformed and had reliability problems. You have pounced on the opportunity
|
|---|
| 58 | to show what Open Source can do. The one thing they do like, however, is ISA's
|
|---|
| 59 | integration with Active Directory. They like that their users, once logged on,
|
|---|
| 60 | are automatically authenticated against the proxy. If your alternative to ISA
|
|---|
| 61 | can operate completely seamlessly in their Active Directory domain, it will be
|
|---|
| 62 | approved.
|
|---|
| 63 | </p><p>
|
|---|
| 64 | This is a hands-on exercise. You build software applications so
|
|---|
| 65 | that you obtain the functionality Abmas needs.
|
|---|
| 66 | </p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2616160"></a>Dissection and Discussion</h2></div></div></div><p>
|
|---|
| 67 | The key requirements in this business example are straightforward. You are not required
|
|---|
| 68 | to do anything new, just to replicate an existing system, not lose any existing features,
|
|---|
| 69 | and improve performance. The key points are:
|
|---|
| 70 | </p><div class="itemizedlist"><ul type="disc"><li><p>
|
|---|
| 71 | Internet access for most employees
|
|---|
| 72 | </p></li><li><p>
|
|---|
| 73 | Distributed system to accommodate load and geographical distribution of users
|
|---|
| 74 | </p></li><li><p>
|
|---|
| 75 | Seamless and transparent interoperability with the existing Active Directory domain
|
|---|
| 76 | </p></li></ul></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2616193"></a>Technical Issues</h3></div></div></div><p>
|
|---|
| 77 | <a class="indexterm" name="id2616201"></a>
|
|---|
| 78 | <a class="indexterm" name="id2616208"></a>
|
|---|
| 79 | <a class="indexterm" name="id2616215"></a>
|
|---|
| 80 | <a class="indexterm" name="id2616221"></a>
|
|---|
| 81 | <a class="indexterm" name="id2616228"></a>
|
|---|
| 82 | <a class="indexterm" name="id2616235"></a>
|
|---|
| 83 | <a class="indexterm" name="id2616242"></a>
|
|---|
| 84 | <a class="indexterm" name="id2616249"></a>
|
|---|
| 85 | <a class="indexterm" name="id2616256"></a>
|
|---|
| 86 | <a class="indexterm" name="id2616263"></a>
|
|---|
| 87 | <a class="indexterm" name="id2616270"></a>
|
|---|
| 88 | <a class="indexterm" name="id2616277"></a>
|
|---|
| 89 | <a class="indexterm" name="id2616286"></a><a class="indexterm" name="id2616292"></a>
|
|---|
| 90 | Functionally, the user's Internet Explorer requests a browsing session with the
|
|---|
| 91 | Squid proxy, for which it offers its AD authentication token. Squid hands off
|
|---|
| 92 | the authentication request to the Samba-3 authentication helper application
|
|---|
| 93 | called <code class="literal">ntlm_auth</code>. This helper is a hook into winbind, the
|
|---|
| 94 | Samba-3 NTLM authentication daemon. Winbind enables UNIX services to authenticate
|
|---|
| 95 | against Microsoft Windows domains, including Active Directory domains. As Active
|
|---|
| 96 | Directory authentication is a modified Kerberos authentication, winbind is assisted
|
|---|
| 97 | in this by local Kerberos 5 libraries configured to check passwords with the Active
|
|---|
| 98 | Directory server. Once the token has been checked, a browsing session is established.
|
|---|
| 99 | This process is entirely transparent and seamless to the user.
|
|---|
| 100 | </p><p>
|
|---|
| 101 | Enabling this consists of:
|
|---|
| 102 | </p><div class="itemizedlist"><ul type="disc"><li><p>
|
|---|
| 103 | Preparing the necessary environment using preconfigured packages
|
|---|
| 104 | </p></li><li><p>
|
|---|
| 105 | Setting up raw Kerberos authentication against the Active Directory domain
|
|---|
| 106 | </p></li><li><p>
|
|---|
| 107 | Configuring, compiling, and then installing the supporting Samba-3 components
|
|---|
| 108 | </p></li><li><p>
|
|---|
| 109 | Tying it all together
|
|---|
| 110 | </p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2616349"></a>Political Issues</h3></div></div></div><p>
|
|---|
| 111 | You are a stranger in a strange land, and all eyes are upon you. Some would even like to see
|
|---|
| 112 | you fail. For you to gain the trust of your newly acquired IT people, it is essential that your
|
|---|
| 113 | solution does everything the old one did, but does it better in every way. Only then
|
|---|
| 114 | will the entrenched positions consider taking up your new way of doing things on a
|
|---|
| 115 | wider scale.
|
|---|
| 116 | </p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2616373"></a>Implementation</h2></div></div></div><p>
|
|---|
| 117 | <a class="indexterm" name="id2616381"></a>
|
|---|
| 118 | First, your system needs to be prepared and in a known good state to proceed. This consists
|
|---|
| 119 | of making sure that everything the system depends on is present and that everything that could
|
|---|
| 120 | interfere or conflict with the system is removed. You will be configuring the Squid and Samba-3
|
|---|
| 121 | packages and updating them if necessary. If conflicting packages of these programs are installed,
|
|---|
| 122 | they must be removed.
|
|---|
| 123 | </p><p>
|
|---|
| 124 | <a class="indexterm" name="id2616398"></a>
|
|---|
| 125 | The following packages should be available on your Red Hat Linux system:
|
|---|
| 126 | </p><div class="itemizedlist"><ul type="disc"><li><p>
|
|---|
| 127 | <a class="indexterm" name="id2616413"></a>
|
|---|
| 128 | <a class="indexterm" name="id2616420"></a>
|
|---|
| 129 | krb5-libs
|
|---|
| 130 | </p></li><li><p>
|
|---|
| 131 | krb5-devel
|
|---|
| 132 | </p></li><li><p>
|
|---|
| 133 | krb5-workstation
|
|---|
| 134 | </p></li><li><p>
|
|---|
| 135 | krb5-server
|
|---|
| 136 | </p></li><li><p>
|
|---|
| 137 | pam_krb5
|
|---|
| 138 | </p></li></ul></div><p>
|
|---|
| 139 | <a class="indexterm" name="id2616450"></a>
|
|---|
| 140 | In the case of SUSE Linux, these packages are called:
|
|---|
| 141 | </p><div class="itemizedlist"><ul type="disc"><li><p>
|
|---|
| 142 | heimdal-lib
|
|---|
| 143 | </p></li><li><p>
|
|---|
| 144 | heimdal-devel
|
|---|
| 145 | </p></li><li><p>
|
|---|
| 146 | <a class="indexterm" name="id2616475"></a>
|
|---|
| 147 | heimdal
|
|---|
| 148 | </p></li><li><p>
|
|---|
| 149 | pam_krb5
|
|---|
| 150 | </p></li></ul></div><p>
|
|---|
| 151 | If the required packages are not present on your system, you must install
|
|---|
| 152 | them from the vendor's installation media. Follow the administrative guide
|
|---|
| 153 | for your Linux system to ensure that the packages are correctly updated.
|
|---|
| 154 | </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
|
|---|
| 155 | <a class="indexterm" name="id2616500"></a>
|
|---|
| 156 | <a class="indexterm" name="id2616507"></a>
|
|---|
| 157 | <a class="indexterm" name="id2616514"></a>
|
|---|
| 158 | If the requirement is for interoperation with MS Windows Server 2003, it
|
|---|
| 159 | will be necessary to ensure that you are using MIT Kerberos version 1.3.1
|
|---|
| 160 | or later. Red Hat Linux 9 ships with MIT Kerberos 1.2.7 and thus requires
|
|---|
| 161 | updating.
|
|---|
| 162 | </p><p>
|
|---|
| 163 | <a class="indexterm" name="id2616528"></a>
|
|---|
| 164 | <a class="indexterm" name="id2616534"></a>
|
|---|
| 165 | Heimdal 0.6 or later is required in the case of SUSE Linux. SUSE Enterprise
|
|---|
| 166 | Linux Server 8 ships with Heimdal 0.4. SUSE 9 ships with the necessary version.
|
|---|
| 167 | </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="ch10-one"></a>Removal of Pre-Existing Conflicting RPMs</h3></div></div></div><p>
|
|---|
| 168 | <a class="indexterm" name="id2616557"></a>
|
|---|
| 169 | If Samba and/or Squid RPMs are installed, they should be updated. You can
|
|---|
| 170 | build both from source.
|
|---|
| 171 | </p><p>
|
|---|
| 172 | <a class="indexterm" name="id2616569"></a>
|
|---|
| 173 | <a class="indexterm" name="id2616576"></a>
|
|---|
| 174 | <a class="indexterm" name="id2616582"></a>
|
|---|
| 175 | Locating the packages to be un-installed can be achieved by running:
|
|---|
| 176 | </p><pre class="screen">
|
|---|
| 177 | <code class="prompt">root# </code> rpm -qa | grep -i samba
|
|---|
| 178 | <code class="prompt">root# </code> rpm -qa | grep -i squid
|
|---|
| 179 | </pre><p>
|
|---|
| 180 | The identified packages may be removed using:
|
|---|
| 181 | </p><pre class="screen">
|
|---|
| 182 | <code class="prompt">root# </code> rpm -e samba-common
|
|---|
| 183 | </pre><p>
|
|---|
| 184 | </p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2616622"></a>Kerberos Configuration</h3></div></div></div><p>
|
|---|
| 185 | <a class="indexterm" name="id2616630"></a>
|
|---|
| 186 | <a class="indexterm" name="id2616637"></a>
|
|---|
| 187 | <a class="indexterm" name="id2616647"></a>
|
|---|
| 188 | <a class="indexterm" name="id2616653"></a>
|
|---|
| 189 | The systems Kerberos installation must be configured to communicate with
|
|---|
| 190 | your primary Active Directory server (ADS KDC).
|
|---|
| 191 | </p><p>
|
|---|
| 192 | Strictly speaking, MIT Kerberos version 1.3.4 currently gives the best results,
|
|---|
| 193 | although the current default Red Hat MIT version 1.2.7 gives acceptable results
|
|---|
| 194 | unless you are using Windows 2003 servers.
|
|---|
| 195 | </p><p>
|
|---|
| 196 | <a class="indexterm" name="id2616672"></a>
|
|---|
| 197 | <a class="indexterm" name="id2616679"></a>
|
|---|
| 198 | <a class="indexterm" name="id2616686"></a>
|
|---|
| 199 | <a class="indexterm" name="id2616692"></a>
|
|---|
| 200 | <a class="indexterm" name="id2616699"></a>
|
|---|
| 201 | <a class="indexterm" name="id2616708"></a>
|
|---|
| 202 | <a class="indexterm" name="id2616715"></a>
|
|---|
| 203 | Officially, neither MIT (1.3.4) nor Heimdal (0.63) Kerberos needs an <code class="filename">/etc/krb5.conf</code>
|
|---|
| 204 | file in order to work correctly. All ADS domains automatically create SRV records in the
|
|---|
| 205 | DNS zone <code class="constant">Kerberos.REALM.NAME</code> for each KDC in the realm. Since both
|
|---|
| 206 | MIT and Heimdal, KRB5 libraries default to checking for these records, so they
|
|---|
| 207 | automatically find the KDCs. In addition, <code class="filename">krb5.conf</code> allows
|
|---|
| 208 | specifying only a single KDC, even if there is more than one. Using the DNS lookup
|
|---|
| 209 | allows the KRB5 libraries to use whichever KDCs are available.
|
|---|
| 210 | </p><div class="procedure"><a name="id2616749"></a><p class="title"><b>Procedure 12.1. Kerberos Configuration Steps</b></p><ol type="1"><li><p>
|
|---|
| 211 | <a class="indexterm" name="id2616760"></a>
|
|---|
| 212 | If you find the need to manually configure the <code class="filename">krb5.conf</code>, you should edit it
|
|---|
| 213 | to have the contents shown in <a class="link" href="DomApps.html#ch10-krb5conf" title="Example 12.1. Kerberos Configuration File: /etc/krb5.conf">“Kerberos Configuration File: /etc/krb5.conf”</a>. The final fully qualified path for this file
|
|---|
| 214 | should be <code class="filename">/etc/krb5.conf</code>.
|
|---|
| 215 | </p></li><li><p>
|
|---|
| 216 | <a class="indexterm" name="id2616795"></a>
|
|---|
| 217 | <a class="indexterm" name="id2616802"></a>
|
|---|
| 218 | <a class="indexterm" name="id2616809"></a>
|
|---|
| 219 | <a class="indexterm" name="id2616816"></a>
|
|---|
| 220 | <a class="indexterm" name="id2616822"></a>
|
|---|
| 221 | <a class="indexterm" name="id2616829"></a>
|
|---|
| 222 | <a class="indexterm" name="id2616836"></a>
|
|---|
| 223 | <a class="indexterm" name="id2616843"></a>
|
|---|
| 224 | <a class="indexterm" name="id2616850"></a>
|
|---|
| 225 | <a class="indexterm" name="id2616859"></a>
|
|---|
| 226 | <a class="indexterm" name="id2616866"></a>
|
|---|
| 227 | <a class="indexterm" name="id2616873"></a>
|
|---|
| 228 | <a class="indexterm" name="id2616880"></a>
|
|---|
| 229 | The following gotchas often catch people out. Kerberos is case sensitive. Your realm must
|
|---|
| 230 | be in UPPERCASE, or you will get an error: “<span class="quote">Cannot find KDC for requested realm while getting
|
|---|
| 231 | initial credentials</span>”. Kerberos is picky about time synchronization. The time
|
|---|
| 232 | according to your participating servers must be within 5 minutes or you get an error:
|
|---|
| 233 | “<span class="quote">kinit(v5): Clock skew too great while getting initial credentials</span>”.
|
|---|
| 234 | Clock skew limits are, in fact, configurable in the Kerberos protocols (the default is
|
|---|
| 235 | 5 minutes). A better solution is to implement NTP throughout your server network.
|
|---|
| 236 | Kerberos needs to be able to do a reverse DNS lookup on the IP address of your KDC.
|
|---|
| 237 | Also, the name that this reverse lookup maps to must either be the NetBIOS name of
|
|---|
| 238 | the KDC (i.e., the hostname with no domain attached) or the
|
|---|
| 239 | NetBIOS name followed by the realm. If all else fails, you can add a
|
|---|
| 240 | <code class="filename">/etc/hosts</code> entry mapping the IP address of your KDC to its
|
|---|
| 241 | NetBIOS name. If Kerberos cannot do this reverse lookup, you will get a local error
|
|---|
| 242 | when you try to join the realm.
|
|---|
| 243 | </p></li><li><p>
|
|---|
| 244 | <a class="indexterm" name="id2616924"></a>
|
|---|
| 245 | You are now ready to test your installation by issuing the command:
|
|---|
| 246 | </p><pre class="screen">
|
|---|
| 247 | <code class="prompt">root# </code> kinit [USERNAME@REALM]
|
|---|
| 248 | </pre><p>
|
|---|
| 249 | You are asked for your password, which you should enter. The following
|
|---|
| 250 | is a typical console sequence:
|
|---|
| 251 | </p><pre class="screen">
|
|---|
| 252 | <code class="prompt">root# </code> kinit ADMINISTRATOR@LONDON.ABMAS.BIZ
|
|---|
| 253 | Password for ADMINISTRATOR@LONDON.ABMAS.BIZ:
|
|---|
| 254 | </pre><p>
|
|---|
| 255 | Make sure that your password is accepted by the Active Directory KDC.
|
|---|
| 256 | </p></li></ol></div><div class="example"><a name="ch10-krb5conf"></a><p class="title"><b>Example 12.1. Kerberos Configuration File: <code class="filename">/etc/krb5.conf</code></b></p><div class="example-contents"><pre class="screen">
|
|---|
| 257 | [libdefaults]
|
|---|
| 258 | default_realm = LONDON.ABMAS.BIZ
|
|---|
| 259 |
|
|---|
| 260 | [realms]
|
|---|
| 261 | LONDON.ABMAS.BIZ = {
|
|---|
| 262 | kdc = w2k3s.london.abmas.biz
|
|---|
| 263 | }
|
|---|
| 264 | </pre></div></div><br class="example-break"><p><a class="indexterm" name="id2616989"></a>
|
|---|
| 265 | The command
|
|---|
| 266 | </p><pre class="screen">
|
|---|
| 267 | <code class="prompt">root# </code> klist -e
|
|---|
| 268 | </pre><p>
|
|---|
| 269 | shows the Kerberos tickets cached by the system.
|
|---|
| 270 | </p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2617012"></a>Samba Configuration</h4></div></div></div><p>
|
|---|
| 271 | <a class="indexterm" name="id2617020"></a>
|
|---|
| 272 | Samba must be configured to correctly use Active Directory. Samba-3 must be used, since it
|
|---|
| 273 | has the necessary components to interface with Active Directory.
|
|---|
| 274 | </p><div class="procedure"><a name="id2617030"></a><p class="title"><b>Procedure 12.2. Securing Samba-3 With ADS Support Steps</b></p><ol type="1"><li><p>
|
|---|
| 275 | <a class="indexterm" name="id2617042"></a>
|
|---|
| 276 | <a class="indexterm" name="id2617049"></a>
|
|---|
| 277 | <a class="indexterm" name="id2617056"></a>
|
|---|
| 278 | <a class="indexterm" name="id2617063"></a>
|
|---|
| 279 | <a class="indexterm" name="id2617070"></a>
|
|---|
| 280 | Download the latest stable Samba-3 for Red Hat Linux from the official Samba Team
|
|---|
| 281 | <a class="ulink" href="http://ftp.samba.org" target="_top">FTP site.</a> The official Samba Team
|
|---|
| 282 | RPMs for Red Hat Fedora Linux contain the <code class="literal">ntlm_auth</code> tool
|
|---|
| 283 | needed, and are linked against MIT KRB5 version 1.3.1 and therefore are ready for use.
|
|---|
| 284 | </p><p>
|
|---|
| 285 | <a class="indexterm" name="id2617096"></a>
|
|---|
| 286 | <a class="indexterm" name="id2617103"></a>
|
|---|
| 287 | The necessary, validated RPM packages for SUSE Linux may be obtained from
|
|---|
| 288 | the <a class="ulink" href="ftp://ftp.sernet.de/pub/samba" target="_top">SerNet</a> FTP site that
|
|---|
| 289 | is located in Germany. All SerNet RPMs are validated, have the necessary
|
|---|
| 290 | <code class="literal">ntlm_auth</code> tool, and are statically linked
|
|---|
| 291 | against suitably patched Heimdal 0.6 libraries.
|
|---|
| 292 | </p></li><li><p>
|
|---|
| 293 | Using your favorite editor, change the <code class="filename">/etc/samba/smb.conf</code>
|
|---|
| 294 | file so it has contents similar to the example shown in <a class="link" href="DomApps.html#ch10-smbconf" title="Example 12.2. Samba Configuration File: /etc/samba/smb.conf">“Samba Configuration File: /etc/samba/smb.conf”</a>.
|
|---|
| 295 | </p></li><li><p>
|
|---|
| 296 | <a class="indexterm" name="id2617154"></a>
|
|---|
| 297 | <a class="indexterm" name="id2617161"></a>
|
|---|
| 298 | <a class="indexterm" name="id2617168"></a>i
|
|---|
| 299 | <a class="indexterm" name="id2617179"></a>
|
|---|
| 300 | <a class="indexterm" name="id2617186"></a>
|
|---|
| 301 | Next you need to create a computer account in the Active Directory.
|
|---|
| 302 | This sets up the trust relationship needed for other clients to
|
|---|
| 303 | authenticate to the Samba server with an Active Directory Kerberos ticket.
|
|---|
| 304 | This is done with the “<span class="quote">net ads join -U [Administrator%Password]</span>”
|
|---|
| 305 | command, as follows:
|
|---|
| 306 | </p><pre class="screen">
|
|---|
| 307 | <code class="prompt">root# </code> net ads join -U administrator%vulcon
|
|---|
| 308 | </pre><p>
|
|---|
| 309 | </p></li><li><p>
|
|---|
| 310 | <a class="indexterm" name="id2617220"></a>
|
|---|
| 311 | <a class="indexterm" name="id2617227"></a>
|
|---|
| 312 | <a class="indexterm" name="id2617234"></a>
|
|---|
| 313 | <a class="indexterm" name="id2617240"></a>
|
|---|
| 314 | <a class="indexterm" name="id2617247"></a>
|
|---|
| 315 | Your new Samba binaries must be started in the standard manner as is applicable
|
|---|
| 316 | to the platform you are running on. Alternatively, start your Active Directory-enabled Samba with the following commands:
|
|---|
| 317 | </p><pre class="screen">
|
|---|
| 318 | <code class="prompt">root# </code> smbd -D
|
|---|
| 319 | <code class="prompt">root# </code> nmbd -D
|
|---|
| 320 | <code class="prompt">root# </code> winbindd -D
|
|---|
| 321 | </pre><p>
|
|---|
| 322 | </p></li><li><p>
|
|---|
| 323 | <a class="indexterm" name="id2617288"></a>
|
|---|
| 324 | <a class="indexterm" name="id2617295"></a>
|
|---|
| 325 | <a class="indexterm" name="id2617304"></a>
|
|---|
| 326 | <a class="indexterm" name="id2617311"></a>
|
|---|
| 327 | <a class="indexterm" name="id2617318"></a>
|
|---|
| 328 | We now need to test that Samba is communicating with the Active
|
|---|
| 329 | Directory domain; most specifically, we want to see whether winbind
|
|---|
| 330 | is enumerating users and groups. Issue the following commands:
|
|---|
| 331 | </p><pre class="screen">
|
|---|
| 332 | <code class="prompt">root# </code> wbinfo -t
|
|---|
| 333 | checking the trust secret via RPC calls succeeded
|
|---|
| 334 | </pre><p>
|
|---|
| 335 | This tests whether we are authenticating against Active Directory:
|
|---|
| 336 | </p><pre class="screen">
|
|---|
| 337 | <code class="prompt">root# </code> wbinfo -u
|
|---|
| 338 | LONDON+Administrator
|
|---|
| 339 | LONDON+Guest
|
|---|
| 340 | LONDON+SUPPORT_388945a0
|
|---|
| 341 | LONDON+krbtgt
|
|---|
| 342 | LONDON+jht
|
|---|
| 343 | LONDON+xjht
|
|---|
| 344 | </pre><p>
|
|---|
| 345 | This enumerates all the users in your Active Directory tree:
|
|---|
| 346 | </p><pre class="screen">
|
|---|
| 347 | <code class="prompt">root# </code> wbinfo -g
|
|---|
| 348 | LONDON+Domain Computers
|
|---|
| 349 | LONDON+Domain Controllers
|
|---|
| 350 | LONDON+Schema Admins
|
|---|
| 351 | LONDON+Enterprise Admins
|
|---|
| 352 | LONDON+Domain Admins
|
|---|
| 353 | LONDON+Domain Users
|
|---|
| 354 | LONDON+Domain Guests
|
|---|
| 355 | LONDON+Group Policy Creator Owners
|
|---|
| 356 | LONDON+DnsUpdateProxy
|
|---|
| 357 | </pre><p>
|
|---|
| 358 | This enumerates all the groups in your Active Directory tree.
|
|---|
| 359 | </p></li><li><p>
|
|---|
| 360 | <a class="indexterm" name="id2617382"></a>
|
|---|
| 361 | <a class="indexterm" name="id2617389"></a>
|
|---|
| 362 | Squid uses the <code class="literal">ntlm_auth</code> helper build with Samba-3.
|
|---|
| 363 | You may test <code class="literal">ntlm_auth</code> with the command:
|
|---|
| 364 | </p><pre class="screen">
|
|---|
| 365 | <code class="prompt">root# </code> /usr/bin/ntlm_auth --username=jht
|
|---|
| 366 | password: XXXXXXXX
|
|---|
| 367 | </pre><p>
|
|---|
| 368 | You are asked for your password, which you should enter. You are rewarded with:
|
|---|
| 369 | </p><pre class="screen">
|
|---|
| 370 | <code class="prompt">root# </code> NT_STATUS_OK: Success (0x0)
|
|---|
| 371 | </pre><p>
|
|---|
| 372 | </p></li><li><p>
|
|---|
| 373 | <a class="indexterm" name="id2617441"></a>
|
|---|
| 374 | <a class="indexterm" name="id2617448"></a>
|
|---|
| 375 | <a class="indexterm" name="id2617455"></a>
|
|---|
| 376 | <a class="indexterm" name="id2617462"></a>
|
|---|
| 377 | <a class="indexterm" name="id2617468"></a>
|
|---|
| 378 | <a class="indexterm" name="id2617475"></a>
|
|---|
| 379 | <a class="indexterm" name="id2617482"></a>
|
|---|
| 380 | <a class="indexterm" name="id2617489"></a>
|
|---|
| 381 | The <code class="literal">ntlm_auth</code> helper, when run from a command line as the user
|
|---|
| 382 | “<span class="quote">root</span>”, authenticates against your Active Directory domain (with
|
|---|
| 383 | the aid of winbind). It manages this by reading from the winbind privileged pipe.
|
|---|
| 384 | Squid is running with the permissions of user “<span class="quote">squid</span>” and group
|
|---|
| 385 | “<span class="quote">squid</span>” and is not able to do this unless we make a vital change.
|
|---|
| 386 | Squid cannot read from the winbind privilege pipe unless you change the
|
|---|
| 387 | permissions of its directory. This is the single biggest cause of failure in the
|
|---|
| 388 | whole process. Remember to issue the following command (for Red Hat Linux):
|
|---|
| 389 | </p><pre class="screen">
|
|---|
| 390 | <code class="prompt">root# </code> chgrp squid /var/cache/samba/winbindd_privileged
|
|---|
| 391 | <code class="prompt">root# </code> chmod 750 /var/cache/samba/winbindd_privileged
|
|---|
| 392 | </pre><p>
|
|---|
| 393 | For SUSE Linux 9, execute the following:
|
|---|
| 394 | </p><pre class="screen">
|
|---|
| 395 | <code class="prompt">root# </code> chgrp squid /var/lib/samba/winbindd_privileged
|
|---|
| 396 | <code class="prompt">root# </code> chmod 750 /var/lib/samba/winbindd_privileged
|
|---|
| 397 | </pre><p>
|
|---|
| 398 | </p></li></ol></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2617564"></a>NSS Configuration</h4></div></div></div><p>
|
|---|
| 399 | <a class="indexterm" name="id2617572"></a>
|
|---|
| 400 | <a class="indexterm" name="id2617578"></a>
|
|---|
| 401 | <a class="indexterm" name="id2617585"></a>
|
|---|
| 402 | For Squid to benefit from Samba-3, NSS must be updated to allow winbind as a valid route to user authentication.
|
|---|
| 403 | </p><p>
|
|---|
| 404 | Edit your <code class="filename">/etc/nsswitch.conf</code> file so it has the parameters shown
|
|---|
| 405 | in <a class="link" href="DomApps.html#ch10-etcnsscfg" title="Example 12.3. NSS Configuration File Extract File: /etc/nsswitch.conf">“NSS Configuration File Extract File: /etc/nsswitch.conf”</a>.
|
|---|
| 406 | </p><div class="example"><a name="ch10-smbconf"></a><p class="title"><b>Example 12.2. Samba Configuration File: <code class="filename">/etc/samba/smb.conf</code></b></p><div class="example-contents"><table class="simplelist" border="0" summary="Simple list"><tr><td> </td></tr><tr><td><em class="parameter"><code>[global]</code></em></td></tr><tr><td><a class="indexterm" name="id2617643"></a><em class="parameter"><code>workgroup = LONDON</code></em></td></tr><tr><td><a class="indexterm" name="id2617655"></a><em class="parameter"><code>netbios name = W2K3S</code></em></td></tr><tr><td><a class="indexterm" name="id2617667"></a><em class="parameter"><code>realm = LONDON.ABMAS.BIZ</code></em></td></tr><tr><td><a class="indexterm" name="id2617679"></a><em class="parameter"><code>security = ads</code></em></td></tr><tr><td><a class="indexterm" name="id2617690"></a><em class="parameter"><code>encrypt passwords = yes</code></em></td></tr><tr><td><a class="indexterm" name="id2617702"></a><em class="parameter"><code>password server = w2k3s.london.abmas.biz</code></em></td></tr><tr><td># separate domain and username with '/', like DOMAIN/username</td></tr><tr><td><a class="indexterm" name="id2617719"></a><em class="parameter"><code>winbind separator = /</code></em></td></tr><tr><td># use UIDs from 10000 to 20000 for domain users</td></tr><tr><td><a class="indexterm" name="id2617735"></a><em class="parameter"><code>idmap uid = 10000-20000</code></em></td></tr><tr><td># use GIDs from 10000 to 20000 for domain groups</td></tr><tr><td><a class="indexterm" name="id2617750"></a><em class="parameter"><code>idmap gid = 10000-20000</code></em></td></tr><tr><td># allow enumeration of winbind users and groups</td></tr><tr><td><a class="indexterm" name="id2617766"></a><em class="parameter"><code>winbind enum users = yes</code></em></td></tr><tr><td><a class="indexterm" name="id2617778"></a><em class="parameter"><code>winbind enum groups = yes</code></em></td></tr><tr><td><a class="indexterm" name="id2617790"></a><em class="parameter"><code>winbind user default domain = yes</code></em></td></tr></table></div></div><br class="example-break"><div class="example"><a name="ch10-etcnsscfg"></a><p class="title"><b>Example 12.3. NSS Configuration File Extract File: <code class="filename">/etc/nsswitch.conf</code></b></p><div class="example-contents"><pre class="screen">
|
|---|
| 407 | passwd: files winbind
|
|---|
| 408 | shadow: files
|
|---|
| 409 | group: files winbind
|
|---|
| 410 | </pre></div></div><br class="example-break"></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2617829"></a>Squid Configuration</h4></div></div></div><p>
|
|---|
| 411 | <a class="indexterm" name="id2617837"></a>
|
|---|
| 412 | <a class="indexterm" name="id2617844"></a>
|
|---|
| 413 | Squid must be configured correctly to interact with the Samba-3
|
|---|
| 414 | components that handle Active Directory authentication.
|
|---|
| 415 | </p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2617859"></a>Configuration</h3></div></div></div></div><div class="procedure"><a name="id2617864"></a><p class="title"><b>Procedure 12.3. Squid Configuration Steps</b></p><ol type="1"><li><p>
|
|---|
| 416 | <a class="indexterm" name="id2617876"></a>
|
|---|
| 417 | <a class="indexterm" name="id2617882"></a>
|
|---|
| 418 | <a class="indexterm" name="id2617890"></a>
|
|---|
| 419 | If your Linux distribution is SUSE Linux 9, the version of Squid
|
|---|
| 420 | supplied is already enabled to use the winbind helper agent. You
|
|---|
| 421 | can therefore omit the steps that would build the Squid binary
|
|---|
| 422 | programs.
|
|---|
| 423 | </p></li><li><p>
|
|---|
| 424 | <a class="indexterm" name="id2617908"></a>
|
|---|
| 425 | <a class="indexterm" name="id2617914"></a>
|
|---|
| 426 | <a class="indexterm" name="id2617921"></a>
|
|---|
| 427 | <a class="indexterm" name="id2617928"></a>
|
|---|
| 428 | <a class="indexterm" name="id2617935"></a>
|
|---|
| 429 | Squid, by default, runs as the user <code class="constant">nobody</code>. You need to
|
|---|
| 430 | add a system user <code class="constant">squid</code> and a system group
|
|---|
| 431 | <code class="constant">squid</code> if they are not set up already (if the default
|
|---|
| 432 | Red Hat squid rpms were installed, they will be). Set up a
|
|---|
| 433 | <code class="constant">squid</code> user in <code class="filename">/etc/passwd</code>
|
|---|
| 434 | and a <code class="constant">squid</code> group in <code class="filename">/etc/group</code> if these aren't there already.
|
|---|
| 435 | </p></li><li><p>
|
|---|
| 436 | <a class="indexterm" name="id2617982"></a>
|
|---|
| 437 | <a class="indexterm" name="id2617989"></a>
|
|---|
| 438 | You now need to change the permissions on Squid's <code class="constant">var</code>
|
|---|
| 439 | directory. Enter the following command:
|
|---|
| 440 | </p><pre class="screen">
|
|---|
| 441 | <code class="prompt">root# </code> chown -R squid /var/cache/squid
|
|---|
| 442 | </pre><p>
|
|---|
| 443 | </p></li><li><p>
|
|---|
| 444 | <a class="indexterm" name="id2618020"></a>
|
|---|
| 445 | <a class="indexterm" name="id2618027"></a>
|
|---|
| 446 | Squid must also have control over its logging. Enter the following commands:
|
|---|
| 447 | </p><pre class="screen">
|
|---|
| 448 | <code class="prompt">root# </code> chown -R chown squid:squid /var/log/squid
|
|---|
| 449 | <code class="prompt">root# </code> chmod 770 /var/log/squid
|
|---|
| 450 | </pre><p>
|
|---|
| 451 | </p></li><li><p>
|
|---|
| 452 | Finally, Squid must be able to write to its disk cache!
|
|---|
| 453 | Enter the following commands:
|
|---|
| 454 | </p><pre class="screen">
|
|---|
| 455 | <code class="prompt">root# </code> chown -R chown squid:squid /var/cache/squid
|
|---|
| 456 | <code class="prompt">root# </code> chmod 770 /var/cache/squid
|
|---|
| 457 | </pre><p>
|
|---|
| 458 | </p></li><li><p>
|
|---|
| 459 | <a class="indexterm" name="id2618087"></a>
|
|---|
| 460 | The <code class="filename">/etc/squid/squid.conf</code> file must be edited to include the lines from
|
|---|
| 461 | <a class="link" href="DomApps.html#etcsquidcfg" title="Example 12.4. Squid Configuration File Extract /etc/squid.conf [ADMINISTRATIVE PARAMETERS Section]">“Squid Configuration File Extract /etc/squid.conf [ADMINISTRATIVE PARAMETERS Section]”</a> and <a class="link" href="DomApps.html#etcsquid2" title="Example 12.5. Squid Configuration File extract File: /etc/squid.conf [AUTHENTICATION PARAMETERS Section]">“Squid Configuration File extract File: /etc/squid.conf [AUTHENTICATION PARAMETERS Section]”</a>.
|
|---|
| 462 | </p></li><li><p>
|
|---|
| 463 | <a class="indexterm" name="id2618121"></a>
|
|---|
| 464 | You must create Squid's cache directories before it may be run. Enter the following command:
|
|---|
| 465 | </p><pre class="screen">
|
|---|
| 466 | <code class="prompt">root# </code> squid -z
|
|---|
| 467 | </pre><p>
|
|---|
| 468 | </p></li><li><p>
|
|---|
| 469 | Finally, start Squid and enjoy transparent Active Directory authentication.
|
|---|
| 470 | Enter the following command:
|
|---|
| 471 | </p><pre class="screen">
|
|---|
| 472 | <code class="prompt">root# </code> squid
|
|---|
| 473 | </pre><p>
|
|---|
| 474 | </p></li></ol></div><div class="example"><a name="etcsquidcfg"></a><p class="title"><b>Example 12.4. Squid Configuration File Extract <code class="filename">/etc/squid.conf</code> [ADMINISTRATIVE PARAMETERS Section]</b></p><div class="example-contents"><pre class="screen">
|
|---|
| 475 | cache_effective_user squid
|
|---|
| 476 | cache_effective_group squid
|
|---|
| 477 | </pre></div></div><br class="example-break"><div class="example"><a name="etcsquid2"></a><p class="title"><b>Example 12.5. Squid Configuration File extract File: <code class="filename">/etc/squid.conf</code> [AUTHENTICATION PARAMETERS Section]</b></p><div class="example-contents"><pre class="screen">
|
|---|
| 478 | auth_param ntlm program /usr/bin/ntlm_auth \
|
|---|
| 479 | --helper-protocol=squid-2.5-ntlmssp
|
|---|
| 480 | auth_param ntlm children 5
|
|---|
| 481 | auth_param ntlm max_challenge_reuses 0
|
|---|
| 482 | auth_param ntlm max_challenge_lifetime 2 minutes
|
|---|
| 483 | auth_param basic program /usr/bin/ntlm_auth \
|
|---|
| 484 | --helper-protocol=squid-2.5-basic
|
|---|
| 485 | auth_param basic children 5
|
|---|
| 486 | auth_param basic realm Squid proxy-caching web server
|
|---|
| 487 | auth_param basic credentialsttl 2 hours
|
|---|
| 488 | acl AuthorizedUsers proxy_auth REQUIRED
|
|---|
| 489 | http_access allow all AuthorizedUsers
|
|---|
| 490 | </pre></div></div><br class="example-break"></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2618225"></a>Key Points Learned</h3></div></div></div><p>
|
|---|
| 491 | <a class="indexterm" name="id2618233"></a>
|
|---|
| 492 | <a class="indexterm" name="id2618240"></a>
|
|---|
| 493 | <a class="indexterm" name="id2618247"></a>
|
|---|
| 494 | <a class="indexterm" name="id2618254"></a>
|
|---|
| 495 | <a class="indexterm" name="id2618266"></a>
|
|---|
| 496 | Microsoft Windows networking protocols permeate the spectrum of technologies that Microsoft
|
|---|
| 497 | Windows clients use, even when accessing traditional services such as Web browsers. Depending
|
|---|
| 498 | on whom you discuss this with, this is either good or bad. No matter how you might evaluate this,
|
|---|
| 499 | the use of NTLMSSP as the authentication protocol for Web proxy access has some advantages over
|
|---|
| 500 | the cookie-based authentication regime used by all competing browsers. It is Samba's implementation
|
|---|
| 501 | of NTLMSSP that makes it attractive to implement the solution that has been demonstrated in this chapter.
|
|---|
| 502 | </p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2618286"></a>Questions and Answers</h2></div></div></div><p>
|
|---|
| 503 | <a class="indexterm" name="id2618294"></a>
|
|---|
| 504 | <a class="indexterm" name="id2618301"></a>
|
|---|
| 505 | <a class="indexterm" name="id2618308"></a>
|
|---|
| 506 | <a class="indexterm" name="id2618314"></a>
|
|---|
| 507 | The development of the <code class="literal">ntlm_auth</code> module was first discussed in many Open Source circles
|
|---|
| 508 | in 2002. At the SambaXP conference in Goettingen, Germany, Mr. Francesco Chemolli demonstrated the use of
|
|---|
| 509 | <code class="literal">ntlm_auth</code> during one of the late developer meetings that took place. Since that time, the
|
|---|
| 510 | adoption of <code class="literal">ntlm_auth</code> has spread considerably.
|
|---|
| 511 | </p><p>
|
|---|
| 512 | The largest report from a site that uses Squid with <code class="literal">ntlm_auth</code>-based authentication
|
|---|
| 513 | support uses a dual processor server that has 2 GB of memory. It provides Web and FTP proxy services for 10,000
|
|---|
| 514 | users. Approximately 2,000 of these users make heavy use of the proxy services. According to the source, who
|
|---|
| 515 | wishes to remain anonymous, the sustained transaction load on this server hovers around 140 hits/sec. The following
|
|---|
| 516 | comments were made with respect to questions regarding the performance of this installation:
|
|---|
| 517 | </p><div class="blockquote"><blockquote class="blockquote"><p>
|
|---|
| 518 | [In our] EXTREMELY optimized environment . . . [the] performance impact is almost [nothing]. The “<span class="quote">almost</span>”
|
|---|
| 519 | part is due to the brain damage of the ntlm-over-http protocol definition. Suffice to say that its worst-case
|
|---|
| 520 | scenario triples the number of hits needed to perform the same transactions versus basic or digest auth[entication].
|
|---|
| 521 | </p></blockquote></div><p>
|
|---|
| 522 | You would be well-advised to recognize that all cache-intensive proxying solutions demand a lot of memory.
|
|---|
| 523 | Make certain that your Squid proxy server is equipped with sufficient memory to permit all proxy operations to run
|
|---|
| 524 | out of memory without invoking the overheads involved in the use of memory that has to be swapped to disk.
|
|---|
| 525 | </p><div class="qandaset"><dl><dt> <a href="DomApps.html#id2618392">
|
|---|
| 526 | What does Samba have to do with Web proxy serving?
|
|---|
| 527 | </a></dt><dt> <a href="DomApps.html#id2618558">
|
|---|
| 528 | What other services does Samba provide?
|
|---|
| 529 | </a></dt><dt> <a href="DomApps.html#id2618701">
|
|---|
| 530 | Does use of Samba (ntlm_auth) improve the performance of Squid?
|
|---|
| 531 | </a></dt></dl><table border="0" summary="Q and A Set"><col align="left" width="1%"><tbody><tr class="question"><td align="left" valign="top"><a name="id2618392"></a><a name="id2618394"></a></td><td align="left" valign="top"><p>
|
|---|
| 532 | What does Samba have to do with Web proxy serving?
|
|---|
| 533 | </p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>
|
|---|
| 534 | <a class="indexterm" name="id2618406"></a>
|
|---|
| 535 | <a class="indexterm" name="id2618413"></a>
|
|---|
| 536 | <a class="indexterm" name="id2618420"></a>
|
|---|
| 537 | <a class="indexterm" name="id2618429"></a>
|
|---|
| 538 | <a class="indexterm" name="id2618436"></a>
|
|---|
| 539 | To provide transparent interoperability between Windows clients and the network services
|
|---|
| 540 | that are used from them, Samba had to develop tools and facilities that deliver that feature. The benefit
|
|---|
| 541 | of Open Source software is that it can readily be reused. The current <code class="literal">ntlm_auth</code>
|
|---|
| 542 | module is basically a wrapper around authentication code from the core of the Samba project.
|
|---|
| 543 | </p><p>
|
|---|
| 544 | <a class="indexterm" name="id2618458"></a>
|
|---|
| 545 | <a class="indexterm" name="id2618465"></a>
|
|---|
| 546 | <a class="indexterm" name="id2618474"></a>
|
|---|
| 547 | <a class="indexterm" name="id2618483"></a>
|
|---|
| 548 | <a class="indexterm" name="id2618492"></a>
|
|---|
| 549 | <a class="indexterm" name="id2618499"></a>
|
|---|
| 550 | <a class="indexterm" name="id2618506"></a>
|
|---|
| 551 | <a class="indexterm" name="id2618513"></a>
|
|---|
| 552 | <a class="indexterm" name="id2618520"></a>
|
|---|
| 553 | The <code class="literal">ntlm_auth</code> module supports basic plain-text authentication and NTLMSSP
|
|---|
| 554 | protocols. This module makes it possible for Web and FTP proxy requests to be authenticated without
|
|---|
| 555 | the user being interrupted via his or her Windows logon credentials. This facility is available with
|
|---|
| 556 | MS Windows Explorer and is one of the key benefits claimed for Microsoft Internet Information Server.
|
|---|
| 557 | There are a few open source initiatives to provide support for these protocols in the Apache Web server
|
|---|
| 558 | also.
|
|---|
| 559 | </p><p>
|
|---|
| 560 | <a class="indexterm" name="id2618544"></a>
|
|---|
| 561 | The short answer is that by adding a wrapper around key authentication components of Samba, other
|
|---|
| 562 | projects (like Squid) can benefit from the labors expended in meeting user interoperability needs.
|
|---|
| 563 | </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2618558"></a><a name="id2618560"></a></td><td align="left" valign="top"><p>
|
|---|
| 564 | What other services does Samba provide?
|
|---|
| 565 | </p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>
|
|---|
| 566 | <a class="indexterm" name="id2618572"></a>
|
|---|
| 567 | <a class="indexterm" name="id2618579"></a>
|
|---|
| 568 | <a class="indexterm" name="id2618586"></a>
|
|---|
| 569 | <a class="indexterm" name="id2618592"></a>
|
|---|
| 570 | <a class="indexterm" name="id2618599"></a>
|
|---|
| 571 | Samba-3 is a file and print server. The core components that provide this functionality are <code class="literal">smbd</code>,
|
|---|
| 572 | <code class="literal">nmbd</code>, and the identity resolver daemon, <code class="literal">winbindd</code>.
|
|---|
| 573 | </p><p>
|
|---|
| 574 | <a class="indexterm" name="id2618630"></a>
|
|---|
| 575 | <a class="indexterm" name="id2618636"></a>
|
|---|
| 576 | Samba-3 is an SMB/CIFS client. The core component that provides this is called <code class="literal">smbclient</code>.
|
|---|
| 577 | </p><p>
|
|---|
| 578 | <a class="indexterm" name="id2618654"></a>
|
|---|
| 579 | <a class="indexterm" name="id2618661"></a>
|
|---|
| 580 | <a class="indexterm" name="id2618668"></a>
|
|---|
| 581 | <a class="indexterm" name="id2618674"></a>
|
|---|
| 582 | <a class="indexterm" name="id2618681"></a>
|
|---|
| 583 | Samba-3 includes a number of helper tools, plug-in modules, utilities, and test and validation facilities.
|
|---|
| 584 | Samba-3 includes glue modules that help provide interoperability between MS Windows clients and UNIX/Linux
|
|---|
| 585 | servers and clients. It includes Winbind agents that make it possible to authenticate UNIX/Linux access attempts
|
|---|
| 586 | as well as logins to an SMB/CIFS authentication server backend. Samba-3 includes name service switch (NSS) modules
|
|---|
| 587 | to permit identity resolution via SMB/CIFS servers (Windows NT4/200x, Samba, and a host of other commercial
|
|---|
| 588 | server products).
|
|---|
| 589 | </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id2618701"></a><a name="id2618703"></a></td><td align="left" valign="top"><p>
|
|---|
| 590 | Does use of Samba (<code class="literal">ntlm_auth</code>) improve the performance of Squid?
|
|---|
| 591 | </p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>
|
|---|
| 592 | Not really. Samba's <code class="literal">ntlm_auth</code> module handles only authentication. It requires that
|
|---|
| 593 | Squid make an external call to <code class="literal">ntlm_auth</code> and therefore actually incurs a
|
|---|
| 594 | little more overhead. Compared with the benefit obtained, that overhead is well worth enduring. Since
|
|---|
| 595 | Squid is a proxy server, and proxy servers tend to require lots of memory, it is good advice to provide
|
|---|
| 596 | sufficient memory when using Squid. Just add a little more to accommodate <code class="literal">ntlm_auth</code>.
|
|---|
| 597 | </p></td></tr></tbody></table></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="kerberos.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="RefSection.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="HA.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 11. Active Directory, Kerberos, and Security </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 13. Performance, Reliability, and Availability</td></tr></table></div></body></html>
|
|---|