[217] | 1 | <?xml version="1.0" encoding="iso-8859-1"?>
|
---|
| 2 | <!DOCTYPE chapter PUBLIC "-//Samba-Team//DTD DocBook V4.2-Based Variant V1.0//EN" "http://www.samba.org/samba/DTD/samba-doc">
|
---|
| 3 | <chapter id="happy">
|
---|
| 4 | <title>Making Happy Users</title>
|
---|
| 5 |
|
---|
| 6 | <para>
|
---|
| 7 | It is said that <quote>a day that is without troubles is not fulfilling. Rather, give
|
---|
| 8 | me a day of troubles well handled so that I can be content with my achievements.</quote>
|
---|
| 9 | </para>
|
---|
| 10 |
|
---|
| 11 | <para>
|
---|
| 12 | In the world of computer networks, problems are as varied as the people who create them
|
---|
| 13 | or experience them. The design of the network implemented in <link linkend="Big500users"/>
|
---|
| 14 | may create problems for some network users. The following lists some of the problems that
|
---|
| 15 | may occur:
|
---|
| 16 | </para>
|
---|
| 17 |
|
---|
| 18 | <indexterm><primary>PDC</primary></indexterm>
|
---|
| 19 | <indexterm><primary>network bandwidth</primary><secondary>utilization</secondary></indexterm>
|
---|
| 20 | <indexterm><primary>BDC</primary></indexterm>
|
---|
| 21 | <indexterm><primary>user account</primary></indexterm>
|
---|
| 22 | <indexterm><primary>PDC/BDC ratio</primary></indexterm>
|
---|
| 23 | <caution><para>
|
---|
| 24 | A significant number of network administrators have responded to the guidance given
|
---|
| 25 | here. It should be noted that there are sites that have a single PDC for many hundreds of
|
---|
| 26 | concurrent network clients. Network bandwidth, network bandwidth utilization, and server load
|
---|
| 27 | are among the factors that determine the maximum number of Windows clients that
|
---|
| 28 | can be served by a single domain controller (PDC or BDC) on a network segment. It is possible
|
---|
| 29 | to operate with only a single PDC over a routed network. What is possible is not necessarily
|
---|
| 30 | <emphasis>best practice</emphasis>. When Windows client network logons begin to fail with
|
---|
| 31 | the message that the domain controller cannot be found or that the user account cannot
|
---|
| 32 | be found (when you know it exists), that may be an indication that the domain controller is
|
---|
| 33 | overloaded or network bandwidth is overloaded. The guidance given for PDC/BDC ratio to Windows
|
---|
| 34 | clients is conservative and if followed will minimize problems &smbmdash; but it is not absolute.
|
---|
| 35 | </para></caution>
|
---|
| 36 |
|
---|
| 37 | <variablelist>
|
---|
| 38 | <varlistentry>
|
---|
| 39 | <term>Users experiencing difficulty logging onto the network</term>
|
---|
| 40 | <listitem><para>
|
---|
| 41 | <indexterm><primary>network</primary><secondary>logon</secondary></indexterm>
|
---|
| 42 | <indexterm><primary>multiple domain controllers</primary></indexterm>
|
---|
| 43 | When a Windows client logs onto the network, many data packets are exchanged
|
---|
| 44 | between the client and the server that is providing the network logon services.
|
---|
| 45 | Each request between the client and the server must complete within a specific
|
---|
| 46 | time limit. This is one of the primary factors that govern the installation of
|
---|
| 47 | multiple domain controllers (usually called secondary or backup controllers).
|
---|
| 48 | As a rough rule, there should be one such backup controller for every
|
---|
| 49 | 30 to 150 clients. The actual limits are determined by network operational
|
---|
| 50 | characteristics.
|
---|
| 51 | </para>
|
---|
| 52 |
|
---|
| 53 | <para>
|
---|
| 54 | <indexterm><primary>PDC</primary></indexterm>
|
---|
| 55 | <indexterm><primary>BDC</primary></indexterm>
|
---|
| 56 | <indexterm><primary>clients per DC</primary></indexterm>
|
---|
| 57 | If the domain controller provides only network logon services
|
---|
| 58 | and all file and print activity is handled by domain member servers, one domain
|
---|
| 59 | controller per 150 clients on a single network segment may suffice. In any
|
---|
| 60 | case, it is highly recommended to have a minimum of one domain controller (PDC or BDC)
|
---|
| 61 | per network segment. It is better to have at least one BDC on the network
|
---|
| 62 | segment that has a PDC. If the domain controller is also used as a file and
|
---|
| 63 | print server, the number of clients it can service reliably is reduced,
|
---|
| 64 | and generally for low powered hardware should not exceed 30 machines (Windows
|
---|
| 65 | workstations plus domain member servers) per domain controller. Many sites are
|
---|
| 66 | able to operate with more clients per domain controller, the number of clients
|
---|
| 67 | that can be supported is limited by the CPU speed, memory and the workload on
|
---|
| 68 | the Samba server as well as network bandwidth utilization.
|
---|
| 69 | </para></listitem>
|
---|
| 70 | </varlistentry>
|
---|
| 71 |
|
---|
| 72 | <varlistentry>
|
---|
| 73 | <term>Slow logons and log-offs</term>
|
---|
| 74 | <listitem><para>
|
---|
| 75 | <indexterm><primary>slow logon</primary></indexterm>
|
---|
| 76 | Slow logons and log-offs may be caused by many factors that include:
|
---|
| 77 |
|
---|
| 78 | <itemizedlist>
|
---|
| 79 | <listitem><para>
|
---|
| 80 | <indexterm><primary>NetBIOS</primary><secondary>name resolution</secondary><tertiary>delays</tertiary></indexterm>
|
---|
| 81 | <indexterm><primary>WINS</primary><secondary>server</secondary></indexterm>
|
---|
| 82 | Excessive delays in the resolution of a NetBIOS name to its IP
|
---|
| 83 | address. This may be observed when an overloaded domain controller
|
---|
| 84 | is also the WINS server. Another cause may be the failure to use
|
---|
| 85 | a WINS server (this assumes that there is a single network segment).
|
---|
| 86 | </para></listitem>
|
---|
| 87 |
|
---|
| 88 | <listitem><para>
|
---|
| 89 | <indexterm><primary>traffic collisions</primary></indexterm>
|
---|
| 90 | <indexterm><primary>HUB</primary></indexterm>
|
---|
| 91 | <indexterm><primary>ethernet switch</primary></indexterm>
|
---|
| 92 | Network traffic collisions due to overloading of the network
|
---|
| 93 | segment. One short-term workaround to this may be to replace
|
---|
| 94 | network HUBs with Ethernet switches.
|
---|
| 95 | </para></listitem>
|
---|
| 96 |
|
---|
| 97 | <listitem><para>
|
---|
| 98 | <indexterm><primary>networking hardware</primary><secondary>defective</secondary></indexterm>
|
---|
| 99 | Defective networking hardware. Over the past few years, we have seen
|
---|
| 100 | on the Samba mailing list a significant increase in the number of
|
---|
| 101 | problems that were traced to a defective network interface controller,
|
---|
| 102 | a defective HUB or Ethernet switch, or defective cabling. In most cases,
|
---|
| 103 | it was the erratic nature of the problem that ultimately pointed to
|
---|
| 104 | the cause of the problem.
|
---|
| 105 | </para></listitem>
|
---|
| 106 |
|
---|
| 107 | <listitem><para>
|
---|
| 108 | <indexterm><primary>profile</primary><secondary>roaming</secondary></indexterm>
|
---|
| 109 | <indexterm><primary>MS Outlook</primary><secondary>PST file</secondary></indexterm>
|
---|
| 110 | Excessively large roaming profiles. This type of problem is typically
|
---|
| 111 | the result of poor user education as well as poor network management.
|
---|
| 112 | It can be avoided by users not storing huge quantities of email in
|
---|
| 113 | MS Outlook PST files as well as by not storing files on the desktop.
|
---|
| 114 | These are old bad habits that require much discipline and vigilance
|
---|
| 115 | on the part of network management.
|
---|
| 116 | </para></listitem>
|
---|
| 117 |
|
---|
| 118 | <listitem><para>
|
---|
| 119 | <indexterm><primary>WebClient</primary></indexterm>
|
---|
| 120 | You should verify that the Windows XP WebClient service is not running.
|
---|
| 121 | The use of the WebClient service has been implicated in many Windows
|
---|
| 122 | networking-related problems.
|
---|
| 123 | </para></listitem>
|
---|
| 124 | </itemizedlist>
|
---|
| 125 | </para></listitem>
|
---|
| 126 | </varlistentry>
|
---|
| 127 |
|
---|
| 128 | <varlistentry>
|
---|
| 129 | <term>Loss of access to network drives and printer resources</term>
|
---|
| 130 | <listitem><para>
|
---|
| 131 | Loss of access to network resources during client operation may be caused by a number
|
---|
| 132 | of factors, including:
|
---|
| 133 | </para>
|
---|
| 134 |
|
---|
| 135 | <itemizedlist>
|
---|
| 136 | <listitem><para>
|
---|
| 137 | <indexterm><primary>network</primary><secondary>overload</secondary></indexterm>
|
---|
| 138 | Network overload (typically indicated by a high network collision rate)
|
---|
| 139 | </para></listitem>
|
---|
| 140 |
|
---|
| 141 | <listitem><para>
|
---|
| 142 | Server overload
|
---|
| 143 | </para></listitem>
|
---|
| 144 |
|
---|
| 145 | <listitem><para>
|
---|
| 146 | <indexterm><primary>network</primary><secondary>timeout</secondary></indexterm>
|
---|
| 147 | Timeout causing the client to close a connection that is in use but has
|
---|
| 148 | been latent (no traffic) for some time (5 minutes or more)
|
---|
| 149 | </para></listitem>
|
---|
| 150 |
|
---|
| 151 | <listitem><para>
|
---|
| 152 | <indexterm><primary>network hardware</primary><secondary>defective</secondary></indexterm>
|
---|
| 153 | Defective networking hardware
|
---|
| 154 | </para></listitem>
|
---|
| 155 | </itemizedlist>
|
---|
| 156 |
|
---|
| 157 | <para>
|
---|
| 158 | <indexterm><primary>data</primary><secondary>corruption</secondary></indexterm>
|
---|
| 159 | No matter what the cause, a sudden loss of access to network resources can
|
---|
| 160 | result in BSOD (blue screen of death) situations that necessitate rebooting of the client
|
---|
| 161 | workstation. In the case of a mild problem, retrying to access the network drive of the printer
|
---|
| 162 | may restore operations, but in any case this is a serious problem that may lead to the next
|
---|
| 163 | problem, data corruption.
|
---|
| 164 | </para></listitem>
|
---|
| 165 | </varlistentry>
|
---|
| 166 |
|
---|
| 167 | <varlistentry>
|
---|
| 168 | <term>Potential data corruption</term>
|
---|
| 169 | <listitem><para>
|
---|
| 170 | <indexterm><primary>data</primary><secondary>corruption</secondary></indexterm>
|
---|
| 171 | Data corruption is one of the most serious problems. It leads to uncertainty, anger, and
|
---|
| 172 | frustration, and generally precipitates immediate corrective demands. Management response
|
---|
| 173 | to this type of problem may be rational, as well as highly irrational. There have been
|
---|
| 174 | cases where management has fired network staff for permitting this situation to occur without
|
---|
| 175 | immediate correction. There have been situations where perfectly functional hardware was thrown
|
---|
| 176 | out and replaced, only to find the problem caused by a low-cost network hardware item. There
|
---|
| 177 | have been cases where server operating systems were replaced, or where Samba was updated,
|
---|
| 178 | only to later isolate the problem due to defective client software.
|
---|
| 179 | </para></listitem>
|
---|
| 180 | </varlistentry>
|
---|
| 181 | </variablelist>
|
---|
| 182 |
|
---|
| 183 | <para>
|
---|
| 184 | In this chapter, you can work through a number of measures that significantly arm you to
|
---|
| 185 | anticipate and combat network performance issues. You can work through complex and thorny
|
---|
| 186 | methods to improve the reliability of your network environment, but be warned that all such steps
|
---|
| 187 | demand the price of complexity.
|
---|
| 188 | </para>
|
---|
| 189 |
|
---|
| 190 | <sect1>
|
---|
| 191 | <title>Regarding LDAP Directories and Windows Computer Accounts</title>
|
---|
| 192 |
|
---|
| 193 | <para>
|
---|
| 194 | <indexterm><primary>LDAP</primary><secondary>directory</secondary></indexterm>
|
---|
| 195 | Computer (machine) accounts can be placed wherever you like in an LDAP directory subject to some
|
---|
| 196 | constraints that are described in this section.
|
---|
| 197 | </para>
|
---|
| 198 |
|
---|
| 199 | <para>
|
---|
| 200 | <indexterm><primary>POSIX</primary></indexterm>
|
---|
| 201 | <indexterm><primary>SambaSAMAccount</primary></indexterm>
|
---|
| 202 | <indexterm><primary>machine account</primary></indexterm>
|
---|
| 203 | <indexterm><primary>trust account</primary></indexterm>
|
---|
| 204 | The POSIX and SambaSAMAccount components of computer (machine) accounts are both used by Samba.
|
---|
| 205 | That is, machine accounts are treated inside Samba in the same way that Windows NT4/200X treats
|
---|
| 206 | them. A user account and a machine account are indistinguishable from each other, except that
|
---|
| 207 | the machine account ends in a $ character, as do trust accounts.
|
---|
| 208 | </para>
|
---|
| 209 |
|
---|
| 210 | <para>
|
---|
| 211 | <indexterm><primary>account</primary></indexterm>
|
---|
| 212 | <indexterm><primary>UID</primary></indexterm>
|
---|
| 213 | The need for Windows user, group, machine, trust, and other such accounts to be tied to a valid UNIX UID
|
---|
| 214 | is a design decision that was made a long way back in the history of Samba development. It is
|
---|
| 215 | unlikely that this decision will be reversed or changed during the remaining life of the
|
---|
| 216 | Samba-3.x series.
|
---|
| 217 | </para>
|
---|
| 218 |
|
---|
| 219 | <para>
|
---|
| 220 | <indexterm><primary>SID</primary></indexterm>
|
---|
| 221 | <indexterm><primary>NSS</primary></indexterm>
|
---|
| 222 | The resolution of a UID from the Windows SID is achieved within Samba through a mechanism that
|
---|
| 223 | must refer back to the host operating system on which Samba is running. The name service
|
---|
| 224 | switch (NSS) is the preferred mechanism that shields applications (like Samba) from the
|
---|
| 225 | need to know everything about every host OS it runs on.
|
---|
| 226 | </para>
|
---|
| 227 |
|
---|
| 228 | <para>
|
---|
| 229 | Samba asks the host OS to provide a UID via the <quote>passwd</quote>, <quote>shadow</quote>
|
---|
| 230 | and <quote>group</quote> facilities in the NSS control (configuration) file. The best tool
|
---|
| 231 | for achieving this is left up to the UNIX administrator to determine. It is not imposed by
|
---|
| 232 | Samba. Samba provides winbindd together with its support libraries as one method. It is
|
---|
| 233 | possible to do this via LDAP, and for that Samba provides the appropriate hooks so that
|
---|
| 234 | all account entities can be located in an LDAP directory.
|
---|
| 235 | </para>
|
---|
| 236 |
|
---|
| 237 | <para>
|
---|
| 238 | <indexterm><primary>nss_ldap</primary></indexterm>
|
---|
| 239 | For many the weapon of choice is to use the PADL nss_ldap utility. This utility must
|
---|
| 240 | be configured so that computer accounts can be resolved to a POSIX/UNIX account UID. That
|
---|
| 241 | is fundamentally an LDAP design question. The information provided on the Samba list and
|
---|
| 242 | in the documentation is directed at providing working examples only. The design
|
---|
| 243 | of an LDAP directory is a complex subject that is beyond the scope of this documentation.
|
---|
| 244 | </para>
|
---|
| 245 |
|
---|
| 246 | </sect1>
|
---|
| 247 |
|
---|
| 248 |
|
---|
| 249 | <sect1>
|
---|
| 250 | <title>Introduction</title>
|
---|
| 251 |
|
---|
| 252 | <para>
|
---|
| 253 | You just opened an email from Christine that reads:
|
---|
| 254 | </para>
|
---|
| 255 |
|
---|
| 256 | <para>
|
---|
| 257 | Good morning,
|
---|
| 258 | <blockquote><attribution>Christine</attribution><para>
|
---|
| 259 | A few months ago we sat down to design the network. We discussed the challenges ahead and we all
|
---|
| 260 | agreed to compromise our design to keep it simple. We knew there would be problems, but anticipated
|
---|
| 261 | that we would have some time to resolve any issues that might be encountered.
|
---|
| 262 | </para>
|
---|
| 263 |
|
---|
| 264 | <para>
|
---|
| 265 | As you now know, we started off on the wrong foot. We have a lot of unhappy users. One of them
|
---|
| 266 | resigned yesterday afternoon because she was under duress to complete some critical projects. She
|
---|
| 267 | suffered a blue screen of death situation just as she was finishing four hours of intensive work, all
|
---|
| 268 | of which was lost. She has a unique requirement that involves storing large files on her desktop.
|
---|
| 269 | Mary's desktop profile is nearly 1 GB in size. As a result of her desktop configuration, it
|
---|
| 270 | takes her nearly 15 minutes just to log onto her workstation. But that is not enough. Because all
|
---|
| 271 | network logon traffic passes over the network links between our buildings, logging on may take
|
---|
| 272 | three or four attempts due to blue screen problems associated with network timeouts.
|
---|
| 273 | </para>
|
---|
| 274 |
|
---|
| 275 | <para>
|
---|
| 276 | A few of us worked to help her out of trouble. We convinced her to stay and promised to fully
|
---|
| 277 | resolve the difficulties she is facing. We have no choice. We must implement LDAP and set hard
|
---|
| 278 | limits on what our users can do with their desktops. Otherwise, we face staff losses
|
---|
| 279 | that can surely do harm to our growth as well as to staff morale. I am sure we can better deal
|
---|
| 280 | with the consequences of what we know we must do than we can with the unrest we have now.
|
---|
| 281 | </para>
|
---|
| 282 |
|
---|
| 283 | <para>
|
---|
| 284 | Stan and I have discussed the current situation. We are resolved to help our users and protect
|
---|
| 285 | the well being of Abmas. Please acknowledge this advice with consent to proceed as required to
|
---|
| 286 | regain control of our vital IT operations.
|
---|
| 287 | </para></blockquote>
|
---|
| 288 | </para>
|
---|
| 289 |
|
---|
| 290 | <para>
|
---|
| 291 | <indexterm><primary>compromise</primary></indexterm>
|
---|
| 292 | <indexterm><primary>network</primary><secondary>multi-segment</secondary></indexterm>
|
---|
| 293 | Every compromise has consequences. Having a large routed (i.e., multisegment) network with only a
|
---|
| 294 | single domain controller is a poor design that has obvious operational effects that may
|
---|
| 295 | frustrate users. Here is your reply:
|
---|
| 296 | </para>
|
---|
| 297 |
|
---|
| 298 | <blockquote><attribution>Bob</attribution><para>
|
---|
| 299 | Christine, Your diligence and attention to detail are much valued. Stan and I fully support your
|
---|
| 300 | proposals to resolve the issues. I am confident that your plans fully realized will significantly
|
---|
| 301 | boost staff morale. Please go ahead with your plans. If you have any problems, please let me know.
|
---|
| 302 | Please let Stan know what the estimated cost will be so I can approve the expense. Do not wait
|
---|
| 303 | for approval; I appreciate the urgency.
|
---|
| 304 | </para></blockquote>
|
---|
| 305 |
|
---|
| 306 | <sect2>
|
---|
| 307 | <title>Assignment Tasks</title>
|
---|
| 308 |
|
---|
| 309 | <para>
|
---|
| 310 | The priority of assigned tasks in this chapter is:
|
---|
| 311 | </para>
|
---|
| 312 |
|
---|
| 313 | <orderedlist>
|
---|
| 314 | <listitem><para>
|
---|
| 315 | <indexterm><primary>Backup Domain Controller</primary><see>BDC</see></indexterm>
|
---|
| 316 | <indexterm><primary>BDC</primary></indexterm>
|
---|
| 317 | <indexterm><primary>tdbsam</primary></indexterm>
|
---|
| 318 | <indexterm><primary>LDAP</primary></indexterm><indexterm><primary>migration</primary></indexterm>
|
---|
| 319 | Implement Backup Domain Controllers (BDCs) in each building. This involves
|
---|
| 320 | a change from a <emphasis>tdbsam</emphasis> backend that was used in the previous
|
---|
| 321 | chapter to an LDAP-based backend.
|
---|
| 322 | </para>
|
---|
| 323 |
|
---|
| 324 | <para>
|
---|
| 325 | You can implement a single central LDAP server for this purpose.
|
---|
| 326 | </para></listitem>
|
---|
| 327 |
|
---|
| 328 | <listitem><para>
|
---|
| 329 | <indexterm><primary>logon time</primary></indexterm>
|
---|
| 330 | <indexterm><primary>network share</primary></indexterm>
|
---|
| 331 | <indexterm><primary>default profile</primary></indexterm>
|
---|
| 332 | <indexterm><primary>profile</primary><secondary>default</secondary></indexterm>
|
---|
| 333 | Rectify the problem of excessive logon times. This involves redirection of
|
---|
| 334 | folders to network shares as well as modification of all user desktops to
|
---|
| 335 | exclude the redirected folders from being loaded at login time. You can also
|
---|
| 336 | create a new default profile that can be used for all new users.
|
---|
| 337 | </para></listitem>
|
---|
| 338 | </orderedlist>
|
---|
| 339 |
|
---|
| 340 | <para>
|
---|
| 341 | <indexterm><primary>disk image</primary></indexterm>
|
---|
| 342 | You configure a new MS Windows XP Professional workstation disk image that you roll out
|
---|
| 343 | to all desktop users. The instructions you have created are followed on a staging machine
|
---|
| 344 | from which all changes can be carefully tested before inflicting them on your network users.
|
---|
| 345 | </para>
|
---|
| 346 |
|
---|
| 347 | <para>
|
---|
| 348 | <indexterm><primary>CUPS</primary></indexterm>
|
---|
| 349 | This is the last network example in which specific mention of printing is made. The example
|
---|
| 350 | again makes use of the CUPS printing system.
|
---|
| 351 | </para>
|
---|
| 352 |
|
---|
| 353 | </sect2>
|
---|
| 354 |
|
---|
| 355 | </sect1>
|
---|
| 356 |
|
---|
| 357 | <sect1>
|
---|
| 358 | <title>Dissection and Discussion</title>
|
---|
| 359 |
|
---|
| 360 | <para>
|
---|
| 361 | <indexterm><primary>BDC</primary></indexterm>
|
---|
| 362 | <indexterm><primary>LDAP</primary></indexterm>
|
---|
| 363 | <indexterm><primary>OpenLDAP</primary></indexterm>
|
---|
| 364 | The implementation of Samba BDCs necessitates the installation and configuration of LDAP.
|
---|
| 365 | For this site, you use OpenLDAP, the open source software LDAP server platform. Commercial
|
---|
| 366 | LDAP servers in current use with Samba-3 include:
|
---|
| 367 | </para>
|
---|
| 368 |
|
---|
| 369 | <itemizedlist>
|
---|
| 370 | <listitem><para>
|
---|
| 371 | <indexterm><primary>eDirectory</primary></indexterm>
|
---|
| 372 | Novell <ulink url="http://www.novell.com/products/edirectory/">eDirectory</ulink>
|
---|
| 373 | is being successfully used by some sites. Information on how to use eDirectory can be
|
---|
| 374 | obtained from the Samba mailing lists or from Novell.
|
---|
| 375 | </para></listitem>
|
---|
| 376 |
|
---|
| 377 | <listitem><para>
|
---|
| 378 | <indexterm><primary>Tivoli Directory Server</primary></indexterm>
|
---|
| 379 | IBM <ulink url="http://www-306.ibm.com/software/tivoli/products/directory-server/">Tivoli
|
---|
| 380 | Directory Server</ulink> can be used to provide the Samba LDAP backend. Example schema
|
---|
| 381 | files are provided in the Samba source code tarball under the directory
|
---|
| 382 | <filename>~samba/example/LDAP.</filename>
|
---|
| 383 | </para></listitem>
|
---|
| 384 |
|
---|
| 385 | <listitem><para>
|
---|
| 386 | <indexterm><primary>Sun ONE Identity Server</primary></indexterm>
|
---|
| 387 | Sun <ulink url="http://www.sun.com/software/software/products/identity_srvr/home_identity.xml">ONE Identity
|
---|
| 388 | Server product suite</ulink> provides an LDAP server that can be used for Samba.
|
---|
| 389 | Example schema files are provided in the Samba source code tarball under the directory
|
---|
| 390 | <filename>~samba/example/LDAP.</filename>
|
---|
| 391 | </para></listitem>
|
---|
| 392 | </itemizedlist>
|
---|
| 393 |
|
---|
| 394 | <para>
|
---|
| 395 | A word of caution is fully in order. OpenLDAP is purely an LDAP server, and unlike commercial
|
---|
| 396 | offerings, it requires that you manually edit the server configuration files and manually
|
---|
| 397 | initialize the LDAP directory database. OpenLDAP itself has only command-line tools to
|
---|
| 398 | help you to get OpenLDAP and Samba-3 running as required, albeit with some learning curve challenges.
|
---|
| 399 | </para>
|
---|
| 400 |
|
---|
| 401 | <para>
|
---|
| 402 | <indexterm><primary>Active Directory</primary></indexterm>
|
---|
| 403 | For most sites, the deployment of Microsoft Active Directory from the shrink-wrapped installation is quite
|
---|
| 404 | adequate. If you are migrating from Microsoft Active Directory, be warned that OpenLDAP does not include
|
---|
| 405 | GUI-based directory management tools. Even a simple task such as adding users to the OpenLDAP database
|
---|
| 406 | requires an understanding of what you are doing, why you are doing it, and the tools that you must use.
|
---|
| 407 | </para>
|
---|
| 408 |
|
---|
| 409 | <para>
|
---|
| 410 | <indexterm><primary>Identity Management</primary></indexterm>
|
---|
| 411 | <indexterm><primary>high availability</primary></indexterm>
|
---|
| 412 | <indexterm><primary>directory</primary><secondary>replication</secondary></indexterm>
|
---|
| 413 | <indexterm><primary>directory</primary><secondary>synchronization</secondary></indexterm>
|
---|
| 414 | <indexterm><primary>performance</primary></indexterm>
|
---|
| 415 | <indexterm><primary>directory</primary><secondary>management</secondary></indexterm>
|
---|
| 416 | <indexterm><primary>directory</primary><secondary>schema</secondary></indexterm>
|
---|
| 417 | When installed and configured, an OpenLDAP Identity Management backend for Samba functions well.
|
---|
| 418 | High availability operation may be obtained through directory replication/synchronization and
|
---|
| 419 | master/slave server configurations. OpenLDAP is a mature platform to host the organizational
|
---|
| 420 | directory infrastructure that can include all UNIX accounts, directories for electronic mail, and much more.
|
---|
| 421 | The price paid through learning how to design an LDAP directory schema in implementation and configuration
|
---|
| 422 | of management tools is well rewarded by performance and flexibility and the freedom to manage directory
|
---|
| 423 | contents with greater ability to back up, restore, and modify the directory than is generally possible
|
---|
| 424 | with Microsoft Active Directory.
|
---|
| 425 | </para>
|
---|
| 426 |
|
---|
| 427 | <para>
|
---|
| 428 | <indexterm><primary>comparison</primary><secondary>Active Directory & OpenLDAP</secondary></indexterm>
|
---|
| 429 | <indexterm><primary>ADAM</primary></indexterm>
|
---|
| 430 | <indexterm><primary>Active Directory</primary></indexterm>
|
---|
| 431 | <indexterm><primary>OpenLDAP</primary></indexterm>
|
---|
| 432 | A comparison of OpenLDAP with Microsoft Active Directory does not do justice to either. OpenLDAP is an LDAP directory
|
---|
| 433 | tool-set. Microsoft Active Directory Server is an implementation of an LDAP server that is largely preconfigured
|
---|
| 434 | for a specific task orientation. It comes with a set of administrative tools that is entirely customized
|
---|
| 435 | for the purpose of running MS Windows applications that include file and print services, Microsoft Exchange
|
---|
| 436 | server, Microsoft SQL server, and more. The complexity of OpenLDAP is highly valued by the UNIX administrator
|
---|
| 437 | who wants to build a custom directory solution. Microsoft provides an application called
|
---|
| 438 | <ulink url="http://www.microsoft.com/windowsserver2003/adam/default.mspx">
|
---|
| 439 | MS ADAM</ulink> that provides more generic LDAP services, yet it does not have the vanilla-like services
|
---|
| 440 | of OpenLDAP.
|
---|
| 441 | </para>
|
---|
| 442 |
|
---|
| 443 | <para>
|
---|
| 444 | <indexterm><primary>directory</primary><secondary>schema</secondary></indexterm>
|
---|
| 445 | <indexterm><primary>passdb backend</primary></indexterm>
|
---|
| 446 | You may wish to consider outsourcing the development of your OpenLDAP directory to an expert, particularly
|
---|
| 447 | if you find the challenge of learning about LDAP directories, schemas, configuration, and management
|
---|
| 448 | tools and the creation of shell and Perl scripts a bit
|
---|
| 449 | challenging. OpenLDAP can be easily customized, though it includes
|
---|
| 450 | many ready-to-use schemas. Samba-3 provides an OpenLDAP schema file
|
---|
| 451 | that is required for use as a passdb backend.
|
---|
| 452 | </para>
|
---|
| 453 |
|
---|
| 454 | <para>
|
---|
| 455 | <indexterm><primary>interoperability</primary></indexterm>
|
---|
| 456 | For those who are willing to brave the process of installing and configuring LDAP and Samba-3 interoperability,
|
---|
| 457 | there are a few nice Web-based tools that may help you to manage your users and groups more effectively.
|
---|
| 458 | The Web-based tools you might like to consider include the
|
---|
| 459 | <ulink url="http://lam.sourceforge.net/">LDAP Account Manager</ulink> (LAM) and the Webmin-based
|
---|
| 460 | <ulink url="http://www.webmin.com">Webmin</ulink> Idealx
|
---|
| 461 | <ulink url="http://webmin.idealx.org/index.en.html">CGI tools</ulink>.
|
---|
| 462 | </para>
|
---|
| 463 |
|
---|
| 464 | <para>
|
---|
| 465 | Some additional LDAP tools should be mentioned. Every so often a Samba user reports using one of
|
---|
| 466 | these, so it may be useful to them:
|
---|
| 467 | <ulink url="http://biot.com/gq">GQ</ulink>, a GTK-based LDAP browser;
|
---|
| 468 | LDAP <ulink url="http://www.iit.edu/~gawojar/ldap/">Browser/Editor</ulink>
|
---|
| 469 | <ulink url="http://www.jxplorer.org/">; JXplorer</ulink> (by Computer Associates);
|
---|
| 470 | and <ulink url="http://phpldapadmin.sourceforge.net/">phpLDAPadmin</ulink>.
|
---|
| 471 | </para>
|
---|
| 472 |
|
---|
| 473 | <note><para>
|
---|
| 474 | The following prescriptive guidance is not an LDAP tutorial. The LDAP implementation expressly uses minimal
|
---|
| 475 | security controls. No form of secure LDAP communications is attempted. The LDAP configuration information provided
|
---|
| 476 | is considered to consist of the barest essentials only. You are strongly encouraged to learn more about
|
---|
| 477 | LDAP before attempting to deploy it in a business-critical environment.
|
---|
| 478 | </para></note>
|
---|
| 479 |
|
---|
| 480 | <para>
|
---|
| 481 | Information to help you get started with OpenLDAP is available from the
|
---|
| 482 | <ulink url="http://www.openldap.org/pub/">OpenLDAP web site</ulink>. Many people have found the book
|
---|
| 483 | <ulink url="http://www.oreilly.com/catalog/ldapsa/index.html"><emphasis>LDAP System Administration</emphasis>,</ulink>
|
---|
| 484 | by Jerry Carter quite useful.
|
---|
| 485 | </para>
|
---|
| 486 |
|
---|
| 487 | <para>
|
---|
| 488 | <indexterm><primary>BDC</primary></indexterm>
|
---|
| 489 | <indexterm><primary>network</primary><secondary>segment</secondary></indexterm>
|
---|
| 490 | <indexterm><primary>performance</primary></indexterm>
|
---|
| 491 | <indexterm><primary>network</primary><secondary>wide-area</secondary></indexterm>
|
---|
| 492 | Mary's problems are due to two factors. First, the absence of a domain controller on the local network is the
|
---|
| 493 | main cause of the errors that result in blue screen crashes. Second, Mary has a large profile that must
|
---|
| 494 | be loaded over the WAN connection. The addition of BDCs on each network segment significantly
|
---|
| 495 | improves overall network performance for most users, but it is not enough. You must gain control over
|
---|
| 496 | user desktops, and this must be done in a way that wins their support and does not cause further loss of
|
---|
| 497 | staff morale. The following procedures solve this problem.
|
---|
| 498 | </para>
|
---|
| 499 |
|
---|
| 500 | <para>
|
---|
| 501 | <indexterm><primary>smart printing</primary></indexterm>
|
---|
| 502 | There is also an opportunity to implement smart printing features. You add this to the Samba configuration
|
---|
| 503 | so that future printer changes can be managed without need to change desktop configurations.
|
---|
| 504 | </para>
|
---|
| 505 |
|
---|
| 506 | <para>
|
---|
| 507 | You add the ability to automatically download new printer drivers, even if they are not installed
|
---|
| 508 | in the default desktop profile. Only one example of printing configuration is given. It is assumed that
|
---|
| 509 | you can extrapolate the principles and use them to install all printers that may be needed.
|
---|
| 510 | </para>
|
---|
| 511 |
|
---|
| 512 | <sect2>
|
---|
| 513 | <title>Technical Issues</title>
|
---|
| 514 |
|
---|
| 515 | <para>
|
---|
| 516 | <indexterm><primary>identity</primary><secondary>management</secondary></indexterm>
|
---|
| 517 | <indexterm><primary>directory</primary><secondary>server</secondary></indexterm>
|
---|
| 518 | <indexterm><primary>Posix</primary></indexterm>
|
---|
| 519 | The solution provided is a minimal approach to getting OpenLDAP running as an identity management directory
|
---|
| 520 | server for UNIX system accounts as well as for Samba. From the OpenLDAP perspective, UNIX system
|
---|
| 521 | accounts are stored POSIX schema extensions. Samba provides its own schema to permit storage of account
|
---|
| 522 | attributes Samba needs. Samba-3 can use the LDAP backend to store:
|
---|
| 523 | </para>
|
---|
| 524 |
|
---|
| 525 | <itemizedlist>
|
---|
| 526 | <listitem><para>Windows Networking User Accounts</para></listitem>
|
---|
| 527 | <listitem><para>Windows NT Group Accounts</para></listitem>
|
---|
| 528 | <listitem><para>Mapping Information between UNIX Groups and Windows NT Groups</para></listitem>
|
---|
| 529 | <listitem><para>ID Mappings for SIDs to UIDs (also for foreign Domain SIDs)</para></listitem>
|
---|
| 530 | </itemizedlist>
|
---|
| 531 |
|
---|
| 532 | <para>
|
---|
| 533 | <indexterm><primary>UNIX accounts</primary></indexterm>
|
---|
| 534 | <indexterm><primary>Windows accounts</primary></indexterm>
|
---|
| 535 | <indexterm><primary>PADL LDAP tools</primary></indexterm>
|
---|
| 536 | <indexterm><primary>/etc/group</primary></indexterm>
|
---|
| 537 | <indexterm><primary>LDAP</primary></indexterm>
|
---|
| 538 | <indexterm><primary>name service switch</primary><see>NSS</see></indexterm>
|
---|
| 539 | <indexterm><primary>NSS</primary></indexterm>
|
---|
| 540 | <indexterm><primary>UID</primary></indexterm>
|
---|
| 541 | <indexterm><primary>nss_ldap</primary></indexterm>
|
---|
| 542 | The use of LDAP with Samba-3 makes it necessary to store UNIX accounts as well as Windows Networking
|
---|
| 543 | accounts in the LDAP backend. This implies the need to use the
|
---|
| 544 | <ulink url="http://www.padl.com/Contents/OpenSourceSoftware.html">PADL LDAP tools</ulink>. The resolution
|
---|
| 545 | of the UNIX group name to its GID must be enabled from either the <filename>/etc/group</filename>
|
---|
| 546 | or from the LDAP backend. This requires the use of the PADL <filename>nss_ldap</filename> tool-set
|
---|
| 547 | that integrates with the NSS. The same requirements exist for resolution
|
---|
| 548 | of the UNIX username to the UID. The relationships are demonstrated in <link linkend="sbehap-LDAPdiag"/>.
|
---|
| 549 | </para>
|
---|
| 550 |
|
---|
| 551 | <figure id="sbehap-LDAPdiag">
|
---|
| 552 | <title>The Interaction of LDAP, UNIX Posix Accounts and Samba Accounts</title>
|
---|
| 553 | <imagefile scale="50">UNIX-Samba-and-LDAP</imagefile>
|
---|
| 554 | </figure>
|
---|
| 555 |
|
---|
| 556 | <para>
|
---|
| 557 | <indexterm><primary>security</primary></indexterm>
|
---|
| 558 | <indexterm><primary>LDAP</primary><secondary>secure</secondary></indexterm>
|
---|
| 559 | You configure OpenLDAP so that it is operational. Before deploying the OpenLDAP, you really
|
---|
| 560 | ought to learn how to configure secure communications over LDAP so that site security is not
|
---|
| 561 | at risk. This is not covered in the following guidance.
|
---|
| 562 | </para>
|
---|
| 563 |
|
---|
| 564 | <para>
|
---|
| 565 | <indexterm><primary>PDC</primary></indexterm>
|
---|
| 566 | <indexterm><primary>LDAP Interchange Format</primary><see>LDIF</see></indexterm>
|
---|
| 567 | <indexterm><primary>LDIF</primary></indexterm>
|
---|
| 568 | <indexterm><primary>secrets.tdb</primary></indexterm>
|
---|
| 569 | When OpenLDAP has been made operative, you configure the PDC called <constant>MASSIVE</constant>.
|
---|
| 570 | You initialize the Samba <filename>secrets.tdb<subscript></subscript></filename> file. Then you
|
---|
| 571 | create the LDAP Interchange Format (LDIF) file from which the LDAP database can be initialized.
|
---|
| 572 | You need to decide how best to create user and group accounts. A few hints are, of course, provided.
|
---|
| 573 | You can also find on the enclosed CD-ROM, in the <filename>Chap06</filename> directory, a few tools
|
---|
| 574 | that help to manage user and group configuration.
|
---|
| 575 | </para>
|
---|
| 576 |
|
---|
| 577 | <para>
|
---|
| 578 | <indexterm><primary>folder redirection</primary></indexterm>
|
---|
| 579 | <indexterm><primary>default profile</primary></indexterm>
|
---|
| 580 | <indexterm><primary>roaming profile</primary></indexterm>
|
---|
| 581 | In order to effect folder redirection and to add robustness to the implementation,
|
---|
| 582 | create a network default profile. All network users workstations are configured to use
|
---|
| 583 | the new profile. Roaming profiles will automatically be deleted from the workstation
|
---|
| 584 | when the user logs off.
|
---|
| 585 | </para>
|
---|
| 586 |
|
---|
| 587 | <para>
|
---|
| 588 | <indexterm><primary>mandatory profile</primary></indexterm>
|
---|
| 589 | The profile is configured so that users cannot change the appearance
|
---|
| 590 | of their desktop. This is known as a mandatory profile. You make certain that users
|
---|
| 591 | are able to use their computers efficiently.
|
---|
| 592 | </para>
|
---|
| 593 |
|
---|
| 594 | <para>
|
---|
| 595 | <indexterm><primary>logon script</primary></indexterm>
|
---|
| 596 | A network logon script is used to deliver flexible but consistent network drive
|
---|
| 597 | connections.
|
---|
| 598 | </para>
|
---|
| 599 |
|
---|
| 600 | <sect3 id="sbehap-ppc">
|
---|
| 601 | <title>Addition of Machines to the Domain</title>
|
---|
| 602 |
|
---|
| 603 | <para>
|
---|
| 604 | <indexterm><primary></primary></indexterm>
|
---|
| 605 | <indexterm><primary></primary></indexterm>
|
---|
| 606 | <indexterm><primary></primary></indexterm>
|
---|
| 607 | <indexterm><primary></primary></indexterm>
|
---|
| 608 | Samba versions prior to 3.0.11 necessitated the use of a domain administrator account
|
---|
| 609 | that maps to the UNIX UID=0. The UNIX operating system permits only the <constant>root</constant>
|
---|
| 610 | user to add user and group accounts. Samba 3.0.11 introduced a new facility known as
|
---|
| 611 | <constant>Privileges</constant>, which provides five new privileges that
|
---|
| 612 | can be assigned to users and/or groups; see Table 5.1.
|
---|
| 613 | </para>
|
---|
| 614 |
|
---|
| 615 |
|
---|
| 616 | <table id="sbehap-privs">
|
---|
| 617 | <title>Current Privilege Capabilities</title>
|
---|
| 618 | <tgroup cols="2">
|
---|
| 619 | <colspec align="left"/>
|
---|
| 620 | <colspec align="left"/>
|
---|
| 621 | <thead>
|
---|
| 622 | <row>
|
---|
| 623 | <entry align="left">Privilege</entry>
|
---|
| 624 | <entry align="left">Description</entry>
|
---|
| 625 | </row>
|
---|
| 626 | </thead>
|
---|
| 627 | <tbody>
|
---|
| 628 | <row>
|
---|
| 629 | <entry><para>SeMachineAccountPrivilege</para></entry>
|
---|
| 630 | <entry><para>Add machines to domain</para></entry>
|
---|
| 631 | </row>
|
---|
| 632 | <row>
|
---|
| 633 | <entry><para>SePrintOperatorPrivilege</para></entry>
|
---|
| 634 | <entry><para>Manage printers</para></entry>
|
---|
| 635 | </row>
|
---|
| 636 | <row>
|
---|
| 637 | <entry><para>SeAddUsersPrivilege</para></entry>
|
---|
| 638 | <entry><para>Add users and groups to the domain</para></entry>
|
---|
| 639 | </row>
|
---|
| 640 | <row>
|
---|
| 641 | <entry><para>SeRemoteShutdownPrivilege</para></entry>
|
---|
| 642 | <entry><para>Force shutdown from a remote system</para></entry>
|
---|
| 643 | </row>
|
---|
| 644 | <row>
|
---|
| 645 | <entry><para>SeDiskOperatorPrivilege</para></entry>
|
---|
| 646 | <entry><para>Manage disk share</para></entry>
|
---|
| 647 | </row>
|
---|
| 648 | </tbody>
|
---|
| 649 | </tgroup>
|
---|
| 650 | </table>
|
---|
| 651 |
|
---|
| 652 | <para>
|
---|
| 653 | In this network example use is made of one of the supported privileges purely to demonstrate
|
---|
| 654 | how any user can now be given the ability to add machines to the domain using a normal user account
|
---|
| 655 | that has been given the appropriate privileges.
|
---|
| 656 | </para>
|
---|
| 657 |
|
---|
| 658 | </sect3>
|
---|
| 659 |
|
---|
| 660 | <sect3>
|
---|
| 661 | <title>Roaming Profile Background</title>
|
---|
| 662 |
|
---|
| 663 | <para>
|
---|
| 664 | As XP roaming profiles grow, so does the amount of time it takes to log in and out.
|
---|
| 665 | </para>
|
---|
| 666 |
|
---|
| 667 | <para>
|
---|
| 668 | <indexterm><primary>roaming profile</primary></indexterm>
|
---|
| 669 | <indexterm><primary>HKEY_CURRENT_USER</primary></indexterm>
|
---|
| 670 | <indexterm><primary>NTUSER.DAT</primary></indexterm>
|
---|
| 671 | <indexterm><primary>%USERNAME%</primary></indexterm>
|
---|
| 672 | An XP roaming profile consists of the <constant>HKEY_CURRENT_USER</constant> hive file
|
---|
| 673 | <filename>NTUSER.DAT</filename> and a number of folders (My Documents, Application Data,
|
---|
| 674 | Desktop, Start Menu, Templates, NetHood, Favorites, and so on). When a user logs onto the
|
---|
| 675 | network with the default configuration of MS Windows NT/200x/XPP, all this data is
|
---|
| 676 | copied to the local machine under the <filename>C:\Documents and Settings\%USERNAME%</filename>
|
---|
| 677 | directory. While the user is logged in, any changes made to any of these folders or to the
|
---|
| 678 | <constant>HKEY_CURRENT_USER</constant> branch of the registry are made to the local copy
|
---|
| 679 | of the profile. At logout the profile data is copied back to the server. This behavior
|
---|
| 680 | can be changed through appropriate registry changes and/or through changes to the default
|
---|
| 681 | user profile. In the latter case, it updates the registry with the values that are set in the
|
---|
| 682 | profile <filename>NTUSER.DAT</filename>
|
---|
| 683 | file.
|
---|
| 684 | </para>
|
---|
| 685 |
|
---|
| 686 | <para>
|
---|
| 687 | The first challenge is to reduce the amount of data that must be transferred to and
|
---|
| 688 | from the profile server as roaming profiles are processed. This includes removing
|
---|
| 689 | all the shortcuts in the Recent directory, making sure the cache used by the Web browser
|
---|
| 690 | is not being dumped into the <filename>Application Data</filename> folder, removing the
|
---|
| 691 | Java plug-ins cache (the .jpi_cache directory in the profile), as well as training the
|
---|
| 692 | user to not place large files on the desktop and to use his or her mapped home directory
|
---|
| 693 | instead of the <filename>My Documents</filename> folder for saving documents.
|
---|
| 694 | </para>
|
---|
| 695 |
|
---|
| 696 | <para>
|
---|
| 697 | <indexterm><primary>My Documents</primary></indexterm>
|
---|
| 698 | Using a folder other than <filename>My Documents</filename> is a nuisance for
|
---|
| 699 | some users, since many applications use it by default.
|
---|
| 700 | </para>
|
---|
| 701 |
|
---|
| 702 | <para>
|
---|
| 703 | <indexterm><primary>roaming profiles</primary></indexterm>
|
---|
| 704 | <indexterm><primary>Local Group Policy</primary></indexterm>
|
---|
| 705 | <indexterm><primary>NTUSER.DAT</primary></indexterm>
|
---|
| 706 | The secret to rapid loading of roaming profiles is to prevent unnecessary data from
|
---|
| 707 | being copied back and forth, without losing any functionality. This is not difficult;
|
---|
| 708 | it can be done by making changes to the Local Group Policy on each client as well
|
---|
| 709 | as changing some paths in each user's <filename>NTUSER.DAT</filename> hive.
|
---|
| 710 | </para>
|
---|
| 711 |
|
---|
| 712 | <para>
|
---|
| 713 | <indexterm><primary>Network Default Profile</primary></indexterm>
|
---|
| 714 | <indexterm><primary>redirected folders</primary></indexterm>
|
---|
| 715 | Every user profile has its own <filename>NTUSER.DAT</filename> file. This means
|
---|
| 716 | you need to edit every user's profile, unless a better method can be
|
---|
| 717 | followed. Fortunately, with the right preparations, this is not difficult.
|
---|
| 718 | It is possible to remove the <filename>NTUSER.DAT</filename> file from each
|
---|
| 719 | user's profile. Then just create a Network Default Profile. Of course, it is
|
---|
| 720 | necessary to copy all files from redirected folders to the network share to which
|
---|
| 721 | they are redirected.
|
---|
| 722 | </para>
|
---|
| 723 |
|
---|
| 724 | </sect3>
|
---|
| 725 |
|
---|
| 726 | <sect3 id="sbehap-locgrppol">
|
---|
| 727 | <title>The Local Group Policy</title>
|
---|
| 728 |
|
---|
| 729 | <para>
|
---|
| 730 | <indexterm><primary>Group Policy Objects</primary></indexterm>
|
---|
| 731 | <indexterm><primary>Active Directory</primary></indexterm>
|
---|
| 732 | <indexterm><primary>PDC</primary></indexterm>
|
---|
| 733 | <indexterm><primary>Group Policy editor</primary></indexterm>
|
---|
| 734 | Without an Active Directory PDC, you cannot take full advantage of Group Policy
|
---|
| 735 | Objects. However, you can still make changes to the Local Group Policy by using
|
---|
| 736 | the Group Policy editor (<command>gpedit.msc</command>).
|
---|
| 737 | </para>
|
---|
| 738 |
|
---|
| 739 | <para>
|
---|
| 740 | The <emphasis>Exclude directories in roaming profile</emphasis> settings can
|
---|
| 741 | be found under
|
---|
| 742 | <menuchoice>
|
---|
| 743 | <guimenu>User Configuration</guimenu>
|
---|
| 744 | <guimenuitem>Administrative Templates</guimenuitem>
|
---|
| 745 | <guimenuitem>System</guimenuitem>
|
---|
| 746 | <guimenuitem>User Profiles</guimenuitem>
|
---|
| 747 | </menuchoice>.
|
---|
| 748 | By default this setting contains
|
---|
| 749 | <quote>Local Settings; Temporary Internet Files; History; Temp</quote>.
|
---|
| 750 | </para>
|
---|
| 751 |
|
---|
| 752 | <para>
|
---|
| 753 | Simply add the folders you do not wish to be copied back and forth to this
|
---|
| 754 | semicolon-separated list. Note that this change must be made on all clients
|
---|
| 755 | that are using roaming profiles.
|
---|
| 756 | </para>
|
---|
| 757 |
|
---|
| 758 | </sect3>
|
---|
| 759 |
|
---|
| 760 | <sect3>
|
---|
| 761 | <title>Profile Changes</title>
|
---|
| 762 |
|
---|
| 763 | <para>
|
---|
| 764 | <indexterm><primary>NTUSER.DAT</primary></indexterm>
|
---|
| 765 | <indexterm><primary>%USERNAME%</primary></indexterm>
|
---|
| 766 | There are two changes that should be done to each user's profile. Move each of
|
---|
| 767 | the directories that you have excluded from being copied back and forth out of
|
---|
| 768 | the usual profile path. Modify each user's <filename>NTUSER.DAT</filename> file
|
---|
| 769 | to point to the new paths that are shared over the network instead of to the default
|
---|
| 770 | path (<filename>C:\Documents and Settings\%USERNAME%</filename>).
|
---|
| 771 | </para>
|
---|
| 772 |
|
---|
| 773 | <para>
|
---|
| 774 | <indexterm><primary>Default User</primary></indexterm>
|
---|
| 775 | <indexterm><primary>regedt32</primary></indexterm>
|
---|
| 776 | The above modifies existing user profiles. So that newly created profiles have
|
---|
| 777 | these settings, you need to modify the <filename>NTUSER.DAT</filename> in
|
---|
| 778 | the <filename>C:\Documents and Settings\Default User</filename> folder on each
|
---|
| 779 | client machine, changing the same registry keys. You could do this by copying
|
---|
| 780 | <filename>NTUSER.DAT</filename> to a Linux box and using <command>regedt32</command>.
|
---|
| 781 | The basic method is described under <link linkend="redirfold"/>.
|
---|
| 782 | </para>
|
---|
| 783 |
|
---|
| 784 | </sect3>
|
---|
| 785 |
|
---|
| 786 | <sect3>
|
---|
| 787 | <title>Using a Network Default User Profile</title>
|
---|
| 788 |
|
---|
| 789 | <para>
|
---|
| 790 | <indexterm><primary>NETLOGON</primary></indexterm>
|
---|
| 791 | <indexterm><primary>NTUSER.DAT</primary></indexterm>
|
---|
| 792 | If you are using Samba as your PDC, you should create a file share called
|
---|
| 793 | <constant>NETLOGON</constant> and within that create a directory called
|
---|
| 794 | <filename>Default User</filename>, which is a copy of the desired default user
|
---|
| 795 | configuration (including a copy of <filename>NTUSER.DAT</filename>).
|
---|
| 796 | If this share exists and the <filename>Default User</filename> folder exists,
|
---|
| 797 | the first login from a new account pulls its configuration from it.
|
---|
| 798 | See also <ulink url="http://isg.ee.ethz.ch/tools/realmen/det/skel.en.html">
|
---|
| 799 | the Real Men Don't Click</ulink> Web site.
|
---|
| 800 | </para>
|
---|
| 801 |
|
---|
| 802 | </sect3>
|
---|
| 803 |
|
---|
| 804 | <sect3>
|
---|
| 805 | <title>Installation of Printer Driver Auto-Download</title>
|
---|
| 806 |
|
---|
| 807 | <para>
|
---|
| 808 | <indexterm><primary>printing</primary><secondary>dumb</secondary></indexterm>
|
---|
| 809 | <indexterm><primary>dumb printing</primary></indexterm>
|
---|
| 810 | <indexterm><primary>Raw Print Through</primary></indexterm>
|
---|
| 811 | The subject of printing is quite topical. Printing problems run second place to name
|
---|
| 812 | resolution issues today. So far in this book, you have experienced only what is generally
|
---|
| 813 | known as <quote>dumb</quote> printing. Dumb printing is the arrangement by which all drivers
|
---|
| 814 | are manually installed on each client and the printing subsystems perform no filtering
|
---|
| 815 | or intelligent processing. Dumb printing is easily understood. It usually works without
|
---|
| 816 | many problems, but it has its limitations also. Dumb printing is better known as
|
---|
| 817 | <command>Raw-Print-Through</command> printing.
|
---|
| 818 | </para>
|
---|
| 819 |
|
---|
| 820 | <para>
|
---|
| 821 | <indexterm><primary>printing</primary><secondary>drag-and-drop</secondary></indexterm>
|
---|
| 822 | <indexterm><primary>printing</primary><secondary>point-n-click</secondary></indexterm>
|
---|
| 823 | Samba permits the configuration of <command>smart</command> printing using the Microsoft
|
---|
| 824 | Windows point-and-click (also called drag-and-drop) printing. What this provides is
|
---|
| 825 | essentially the ability to print to any printer. If the local client does not yet have a
|
---|
| 826 | driver installed, the driver is automatically downloaded from the Samba server and
|
---|
| 827 | installed on the client. Drag-and-drop printing is neat; it means the user never needs
|
---|
| 828 | to fuss with driver installation, and that is a <trademark>Good Thing,</trademark>
|
---|
| 829 | isn't it?
|
---|
| 830 | </para>
|
---|
| 831 |
|
---|
| 832 | <para>
|
---|
| 833 | There is a further layer of print job processing that is known as <command>intelligent</command>
|
---|
| 834 | printing that automatically senses the file format of data submitted for printing and
|
---|
| 835 | then invokes a suitable print filter to convert the incoming data stream into a format
|
---|
| 836 | suited to the printer to which the job is dispatched.
|
---|
| 837 | </para>
|
---|
| 838 |
|
---|
| 839 | <para>
|
---|
| 840 | <indexterm><primary>CUPS</primary></indexterm>
|
---|
| 841 | <indexterm><primary>Easy Software Products</primary></indexterm>
|
---|
| 842 | <indexterm><primary>Postscript</primary></indexterm>
|
---|
| 843 | The CUPS printing subsystem is capable of intelligent printing. It has the capacity to
|
---|
| 844 | detect the data format and apply a print filter. This means that it is feasible to install
|
---|
| 845 | on all Windows clients a single printer driver for use with all printers that are routed
|
---|
| 846 | through CUPS. The most sensible driver to use is one for a PostScript printer. Fortunately,
|
---|
| 847 | <ulink url="http://www.easysw.com">Easy Software Products</ulink>, the authors of CUPS, have
|
---|
| 848 | released a PostScript printing driver for Windows. It can be installed into the Samba
|
---|
| 849 | printing backend so that it automatically downloads to the client when needed.
|
---|
| 850 | </para>
|
---|
| 851 |
|
---|
| 852 | <para>
|
---|
| 853 | This means that so long as there is a CUPS driver for the printer, all printing from Windows
|
---|
| 854 | software can use PostScript, no matter what the actual printer language for the physical
|
---|
| 855 | device is. It also means that the administrator can swap out a printer with a totally
|
---|
| 856 | different type of device without ever needing to change a client workstation driver.
|
---|
| 857 | </para>
|
---|
| 858 |
|
---|
| 859 | <para>
|
---|
| 860 | This book is about Samba-3, so you can confine the printing style to just the smart
|
---|
| 861 | style of installation. Those interested in further information regarding intelligent
|
---|
| 862 | printing should review documentation on the Easy Software Products Web site.
|
---|
| 863 | </para>
|
---|
| 864 |
|
---|
| 865 | </sect3>
|
---|
| 866 |
|
---|
| 867 | <sect3 id="sbeavoid">
|
---|
| 868 | <title>Avoiding Failures: Solving Problems Before They Happen</title>
|
---|
| 869 |
|
---|
| 870 | <para>
|
---|
| 871 | It has often been said that there are three types of people in the world: those who
|
---|
| 872 | have sharp minds and those who forget things. Please do not ask what the third group
|
---|
| 873 | is like! Well, it seems that many of us have company in the second group. There must
|
---|
| 874 | be a good explanation why so many network administrators fail to solve apparently
|
---|
| 875 | simple problems efficiently and effectively.
|
---|
| 876 | </para>
|
---|
| 877 |
|
---|
| 878 | <para>
|
---|
| 879 | Here are some diagnostic guidelines that can be referred to when things go wrong:
|
---|
| 880 | </para>
|
---|
| 881 |
|
---|
| 882 | <sect4>
|
---|
| 883 | <title>Preliminary Advice: Dangers Can Be Avoided</title>
|
---|
| 884 |
|
---|
| 885 | <para>
|
---|
| 886 | The best advice regarding how to mend a broken leg is <quote>Never break a leg!</quote>
|
---|
| 887 | </para>
|
---|
| 888 |
|
---|
| 889 | <para>
|
---|
| 890 | <indexterm><primary>LDAP</primary></indexterm>
|
---|
| 891 | Newcomers to Samba and LDAP seem to struggle a great deal at first. If you want advice
|
---|
| 892 | regarding the best way to remedy LDAP and Samba problems: <quote>Avoid them like the plague!</quote>
|
---|
| 893 | </para>
|
---|
| 894 |
|
---|
| 895 | <para>
|
---|
| 896 | If you are now asking yourself how problems can be avoided, the best advice is to start
|
---|
| 897 | out your learning experience with a <emphasis>known-good configuration.</emphasis> After
|
---|
| 898 | you have seen a fully working solution, a good way to learn is to make slow and progressive
|
---|
| 899 | changes that cause things to break, then observe carefully how and why things ceased to work.
|
---|
| 900 | </para>
|
---|
| 901 |
|
---|
| 902 | <para>
|
---|
| 903 | The examples in this chapter (also in the book as a whole) are known to work. That means
|
---|
| 904 | that they could serve as the kick-off point for your journey through fields of knowledge.
|
---|
| 905 | Use this resource carefully; we hope it serves you well.
|
---|
| 906 | </para>
|
---|
| 907 |
|
---|
| 908 | <warning><para>
|
---|
| 909 | Do not be lulled into thinking that you can easily adopt the examples in this
|
---|
| 910 | book and adapt them without first working through the examples provided. A little
|
---|
| 911 | thing overlooked can cause untold pain and may permanently tarnish your experience.
|
---|
| 912 | </para></warning>
|
---|
| 913 |
|
---|
| 914 | </sect4>
|
---|
| 915 |
|
---|
| 916 | <sect4>
|
---|
| 917 | <title>The Name Service Caching Daemon</title>
|
---|
| 918 |
|
---|
| 919 | <para>
|
---|
| 920 | The name service caching daemon (nscd) is a primary cause of difficulties with name
|
---|
| 921 | resolution, particularly where <command>winbind</command> is used. Winbind does its
|
---|
| 922 | own caching, thus nscd causes double caching which can lead to peculiar problems during
|
---|
| 923 | debugging. As a rule, it is a good idea to turn off the name service caching daemon.
|
---|
| 924 | </para>
|
---|
| 925 |
|
---|
| 926 | <para>
|
---|
| 927 | Operation of the name service caching daemon is controlled by the
|
---|
| 928 | <filename>/etc/nscd.conf</filename> file. Typical contents of this file are as follows:
|
---|
| 929 | <screen>
|
---|
| 930 | # /etc/nscd.conf
|
---|
| 931 | # An example Name Service Cache config file. This file is needed by nscd.
|
---|
| 932 | # Legal entries are:
|
---|
| 933 | # logfile <file>
|
---|
| 934 | # debug-level <level>
|
---|
| 935 | # threads <threads to use>
|
---|
| 936 | # server-user <user to run server as instead of root>
|
---|
| 937 | # server-user is ignored if nscd is started with -S parameters
|
---|
| 938 | # stat-user <user who is allowed to request statistics>
|
---|
| 939 | # reload-count unlimited|<number>
|
---|
| 940 | #
|
---|
| 941 | # enable-cache <service> <yes|no>
|
---|
| 942 | # positive-time-to-live <service> <time in seconds>
|
---|
| 943 | # negative-time-to-live <service> <time in seconds>
|
---|
| 944 | # suggested-size <service> <prime number>
|
---|
| 945 | # check-files <service> <yes|no>
|
---|
| 946 | # persistent <service> <yes|no>
|
---|
| 947 | # shared <service> <yes|no>
|
---|
| 948 | # Currently supported cache names (services): passwd, group, hosts
|
---|
| 949 | # logfile /var/log/nscd.log
|
---|
| 950 | # threads 6
|
---|
| 951 | # server-user nobody
|
---|
| 952 | # stat-user somebody
|
---|
| 953 | debug-level 0
|
---|
| 954 | # reload-count 5
|
---|
| 955 | enable-cache passwd yes
|
---|
| 956 | positive-time-to-live passwd 600
|
---|
| 957 | negative-time-to-live passwd 20
|
---|
| 958 | suggested-size passwd 211
|
---|
| 959 | check-files passwd yes
|
---|
| 960 | persistent passwd yes
|
---|
| 961 | shared passwd yes
|
---|
| 962 | enable-cache group yes
|
---|
| 963 | positive-time-to-live group 3600
|
---|
| 964 | negative-time-to-live group 60
|
---|
| 965 | suggested-size group 211
|
---|
| 966 | check-files group yes
|
---|
| 967 | persistent group yes
|
---|
| 968 | shared group yes
|
---|
| 969 | # !!!!!WARNING!!!!! Host cache is insecure!!! The mechanism in nscd to
|
---|
| 970 | # cache hosts will cause your local system to not be able to trust
|
---|
| 971 | # forward/reverse lookup checks. DO NOT USE THIS if your system relies on
|
---|
| 972 | # this sort of security mechanism. Use a caching DNS server instead.
|
---|
| 973 | enable-cache hosts no
|
---|
| 974 | positive-time-to-live hosts 3600
|
---|
| 975 | negative-time-to-live hosts 20
|
---|
| 976 | suggested-size hosts 211
|
---|
| 977 | check-files hosts yes
|
---|
| 978 | persistent hosts yes
|
---|
| 979 | shared hosts yes
|
---|
| 980 | </screen>
|
---|
| 981 | It is feasible to comment out the <constant>passwd</constant> and <constant>group</constant>
|
---|
| 982 | entries so they will not be cached. Alternatively, it is often simpler to just disable the
|
---|
| 983 | <command>nscd</command> service by executing (on Novell SUSE Linux):
|
---|
| 984 | <screen>
|
---|
| 985 | &rootprompt; chkconfig nscd off
|
---|
| 986 | &rootprompt; rcnscd off
|
---|
| 987 | </screen>
|
---|
| 988 | </para>
|
---|
| 989 |
|
---|
| 990 | </sect4>
|
---|
| 991 |
|
---|
| 992 | <sect4>
|
---|
| 993 | <title>Debugging LDAP</title>
|
---|
| 994 |
|
---|
| 995 | <para>
|
---|
| 996 | <indexterm><primary>/etc/openldap/slapd.conf</primary></indexterm>
|
---|
| 997 | <indexterm><primary>loglevel</primary></indexterm>
|
---|
| 998 | <indexterm><primary>slapd</primary></indexterm>
|
---|
| 999 | In the example <filename>/etc/openldap/slapd.conf</filename> control file
|
---|
| 1000 | (see <link linkend="sbehap-dbconf"/>) there is an entry for <constant>loglevel 256</constant>.
|
---|
| 1001 | To enable logging via the syslog infrastructure, it is necessary to uncomment this parameter
|
---|
| 1002 | and restart <command>slapd</command>.
|
---|
| 1003 | </para>
|
---|
| 1004 |
|
---|
| 1005 | <para>
|
---|
| 1006 | <indexterm><primary>/etc/syslog.conf</primary></indexterm>
|
---|
| 1007 | <indexterm><primary>/var/log/ldaplogs</primary></indexterm>
|
---|
| 1008 | LDAP log information can be directed into a file that is separate from the normal system
|
---|
| 1009 | log files by changing the <filename>/etc/syslog.conf</filename> file so it has the following
|
---|
| 1010 | contents:
|
---|
| 1011 | <screen>
|
---|
| 1012 | # Some foreign boot scripts require local7
|
---|
| 1013 | #
|
---|
| 1014 | local0,local1.* -/var/log/localmessages
|
---|
| 1015 | local2,local3.* -/var/log/localmessages
|
---|
| 1016 | local5.* -/var/log/localmessages
|
---|
| 1017 | local6,local7.* -/var/log/localmessages
|
---|
| 1018 | local4.* -/var/log/ldaplogs
|
---|
| 1019 | </screen>
|
---|
| 1020 | In this case, all LDAP-related logs will be directed to the file
|
---|
| 1021 | <filename>/var/log/ldaplogs</filename>. This makes it easy to track LDAP errors.
|
---|
| 1022 | The snippet provides a simple example of usage that can be modified to suit
|
---|
| 1023 | local site needs. The configuration used later in this chapter reflects such
|
---|
| 1024 | customization with the intent that LDAP log files will be stored at a location
|
---|
| 1025 | that meets local site needs and wishes more fully.
|
---|
| 1026 | </para>
|
---|
| 1027 |
|
---|
| 1028 | </sect4>
|
---|
| 1029 |
|
---|
| 1030 | <sect4>
|
---|
| 1031 | <title>Debugging NSS_LDAP</title>
|
---|
| 1032 |
|
---|
| 1033 | <para>
|
---|
| 1034 | The basic mechanism for diagnosing problems with the nss_ldap utility involves adding to the
|
---|
| 1035 | <filename>/etc/ldap.conf</filename> file the following parameters:
|
---|
| 1036 | <screen>
|
---|
| 1037 | debug 256
|
---|
| 1038 | logdir /data/logs
|
---|
| 1039 | </screen>
|
---|
| 1040 | Create the log directory as follows:
|
---|
| 1041 | <screen>
|
---|
| 1042 | &rootprompt; mkdir /data/logs
|
---|
| 1043 | </screen>
|
---|
| 1044 | </para>
|
---|
| 1045 |
|
---|
| 1046 | <?latex \newpage ?>
|
---|
| 1047 |
|
---|
| 1048 | <para>
|
---|
| 1049 | The diagnostic process should follow these steps:
|
---|
| 1050 | </para>
|
---|
| 1051 |
|
---|
| 1052 | <procedure>
|
---|
| 1053 | <title>NSS_LDAP Diagnostic Steps</title>
|
---|
| 1054 |
|
---|
| 1055 | <step><para>
|
---|
| 1056 | Verify the <constant>nss_base_passwd, nss_base_shadow, nss_base_group</constant> entries
|
---|
| 1057 | in the <filename>/etc/ldap.conf</filename> file and compare them closely with the directory
|
---|
| 1058 | tree location that was chosen when the directory was first created.
|
---|
| 1059 | </para>
|
---|
| 1060 |
|
---|
| 1061 | <para>
|
---|
| 1062 | One way this can be done is by executing:
|
---|
| 1063 | <screen>
|
---|
| 1064 | &rootprompt; slapcat | grep Group | grep dn
|
---|
| 1065 | dn: ou=Groups,dc=abmas,dc=biz
|
---|
| 1066 | dn: cn=Domain Admins,ou=Groups,dc=abmas,dc=biz
|
---|
| 1067 | dn: cn=Domain Users,ou=Groups,dc=abmas,dc=biz
|
---|
| 1068 | dn: cn=Domain Guests,ou=Groups,dc=abmas,dc=biz
|
---|
| 1069 | dn: cn=Domain Computers,ou=Groups,dc=abmas,dc=biz
|
---|
| 1070 | dn: cn=Administrators,ou=Groups,dc=abmas,dc=biz
|
---|
| 1071 | dn: cn=Print Operators,ou=Groups,dc=abmas,dc=biz
|
---|
| 1072 | dn: cn=Backup Operators,ou=Groups,dc=abmas,dc=biz
|
---|
| 1073 | dn: cn=Replicators,ou=Groups,dc=abmas,dc=biz
|
---|
| 1074 | </screen>
|
---|
| 1075 | The first line is the DIT entry point for the container for POSIX groups. The correct entry
|
---|
| 1076 | for the <filename>/etc/ldap.conf</filename> for the <constant>nss_base_group</constant>
|
---|
| 1077 | parameter therefore is the distinguished name (dn) as applied here:
|
---|
| 1078 | <screen>
|
---|
| 1079 | nss_base_group ou=Groups,dc=abmas,dc=biz?one
|
---|
| 1080 | </screen>
|
---|
| 1081 | The same process may be followed to determine the appropriate dn for user accounts.
|
---|
| 1082 | If the container for computer accounts is not the same as that for users (see the &smb.conf;
|
---|
| 1083 | file entry for <constant>ldap machine suffix</constant>), it may be necessary to set the
|
---|
| 1084 | following DIT dn in the <filename>/etc/ldap.conf</filename> file:
|
---|
| 1085 | <screen>
|
---|
| 1086 | nss_base_passwd dc=abmas,dc=biz?sub
|
---|
| 1087 | </screen>
|
---|
| 1088 | This instructs LDAP to search for machine as well as user entries from the top of the DIT
|
---|
| 1089 | down. This is inefficient, but at least should work. Note: It is possible to specify multiple
|
---|
| 1090 | <constant>nss_base_passwd</constant> entries in the <filename>/etc/ldap.conf</filename> file; they
|
---|
| 1091 | will be evaluated sequentially. Let us consider an example of use where the following DIT
|
---|
| 1092 | has been implemented:
|
---|
| 1093 | </para>
|
---|
| 1094 |
|
---|
| 1095 | <para>
|
---|
| 1096 | <itemizedlist>
|
---|
| 1097 | <listitem><para>User accounts are stored under the DIT: ou=Users, dc=abmas, dc=biz</para></listitem>
|
---|
| 1098 | <listitem><para>User login accounts are under the DIT: ou=People, ou-Users, dc=abmas, dc=biz</para></listitem>
|
---|
| 1099 | <listitem><para>Computer accounts are under the DIT: ou=Computers, ou=Users, dc=abmas, dc=biz</para></listitem>
|
---|
| 1100 | </itemizedlist>
|
---|
| 1101 | </para>
|
---|
| 1102 |
|
---|
| 1103 | <para>
|
---|
| 1104 | The appropriate multiple entry for the <constant>nss_base_passwd</constant> directive
|
---|
| 1105 | in the <filename>/etc/ldap.conf</filename> file may be:
|
---|
| 1106 | <screen>
|
---|
| 1107 | nss_base_passwd ou=People,ou=Users,dc=abmas,dc=org?one
|
---|
| 1108 | nss_base_passwd ou=Computers,ou=Users,dc=abmas,dc=org?one
|
---|
| 1109 | </screen>
|
---|
| 1110 | </para></step>
|
---|
| 1111 |
|
---|
| 1112 | <step><para>
|
---|
| 1113 | Perform lookups such as:
|
---|
| 1114 | <screen>
|
---|
| 1115 | &rootprompt; getent passwd
|
---|
| 1116 | </screen>
|
---|
| 1117 | Each such lookup will create an entry in the <filename>/data/log</filename> directory
|
---|
| 1118 | for each such process executed. The contents of each file created in this directory
|
---|
| 1119 | may provide a hint as to the cause of the a problem that is under investigation.
|
---|
| 1120 | </para></step>
|
---|
| 1121 |
|
---|
| 1122 | <step><para>
|
---|
| 1123 | For additional diagnostic information, check the contents of the <filename>/var/log/messages</filename>
|
---|
| 1124 | to see what error messages are being generated as a result of the LDAP lookups. Here is an example of
|
---|
| 1125 | a successful lookup:
|
---|
| 1126 | <screen>
|
---|
| 1127 | slapd[12164]: conn=0 fd=10 ACCEPT from IP=127.0.0.1:33539
|
---|
| 1128 | (IP=0.0.0.0:389)
|
---|
| 1129 | slapd[12164]: conn=0 op=0 BIND dn="" method=128
|
---|
| 1130 | slapd[12164]: conn=0 op=0 RESULT tag=97 err=0 text=
|
---|
| 1131 | slapd[12164]: conn=0 op=1 SRCH base="" scope=0 deref=0
|
---|
| 1132 | filter="(objectClass=*)"
|
---|
| 1133 | slapd[12164]: conn=0 op=1 SEARCH RESULT tag=101 err=0
|
---|
| 1134 | nentries=1 text=
|
---|
| 1135 | slapd[12164]: conn=0 op=2 UNBIND
|
---|
| 1136 | slapd[12164]: conn=0 fd=10 closed
|
---|
| 1137 | slapd[12164]: conn=1 fd=10 ACCEPT from
|
---|
| 1138 | IP=127.0.0.1:33540 (IP=0.0.0.0:389)
|
---|
| 1139 | slapd[12164]: conn=1 op=0 BIND
|
---|
| 1140 | dn="cn=Manager,dc=abmas,dc=biz" method=128
|
---|
| 1141 | slapd[12164]: conn=1 op=0 BIND
|
---|
| 1142 | dn="cn=Manager,dc=abmas,dc=biz" mech=SIMPLE ssf=0
|
---|
| 1143 | slapd[12164]: conn=1 op=0 RESULT tag=97 err=0 text=
|
---|
| 1144 | slapd[12164]: conn=1 op=1 SRCH
|
---|
| 1145 | base="ou=People,dc=abmas,dc=biz" scope=1 deref=0
|
---|
| 1146 | filter="(objectClass=posixAccount)"
|
---|
| 1147 | slapd[12164]: conn=1 op=1 SRCH attr=uid userPassword
|
---|
| 1148 | uidNumber gidNumber cn
|
---|
| 1149 | homeDirectory loginShell gecos description objectClass
|
---|
| 1150 | slapd[12164]: conn=1 op=1 SEARCH RESULT tag=101 err=0
|
---|
| 1151 | nentries=2 text=
|
---|
| 1152 | slapd[12164]: conn=1 fd=10 closed
|
---|
| 1153 |
|
---|
| 1154 | </screen>
|
---|
| 1155 | </para></step>
|
---|
| 1156 |
|
---|
| 1157 | <step><para>
|
---|
| 1158 | Check that the bindpw entry in the <filename>/etc/ldap.conf</filename> or in the
|
---|
| 1159 | <filename>/etc/ldap.secrets</filename> file is correct, as specified in the
|
---|
| 1160 | <filename>/etc/openldap/slapd.conf</filename> file.
|
---|
| 1161 | </para></step>
|
---|
| 1162 |
|
---|
| 1163 | </procedure>
|
---|
| 1164 |
|
---|
| 1165 | </sect4>
|
---|
| 1166 |
|
---|
| 1167 | <sect4>
|
---|
| 1168 | <title>Debugging Samba</title>
|
---|
| 1169 |
|
---|
| 1170 | <para>
|
---|
| 1171 | The following parameters in the &smb.conf; file can be useful in tracking down Samba-related problems:
|
---|
| 1172 | <screen>
|
---|
| 1173 | [global]
|
---|
| 1174 | ...
|
---|
| 1175 | log level = 5
|
---|
| 1176 | log file = /var/log/samba/%m.log
|
---|
| 1177 | max log size = 0
|
---|
| 1178 | ...
|
---|
| 1179 | </screen>
|
---|
| 1180 | This will result in the creation of a separate log file for every client from which connections
|
---|
| 1181 | are made. The log file will be quite verbose and will grow continually. Do not forget to
|
---|
| 1182 | change these lines to the following when debugging has been completed:
|
---|
| 1183 | <screen>
|
---|
| 1184 | [global]
|
---|
| 1185 | ...
|
---|
| 1186 | log level = 1
|
---|
| 1187 | log file = /var/log/samba/%m.log
|
---|
| 1188 | max log size = 50
|
---|
| 1189 | ...
|
---|
| 1190 | </screen>
|
---|
| 1191 | </para>
|
---|
| 1192 |
|
---|
| 1193 | <para>
|
---|
| 1194 | The log file can be analyzed by executing:
|
---|
| 1195 | <screen>
|
---|
| 1196 | &rootprompt; cd /var/log/samba
|
---|
| 1197 | &rootprompt; grep -v "^\[200" machine_name.log
|
---|
| 1198 | </screen>
|
---|
| 1199 | </para>
|
---|
| 1200 |
|
---|
| 1201 | <para>
|
---|
| 1202 | Search for hints of what may have failed by looking for the words <emphasis>fail</emphasis>
|
---|
| 1203 | and <emphasis>error</emphasis>.
|
---|
| 1204 | </para>
|
---|
| 1205 |
|
---|
| 1206 | </sect4>
|
---|
| 1207 |
|
---|
| 1208 | <sect4>
|
---|
| 1209 | <title>Debugging on the Windows Client</title>
|
---|
| 1210 |
|
---|
| 1211 | <para>
|
---|
| 1212 | MS Windows 2000 Professional and Windows XP Professional clients can be configured
|
---|
| 1213 | to create a netlogon.log file that can be very helpful in diagnosing network logon problems. Search
|
---|
| 1214 | the Microsoft knowledge base for detailed instructions. The techniques vary a little with each
|
---|
| 1215 | version of MS Windows.
|
---|
| 1216 | </para>
|
---|
| 1217 |
|
---|
| 1218 | </sect4>
|
---|
| 1219 |
|
---|
| 1220 | </sect3>
|
---|
| 1221 |
|
---|
| 1222 | </sect2>
|
---|
| 1223 |
|
---|
| 1224 |
|
---|
| 1225 | <sect2>
|
---|
| 1226 | <title>Political Issues</title>
|
---|
| 1227 |
|
---|
| 1228 | <para>
|
---|
| 1229 | MS Windows network users are generally very sensitive to limits that may be imposed when
|
---|
| 1230 | confronted with locked-down workstation configurations. The challenge you face must
|
---|
| 1231 | be promoted as a choice between reliable, fast network operation and a constant flux
|
---|
| 1232 | of problems that result in user irritation.
|
---|
| 1233 | </para>
|
---|
| 1234 |
|
---|
| 1235 | </sect2>
|
---|
| 1236 |
|
---|
| 1237 | <sect2>
|
---|
| 1238 | <title>Installation Checklist</title>
|
---|
| 1239 |
|
---|
| 1240 | <para>
|
---|
| 1241 | You are starting a complex project. Even though you went through the installation of a complex
|
---|
| 1242 | network in <link linkend="Big500users"/>, this network is a bigger challenge because of the
|
---|
| 1243 | large number of complex applications that must be configured before the first few steps
|
---|
| 1244 | can be validated. Take stock of what you are about to undertake, prepare yourself, and
|
---|
| 1245 | frequently review the steps ahead while making at least a mental note of what has already
|
---|
| 1246 | been completed. The following task list may help you to keep track of the task items
|
---|
| 1247 | that are covered:
|
---|
| 1248 | </para>
|
---|
| 1249 |
|
---|
| 1250 |
|
---|
| 1251 | <itemizedlist>
|
---|
| 1252 | <listitem><para>Samba-3 PDC Server Configuration</para>
|
---|
| 1253 | <orderedlist>
|
---|
| 1254 | <listitem><para>DHCP and DNS servers</para></listitem>
|
---|
| 1255 | <listitem><para>OpenLDAP server</para></listitem>
|
---|
| 1256 | <listitem><para>PAM and NSS client tools</para></listitem>
|
---|
| 1257 | <listitem><para>Samba-3 PDC</para></listitem>
|
---|
| 1258 | <listitem><para>Idealx smbldap scripts</para></listitem>
|
---|
| 1259 | <listitem><para>LDAP initialization</para></listitem>
|
---|
| 1260 | <listitem><para>Create user and group accounts</para></listitem>
|
---|
| 1261 | <listitem><para>Printers</para></listitem>
|
---|
| 1262 | <listitem><para>Share point directory roots</para></listitem>
|
---|
| 1263 | <listitem><para>Profile directories</para></listitem>
|
---|
| 1264 | <listitem><para>Logon scripts</para></listitem>
|
---|
| 1265 | <listitem><para>Configuration of user rights and privileges</para></listitem>
|
---|
| 1266 | </orderedlist>
|
---|
| 1267 | </listitem>
|
---|
| 1268 | <listitem><para>Samba-3 BDC Server Configuration</para>
|
---|
| 1269 | <orderedlist>
|
---|
| 1270 | <listitem><para>DHCP and DNS servers</para></listitem>
|
---|
| 1271 | <listitem><para>PAM and NSS client tools</para></listitem>
|
---|
| 1272 | <listitem><para>Printers</para></listitem>
|
---|
| 1273 | <listitem><para>Share point directory roots</para></listitem>
|
---|
| 1274 | <listitem><para>Profiles directories</para></listitem>
|
---|
| 1275 | </orderedlist>
|
---|
| 1276 | </listitem>
|
---|
| 1277 | <listitem><para>Windows XP Client Configuration</para>
|
---|
| 1278 | <orderedlist>
|
---|
| 1279 | <listitem><para>Default profile folder redirection</para></listitem>
|
---|
| 1280 | <listitem><para>MS Outlook PST file relocation</para></listitem>
|
---|
| 1281 | <listitem><para>Delete roaming profile on logout</para></listitem>
|
---|
| 1282 | <listitem><para>Upload printer drivers to Samba servers</para></listitem>
|
---|
| 1283 | <listitem><para>Install software</para></listitem>
|
---|
| 1284 | <listitem><para>Creation of roll-out images</para></listitem>
|
---|
| 1285 | </orderedlist>
|
---|
| 1286 | </listitem>
|
---|
| 1287 | </itemizedlist>
|
---|
| 1288 |
|
---|
| 1289 |
|
---|
| 1290 | </sect2>
|
---|
| 1291 |
|
---|
| 1292 | </sect1>
|
---|
| 1293 |
|
---|
| 1294 | <sect1>
|
---|
| 1295 | <title>Samba Server Implementation</title>
|
---|
| 1296 |
|
---|
| 1297 | <para>
|
---|
| 1298 | <indexterm><primary>file servers</primary></indexterm>
|
---|
| 1299 | <indexterm><primary>BDC</primary></indexterm>
|
---|
| 1300 | The network design shown in <link linkend="chap6net"/> is not comprehensive. It is assumed
|
---|
| 1301 | that you will install additional file servers and possibly additional BDCs.
|
---|
| 1302 | </para>
|
---|
| 1303 |
|
---|
| 1304 | <figure id="chap6net">
|
---|
| 1305 | <title>Network Topology &smbmdash; 500 User Network Using ldapsam passdb backend</title>
|
---|
| 1306 | <imagefile scale="50">chap6-net</imagefile>
|
---|
| 1307 | </figure>
|
---|
| 1308 |
|
---|
| 1309 | <para>
|
---|
| 1310 | <indexterm><primary>SUSE Linux</primary></indexterm>
|
---|
| 1311 | <indexterm><primary>Red Hat Linux</primary></indexterm>
|
---|
| 1312 | All configuration files and locations are shown for SUSE Linux 9.2 and are equally valid for SUSE
|
---|
| 1313 | Linux Enterprise Server 9. The file locations for Red Hat Linux are similar. You may need to
|
---|
| 1314 | adjust the locations for your particular Linux system distribution/implementation.
|
---|
| 1315 | </para>
|
---|
| 1316 |
|
---|
| 1317 | <note><para>
|
---|
| 1318 | The following information applies to Samba-3.0.20 when used with the Idealx smbldap-tools
|
---|
| 1319 | scripts version 0.9.1. If using a different version of Samba or of the smbldap-tools tarball,
|
---|
| 1320 | please verify that the versions you are about to use are matching. The smbldap-tools package
|
---|
| 1321 | uses counter-entries in the LDAP directory to avoid duplication of the UIDs and GIDs that are
|
---|
| 1322 | issued for POSIX accounts. The LDAP rdn under which this information is stored are called
|
---|
| 1323 | <constant>uidNumber</constant> and <constant>gidNumber</constant> respectively. These may be
|
---|
| 1324 | located in any convenient part of the directory information tree (DIT). In the examples that
|
---|
| 1325 | follow they have been located under <constant>dn=sambaDomainName=MEGANET2,dc=abmas,dc=org</constant>.
|
---|
| 1326 | They could just as well be located under the rdn <constant>cn=NextFreeUnixId</constant>.
|
---|
| 1327 | </para></note>
|
---|
| 1328 |
|
---|
| 1329 | <para>
|
---|
| 1330 | The steps in the process involve changes from the network configuration shown in
|
---|
| 1331 | <link linkend="Big500users"/>. Before implementing the following steps, you must
|
---|
| 1332 | have completed the network implementation shown in that chapter. If you are starting
|
---|
| 1333 | with newly installed Linux servers, you must complete the steps shown in
|
---|
| 1334 | <link linkend="ch5-dnshcp-setup"/> before commencing at <link linkend="ldapsetup"/>.
|
---|
| 1335 | </para>
|
---|
| 1336 |
|
---|
| 1337 | <sect2 id="ldapsetup">
|
---|
| 1338 | <title>OpenLDAP Server Configuration</title>
|
---|
| 1339 |
|
---|
| 1340 | <para>
|
---|
| 1341 | <indexterm><primary>nss_ldap</primary></indexterm>
|
---|
| 1342 | <indexterm><primary>pam_ldap</primary></indexterm>
|
---|
| 1343 | <indexterm><primary>openldap</primary></indexterm>
|
---|
| 1344 | Confirm that the packages shown in <link linkend="oldapreq"/> are installed on your system.
|
---|
| 1345 | </para>
|
---|
| 1346 |
|
---|
| 1347 | <table id="oldapreq">
|
---|
| 1348 | <title>Required OpenLDAP Linux Packages</title>
|
---|
| 1349 | <tgroup cols="3">
|
---|
| 1350 | <colspec align="left"/>
|
---|
| 1351 | <colspec align="left"/>
|
---|
| 1352 | <colspec align="left"/>
|
---|
| 1353 | <thead>
|
---|
| 1354 | <row>
|
---|
| 1355 | <entry align="center">SUSE Linux 8.x</entry>
|
---|
| 1356 | <entry align="center">SUSE Linux 9.x</entry>
|
---|
| 1357 | <entry align="center">Red Hat Linux</entry>
|
---|
| 1358 | </row>
|
---|
| 1359 | </thead>
|
---|
| 1360 | <tbody>
|
---|
| 1361 | <row>
|
---|
| 1362 | <entry>nss_ldap</entry>
|
---|
| 1363 | <entry>nss_ldap</entry>
|
---|
| 1364 | <entry>nss_ldap</entry>
|
---|
| 1365 | </row>
|
---|
| 1366 | <row>
|
---|
| 1367 | <entry>pam_ldap</entry>
|
---|
| 1368 | <entry>pam_ldap</entry>
|
---|
| 1369 | <entry>pam_ldap</entry>
|
---|
| 1370 | </row>
|
---|
| 1371 | <row>
|
---|
| 1372 | <entry>openldap2</entry>
|
---|
| 1373 | <entry>openldap2</entry>
|
---|
| 1374 | <entry>openldap</entry>
|
---|
| 1375 | </row>
|
---|
| 1376 | <row>
|
---|
| 1377 | <entry>openldap2-client</entry>
|
---|
| 1378 | <entry>openldap2-client</entry>
|
---|
| 1379 | <entry></entry>
|
---|
| 1380 | </row>
|
---|
| 1381 | </tbody>
|
---|
| 1382 | </tgroup>
|
---|
| 1383 | </table>
|
---|
| 1384 |
|
---|
| 1385 | <para>
|
---|
| 1386 | Samba-3 and OpenLDAP will have a degree of interdependence that is unavoidable. The method
|
---|
| 1387 | for bootstrapping the LDAP and Samba-3 configuration is relatively straightforward. If you
|
---|
| 1388 | follow these guidelines, the resulting system should work fine.
|
---|
| 1389 | </para>
|
---|
| 1390 |
|
---|
| 1391 | <procedure>
|
---|
| 1392 | <title>OpenLDAP Server Configuration Steps</title>
|
---|
| 1393 |
|
---|
| 1394 | <step><para>
|
---|
| 1395 | <indexterm><primary>/etc/openldap/slapd.conf</primary></indexterm>
|
---|
| 1396 | Install the file shown in <link linkend="sbehap-slapdconf"/> in the directory
|
---|
| 1397 | <filename>/etc/openldap</filename>.
|
---|
| 1398 | </para></step>
|
---|
| 1399 |
|
---|
| 1400 | <step><para>
|
---|
| 1401 | <indexterm><primary>/data/ldap</primary></indexterm>
|
---|
| 1402 | <indexterm><primary>group account</primary></indexterm>
|
---|
| 1403 | <indexterm><primary>user account</primary></indexterm>
|
---|
| 1404 | Remove all files from the directory <filename>/data/ldap</filename>, making certain that
|
---|
| 1405 | the directory exists with permissions:
|
---|
| 1406 | <screen>
|
---|
| 1407 | &rootprompt; ls -al /data | grep ldap
|
---|
| 1408 | drwx------ 2 ldap ldap 48 Dec 15 22:11 ldap
|
---|
| 1409 | </screen>
|
---|
| 1410 | This may require you to add a user and a group account for LDAP if they do not exist.
|
---|
| 1411 | </para></step>
|
---|
| 1412 |
|
---|
| 1413 | <step><para>
|
---|
| 1414 | <indexterm><primary>DB_CONFIG</primary></indexterm>
|
---|
| 1415 | Install the file shown in <link linkend="sbehap-dbconf"/> in the directory
|
---|
| 1416 | <filename>/data/ldap</filename>. In the event that this file is added after <constant>ldap</constant>
|
---|
| 1417 | has been started, it is possible to cause the new settings to take effect by shutting down
|
---|
| 1418 | the <constant>LDAP</constant> server, executing the <command>db_recover</command> command inside the
|
---|
| 1419 | <filename>/data/ldap</filename> directory, and then restarting the <constant>LDAP</constant> server.
|
---|
| 1420 | </para></step>
|
---|
| 1421 |
|
---|
| 1422 | <step><para>
|
---|
| 1423 | <indexterm><primary>syslog</primary></indexterm>
|
---|
| 1424 | Performance logging can be enabled and should preferably be sent to a file on
|
---|
| 1425 | a file system that is large enough to handle significantly sized logs. To enable
|
---|
| 1426 | the logging at a verbose level to permit detailed analysis, uncomment the entry in
|
---|
| 1427 | the <filename>/etc/openldap/slapd.conf</filename> shown as <quote>loglevel 256</quote>.
|
---|
| 1428 | </para>
|
---|
| 1429 |
|
---|
| 1430 | <para>
|
---|
| 1431 | Edit the <filename>/etc/syslog.conf</filename> file to add the following at the end
|
---|
| 1432 | of the file:
|
---|
| 1433 | <screen>
|
---|
| 1434 | local4.* -/data/ldap/log/openldap.log
|
---|
| 1435 | </screen>
|
---|
| 1436 | Note: The path <filename>/data/ldap/log</filename> should be set at a location
|
---|
| 1437 | that is convenient and that can store a large volume of data.
|
---|
| 1438 | </para></step>
|
---|
| 1439 |
|
---|
| 1440 | </procedure>
|
---|
| 1441 |
|
---|
| 1442 | <example id="sbehap-dbconf">
|
---|
| 1443 | <title>LDAP DB_CONFIG File</title>
|
---|
| 1444 | <screen>
|
---|
| 1445 | set_cachesize 0 150000000 1
|
---|
| 1446 | set_lg_regionmax 262144
|
---|
| 1447 | set_lg_bsize 2097152
|
---|
| 1448 | #set_lg_dir /var/log/bdb
|
---|
| 1449 | set_flags DB_LOG_AUTOREMOVE
|
---|
| 1450 | </screen>
|
---|
| 1451 | </example>
|
---|
| 1452 |
|
---|
| 1453 | <example id="sbehap-slapdconf">
|
---|
| 1454 | <title>LDAP Master Configuration File &smbmdash; <filename>/etc/openldap/slapd.conf</filename> Part A</title>
|
---|
| 1455 | <screen>
|
---|
| 1456 | include /etc/openldap/schema/core.schema
|
---|
| 1457 | include /etc/openldap/schema/cosine.schema
|
---|
| 1458 | include /etc/openldap/schema/inetorgperson.schema
|
---|
| 1459 | include /etc/openldap/schema/nis.schema
|
---|
| 1460 | include /etc/openldap/schema/samba3.schema
|
---|
| 1461 |
|
---|
| 1462 | pidfile /var/run/slapd/slapd.pid
|
---|
| 1463 | argsfile /var/run/slapd/slapd.args
|
---|
| 1464 |
|
---|
| 1465 | access to dn.base=""
|
---|
| 1466 | by self write
|
---|
| 1467 | by * auth
|
---|
| 1468 |
|
---|
| 1469 | access to attr=userPassword
|
---|
| 1470 | by self write
|
---|
| 1471 | by * auth
|
---|
| 1472 |
|
---|
| 1473 | access to attr=shadowLastChange
|
---|
| 1474 | by self write
|
---|
| 1475 | by * read
|
---|
| 1476 |
|
---|
| 1477 | access to *
|
---|
| 1478 | by * read
|
---|
| 1479 | by anonymous auth
|
---|
| 1480 |
|
---|
| 1481 | #loglevel 256
|
---|
| 1482 |
|
---|
| 1483 | schemacheck on
|
---|
| 1484 | idletimeout 30
|
---|
| 1485 | backend bdb
|
---|
| 1486 | database bdb
|
---|
| 1487 | checkpoint 1024 5
|
---|
| 1488 | cachesize 10000
|
---|
| 1489 |
|
---|
| 1490 | suffix "dc=abmas,dc=biz"
|
---|
| 1491 | rootdn "cn=Manager,dc=abmas,dc=biz"
|
---|
| 1492 |
|
---|
| 1493 | # rootpw = not24get
|
---|
| 1494 | rootpw {SSHA}86kTavd9Dw3FAz6qzWTrCOKX/c0Qe+UV
|
---|
| 1495 |
|
---|
| 1496 | directory /data/ldap
|
---|
| 1497 | </screen>
|
---|
| 1498 | </example>
|
---|
| 1499 |
|
---|
| 1500 | <example id="sbehap-slapdconf2">
|
---|
| 1501 | <title>LDAP Master Configuration File &smbmdash; <filename>/etc/openldap/slapd.conf</filename> Part B</title>
|
---|
| 1502 | <screen>
|
---|
| 1503 | # Indices to maintain
|
---|
| 1504 | index objectClass eq
|
---|
| 1505 | index cn pres,sub,eq
|
---|
| 1506 | index sn pres,sub,eq
|
---|
| 1507 | index uid pres,sub,eq
|
---|
| 1508 | index displayName pres,sub,eq
|
---|
| 1509 | index uidNumber eq
|
---|
| 1510 | index gidNumber eq
|
---|
| 1511 | index memberUID eq
|
---|
| 1512 | index sambaSID eq
|
---|
| 1513 | index sambaPrimaryGroupSID eq
|
---|
| 1514 | index sambaDomainName eq
|
---|
| 1515 | index default sub
|
---|
| 1516 | </screen>
|
---|
| 1517 | </example>
|
---|
| 1518 |
|
---|
| 1519 | </sect2>
|
---|
| 1520 |
|
---|
| 1521 | <sect2 id="sbehap-PAM-NSS">
|
---|
| 1522 | <title>PAM and NSS Client Configuration</title>
|
---|
| 1523 |
|
---|
| 1524 | <para>
|
---|
| 1525 | <indexterm><primary>LDAP</primary></indexterm>
|
---|
| 1526 | <indexterm><primary>NSS</primary></indexterm>
|
---|
| 1527 | <indexterm><primary>PAM</primary></indexterm>
|
---|
| 1528 | The steps that follow involve configuration of LDAP, NSS LDAP-based resolution of users and
|
---|
| 1529 | groups. Also, so that LDAP-based accounts can log onto the system, the steps ahead configure
|
---|
| 1530 | the Pluggable Authentication Modules (PAM) to permit LDAP-based authentication.
|
---|
| 1531 | </para>
|
---|
| 1532 |
|
---|
| 1533 | <para>
|
---|
| 1534 | <indexterm><primary>Pluggable Authentication Modules</primary><see>PAM</see></indexterm>
|
---|
| 1535 | <indexterm><primary>pam_unix2.so</primary></indexterm>
|
---|
| 1536 | Since you have chosen to put UNIX user and group accounts into the LDAP database, it is likely
|
---|
| 1537 | that you may want to use them for UNIX system (Linux) local machine logons. This necessitates
|
---|
| 1538 | correct configuration of PAM. The <command>pam_ldap</command> open source package provides the
|
---|
| 1539 | PAM modules that most people would use. On SUSE Linux systems, the <command>pam_unix2.so</command>
|
---|
| 1540 | module also has the ability to redirect authentication requests through LDAP.
|
---|
| 1541 | </para>
|
---|
| 1542 |
|
---|
| 1543 | <para>
|
---|
| 1544 | <indexterm><primary>YaST</primary></indexterm>
|
---|
| 1545 | <indexterm><primary>SUSE Linux</primary></indexterm>
|
---|
| 1546 | <indexterm><primary>Red Hat Linux</primary></indexterm>
|
---|
| 1547 | <indexterm><primary>authconfig</primary></indexterm>
|
---|
| 1548 | You have chosen to configure these services by directly editing the system files, but of course, you
|
---|
| 1549 | know that this configuration can be done using system tools provided by the Linux system vendor.
|
---|
| 1550 | SUSE Linux has a facility in YaST (the system admin tool) through <menuchoice><guimenu>yast</guimenu>
|
---|
| 1551 | <guimenuitem>system</guimenuitem><guimenuitem>ldap-client</guimenuitem></menuchoice> that permits
|
---|
| 1552 | configuration of SUSE Linux as an LDAP client. Red Hat Linux provides the <command>authconfig</command>
|
---|
| 1553 | tool for this.
|
---|
| 1554 | </para>
|
---|
| 1555 |
|
---|
| 1556 | <procedure>
|
---|
| 1557 | <title>PAM and NSS Client Configuration Steps</title>
|
---|
| 1558 |
|
---|
| 1559 | <step><para>
|
---|
| 1560 | <indexterm><primary>/lib/libnss_ldap.so.2</primary></indexterm>
|
---|
| 1561 | <indexterm><primary>/etc/ldap.conf</primary></indexterm>
|
---|
| 1562 | <indexterm><primary>nss_ldap</primary></indexterm>
|
---|
| 1563 | Execute the following command to find where the <filename>nss_ldap</filename> module
|
---|
| 1564 | expects to find its control file:
|
---|
| 1565 | <screen>
|
---|
| 1566 | &rootprompt; strings /lib/libnss_ldap.so.2 | grep conf
|
---|
| 1567 | </screen>
|
---|
| 1568 | The preferred and usual location is <filename>/etc/ldap.conf</filename>.
|
---|
| 1569 | </para></step>
|
---|
| 1570 |
|
---|
| 1571 | <step><para>
|
---|
| 1572 | On the server <constant>MASSIVE</constant>, install the file shown in
|
---|
| 1573 | <link linkend="sbehap-nss01"/> into the path that was obtained from the step above.
|
---|
| 1574 | On the servers called <constant>BLDG1</constant> and <constant>BLDG2</constant>, install the file shown in
|
---|
| 1575 | <link linkend="sbehap-nss02"/> into the path that was obtained from the step above.
|
---|
| 1576 | </para></step>
|
---|
| 1577 |
|
---|
| 1578 | <example id="sbehap-nss01">
|
---|
| 1579 | <title>Configuration File for NSS LDAP Support &smbmdash; <filename>/etc/ldap.conf</filename></title>
|
---|
| 1580 | <screen>
|
---|
| 1581 | host 127.0.0.1
|
---|
| 1582 |
|
---|
| 1583 | base dc=abmas,dc=biz
|
---|
| 1584 |
|
---|
| 1585 | binddn cn=Manager,dc=abmas,dc=biz
|
---|
| 1586 | bindpw not24get
|
---|
| 1587 |
|
---|
| 1588 | timelimit 50
|
---|
| 1589 | bind_timelimit 50
|
---|
| 1590 | bind_policy hard
|
---|
| 1591 |
|
---|
| 1592 | idle_timelimit 3600
|
---|
| 1593 |
|
---|
| 1594 | pam_password exop
|
---|
| 1595 |
|
---|
| 1596 | nss_base_passwd ou=People,dc=abmas,dc=biz?one
|
---|
| 1597 | nss_base_shadow ou=People,dc=abmas,dc=biz?one
|
---|
| 1598 | nss_base_group ou=Groups,dc=abmas,dc=biz?one
|
---|
| 1599 |
|
---|
| 1600 | ssl off
|
---|
| 1601 | </screen>
|
---|
| 1602 | </example>
|
---|
| 1603 |
|
---|
| 1604 | <example id="sbehap-nss02">
|
---|
| 1605 | <title>Configuration File for NSS LDAP Clients Support &smbmdash; <filename>/etc/ldap.conf</filename></title>
|
---|
| 1606 | <screen>
|
---|
| 1607 | host 172.16.0.1
|
---|
| 1608 |
|
---|
| 1609 | base dc=abmas,dc=biz
|
---|
| 1610 |
|
---|
| 1611 | binddn cn=Manager,dc=abmas,dc=biz
|
---|
| 1612 | bindpw not24get
|
---|
| 1613 |
|
---|
| 1614 | timelimit 50
|
---|
| 1615 | bind_timelimit 50
|
---|
| 1616 | bind_policy hard
|
---|
| 1617 |
|
---|
| 1618 | idle_timelimit 3600
|
---|
| 1619 |
|
---|
| 1620 | pam_password exop
|
---|
| 1621 |
|
---|
| 1622 | nss_base_passwd ou=People,dc=abmas,dc=biz?one
|
---|
| 1623 | nss_base_shadow ou=People,dc=abmas,dc=biz?one
|
---|
| 1624 | nss_base_group ou=Groups,dc=abmas,dc=biz?one
|
---|
| 1625 |
|
---|
| 1626 | ssl off
|
---|
| 1627 | </screen>
|
---|
| 1628 | </example>
|
---|
| 1629 |
|
---|
| 1630 | <step><para>
|
---|
| 1631 | <indexterm><primary>/etc/nsswitch.conf</primary></indexterm>
|
---|
| 1632 | Edit the NSS control file (<filename>/etc/nsswitch.conf</filename>) so that the lines that
|
---|
| 1633 | control user and group resolution will obtain information from the normal system files as
|
---|
| 1634 | well as from <command>ldap</command>:
|
---|
| 1635 | <screen>
|
---|
| 1636 | passwd: files ldap
|
---|
| 1637 | shadow: files ldap
|
---|
| 1638 | group: files ldap
|
---|
| 1639 | hosts: files dns wins
|
---|
| 1640 | </screen>
|
---|
| 1641 | Later, when the LDAP database has been initialized and user and group accounts have been
|
---|
| 1642 | added, you can validate resolution of the LDAP resolver process. The inclusion of
|
---|
| 1643 | WINS-based hostname resolution is deliberate so that all MS Windows client hostnames can be
|
---|
| 1644 | resolved to their IP addresses, whether or not they are DHCP clients.
|
---|
| 1645 | </para>
|
---|
| 1646 |
|
---|
| 1647 | <note><para>
|
---|
| 1648 | Some Linux systems (Novell SUSE Linux in particular) add entries to the <filename>nsswitch.conf</filename>
|
---|
| 1649 | file that may cause operational problems with the configuration methods adopted in this book. It is
|
---|
| 1650 | advisable to comment out the entries <constant>passwd_compat</constant> and <constant>group_compat</constant>
|
---|
| 1651 | where they are found in this file.
|
---|
| 1652 | </para></note>
|
---|
| 1653 |
|
---|
| 1654 | <para>
|
---|
| 1655 | Even at the risk of overstating the issue, incorrect and inappropriate configuration of the
|
---|
| 1656 | <filename>nsswitch.conf</filename> file is a significant cause of operational problems with LDAP.
|
---|
| 1657 | </para></step>
|
---|
| 1658 |
|
---|
| 1659 | <step><para>
|
---|
| 1660 | <indexterm><primary>pam_unix2.so</primary><secondary>use_ldap</secondary></indexterm>
|
---|
| 1661 | For PAM LDAP configuration on this SUSE Linux 9.0 system, the simplest solution is to edit the following
|
---|
| 1662 | files in the <filename>/etc/pam.d</filename> directory: <command>login</command>, <command>password</command>,
|
---|
| 1663 | <command>samba</command>, <command>sshd</command>. In each file, locate every entry that has the
|
---|
| 1664 | <command>pam_unix2.so</command> entry and add to the line the entry <command>use_ldap</command> as shown
|
---|
| 1665 | for the <command>login</command> module in this example:
|
---|
| 1666 | <screen>
|
---|
| 1667 | #%PAM-1.0
|
---|
| 1668 | auth requisite pam_unix2.so nullok use_ldap #set_secrpc
|
---|
| 1669 | auth required pam_securetty.so
|
---|
| 1670 | auth required pam_nologin.so
|
---|
| 1671 | #auth required pam_homecheck.so
|
---|
| 1672 | auth required pam_env.so
|
---|
| 1673 | auth required pam_mail.so
|
---|
| 1674 | account required pam_unix2.so use_ldap
|
---|
| 1675 | password required pam_pwcheck.s nullok
|
---|
| 1676 | password required pam_unix2.so nullok use_first_pass \
|
---|
| 1677 | use_authtok use_ldap
|
---|
| 1678 | session required pam_unix2.so none use_ldap # debug or trace
|
---|
| 1679 | session required pam_limits.so
|
---|
| 1680 | </screen>
|
---|
| 1681 | </para>
|
---|
| 1682 |
|
---|
| 1683 | <para>
|
---|
| 1684 | <indexterm><primary>pam_ldap.so</primary></indexterm>
|
---|
| 1685 | On other Linux systems that do not have an LDAP-enabled <command>pam_unix2.so</command> module,
|
---|
| 1686 | you must edit these files by adding the <command>pam_ldap.so</command> modules as shown here:
|
---|
| 1687 | <screen>
|
---|
| 1688 | #%PAM-1.0
|
---|
| 1689 | auth required pam_securetty.so
|
---|
| 1690 | auth required pam_nologin.so
|
---|
| 1691 | auth sufficient pam_ldap.so
|
---|
| 1692 | auth required pam_unix2.so nullok try_first_pass #set_secrpc
|
---|
| 1693 | account sufficient pam_ldap.so
|
---|
| 1694 | account required pam_unix2.so
|
---|
| 1695 | password required pam_pwcheck.so nullok
|
---|
| 1696 | password required pam_ldap.so use_first_pass use_authtok
|
---|
| 1697 | password required pam_unix2.so nullok use_first_pass use_authtok
|
---|
| 1698 | session required pam_unix2.so none # debug or trace
|
---|
| 1699 | session required pam_limits.so
|
---|
| 1700 | session required pam_env.so
|
---|
| 1701 | session optional pam_mail.so
|
---|
| 1702 | </screen>
|
---|
| 1703 | This example does have the LDAP-enabled <command>pam_unix2.so</command>, but simply
|
---|
| 1704 | demonstrates the use of the <command>pam_ldap.so</command> module. You can use either
|
---|
| 1705 | implementation, but if the <command>pam_unix2.so</command> on your system supports
|
---|
| 1706 | LDAP, you probably want to use it rather than add an additional module.
|
---|
| 1707 | </para></step>
|
---|
| 1708 |
|
---|
| 1709 | </procedure>
|
---|
| 1710 |
|
---|
| 1711 | </sect2>
|
---|
| 1712 |
|
---|
| 1713 | <sect2 id="sbehap-massive">
|
---|
| 1714 | <title>Samba-3 PDC Configuration</title>
|
---|
| 1715 |
|
---|
| 1716 | <para>
|
---|
| 1717 | <indexterm><primary>Samba RPM Packages</primary></indexterm>
|
---|
| 1718 | Verify that the Samba-3.0.20 (or later) packages are installed on each SUSE Linux server
|
---|
| 1719 | before following the steps below. If Samba-3.0.20 (or later) is not installed, you have the
|
---|
| 1720 | choice to either build your own or obtain the packages from a dependable source.
|
---|
| 1721 | Packages for SUSE Linux 8.x, 9.x, and SUSE Linux Enterprise Server 9, as well as for
|
---|
| 1722 | Red Hat Fedora Core and Red Hat Enterprise Linux Server 3 and 4, are included on the CD-ROM that
|
---|
| 1723 | is included with this book.
|
---|
| 1724 | </para>
|
---|
| 1725 |
|
---|
| 1726 | <procedure>
|
---|
| 1727 | <title>Configuration of PDC Called <constant>MASSIVE</constant></title>
|
---|
| 1728 |
|
---|
| 1729 | <step><para>
|
---|
| 1730 | Install the files in <link linkend="sbehap-massive-smbconfa"/>,
|
---|
| 1731 | <link linkend="sbehap-massive-smbconfb"/>, <link linkend="sbehap-shareconfa"/>,
|
---|
| 1732 | and <link linkend="sbehap-shareconfb"/> into the <filename>/etc/samba/</filename>
|
---|
| 1733 | directory. The three files should be added together to form the &smb.conf;
|
---|
| 1734 | master file. It is a good practice to call this file something like
|
---|
| 1735 | <filename>smb.conf.master</filename> and then to perform all file edits
|
---|
| 1736 | on the master file. The operational &smb.conf; is then generated as shown in
|
---|
| 1737 | the next step.
|
---|
| 1738 | </para></step>
|
---|
| 1739 |
|
---|
| 1740 | <step><para>
|
---|
| 1741 | <indexterm><primary>testparm</primary></indexterm>
|
---|
| 1742 | Create and verify the contents of the &smb.conf; file that is generated by:
|
---|
| 1743 | <screen>
|
---|
| 1744 | &rootprompt; testparm -s smb.conf.master > smb.conf
|
---|
| 1745 | </screen>
|
---|
| 1746 | Immediately follow this with the following:
|
---|
| 1747 | <screen>
|
---|
| 1748 | &rootprompt; testparm
|
---|
| 1749 | </screen>
|
---|
| 1750 | The output that is created should be free from errors, as shown here:
|
---|
| 1751 |
|
---|
| 1752 | <screen>
|
---|
| 1753 | Load smb config files from /etc/samba/smb.conf
|
---|
| 1754 | Processing section "[accounts]"
|
---|
| 1755 | Processing section "[service]"
|
---|
| 1756 | Processing section "[pidata]"
|
---|
| 1757 | Processing section "[homes]"
|
---|
| 1758 | Processing section "[printers]"
|
---|
| 1759 | Processing section "[apps]"
|
---|
| 1760 | Processing section "[netlogon]"
|
---|
| 1761 | Processing section "[profiles]"
|
---|
| 1762 | Processing section "[profdata]"
|
---|
| 1763 | Processing section "[print$]"
|
---|
| 1764 | Loaded services file OK.
|
---|
| 1765 | Server role: ROLE_DOMAIN_PDC
|
---|
| 1766 | Press enter to see a dump of your service definitions
|
---|
| 1767 | </screen>
|
---|
| 1768 | </para></step>
|
---|
| 1769 |
|
---|
| 1770 | <step><para>
|
---|
| 1771 | Delete all runtime files from prior Samba operation by executing (for SUSE
|
---|
| 1772 | Linux):
|
---|
| 1773 | <screen>
|
---|
| 1774 | &rootprompt; rm /etc/samba/*tdb
|
---|
| 1775 | &rootprompt; rm /var/lib/samba/*tdb
|
---|
| 1776 | &rootprompt; rm /var/lib/samba/*dat
|
---|
| 1777 | &rootprompt; rm /var/log/samba/*
|
---|
| 1778 | </screen>
|
---|
| 1779 | </para></step>
|
---|
| 1780 |
|
---|
| 1781 | <step><para>
|
---|
| 1782 | <indexterm><primary>secrets.tdb</primary></indexterm>
|
---|
| 1783 | <indexterm><primary>smbpasswd</primary></indexterm>
|
---|
| 1784 | Samba-3 communicates with the LDAP server. The password that it uses to
|
---|
| 1785 | authenticate to the LDAP server must be stored in the <filename>secrets.tdb</filename>
|
---|
| 1786 | file. Execute the following to create the new <filename>secrets.tdb</filename> files
|
---|
| 1787 | and store the password for the LDAP Manager:
|
---|
| 1788 | <screen>
|
---|
| 1789 | &rootprompt; smbpasswd -w not24get
|
---|
| 1790 | </screen>
|
---|
| 1791 | The expected output from this command is:
|
---|
| 1792 | <screen>
|
---|
| 1793 | Setting stored password for "cn=Manager,dc=abmas,dc=biz" in secrets.tdb
|
---|
| 1794 | </screen>
|
---|
| 1795 | </para></step>
|
---|
| 1796 |
|
---|
| 1797 | <step><para>
|
---|
| 1798 | <indexterm><primary>smbd</primary></indexterm>
|
---|
| 1799 | <indexterm><primary>net</primary><secondary>getlocalsid</secondary></indexterm>
|
---|
| 1800 | Samba-3 generates a Windows Security Identifier (SID) only when <command>smbd</command>
|
---|
| 1801 | has been started. For this reason, you start Samba. After a few seconds delay,
|
---|
| 1802 | execute:
|
---|
| 1803 | <screen>
|
---|
| 1804 | &rootprompt; smbclient -L localhost -U%
|
---|
| 1805 | &rootprompt; net getlocalsid
|
---|
| 1806 | </screen>
|
---|
| 1807 | A report such as the following means that the domain SID has not yet
|
---|
| 1808 | been written to the <filename>secrets.tdb</filename> or to the LDAP backend:
|
---|
| 1809 | <screen>
|
---|
| 1810 | [2005/03/03 23:19:34, 0] lib/smbldap.c:smbldap_connect_system(852)
|
---|
| 1811 | failed to bind to server ldap://massive.abmas.biz
|
---|
| 1812 | with dn="cn=Manager,dc=abmas,dc=biz" Error: Can't contact LDAP server
|
---|
| 1813 | (unknown)
|
---|
| 1814 | [2005/03/03 23:19:48, 0] lib/smbldap.c:smbldap_search_suffix(1169)
|
---|
| 1815 | smbldap_search_suffix: Problem during the LDAP search:
|
---|
| 1816 | (unknown) (Timed out)
|
---|
| 1817 | </screen>
|
---|
| 1818 | The attempt to read the SID will cause and attempted bind to the LDAP server. Because the LDAP server
|
---|
| 1819 | is not running, this operation will fail by way of a timeout, as shown previously. This is
|
---|
| 1820 | normal output; do not worry about this error message. When the domain has been created and
|
---|
| 1821 | written to the <filename>secrets.tdb</filename> file, the output should look like this:
|
---|
| 1822 | <screen>
|
---|
| 1823 | SID for domain MASSIVE is: S-1-5-21-3504140859-1010554828-2431957765
|
---|
| 1824 | </screen>
|
---|
| 1825 | If, after a short delay (a few seconds), the domain SID has still not been written to
|
---|
| 1826 | the <filename>secrets.tdb</filename> file, it is necessary to investigate what
|
---|
| 1827 | may be misconfigured. In this case, carefully check the &smb.conf; file for typographical
|
---|
| 1828 | errors (the most common problem). The use of the <command>testparm</command> is highly
|
---|
| 1829 | recommended to validate the contents of this file.
|
---|
| 1830 | </para></step>
|
---|
| 1831 |
|
---|
| 1832 | <step><para>
|
---|
| 1833 | When a positive domain SID has been reported, stop Samba.
|
---|
| 1834 | </para></step>
|
---|
| 1835 |
|
---|
| 1836 | <step><para>
|
---|
| 1837 | <indexterm><primary>NFS server</primary></indexterm>
|
---|
| 1838 | <indexterm><primary>/etc/exports</primary></indexterm>
|
---|
| 1839 | <indexterm><primary>BDC</primary></indexterm>
|
---|
| 1840 | <indexterm><primary>rsync</primary></indexterm>
|
---|
| 1841 | Configure the NFS server for your Linux system. So you can complete the steps that
|
---|
| 1842 | follow, enter into the <filename>/etc/exports</filename> the following entry:
|
---|
| 1843 | <screen>
|
---|
| 1844 | /home *(rw,root_squash,sync)
|
---|
| 1845 | </screen>
|
---|
| 1846 | This permits the user home directories to be used on the BDC servers for testing
|
---|
| 1847 | purposes. You, of course, decide what is the best way for your site to distribute
|
---|
| 1848 | data drives, and you create suitable backup and restore procedures for Abmas
|
---|
| 1849 | I'd strongly recommend that for normal operation the BDC is completely independent
|
---|
| 1850 | of the PDC. rsync is a useful tool here, as it resembles the NT replication service quite
|
---|
| 1851 | closely. If you do use NFS, do not forget to start the NFS server as follows:
|
---|
| 1852 | <screen>
|
---|
| 1853 | &rootprompt; rcnfsserver start
|
---|
| 1854 | </screen>
|
---|
| 1855 | </para></step>
|
---|
| 1856 | </procedure>
|
---|
| 1857 |
|
---|
| 1858 | <para>
|
---|
| 1859 | Your Samba-3 PDC is now ready to communicate with the LDAP password backend. Let's get on with
|
---|
| 1860 | configuration of the LDAP server.
|
---|
| 1861 | </para>
|
---|
| 1862 |
|
---|
| 1863 | <example id="sbehap-massive-smbconfa">
|
---|
| 1864 | <title>LDAP Based &smb.conf; File, Server: MASSIVE &smbmdash; global Section: Part A</title>
|
---|
| 1865 | <smbconfblock>
|
---|
| 1866 | <smbconfcomment>Global parameters</smbconfcomment>
|
---|
| 1867 | <smbconfsection name="[global]"/>
|
---|
| 1868 | <smbconfoption name="unix charset">LOCALE</smbconfoption>
|
---|
| 1869 | <smbconfoption name="workgroup">MEGANET2</smbconfoption>
|
---|
| 1870 | <smbconfoption name="netbios name">MASSIVE</smbconfoption>
|
---|
| 1871 | <smbconfoption name="interfaces">eth1, lo</smbconfoption>
|
---|
| 1872 | <smbconfoption name="bind interfaces only">Yes</smbconfoption>
|
---|
| 1873 | <smbconfoption name="passdb backend">ldapsam:ldap://massive.abmas.biz</smbconfoption>
|
---|
| 1874 | <smbconfoption name="enable privileges">Yes</smbconfoption>
|
---|
| 1875 | <smbconfoption name="username map">/etc/samba/smbusers</smbconfoption>
|
---|
| 1876 | <smbconfoption name="log level">1</smbconfoption>
|
---|
| 1877 | <smbconfoption name="syslog">0</smbconfoption>
|
---|
| 1878 | <smbconfoption name="log file">/var/log/samba/%m</smbconfoption>
|
---|
| 1879 | <smbconfoption name="max log size">50</smbconfoption>
|
---|
| 1880 | <smbconfoption name="smb ports">139</smbconfoption>
|
---|
| 1881 | <smbconfoption name="name resolve order">wins bcast hosts</smbconfoption>
|
---|
| 1882 | <smbconfoption name="time server">Yes</smbconfoption>
|
---|
| 1883 | <smbconfoption name="printcap name">CUPS</smbconfoption>
|
---|
| 1884 | <smbconfoption name="show add printer wizard">No</smbconfoption>
|
---|
| 1885 | <smbconfoption name="add user script">/opt/IDEALX/sbin/smbldap-useradd -m "%u"</smbconfoption>
|
---|
| 1886 | <smbconfoption name="delete user script">/opt/IDEALX/sbin/smbldap-userdel "%u"</smbconfoption>
|
---|
| 1887 | <smbconfoption name="add group script">/opt/IDEALX/sbin/smbldap-groupadd -p "%g"</smbconfoption>
|
---|
| 1888 | <smbconfoption name="delete group script">/opt/IDEALX/sbin/smbldap-groupdel "%g"</smbconfoption>
|
---|
| 1889 | <smbconfoption name="add user to group script">/opt/IDEALX/sbin/smbldap-groupmod -m "%u" "%g"</smbconfoption>
|
---|
| 1890 | <smbconfoption name="delete user from group script">/opt/IDEALX/sbin/smbldap-groupmod -x "%u" "%g"</smbconfoption>
|
---|
| 1891 | <smbconfoption name="set primary group script">/opt/IDEALX/sbin/smbldap-usermod -g "%g" "%u"</smbconfoption>
|
---|
| 1892 | <smbconfoption name="add machine script">/opt/IDEALX/sbin/smbldap-useradd -w "%u"</smbconfoption>
|
---|
| 1893 | </smbconfblock>
|
---|
| 1894 | </example>
|
---|
| 1895 |
|
---|
| 1896 | <example id="sbehap-massive-smbconfb">
|
---|
| 1897 | <title>LDAP Based &smb.conf; File, Server: MASSIVE &smbmdash; global Section: Part B</title>
|
---|
| 1898 | <smbconfblock>
|
---|
| 1899 | <smbconfoption name="logon script">scripts\logon.bat</smbconfoption>
|
---|
| 1900 | <smbconfoption name="logon path">\\%L\profiles\%U</smbconfoption>
|
---|
| 1901 | <smbconfoption name="logon drive">X:</smbconfoption>
|
---|
| 1902 | <smbconfoption name="domain logons">Yes</smbconfoption>
|
---|
| 1903 | <smbconfoption name="preferred master">Yes</smbconfoption>
|
---|
| 1904 | <smbconfoption name="wins support">Yes</smbconfoption>
|
---|
| 1905 | <smbconfoption name="ldap suffix">dc=abmas,dc=biz</smbconfoption>
|
---|
| 1906 | <smbconfoption name="ldap machine suffix">ou=People</smbconfoption>
|
---|
| 1907 | <smbconfoption name="ldap user suffix">ou=People</smbconfoption>
|
---|
| 1908 | <smbconfoption name="ldap group suffix">ou=Groups</smbconfoption>
|
---|
| 1909 | <smbconfoption name="ldap idmap suffix">ou=Idmap</smbconfoption>
|
---|
| 1910 | <smbconfoption name="ldap admin dn">cn=Manager,dc=abmas,dc=biz</smbconfoption>
|
---|
| 1911 | <smbconfoption name="idmap backend">ldap:ldap://massive.abmas.biz</smbconfoption>
|
---|
| 1912 | <smbconfoption name="idmap uid">10000-20000</smbconfoption>
|
---|
| 1913 | <smbconfoption name="idmap gid">10000-20000</smbconfoption>
|
---|
| 1914 | <smbconfoption name="map acl inherit">Yes</smbconfoption>
|
---|
| 1915 | <smbconfoption name="printing">cups</smbconfoption>
|
---|
| 1916 | <smbconfoption name="printer admin">root, chrisr</smbconfoption>
|
---|
| 1917 | </smbconfblock>
|
---|
| 1918 | </example>
|
---|
| 1919 |
|
---|
| 1920 | </sect2>
|
---|
| 1921 |
|
---|
| 1922 |
|
---|
| 1923 | <sect2 id="sbeidealx">
|
---|
| 1924 | <title>Install and Configure Idealx smbldap-tools Scripts</title>
|
---|
| 1925 |
|
---|
| 1926 | <para>
|
---|
| 1927 | <indexterm><primary>Idealx</primary><secondary>smbldap-tools</secondary></indexterm>
|
---|
| 1928 | The Idealx scripts, or equivalent, are necessary to permit Samba-3 to manage accounts
|
---|
| 1929 | on the LDAP server. You have chosen the Idealx scripts because they are the best-known
|
---|
| 1930 | LDAP configuration scripts. The use of these scripts will help avoid the necessity
|
---|
| 1931 | to create custom scripts. It is easy to download them from the Idealx
|
---|
| 1932 | <ulink url="http://samba.idealx.org/index.en.html">Web site</ulink>. The tarball may
|
---|
| 1933 | be directly <ulink url="http://samba.idealx.org/dist/smbldap-tools-0.9.1.tgz">downloaded</ulink>
|
---|
| 1934 | from this site also. Alternatively, you may obtain the
|
---|
| 1935 | <ulink url="http://samba.idealx.org/dist/smbldap-tools-0.9.1-1.src.rpm">smbldap-tools-0.9.1-1.src.rpm</ulink>
|
---|
| 1936 | file that may be used to build an installable RPM package for your Linux system.
|
---|
| 1937 | </para>
|
---|
| 1938 |
|
---|
| 1939 | <note><para>
|
---|
| 1940 | The smbldap-tools scripts can be installed in any convenient directory of your choice, in which case you must
|
---|
| 1941 | change the path to them in your &smb.conf; file on the PDC (<constant>MASSIVE</constant>).
|
---|
| 1942 | </para></note>
|
---|
| 1943 |
|
---|
| 1944 | <para>
|
---|
| 1945 | The smbldap-tools are located in <filename>/opt/IDEALX/sbin</filename>.
|
---|
| 1946 | The scripts are not needed on BDC machines because all LDAP updates are handled by
|
---|
| 1947 | the PDC alone.
|
---|
| 1948 | </para>
|
---|
| 1949 |
|
---|
| 1950 | <sect3>
|
---|
| 1951 | <title>Installation of smbldap-tools from the Tarball</title>
|
---|
| 1952 |
|
---|
| 1953 | <para>
|
---|
| 1954 | To perform a manual installation of the smbldap-tools scripts, the following procedure may be used:
|
---|
| 1955 | </para>
|
---|
| 1956 |
|
---|
| 1957 | <procedure id="idealxscript">
|
---|
| 1958 | <title>Unpacking and Installation Steps for the <constant>smbldap-tools</constant> Tarball</title>
|
---|
| 1959 |
|
---|
| 1960 | <step><para>
|
---|
| 1961 | Create the <filename>/opt/IDEALX/sbin</filename> directory, and set its permissions
|
---|
| 1962 | and ownership as shown here:
|
---|
| 1963 | <screen>
|
---|
| 1964 | &rootprompt; mkdir -p /opt/IDEALX/sbin
|
---|
| 1965 | &rootprompt; chown root:root /opt/IDEALX/sbin
|
---|
| 1966 | &rootprompt; chmod 755 /opt/IDEALX/sbin
|
---|
| 1967 | &rootprompt; mkdir -p /etc/smbldap-tools
|
---|
| 1968 | &rootprompt; chown root:root /etc/smbldap-tools
|
---|
| 1969 | &rootprompt; chmod 755 /etc/smbldap-tools
|
---|
| 1970 | </screen>
|
---|
| 1971 | </para></step>
|
---|
| 1972 |
|
---|
| 1973 | <step><para>
|
---|
| 1974 | If you wish to use the downloaded tarball, unpack the smbldap-tools in a suitable temporary location.
|
---|
| 1975 | Change into either the directory extracted from the tarball or the smbldap-tools
|
---|
| 1976 | directory in your <filename>/usr/share/doc/packages</filename> directory tree.
|
---|
| 1977 | </para></step>
|
---|
| 1978 |
|
---|
| 1979 | <step><para>
|
---|
| 1980 | Copy all the <filename>smbldap-*</filename> and the <filename>configure.pl</filename> files into the
|
---|
| 1981 | <filename>/opt/IDEALX/sbin</filename> directory, as shown here:
|
---|
| 1982 | <screen>
|
---|
| 1983 | &rootprompt; cd smbldap-tools-0.9.1/
|
---|
| 1984 | &rootprompt; cp smbldap-* configure.pl *pm /opt/IDEALX/sbin/
|
---|
| 1985 | &rootprompt; cp smbldap*conf /etc/smbldap-tools/
|
---|
| 1986 | &rootprompt; chmod 750 /opt/IDEALX/sbin/smbldap-*
|
---|
| 1987 | &rootprompt; chmod 750 /opt/IDEALX/sbin/configure.pl
|
---|
| 1988 | &rootprompt; chmod 640 /etc/smbldap-tools/smbldap.conf
|
---|
| 1989 | &rootprompt; chmod 600 /etc/smbldap-tools/smbldap_bind.conf
|
---|
| 1990 | </screen>
|
---|
| 1991 | </para></step>
|
---|
| 1992 |
|
---|
| 1993 | <step><para>
|
---|
| 1994 | The smbldap-tools scripts master control file must now be configured.
|
---|
| 1995 | Change to the <filename>/opt/IDEALX/sbin</filename> directory, then edit the
|
---|
| 1996 | <filename>smbldap_tools.pm</filename> to affect the changes
|
---|
| 1997 | shown here:
|
---|
| 1998 | <screen>
|
---|
| 1999 | ...
|
---|
| 2000 | # ugly funcs using global variables and spawning openldap clients
|
---|
| 2001 |
|
---|
| 2002 | my $smbldap_conf="/etc/smbldap-tools/smbldap.conf";
|
---|
| 2003 | my $smbldap_bind_conf="/etc/smbldap-tools/smbldap_bind.conf";
|
---|
| 2004 | ...
|
---|
| 2005 | </screen>
|
---|
| 2006 | </para></step>
|
---|
| 2007 |
|
---|
| 2008 | <step><para>
|
---|
| 2009 | To complete the configuration of the smbldap-tools, set the permissions and ownership
|
---|
| 2010 | by executing the following commands:
|
---|
| 2011 | <screen>
|
---|
| 2012 | &rootprompt; chown root:root /opt/IDEALX/sbin/*
|
---|
| 2013 | &rootprompt; chmod 755 /opt/IDEALX/sbin/smbldap-*
|
---|
| 2014 | &rootprompt; chmod 640 /opt/IDEALX/sbin/smb*pm
|
---|
| 2015 | </screen>
|
---|
| 2016 | The smbldap-tools scripts are now ready for the configuration step outlined in
|
---|
| 2017 | <link linkend="smbldap-init"/>.
|
---|
| 2018 | </para></step>
|
---|
| 2019 |
|
---|
| 2020 | </procedure>
|
---|
| 2021 |
|
---|
| 2022 | </sect3>
|
---|
| 2023 |
|
---|
| 2024 | <sect3>
|
---|
| 2025 | <title>Installing smbldap-tools from the RPM Package</title>
|
---|
| 2026 |
|
---|
| 2027 | <para>
|
---|
| 2028 | In the event that you have elected to use the RPM package provided by Idealx, download the
|
---|
| 2029 | source RPM <filename>smbldap-tools-0.9.1-1.src.rpm</filename>, then follow this procedure:
|
---|
| 2030 | </para>
|
---|
| 2031 |
|
---|
| 2032 | <procedure>
|
---|
| 2033 | <title>Installation Steps for <constant>smbldap-tools</constant> RPM's</title>
|
---|
| 2034 |
|
---|
| 2035 | <step><para>
|
---|
| 2036 | Install the source RPM that has been downloaded as follows:
|
---|
| 2037 | <screen>
|
---|
| 2038 | &rootprompt; rpm -i smbldap-tools-0.9.1-1.src.rpm
|
---|
| 2039 | </screen>
|
---|
| 2040 | </para></step>
|
---|
| 2041 |
|
---|
| 2042 | <step><para>
|
---|
| 2043 | Change into the directory in which the SPEC files are located. On SUSE Linux:
|
---|
| 2044 | <screen>
|
---|
| 2045 | &rootprompt; cd /usr/src/packages/SPECS
|
---|
| 2046 | </screen>
|
---|
| 2047 | On Red Hat Linux systems:
|
---|
| 2048 | <screen>
|
---|
| 2049 | &rootprompt; cd /usr/src/redhat/SPECS
|
---|
| 2050 | </screen>
|
---|
| 2051 | </para></step>
|
---|
| 2052 |
|
---|
| 2053 | <step><para>
|
---|
| 2054 | Edit the <filename>smbldap-tools.spec</filename> file to change the value of the
|
---|
| 2055 | <constant>_sysconfig</constant> macro as shown here:
|
---|
| 2056 | <screen>
|
---|
| 2057 | %define _prefix /opt/IDEALX
|
---|
| 2058 | %define _sysconfdir /etc
|
---|
| 2059 | </screen>
|
---|
| 2060 | Note: Any suitable directory can be specified.
|
---|
| 2061 | </para></step>
|
---|
| 2062 |
|
---|
| 2063 | <step><para>
|
---|
| 2064 | Build the package by executing:
|
---|
| 2065 | <screen>
|
---|
| 2066 | &rootprompt; rpmbuild -ba -v smbldap-tools.spec
|
---|
| 2067 | </screen>
|
---|
| 2068 | A build process that has completed without error will place the installable binary
|
---|
| 2069 | files in the directory <filename>../RPMS/noarch</filename>.
|
---|
| 2070 | </para></step>
|
---|
| 2071 |
|
---|
| 2072 | <step><para>
|
---|
| 2073 | Install the binary package by executing:
|
---|
| 2074 | <screen>
|
---|
| 2075 | &rootprompt; rpm -Uvh ../RPMS/noarch/smbldap-tools-0.9.1-1.noarch.rpm
|
---|
| 2076 | </screen>
|
---|
| 2077 | </para></step>
|
---|
| 2078 |
|
---|
| 2079 | </procedure>
|
---|
| 2080 |
|
---|
| 2081 | <para>
|
---|
| 2082 | The Idealx scripts should now be ready for configuration using the steps outlined in
|
---|
| 2083 | <link linkend="smbldap-init">Configuration of smbldap-tools</link>.
|
---|
| 2084 | </para>
|
---|
| 2085 |
|
---|
| 2086 | </sect3>
|
---|
| 2087 |
|
---|
| 2088 | <sect3 id="smbldap-init">
|
---|
| 2089 | <title>Configuration of smbldap-tools</title>
|
---|
| 2090 |
|
---|
| 2091 | <para>
|
---|
| 2092 | Prior to use, the smbldap-tools must be configured to match the settings in the &smb.conf; file
|
---|
| 2093 | and to match the settings in the <filename>/etc/openldap/slapd.conf</filename> file. The assumption
|
---|
| 2094 | is made that the &smb.conf; file has correct contents. The following procedure ensures that
|
---|
| 2095 | this is completed correctly:
|
---|
| 2096 | </para>
|
---|
| 2097 |
|
---|
| 2098 | <para>
|
---|
| 2099 | The smbldap-tools require that the NetBIOS name (machine name) of the Samba server be included
|
---|
| 2100 | in the &smb.conf; file.
|
---|
| 2101 | </para>
|
---|
| 2102 |
|
---|
| 2103 | <procedure>
|
---|
| 2104 | <title>Configuration Steps for <constant>smbldap-tools</constant> to Enable Use</title>
|
---|
| 2105 |
|
---|
| 2106 | <step><para>
|
---|
| 2107 | Change into the directory that contains the <filename>configure.pl</filename> script.
|
---|
| 2108 | <screen>
|
---|
| 2109 | &rootprompt; cd /opt/IDEALX/sbin
|
---|
| 2110 | </screen>
|
---|
| 2111 | </para></step>
|
---|
| 2112 |
|
---|
| 2113 | <step><para>
|
---|
| 2114 | Execute the <filename>configure.pl</filename> script as follows:
|
---|
| 2115 | <screen>
|
---|
| 2116 | &rootprompt; ./configure.pl
|
---|
| 2117 | </screen>
|
---|
| 2118 | The interactive use of this script for the PDC is demonstrated here:
|
---|
| 2119 | <screen>
|
---|
| 2120 | &rootprompt; /opt/IDEALX/sbin/configure.pl
|
---|
| 2121 | -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
---|
| 2122 | smbldap-tools script configuration
|
---|
| 2123 | -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
---|
| 2124 | Before starting, check
|
---|
| 2125 | . if your samba controller is up and running.
|
---|
| 2126 | . if the domain SID is defined (you can get it with the
|
---|
| 2127 | 'net getlocalsid')
|
---|
| 2128 |
|
---|
| 2129 | . you can leave the configuration using the Crtl-c key combination
|
---|
| 2130 | . empty value can be set with the "." character
|
---|
| 2131 | -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
---|
| 2132 | Looking for configuration files...
|
---|
| 2133 |
|
---|
| 2134 | Samba Config File Location [/etc/samba/smb.conf] >
|
---|
| 2135 | smbldap-tools configuration file Location (global parameters)
|
---|
| 2136 | [/etc/opt/IDEALX/smbldap-tools/smbldap.conf] >
|
---|
| 2137 | smbldap Config file Location (bind parameters)
|
---|
| 2138 | [/etc/opt/IDEALX/smbldap-tools/smbldap_bind.conf] >
|
---|
| 2139 | -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
---|
| 2140 | Let's start configuring the smbldap-tools scripts ...
|
---|
| 2141 |
|
---|
| 2142 | . workgroup name: name of the domain Samba act as a PDC
|
---|
| 2143 | workgroup name [MEGANET2] >
|
---|
| 2144 | . netbios name: netbios name of the samba controler
|
---|
| 2145 | netbios name [MASSIVE] >
|
---|
| 2146 | . logon drive: local path to which the home directory
|
---|
| 2147 | will be connected (for NT Workstations). Ex: 'H:'
|
---|
| 2148 | logon drive [H:] >
|
---|
| 2149 | . logon home: home directory location (for Win95/98 or NT Workstation)
|
---|
| 2150 | (use %U as username) Ex:'\\MASSIVE\%U'
|
---|
| 2151 | logon home (press the "." character if you don't want homeDirectory)
|
---|
| 2152 | [\\MASSIVE\%U] >
|
---|
| 2153 | . logon path: directory where roaming profiles are stored.
|
---|
| 2154 | Ex:'\\MASSIVE\profiles\%U'
|
---|
| 2155 | logon path (press the "." character
|
---|
| 2156 | if you don't want roaming profile) [\\%L\profiles\%U] >
|
---|
| 2157 | . home directory prefix (use %U as username)
|
---|
| 2158 | [/home/%U] > /data/users/%U
|
---|
| 2159 | . default users' homeDirectory mode [700] >
|
---|
| 2160 | . default user netlogon script (use %U as username)
|
---|
| 2161 | [scripts\logon.bat] >
|
---|
| 2162 | default password validation time (time in days) [45] > 900
|
---|
| 2163 | . ldap suffix [dc=abmas,dc=biz] >
|
---|
| 2164 | . ldap group suffix [ou=Groups] >
|
---|
| 2165 | . ldap user suffix [ou=People,ou=Users] >
|
---|
| 2166 | . ldap machine suffix [ou=Computers,ou=Users] >
|
---|
| 2167 | . Idmap suffix [ou=Idmap] >
|
---|
| 2168 | . sambaUnixIdPooldn: object where you want to store the next uidNumber
|
---|
| 2169 | and gidNumber available for new users and groups
|
---|
| 2170 | sambaUnixIdPooldn object (relative to ${suffix})
|
---|
| 2171 | [sambaDomainName=MEGANET2] >
|
---|
| 2172 | . ldap master server: IP adress or DNS name of the master
|
---|
| 2173 | (writable) ldap server
|
---|
| 2174 | ldap master server [massive.abmas.biz] >
|
---|
| 2175 | . ldap master port [389] >
|
---|
| 2176 | . ldap master bind dn [cn=Manager,dc=abmas,dc=biz] >
|
---|
| 2177 | . ldap master bind password [] >
|
---|
| 2178 | . ldap slave server: IP adress or DNS name of the slave ldap server:
|
---|
| 2179 | can also be the master one
|
---|
| 2180 | ldap slave server [massive.abmas.biz] >
|
---|
| 2181 | . ldap slave port [389] >
|
---|
| 2182 | . ldap slave bind dn [cn=Manager,dc=abmas,dc=biz] >
|
---|
| 2183 | . ldap slave bind password [] >
|
---|
| 2184 | . ldap tls support (1/0) [0] >
|
---|
| 2185 | . SID for domain MEGANET2: SID of the domain
|
---|
| 2186 | (can be obtained with 'net getlocalsid MASSIVE')
|
---|
| 2187 | SID for domain MEGANET2
|
---|
| 2188 | [S-1-5-21-3504140859-1010554828-2431957765]] >
|
---|
| 2189 | . unix password encryption: encryption used for unix passwords
|
---|
| 2190 | unix password encryption (CRYPT, MD5, SMD5, SSHA, SHA) [SSHA] > MD5
|
---|
| 2191 | . default user gidNumber [513] >
|
---|
| 2192 | . default computer gidNumber [515] >
|
---|
| 2193 | . default login shell [/bin/bash] >
|
---|
| 2194 | . default skeleton directory [/etc/skel] >
|
---|
| 2195 | . default domain name to append to mail adress [] > abmas.biz
|
---|
| 2196 | -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
---|
| 2197 | backup old configuration files:
|
---|
| 2198 | /etc/opt/IDEALX/smbldap-tools/smbldap.conf->
|
---|
| 2199 | /etc/opt/IDEALX/smbldap-tools/smbldap.conf.old
|
---|
| 2200 | /etc/opt/IDEALX/smbldap-tools/smbldap_bind.conf->
|
---|
| 2201 | /etc/opt/IDEALX/smbldap-tools/smbldap_bind.conf.old
|
---|
| 2202 | writing new configuration file:
|
---|
| 2203 | /etc/opt/IDEALX/smbldap-tools/smbldap.conf done.
|
---|
| 2204 | /etc/opt/IDEALX/smbldap-tools/smbldap_bind.conf done.
|
---|
| 2205 | </screen>
|
---|
| 2206 | Since a slave LDAP server has not been configured, it is necessary to specify the IP
|
---|
| 2207 | address of the master LDAP server for both the master and the slave configuration
|
---|
| 2208 | prompts.
|
---|
| 2209 | </para></step>
|
---|
| 2210 |
|
---|
| 2211 | <step><para>
|
---|
| 2212 | Change to the directory that contains the <filename>smbldap.conf</filename> file,
|
---|
| 2213 | then verify its contents.
|
---|
| 2214 | </para></step>
|
---|
| 2215 |
|
---|
| 2216 | </procedure>
|
---|
| 2217 |
|
---|
| 2218 | <para>
|
---|
| 2219 | The smbldap-tools are now ready for use.
|
---|
| 2220 | </para>
|
---|
| 2221 |
|
---|
| 2222 | </sect3>
|
---|
| 2223 |
|
---|
| 2224 | </sect2>
|
---|
| 2225 |
|
---|
| 2226 | <sect2>
|
---|
| 2227 | <title>LDAP Initialization and Creation of User and Group Accounts</title>
|
---|
| 2228 |
|
---|
| 2229 | <para>
|
---|
| 2230 | The LDAP database must be populated with well-known Windows domain user accounts and domain group
|
---|
| 2231 | accounts before Samba can be used. The following procedures step you through the process.
|
---|
| 2232 | </para>
|
---|
| 2233 |
|
---|
| 2234 | <para>
|
---|
| 2235 | At this time, Samba-3 requires that on a PDC all UNIX (POSIX) group accounts that are
|
---|
| 2236 | mapped (linked) to Windows domain group accounts must be in the LDAP database. It does not
|
---|
| 2237 | hurt to have UNIX user and group accounts in both the system files as well as in the LDAP
|
---|
| 2238 | database. From a UNIX system perspective, the NSS resolver checks system files before
|
---|
| 2239 | referring to LDAP. If the UNIX system can resolve (find) an account in the system file, it
|
---|
| 2240 | does not need to ask LDAP.
|
---|
| 2241 | </para>
|
---|
| 2242 |
|
---|
| 2243 | <para>
|
---|
| 2244 | Addition of an account to the LDAP backend can be done in two ways:
|
---|
| 2245 | </para>
|
---|
| 2246 |
|
---|
| 2247 | <itemizedlist>
|
---|
| 2248 | <listitem><para>
|
---|
| 2249 | <indexterm><primary>NIS</primary></indexterm>
|
---|
| 2250 | <indexterm><primary>/etc/passwd</primary></indexterm>
|
---|
| 2251 | <indexterm><primary>Posix accounts</primary></indexterm>
|
---|
| 2252 | <indexterm><primary>pdbedit</primary></indexterm>
|
---|
| 2253 | <indexterm><primary>SambaSamAccount</primary></indexterm>
|
---|
| 2254 | <indexterm><primary>PosixAccount</primary></indexterm>
|
---|
| 2255 | If you always have a user account in the <filename>/etc/passwd</filename> on every
|
---|
| 2256 | server or in a NIS(+) backend, it is not necessary to add POSIX accounts for them in
|
---|
| 2257 | LDAP. In this case, you can add Windows domain user accounts using the
|
---|
| 2258 | <command>pdbedit</command> utility. Use of this tool from the command line adds the
|
---|
| 2259 | SambaSamAccount entry for the user, but does not add the PosixAccount entry for the user.
|
---|
| 2260 | </para>
|
---|
| 2261 |
|
---|
| 2262 | <para>
|
---|
| 2263 | This is the least desirable method because when LDAP is used as the passwd backend Samba
|
---|
| 2264 | expects the POSIX account to be in LDAP also. It is possible to use the PADL account
|
---|
| 2265 | migration tool to migrate all system accounts from either the <filename>/etc/passwd</filename>
|
---|
| 2266 | files, or from NIS, to LDAP.
|
---|
| 2267 | </para></listitem>
|
---|
| 2268 |
|
---|
| 2269 | <listitem><para>
|
---|
| 2270 | If you decide that it is probably a good idea to add both the PosixAccount attributes
|
---|
| 2271 | as well as the SambaSamAccount attributes for each user, then a suitable script is needed.
|
---|
| 2272 | In the example system you are installing in this exercise, you are making use of the
|
---|
| 2273 | Idealx smbldap-tools scripts. A copy of these tools, preconfigured for this system,
|
---|
| 2274 | is included on the enclosed CD-ROM under <filename>Chap06/Tools.</filename>
|
---|
| 2275 | </para></listitem>
|
---|
| 2276 | </itemizedlist>
|
---|
| 2277 |
|
---|
| 2278 | <para>
|
---|
| 2279 | <indexterm><primary>Idealx</primary><secondary>smbldap-tools</secondary></indexterm>
|
---|
| 2280 | If you wish to have more control over how the LDAP database is initialized or
|
---|
| 2281 | if you don't want to use the Idealx smbldap-tools, you should refer to
|
---|
| 2282 | <link linkend="appendix"/>, <link linkend="altldapcfg"/>.
|
---|
| 2283 | </para>
|
---|
| 2284 |
|
---|
| 2285 | <para>
|
---|
| 2286 | <indexterm><primary>smbldap-populate</primary></indexterm>
|
---|
| 2287 | The following steps initialize the LDAP database, and then you can add user and group
|
---|
| 2288 | accounts that Samba can use. You use the <command>smbldap-populate</command> to
|
---|
| 2289 | seed the LDAP database. You then manually add the accounts shown in <link linkend="sbehap-bigacct"/>.
|
---|
| 2290 | The list of users does not cover all 500 network users; it provides examples only.
|
---|
| 2291 | </para>
|
---|
| 2292 |
|
---|
| 2293 | <note><para>
|
---|
| 2294 | <indexterm><primary>LDAP</primary><secondary>database</secondary></indexterm>
|
---|
| 2295 | <indexterm><primary>directory</primary><secondary>People container</secondary></indexterm>
|
---|
| 2296 | <indexterm><primary>directory</primary><secondary>Computers container</secondary></indexterm>
|
---|
| 2297 | In the following examples, as the LDAP database is initialized, we do create a container
|
---|
| 2298 | for Computer (machine) accounts. In the Samba-3 &smb.conf; files, specific use is made
|
---|
| 2299 | of the People container, not the Computers container, for domain member accounts. This is not a
|
---|
| 2300 | mistake; it is a deliberate action that is necessitated by the fact that the resolution of
|
---|
| 2301 | a machine (computer) account to a UID is done via NSS. The only way this can be handled is
|
---|
| 2302 | using the NSS (<filename>/etc/nsswitch.conf</filename>) entry for <constant>passwd</constant>,
|
---|
| 2303 | which is resolved using the <filename>nss_ldap</filename> library. The configuration file for
|
---|
| 2304 | the <filename>nss_ldap</filename> library is the file <filename>/etc/ldap.conf</filename> that
|
---|
| 2305 | provides only one possible LDAP search command that is specified by the entry called
|
---|
| 2306 | <constant>nss_base_passwd</constant>. This means that the search path must take into account
|
---|
| 2307 | the directory structure so that the LDAP search will commence at a level that is above
|
---|
| 2308 | both the Computers container and the Users (or People) container. If this is done, it is
|
---|
| 2309 | necessary to use a search that will descend the directory tree so that the machine account
|
---|
| 2310 | can be found. Alternatively, by placing all machine accounts in the People container, we
|
---|
| 2311 | are able to sidestep this limitation. This is the simpler solution that has been adopted
|
---|
| 2312 | in this chapter.
|
---|
| 2313 | </para></note>
|
---|
| 2314 |
|
---|
| 2315 |
|
---|
| 2316 | <table id="sbehap-bigacct">
|
---|
| 2317 | <title>Abmas Network Users and Groups</title>
|
---|
| 2318 | <tgroup cols="4">
|
---|
| 2319 | <colspec align="left"/>
|
---|
| 2320 | <colspec align="left"/>
|
---|
| 2321 | <colspec align="left"/>
|
---|
| 2322 | <colspec align="left"/>
|
---|
| 2323 | <thead>
|
---|
| 2324 | <row>
|
---|
| 2325 | <entry align="center">Account Name</entry>
|
---|
| 2326 | <entry align="center">Type</entry>
|
---|
| 2327 | <entry align="center">ID</entry>
|
---|
| 2328 | <entry align="center">Password</entry>
|
---|
| 2329 | </row>
|
---|
| 2330 | </thead>
|
---|
| 2331 | <tbody>
|
---|
| 2332 | <row>
|
---|
| 2333 | <entry>Robert Jordan</entry>
|
---|
| 2334 | <entry>User</entry>
|
---|
| 2335 | <entry>bobj</entry>
|
---|
| 2336 | <entry>n3v3r2l8</entry>
|
---|
| 2337 | </row>
|
---|
| 2338 | <row>
|
---|
| 2339 | <entry>Stanley Soroka</entry>
|
---|
| 2340 | <entry>User</entry>
|
---|
| 2341 | <entry>stans</entry>
|
---|
| 2342 | <entry>impl13dst4r</entry>
|
---|
| 2343 | </row>
|
---|
| 2344 | <row>
|
---|
| 2345 | <entry>Christine Roberson</entry>
|
---|
| 2346 | <entry>User</entry>
|
---|
| 2347 | <entry>chrisr</entry>
|
---|
| 2348 | <entry>S9n0nw4ll</entry>
|
---|
| 2349 | </row>
|
---|
| 2350 | <row>
|
---|
| 2351 | <entry>Mary Vortexis</entry>
|
---|
| 2352 | <entry>User</entry>
|
---|
| 2353 | <entry>maryv</entry>
|
---|
| 2354 | <entry>kw13t0n3</entry>
|
---|
| 2355 | </row>
|
---|
| 2356 | <row>
|
---|
| 2357 | <entry>Accounts</entry>
|
---|
| 2358 | <entry>Group</entry>
|
---|
| 2359 | <entry>Accounts</entry>
|
---|
| 2360 | <entry></entry>
|
---|
| 2361 | </row>
|
---|
| 2362 | <row>
|
---|
| 2363 | <entry>Finances</entry>
|
---|
| 2364 | <entry>Group</entry>
|
---|
| 2365 | <entry>Finances</entry>
|
---|
| 2366 | <entry></entry>
|
---|
| 2367 | </row>
|
---|
| 2368 | <row>
|
---|
| 2369 | <entry>Insurance</entry>
|
---|
| 2370 | <entry>Group</entry>
|
---|
| 2371 | <entry>PIOps</entry>
|
---|
| 2372 | <entry></entry>
|
---|
| 2373 | </row>
|
---|
| 2374 | </tbody>
|
---|
| 2375 | </tgroup>
|
---|
| 2376 | </table>
|
---|
| 2377 |
|
---|
| 2378 | <procedure id="creatacc">
|
---|
| 2379 | <title>LDAP Directory Initialization Steps</title>
|
---|
| 2380 |
|
---|
| 2381 | <step><para>
|
---|
| 2382 | Start the LDAP server by executing:
|
---|
| 2383 | <screen>
|
---|
| 2384 | &rootprompt; rcldap start
|
---|
| 2385 | Starting ldap-server done
|
---|
| 2386 | </screen>
|
---|
| 2387 | </para></step>
|
---|
| 2388 |
|
---|
| 2389 | <step><para>
|
---|
| 2390 | Change to the <filename>/opt/IDEALX/sbin</filename> directory.
|
---|
| 2391 | </para></step>
|
---|
| 2392 |
|
---|
| 2393 | <step><para>
|
---|
| 2394 | Execute the script that will populate the LDAP database as shown here:
|
---|
| 2395 | <screen>
|
---|
| 2396 | &rootprompt; ./smbldap-populate -a root -k 0 -m 0
|
---|
| 2397 | </screen>
|
---|
| 2398 | The expected output from this is:
|
---|
| 2399 | <screen>
|
---|
| 2400 | Using workgroup name from smb.conf: sambaDomainName=MEGANET2
|
---|
| 2401 | -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
---|
| 2402 | => Warning: you must update smbldap.conf configuration file to :
|
---|
| 2403 | => sambaUnixIdPooldn parameter must be set
|
---|
| 2404 | to "sambaDomainName=MEGANET2,dc=abmas,dc=biz"
|
---|
| 2405 | -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
---|
| 2406 | Using builtin directory structure
|
---|
| 2407 | adding new entry: dc=abmas,dc=biz
|
---|
| 2408 | adding new entry: ou=People,dc=abmas,dc=biz
|
---|
| 2409 | adding new entry: ou=Groups,dc=abmas,dc=biz
|
---|
| 2410 | entry ou=People,dc=abmas,dc=biz already exist.
|
---|
| 2411 | adding new entry: ou=Idmap,dc=abmas,dc=biz
|
---|
| 2412 | adding new entry: sambaDomainName=MEGANET2,dc=abmas,dc=biz
|
---|
| 2413 | adding new entry: uid=root,ou=People,dc=abmas,dc=biz
|
---|
| 2414 | adding new entry: uid=nobody,ou=People,dc=abmas,dc=biz
|
---|
| 2415 | adding new entry: cn=Domain Admins,ou=Groups,dc=abmas,dc=biz
|
---|
| 2416 | adding new entry: cn=Domain Users,ou=Groups,dc=abmas,dc=biz
|
---|
| 2417 | adding new entry: cn=Domain Guests,ou=Groups,dc=abmas,dc=biz
|
---|
| 2418 | adding new entry: cn=Domain Computers,ou=Groups,dc=abmas,dc=biz
|
---|
| 2419 | adding new entry: cn=Administrators,ou=Groups,dc=abmas,dc=biz
|
---|
| 2420 | adding new entry: cn=Print Operators,ou=Groups,dc=abmas,dc=biz
|
---|
| 2421 | adding new entry: cn=Backup Operators,ou=Groups,dc=abmas,dc=biz
|
---|
| 2422 | adding new entry: cn=Replicators,ou=Groups,dc=abmas,dc=biz
|
---|
| 2423 | </screen>
|
---|
| 2424 | </para></step>
|
---|
| 2425 |
|
---|
| 2426 | <step><para>
|
---|
| 2427 | Edit the <filename>/etc/smbldap-tools/smbldap.conf</filename> file so that the following
|
---|
| 2428 | information is changed from:
|
---|
| 2429 | <screen>
|
---|
| 2430 | # Where to store next uidNumber and gidNumber available
|
---|
| 2431 | sambaUnixIdPooldn="cn=NextFreeUnixId,${suffix}"
|
---|
| 2432 | </screen>
|
---|
| 2433 | to read, after modification:
|
---|
| 2434 | <screen>
|
---|
| 2435 | # Where to store next uidNumber and gidNumber available
|
---|
| 2436 | #sambaUnixIdPooldn="cn=NextFreeUnixId,${suffix}"
|
---|
| 2437 | sambaUnixIdPooldn="sambaDomainName=MEGANET2,dc=abmas,dc=biz"
|
---|
| 2438 | </screen>
|
---|
| 2439 | </para></step>
|
---|
| 2440 |
|
---|
| 2441 | <step><para>
|
---|
| 2442 | It is necessary to restart the LDAP server as shown here:
|
---|
| 2443 | <screen>
|
---|
| 2444 | &rootprompt; rcldap restart
|
---|
| 2445 | Shutting down ldap-server done
|
---|
| 2446 | Starting ldap-server done
|
---|
| 2447 | </screen>
|
---|
| 2448 | </para></step>
|
---|
| 2449 |
|
---|
| 2450 | <step><para>
|
---|
| 2451 | <indexterm><primary>slapcat</primary></indexterm>
|
---|
| 2452 | So that we can use a global IDMAP repository, the LDAP directory must have a container object for IDMAP data.
|
---|
| 2453 | There are several ways you can check that your LDAP database is able to receive IDMAP information. One of
|
---|
| 2454 | the simplest is to execute:
|
---|
| 2455 | <screen>
|
---|
| 2456 | &rootprompt; slapcat | grep -i idmap
|
---|
| 2457 | dn: ou=Idmap,dc=abmas,dc=biz
|
---|
| 2458 | ou: idmap
|
---|
| 2459 | </screen>
|
---|
| 2460 | <indexterm> <primary>ldapadd</primary></indexterm>
|
---|
| 2461 | If the execution of this command does not return IDMAP entries, you need to create an LDIF
|
---|
| 2462 | template file (see <link linkend="sbehap-ldifadd"/>). You can add the required entries using
|
---|
| 2463 | the following command:
|
---|
| 2464 | <screen>
|
---|
| 2465 | &rootprompt; ldapadd -x -D "cn=Manager,dc=abmas,dc=biz" \
|
---|
| 2466 | -w not24get < /etc/openldap/idmap.LDIF
|
---|
| 2467 | </screen>
|
---|
| 2468 | Samba automatically populates this LDAP directory container when it needs to.
|
---|
| 2469 | </para></step>
|
---|
| 2470 |
|
---|
| 2471 | <step><para>
|
---|
| 2472 | <indexterm><primary>slapcat</primary></indexterm>
|
---|
| 2473 | It looks like all has gone well, as expected. Let's confirm that this is the case
|
---|
| 2474 | by running a few tests. First we check the contents of the database directly
|
---|
| 2475 | by running <command>slapcat</command> as follows (the output has been cut down):
|
---|
| 2476 | <screen>
|
---|
| 2477 | &rootprompt; slapcat
|
---|
| 2478 | dn: dc=abmas,dc=biz
|
---|
| 2479 | objectClass: dcObject
|
---|
| 2480 | objectClass: organization
|
---|
| 2481 | dc: abmas
|
---|
| 2482 | o: abmas
|
---|
| 2483 | structuralObjectClass: organization
|
---|
| 2484 | entryUUID: 5ab02bf6-c536-1027-9d29-b1f32350fb43
|
---|
| 2485 | creatorsName: cn=Manager,dc=abmas,dc=biz
|
---|
| 2486 | createTimestamp: 20031217234200Z
|
---|
| 2487 | entryCSN: 2003121723:42:00Z#0x0001#0#0000
|
---|
| 2488 | modifiersName: cn=Manager,dc=abmas,dc=biz
|
---|
| 2489 | modifyTimestamp: 20031217234200Z
|
---|
| 2490 | ...
|
---|
| 2491 | dn: cn=Domain Computers,ou=Groups,dc=abmas,dc=biz
|
---|
| 2492 | objectClass: posixGroup
|
---|
| 2493 | objectClass: sambaGroupMapping
|
---|
| 2494 | gidNumber: 553
|
---|
| 2495 | cn: Domain Computers
|
---|
| 2496 | description: Netbios Domain Computers accounts
|
---|
| 2497 | sambaSID: S-1-5-21-3504140859-1010554828-2431957765-553
|
---|
| 2498 | sambaGroupType: 2
|
---|
| 2499 | displayName: Domain Computers
|
---|
| 2500 | structuralObjectClass: posixGroup
|
---|
| 2501 | entryUUID: 5e0a41d8-c536-1027-9d3b-b1f32350fb43
|
---|
| 2502 | creatorsName: cn=Manager,dc=abmas,dc=biz
|
---|
| 2503 | createTimestamp: 20031217234206Z
|
---|
| 2504 | entryCSN: 2003121723:42:06Z#0x0002#0#0000
|
---|
| 2505 | modifiersName: cn=Manager,dc=abmas,dc=biz
|
---|
| 2506 | modifyTimestamp: 20031217234206Z
|
---|
| 2507 | </screen>
|
---|
| 2508 | This looks good so far.
|
---|
| 2509 | </para></step>
|
---|
| 2510 |
|
---|
| 2511 | <step><para>
|
---|
| 2512 | <indexterm><primary>ldapsearch</primary></indexterm>
|
---|
| 2513 | The next step is to prove that the LDAP server is running and responds to a
|
---|
| 2514 | search request. Execute the following as shown (output has been cut to save space):
|
---|
| 2515 | <screen>
|
---|
| 2516 | &rootprompt; ldapsearch -x -b "dc=abmas,dc=biz" "(ObjectClass=*)"
|
---|
| 2517 | # extended LDIF
|
---|
| 2518 | #
|
---|
| 2519 | # LDAPv3
|
---|
| 2520 | # base <dc=abmas,dc=biz> with scope sub
|
---|
| 2521 | # filter: (ObjectClass=*)
|
---|
| 2522 | # requesting: ALL
|
---|
| 2523 | #
|
---|
| 2524 |
|
---|
| 2525 | # abmas.biz
|
---|
| 2526 | dn: dc=abmas,dc=biz
|
---|
| 2527 | objectClass: dcObject
|
---|
| 2528 | objectClass: organization
|
---|
| 2529 | dc: abmas
|
---|
| 2530 | o: abmas
|
---|
| 2531 |
|
---|
| 2532 | # People, abmas.biz
|
---|
| 2533 | dn: ou=People,dc=abmas,dc=biz
|
---|
| 2534 | objectClass: organizationalUnit
|
---|
| 2535 | ou: People
|
---|
| 2536 | ...
|
---|
| 2537 | # Domain Computers, Groups, abmas.biz
|
---|
| 2538 | dn: cn=Domain Computers,ou=Groups,dc=abmas,dc=biz
|
---|
| 2539 | objectClass: posixGroup
|
---|
| 2540 | objectClass: sambaGroupMapping
|
---|
| 2541 | gidNumber: 553
|
---|
| 2542 | cn: Domain Computers
|
---|
| 2543 | description: Netbios Domain Computers accounts
|
---|
| 2544 | sambaSID: S-1-5-21-3504140859-1010554828-2431957765-553
|
---|
| 2545 | sambaGroupType: 2
|
---|
| 2546 | displayName: Domain Computers
|
---|
| 2547 |
|
---|
| 2548 | # search result
|
---|
| 2549 | search: 2
|
---|
| 2550 | result: 0 Success
|
---|
| 2551 |
|
---|
| 2552 | # numResponses: 20
|
---|
| 2553 | # numEntries: 19
|
---|
| 2554 | </screen>
|
---|
| 2555 | Good. It is all working just fine.
|
---|
| 2556 | </para></step>
|
---|
| 2557 |
|
---|
| 2558 | <step><para>
|
---|
| 2559 | <indexterm><primary>getent</primary></indexterm>
|
---|
| 2560 | You must now make certain that the NSS resolver can interrogate LDAP also.
|
---|
| 2561 | Execute the following commands:
|
---|
| 2562 | <screen>
|
---|
| 2563 | &rootprompt; getent passwd | grep root
|
---|
| 2564 | root:x:998:512:Netbios Domain Administrator:/home:/bin/false
|
---|
| 2565 |
|
---|
| 2566 | &rootprompt; getent group | grep Domain
|
---|
| 2567 | Domain Admins:x:512:root
|
---|
| 2568 | Domain Users:x:513:
|
---|
| 2569 | Domain Guests:x:514:
|
---|
| 2570 | Domain Computers:x:553:
|
---|
| 2571 | </screen>
|
---|
| 2572 | <indexterm><primary>nss_ldap</primary></indexterm>
|
---|
| 2573 | This demonstrates that the <command>nss_ldap</command> library is functioning
|
---|
| 2574 | as it should. If these two steps fail to produce this information, refer to
|
---|
| 2575 | <link linkend="sbeavoid"/> for diagnostic procedures that can be followed to
|
---|
| 2576 | isolate the cause of the problem. Proceed to the next step only when the previous steps
|
---|
| 2577 | have been successfully completed.
|
---|
| 2578 | </para></step>
|
---|
| 2579 |
|
---|
| 2580 | <step><para>
|
---|
| 2581 | <indexterm><primary>smbldap-useradd</primary></indexterm>
|
---|
| 2582 | <indexterm><primary>smbldap-passwd</primary></indexterm>
|
---|
| 2583 | <indexterm><primary>smbpasswd</primary></indexterm>
|
---|
| 2584 | Our database is now ready for the addition of network users. For each user for
|
---|
| 2585 | whom an account must be created, execute the following:
|
---|
| 2586 | <screen>
|
---|
| 2587 | &rootprompt; ./smbldap-useradd -m -a <constant>username</constant>
|
---|
| 2588 | &rootprompt; ./smbldap-passwd <constant>username</constant>
|
---|
| 2589 | Changing password for <constant>username</constant>
|
---|
| 2590 | New password : XXXXXXXX
|
---|
| 2591 | Retype new password : XXXXXXXX
|
---|
| 2592 |
|
---|
| 2593 | &rootprompt; smbpasswd <constant>username</constant>
|
---|
| 2594 | New SMB password: XXXXXXXX
|
---|
| 2595 | Retype new SMB password: XXXXXXXX
|
---|
| 2596 | </screen>
|
---|
| 2597 | where <constant>username</constant> is the login ID for each user.
|
---|
| 2598 | </para></step>
|
---|
| 2599 |
|
---|
| 2600 | <step><para>
|
---|
| 2601 | <indexterm><primary>getent</primary></indexterm>
|
---|
| 2602 | Now verify that the UNIX (POSIX) accounts can be resolved via NSS by executing the
|
---|
| 2603 | following:
|
---|
| 2604 | <screen>
|
---|
| 2605 | &rootprompt; getent passwd
|
---|
| 2606 | root:x:0:0:root:/root:/bin/bash
|
---|
| 2607 | bin:x:1:1:bin:/bin:/bin/bash
|
---|
| 2608 | ...
|
---|
| 2609 | root:x:0:512:Netbios Domain Administrator:/home:/bin/false
|
---|
| 2610 | nobody:x:999:514:nobody:/dev/null:/bin/false
|
---|
| 2611 | bobj:x:1000:513:System User:/home/bobj:/bin/bash
|
---|
| 2612 | stans:x:1001:513:System User:/home/stans:/bin/bash
|
---|
| 2613 | chrisr:x:1002:513:System User:/home/chrisr:/bin/bash
|
---|
| 2614 | maryv:x:1003:513:System User:/home/maryv:/bin/bash
|
---|
| 2615 | </screen>
|
---|
| 2616 | This demonstrates that user account resolution via LDAP is working.
|
---|
| 2617 | </para></step>
|
---|
| 2618 |
|
---|
| 2619 | <step><para>
|
---|
| 2620 | This step will determine whether or not identity resolution is working correctly.
|
---|
| 2621 | Do not procede is this step fails, rather find the cause of the failure. The
|
---|
| 2622 | <command>id</command> command may be used to validate your configuration so far,
|
---|
| 2623 | as shown here:
|
---|
| 2624 | <screen>
|
---|
| 2625 | &rootprompt; id chrisr
|
---|
| 2626 | uid=1002(chrisr) gid=513(Domain Users) groups=513(Domain Users)
|
---|
| 2627 | </screen>
|
---|
| 2628 | This confirms that the UNIX (POSIX) user account information can be resolved from LDAP
|
---|
| 2629 | by system tools that make a getentpw() system call.
|
---|
| 2630 | </para></step>
|
---|
| 2631 |
|
---|
| 2632 | <step><para>
|
---|
| 2633 | <indexterm><primary>smbldap-usermod</primary></indexterm>
|
---|
| 2634 | The root account must have UID=0; if not, this means that operations conducted from
|
---|
| 2635 | a Windows client using tools such as the Domain User Manager fails under UNIX because
|
---|
| 2636 | the management of user and group accounts requires that the UID=0. Additionally, it is
|
---|
| 2637 | a good idea to make certain that no matter how root account credentials are resolved,
|
---|
| 2638 | the home directory and shell are valid. You decide to effect this immediately
|
---|
| 2639 | as demonstrated here:
|
---|
| 2640 | <screen>
|
---|
| 2641 | &rootprompt; cd /opt/IDEALX/sbin
|
---|
| 2642 | &rootprompt; ./smbldap-usermod -u 0 -d /root -s /bin/bash root
|
---|
| 2643 | </screen>
|
---|
| 2644 | </para></step>
|
---|
| 2645 |
|
---|
| 2646 | <step><para>
|
---|
| 2647 | Verify that the changes just made to the <constant>root</constant> account were
|
---|
| 2648 | accepted by executing:
|
---|
| 2649 | <screen>
|
---|
| 2650 | &rootprompt; getent passwd | grep root
|
---|
| 2651 | root:x:0:0:root:/root:/bin/bash
|
---|
| 2652 | root:x:0:512:Netbios Domain Administrator:/root:/bin/bash
|
---|
| 2653 | </screen>
|
---|
| 2654 | This demonstrates that the changes were accepted.
|
---|
| 2655 | </para></step>
|
---|
| 2656 |
|
---|
| 2657 | <step><para>
|
---|
| 2658 | Make certain that a home directory has been created for every user by listing the
|
---|
| 2659 | directories in <filename>/home</filename> as follows:
|
---|
| 2660 | <screen>
|
---|
| 2661 | &rootprompt; ls -al /home
|
---|
| 2662 | drwxr-xr-x 8 root root 176 Dec 17 18:50 ./
|
---|
| 2663 | drwxr-xr-x 21 root root 560 Dec 15 22:19 ../
|
---|
| 2664 | drwx------ 7 bobj Domain Users 568 Dec 17 01:16 bobj/
|
---|
| 2665 | drwx------ 7 chrisr Domain Users 568 Dec 17 01:19 chrisr/
|
---|
| 2666 | drwx------ 7 maryv Domain Users 568 Dec 17 01:27 maryv/
|
---|
| 2667 | drwx------ 7 stans Domain Users 568 Dec 17 01:43 stans/
|
---|
| 2668 | </screen>
|
---|
| 2669 | This is precisely what we want to see.
|
---|
| 2670 | </para></step>
|
---|
| 2671 |
|
---|
| 2672 | <step><para>
|
---|
| 2673 | <indexterm><primary>ldapsam</primary></indexterm>
|
---|
| 2674 | <indexterm><primary>pdbedit</primary></indexterm>
|
---|
| 2675 | The final validation step involves making certain that Samba-3 can obtain the user
|
---|
| 2676 | accounts from the LDAP ldapsam passwd backend. Execute the following command as shown:
|
---|
| 2677 | <screen>
|
---|
| 2678 | &rootprompt; pdbedit -Lv chrisr
|
---|
| 2679 | Unix username: chrisr
|
---|
| 2680 | NT username: chrisr
|
---|
| 2681 | Account Flags: [U ]
|
---|
| 2682 | User SID: S-1-5-21-3504140859-1010554828-2431957765-3004
|
---|
| 2683 | Primary Group SID: S-1-5-21-3504140859-1010554828-2431957765-513
|
---|
| 2684 | Full Name: System User
|
---|
| 2685 | Home Directory: \\MASSIVE\homes
|
---|
| 2686 | HomeDir Drive: H:
|
---|
| 2687 | Logon Script: scripts\login.cmd
|
---|
| 2688 | Profile Path: \\MASSIVE\profiles\chrisr
|
---|
| 2689 | Domain: MEGANET2
|
---|
| 2690 | Account desc: System User
|
---|
| 2691 | Workstations:
|
---|
| 2692 | Munged dial:
|
---|
| 2693 | Logon time: 0
|
---|
| 2694 | Logoff time: Mon, 18 Jan 2038 20:14:07 GMT
|
---|
| 2695 | Kickoff time: Mon, 18 Jan 2038 20:14:07 GMT
|
---|
| 2696 | Password last set: Wed, 17 Dec 2003 17:17:40 GMT
|
---|
| 2697 | Password can change: Wed, 17 Dec 2003 17:17:40 GMT
|
---|
| 2698 | Password must change: Mon, 18 Jan 2038 20:14:07 GMT
|
---|
| 2699 | Last bad password : 0
|
---|
| 2700 | Bad password count : 0
|
---|
| 2701 | Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
---|
| 2702 | </screen>
|
---|
| 2703 | This looks good. Of course, you fully expected that it would all work, didn't you?
|
---|
| 2704 | </para></step>
|
---|
| 2705 |
|
---|
| 2706 | <step><para>
|
---|
| 2707 | <indexterm><primary>smbldap-groupadd</primary></indexterm>
|
---|
| 2708 | Now you add the group accounts that are used on the Abmas network. Execute
|
---|
| 2709 | the following exactly as shown:
|
---|
| 2710 | <screen>
|
---|
| 2711 | &rootprompt; ./smbldap-groupadd -a Accounts
|
---|
| 2712 | &rootprompt; ./smbldap-groupadd -a Finances
|
---|
| 2713 | &rootprompt; ./smbldap-groupadd -a PIOps
|
---|
| 2714 | </screen>
|
---|
| 2715 | The addition of groups does not involve keyboard interaction, so the lack of console
|
---|
| 2716 | output is of no concern.
|
---|
| 2717 | </para></step>
|
---|
| 2718 |
|
---|
| 2719 | <step><para>
|
---|
| 2720 | <indexterm><primary>getent</primary></indexterm>
|
---|
| 2721 | You really do want to confirm that UNIX group resolution from LDAP is functioning
|
---|
| 2722 | as it should. Let's do this as shown here:
|
---|
| 2723 | <screen>
|
---|
| 2724 | &rootprompt; getent group
|
---|
| 2725 | ...
|
---|
| 2726 | Domain Admins:x:512:root
|
---|
| 2727 | Domain Users:x:513:bobj,stans,chrisr,maryv
|
---|
| 2728 | Domain Guests:x:514:
|
---|
| 2729 | ...
|
---|
| 2730 | Accounts:x:1000:
|
---|
| 2731 | Finances:x:1001:
|
---|
| 2732 | PIOps:x:1002:
|
---|
| 2733 | </screen>
|
---|
| 2734 | The well-known special accounts (Domain Admins, Domain Users, Domain Guests), as well
|
---|
| 2735 | as our own site-specific group accounts, are correctly listed. This is looking good.
|
---|
| 2736 | </para></step>
|
---|
| 2737 |
|
---|
| 2738 | <step><para>
|
---|
| 2739 | <indexterm><primary>net</primary><secondary>groupmap</secondary><tertiary>list</tertiary></indexterm>
|
---|
| 2740 | The final step we need to validate is that Samba can see all the Windows domain groups
|
---|
| 2741 | and that they are correctly mapped to the respective UNIX group account. To do this,
|
---|
| 2742 | just execute the following command:
|
---|
| 2743 | <screen>
|
---|
| 2744 | &rootprompt; net groupmap list
|
---|
| 2745 | Domain Admins (S-1-5-21-3504140859-...-2431957765-512) -> Domain Admins
|
---|
| 2746 | Domain Users (S-1-5-21-3504140859-...-2431957765-513) -> Domain Users
|
---|
| 2747 | Domain Guests (S-1-5-21-3504140859-...-2431957765-514) -> Domain Guests
|
---|
| 2748 | ...
|
---|
| 2749 | Accounts (S-1-5-21-3504140859-1010554828-2431957765-3001) -> Accounts
|
---|
| 2750 | Finances (S-1-5-21-3504140859-1010554828-2431957765-3003) -> Finances
|
---|
| 2751 | PIOps (S-1-5-21-3504140859-1010554828-2431957765-3005) -> PIOps
|
---|
| 2752 | </screen>
|
---|
| 2753 | This is looking good. Congratulations &smbmdash; it works! Note that in the above output
|
---|
| 2754 | the lines were shortened by replacing the middle value (1010554828) of the SID with the
|
---|
| 2755 | ellipsis (...).
|
---|
| 2756 | </para></step>
|
---|
| 2757 |
|
---|
| 2758 | <step><para>
|
---|
| 2759 | The server you have so carefully built is now ready for another important step. You
|
---|
| 2760 | start the Samba-3 server and validate its operation. Execute the following to render all
|
---|
| 2761 | the processes needed fully operative so that, on system reboot, they are automatically
|
---|
| 2762 | started:
|
---|
| 2763 | <screen>
|
---|
| 2764 | &rootprompt; chkconfig named on
|
---|
| 2765 | &rootprompt; chkconfig dhcpd on
|
---|
| 2766 | &rootprompt; chkconfig ldap on
|
---|
| 2767 | &rootprompt; chkconfig nmb on
|
---|
| 2768 | &rootprompt; chkconfig smb on
|
---|
| 2769 | &rootprompt; chkconfig winbind on
|
---|
| 2770 | &rootprompt; rcnmb start
|
---|
| 2771 | &rootprompt; rcsmb start
|
---|
| 2772 | &rootprompt; rcwinbind start
|
---|
| 2773 | </screen>
|
---|
| 2774 | </para></step>
|
---|
| 2775 |
|
---|
| 2776 | <step><para>
|
---|
| 2777 | The next step might seem a little odd at this point, but take note that you are about to
|
---|
| 2778 | start <command>winbindd</command>, which must be able to authenticate to the PDC via the
|
---|
| 2779 | localhost interface with the <command>smbd</command> process. This account can be
|
---|
| 2780 | easily created by joining the PDC to the domain by executing the following command:
|
---|
| 2781 | <screen>
|
---|
| 2782 | &rootprompt; net rpc join -S MASSIVE -U root%not24get
|
---|
| 2783 | </screen>
|
---|
| 2784 | Note: Before executing this command on the PDC, both <command>nmbd</command> and
|
---|
| 2785 | <command>smbd</command> must be started so that the <command>net</command> command
|
---|
| 2786 | can communicate with <command>smbd</command>. The expected output is as follows:
|
---|
| 2787 | <screen>
|
---|
| 2788 | Joined domain MEGANET2.
|
---|
| 2789 | </screen>
|
---|
| 2790 | This indicates that the domain security account for the PDC has been correctly created.
|
---|
| 2791 | </para></step>
|
---|
| 2792 |
|
---|
| 2793 | <step><para>
|
---|
| 2794 | At this time it is necessary to restart <command>winbindd</command> so that it can
|
---|
| 2795 | correctly authenticate to the PDC. The following command achieves that:
|
---|
| 2796 | <screen>
|
---|
| 2797 | &rootprompt; rcwinbind restart
|
---|
| 2798 | </screen>
|
---|
| 2799 | </para></step>
|
---|
| 2800 |
|
---|
| 2801 | <step><para>
|
---|
| 2802 | <indexterm><primary>smbclient</primary></indexterm>
|
---|
| 2803 | You may now check Samba-3 operation as follows:
|
---|
| 2804 | <screen>
|
---|
| 2805 | &rootprompt; smbclient -L massive -U%
|
---|
| 2806 |
|
---|
| 2807 | Sharename Type Comment
|
---|
| 2808 | --------- ---- -------
|
---|
| 2809 | IPC$ IPC IPC Service (Samba 3.0.20)
|
---|
| 2810 | accounts Disk Accounting Files
|
---|
| 2811 | service Disk Financial Services Files
|
---|
| 2812 | pidata Disk Property Insurance Files
|
---|
| 2813 | apps Disk Application Files
|
---|
| 2814 | netlogon Disk Network Logon Service
|
---|
| 2815 | profiles Disk Profile Share
|
---|
| 2816 | profdata Disk Profile Data Share
|
---|
| 2817 | ADMIN$ IPC IPC Service (Samba 3.0.20)
|
---|
| 2818 |
|
---|
| 2819 | Server Comment
|
---|
| 2820 | --------- -------
|
---|
| 2821 | MASSIVE Samba 3.0.20
|
---|
| 2822 |
|
---|
| 2823 | Workgroup Master
|
---|
| 2824 | --------- -------
|
---|
| 2825 | MEGANET2 MASSIVE
|
---|
| 2826 | </screen>
|
---|
| 2827 | This shows that an anonymous connection is working.
|
---|
| 2828 | </para></step>
|
---|
| 2829 |
|
---|
| 2830 | <step><para>
|
---|
| 2831 | For your finale, let's try an authenticated connection:
|
---|
| 2832 | <screen>
|
---|
| 2833 | &rootprompt; smbclient //massive/bobj -Ubobj%n3v3r2l8
|
---|
| 2834 | smb: \> dir
|
---|
| 2835 | . D 0 Wed Dec 17 01:16:19 2003
|
---|
| 2836 | .. D 0 Wed Dec 17 19:04:42 2003
|
---|
| 2837 | bin D 0 Tue Sep 2 04:00:57 2003
|
---|
| 2838 | Documents D 0 Sun Nov 30 07:28:20 2003
|
---|
| 2839 | public_html D 0 Sun Nov 30 07:28:20 2003
|
---|
| 2840 | .urlview H 311 Fri Jul 7 06:55:35 2000
|
---|
| 2841 | .dvipsrc H 208 Fri Nov 17 11:22:02 1995
|
---|
| 2842 |
|
---|
| 2843 | 57681 blocks of size 524288. 57128 blocks available
|
---|
| 2844 | smb: \> q
|
---|
| 2845 | </screen>
|
---|
| 2846 | Well done. All is working fine.
|
---|
| 2847 | </para></step>
|
---|
| 2848 | </procedure>
|
---|
| 2849 |
|
---|
| 2850 | <para>
|
---|
| 2851 | The server <constant>MASSIVE</constant> is now configured, and it is time to move onto the next task.
|
---|
| 2852 | </para>
|
---|
| 2853 |
|
---|
| 2854 | </sect2>
|
---|
| 2855 |
|
---|
| 2856 | <sect2 id="sbehap-ptrcfg">
|
---|
| 2857 | <title>Printer Configuration</title>
|
---|
| 2858 |
|
---|
| 2859 | <para>
|
---|
| 2860 | <indexterm><primary>CUPS</primary></indexterm>
|
---|
| 2861 | The configuration for Samba-3 to enable CUPS raw-print-through printing has already been
|
---|
| 2862 | taken care of in the &smb.conf; file. The only preparation needed for <constant>smart</constant>
|
---|
| 2863 | printing to be possible involves creation of the directories in which Samba-3 stores
|
---|
| 2864 | Windows printing driver files.
|
---|
| 2865 | </para>
|
---|
| 2866 |
|
---|
| 2867 | <procedure>
|
---|
| 2868 | <title>Printer Configuration Steps</title>
|
---|
| 2869 |
|
---|
| 2870 | <step><para>
|
---|
| 2871 | Configure all network-attached printers to have a fixed IP address.
|
---|
| 2872 | </para></step>
|
---|
| 2873 |
|
---|
| 2874 | <step><para>
|
---|
| 2875 | Create an entry in the DNS database on the server <constant>MASSIVE</constant>
|
---|
| 2876 | in both the forward lookup database for the zone <constant>abmas.biz.hosts</constant>
|
---|
| 2877 | and in the reverse lookup database for the network segment that the printer is to
|
---|
| 2878 | be located in. Example configuration files for similar zones were presented in <link linkend="secure"/>,
|
---|
| 2879 | <link linkend="abmasbiz"/> and in <link linkend="eth2zone"/>.
|
---|
| 2880 | </para></step>
|
---|
| 2881 |
|
---|
| 2882 | <step><para>
|
---|
| 2883 | Follow the instructions in the printer manufacturers' manuals to permit printing
|
---|
| 2884 | to port 9100. Use any other port the manufacturer specifies for direct mode,
|
---|
| 2885 | raw printing. This allows the CUPS spooler to print using raw mode protocols.
|
---|
| 2886 | <indexterm><primary>CUPS</primary></indexterm>
|
---|
| 2887 | <indexterm><primary>raw printing</primary></indexterm>
|
---|
| 2888 | </para></step>
|
---|
| 2889 |
|
---|
| 2890 | <step><para>
|
---|
| 2891 | <indexterm><primary>lpadmin</primary></indexterm>
|
---|
| 2892 | <indexterm><primary>CUPS</primary><secondary>queue</secondary></indexterm>
|
---|
| 2893 | Only on the server to which the printer is attached, configure the CUPS Print
|
---|
| 2894 | Queues as follows:
|
---|
| 2895 | <screen>
|
---|
| 2896 | &rootprompt; lpadmin -p <parameter>printque</parameter>
|
---|
| 2897 | -v socket://<parameter>printer-name</parameter>.abmas.biz:9100 -E
|
---|
| 2898 | </screen>
|
---|
| 2899 | <indexterm><primary>print filter</primary></indexterm>
|
---|
| 2900 | This step creates the necessary print queue to use no assigned print filter. This
|
---|
| 2901 | is ideal for raw printing, that is, printing without use of filters.
|
---|
| 2902 | The name <parameter>printque</parameter> is the name you have assigned for
|
---|
| 2903 | the particular printer.
|
---|
| 2904 | </para></step>
|
---|
| 2905 |
|
---|
| 2906 | <step><para>
|
---|
| 2907 | Print queues may not be enabled at creation. Make certain that the queues
|
---|
| 2908 | you have just created are enabled by executing the following:
|
---|
| 2909 | <screen>
|
---|
| 2910 | &rootprompt; /usr/bin/enable <parameter>printque</parameter>
|
---|
| 2911 | </screen>
|
---|
| 2912 | </para></step>
|
---|
| 2913 |
|
---|
| 2914 | <step><para>
|
---|
| 2915 | Even though your print queue may be enabled, it is still possible that it
|
---|
| 2916 | may not accept print jobs. A print queue will service incoming printing
|
---|
| 2917 | requests only when configured to do so. Ensure that your print queue is
|
---|
| 2918 | set to accept incoming jobs by executing the following commands:
|
---|
| 2919 | <screen>
|
---|
| 2920 | &rootprompt; /usr/bin/accept <parameter>printque</parameter>
|
---|
| 2921 | </screen>
|
---|
| 2922 | </para></step>
|
---|
| 2923 |
|
---|
| 2924 | <step><para>
|
---|
| 2925 | <indexterm><primary>mime type</primary></indexterm>
|
---|
| 2926 | <indexterm><primary>/etc/mime.convs</primary></indexterm>
|
---|
| 2927 | <indexterm><primary>application/octet-stream</primary></indexterm>
|
---|
| 2928 | Edit the file <filename>/etc/cups/mime.convs</filename> to uncomment the line:
|
---|
| 2929 | <screen>
|
---|
| 2930 | application/octet-stream application/vnd.cups-raw 0 -
|
---|
| 2931 | </screen>
|
---|
| 2932 | </para></step>
|
---|
| 2933 |
|
---|
| 2934 | <step><para>
|
---|
| 2935 | <indexterm><primary>/etc/mime.types</primary></indexterm>
|
---|
| 2936 | Edit the file <filename>/etc/cups/mime.types</filename> to uncomment the line:
|
---|
| 2937 | <screen>
|
---|
| 2938 | application/octet-stream
|
---|
| 2939 | </screen>
|
---|
| 2940 | </para></step>
|
---|
| 2941 |
|
---|
| 2942 | <step><para>
|
---|
| 2943 | Refer to the CUPS printing manual for instructions regarding how to configure
|
---|
| 2944 | CUPS so that print queues that reside on CUPS servers on remote networks
|
---|
| 2945 | route print jobs to the print server that owns that queue. The default setting
|
---|
| 2946 | on your CUPS server may automatically discover remotely installed printers and
|
---|
| 2947 | may permit this functionality without requiring specific configuration.
|
---|
| 2948 | </para></step>
|
---|
| 2949 |
|
---|
| 2950 | <step><para>
|
---|
| 2951 | The following action creates the necessary directory subsystem. Follow these
|
---|
| 2952 | steps to printing heaven:
|
---|
| 2953 | <screen>
|
---|
| 2954 | &rootprompt; mkdir -p /var/lib/samba/drivers/{W32ALPHA,W32MIPS,W32X86,WIN40}
|
---|
| 2955 | &rootprompt; chown -R root:root /var/lib/samba/drivers
|
---|
| 2956 | &rootprompt; chmod -R ug=rwx,o=rx /var/lib/samba/drivers
|
---|
| 2957 | </screen>
|
---|
| 2958 | </para></step>
|
---|
| 2959 |
|
---|
| 2960 | </procedure>
|
---|
| 2961 |
|
---|
| 2962 | </sect2>
|
---|
| 2963 |
|
---|
| 2964 | </sect1>
|
---|
| 2965 |
|
---|
| 2966 | <sect1 id="sbehap-bldg1">
|
---|
| 2967 | <title>Samba-3 BDC Configuration</title>
|
---|
| 2968 |
|
---|
| 2969 | <procedure>
|
---|
| 2970 | <title>Configuration of BDC Called: <constant>BLDG1</constant></title>
|
---|
| 2971 |
|
---|
| 2972 | <step><para>
|
---|
| 2973 | Install the files in <link linkend="sbehap-bldg1-smbconf"/>,
|
---|
| 2974 | <link linkend="sbehap-shareconfa"/>, and <link linkend="sbehap-shareconfb"/>
|
---|
| 2975 | into the <filename>/etc/samba/</filename> directory. The three files
|
---|
| 2976 | should be added together to form the &smb.conf; file.
|
---|
| 2977 | </para></step>
|
---|
| 2978 |
|
---|
| 2979 | <step><para>
|
---|
| 2980 | Verify the &smb.conf; file as in step 2 of <link
|
---|
| 2981 | linkend="sbehap-massive"/>.
|
---|
| 2982 | </para></step>
|
---|
| 2983 |
|
---|
| 2984 | <step><para>
|
---|
| 2985 | Carefully follow the steps outlined in <link linkend="sbehap-PAM-NSS"/>, taking
|
---|
| 2986 | particular note to install the correct <filename>ldap.conf</filename>.
|
---|
| 2987 | </para></step>
|
---|
| 2988 |
|
---|
| 2989 | <step><para>
|
---|
| 2990 | Verify that the NSS resolver is working. You may need to cycle the run level
|
---|
| 2991 | to 1 and back to 5 before the NSS LDAP resolver functions. Follow these
|
---|
| 2992 | commands:
|
---|
| 2993 | <screen>
|
---|
| 2994 | &rootprompt; init 1
|
---|
| 2995 | </screen>
|
---|
| 2996 | After the run level has been achieved, you are prompted to provide the
|
---|
| 2997 | <constant>root</constant> password. Log on, and then execute:
|
---|
| 2998 | <screen>
|
---|
| 2999 | &rootprompt; init 5
|
---|
| 3000 | </screen>
|
---|
| 3001 | When the normal logon prompt appears, log into the system as <constant>root</constant>
|
---|
| 3002 | and then execute these commands:
|
---|
| 3003 | <screen>
|
---|
| 3004 | &rootprompt; getent passwd
|
---|
| 3005 | root:x:0:0:root:/root:/bin/bash
|
---|
| 3006 | bin:x:1:1:bin:/bin:/bin/bash
|
---|
| 3007 | daemon:x:2:2:Daemon:/sbin:/bin/bash
|
---|
| 3008 | lp:x:4:7:Printing daemon:/var/spool/lpd:/bin/bash
|
---|
| 3009 | mail:x:8:12:Mailer daemon:/var/spool/clientmqueue:/bin/false
|
---|
| 3010 | ...
|
---|
| 3011 | root:x:0:512:Netbios Domain Administrator:/root:/bin/bash
|
---|
| 3012 | nobody:x:999:514:nobody:/dev/null:/bin/false
|
---|
| 3013 | bobj:x:1000:513:System User:/home/bobj:/bin/bash
|
---|
| 3014 | stans:x:1001:513:System User:/home/stans:/bin/bash
|
---|
| 3015 | chrisr:x:1002:513:System User:/home/chrisr:/bin/bash
|
---|
| 3016 | maryv:x:1003:513:System User:/home/maryv:/bin/bash
|
---|
| 3017 | vaioboss$:x:1005:553:vaioboss$:/dev/null:/bin/false
|
---|
| 3018 | bldg1$:x:1006:553:bldg1$:/dev/null:/bin/false
|
---|
| 3019 | </screen>
|
---|
| 3020 | This is the correct output. If the accounts that have UIDs above 512 are not shown, there is a problem.
|
---|
| 3021 | </para></step>
|
---|
| 3022 |
|
---|
| 3023 | <step><para>
|
---|
| 3024 | <indexterm><primary>getent</primary></indexterm>
|
---|
| 3025 | The next step in the verification process involves testing the operation of UNIX group
|
---|
| 3026 | resolution via the NSS LDAP resolver. Execute these commands:
|
---|
| 3027 | <screen>
|
---|
| 3028 | &rootprompt; getent group
|
---|
| 3029 | root:x:0:
|
---|
| 3030 | bin:x:1:daemon
|
---|
| 3031 | daemon:x:2:
|
---|
| 3032 | sys:x:3:
|
---|
| 3033 | ...
|
---|
| 3034 | Domain Admins:x:512:root
|
---|
| 3035 | Domain Users:x:513:bobj,stans,chrisr,maryv,jht
|
---|
| 3036 | Domain Guests:x:514:
|
---|
| 3037 | Administrators:x:544:
|
---|
| 3038 | Users:x:545:
|
---|
| 3039 | Guests:x:546:nobody
|
---|
| 3040 | Power Users:x:547:
|
---|
| 3041 | Account Operators:x:548:
|
---|
| 3042 | Server Operators:x:549:
|
---|
| 3043 | Print Operators:x:550:
|
---|
| 3044 | Backup Operators:x:551:
|
---|
| 3045 | Replicator:x:552:
|
---|
| 3046 | Domain Computers:x:553:
|
---|
| 3047 | Accounts:x:1000:
|
---|
| 3048 | Finances:x:1001:
|
---|
| 3049 | PIOps:x:1002:
|
---|
| 3050 | </screen>
|
---|
| 3051 | This is also the correct and desired output, because it demonstrates that the LDAP client
|
---|
| 3052 | is able to communicate correctly with the LDAP server (<constant>MASSIVE</constant>).
|
---|
| 3053 | </para></step>
|
---|
| 3054 |
|
---|
| 3055 | <step><para>
|
---|
| 3056 | <indexterm><primary>smbpasswd</primary></indexterm>
|
---|
| 3057 | You must now set the LDAP administrative password into the Samba-3 <filename>secrets.tdb</filename>
|
---|
| 3058 | file by executing this command:
|
---|
| 3059 | <screen>
|
---|
| 3060 | &rootprompt; smbpasswd -w not24get
|
---|
| 3061 | Setting stored password for "cn=Manager,dc=abmas,dc=biz" in secrets.tdb
|
---|
| 3062 | </screen>
|
---|
| 3063 | </para></step>
|
---|
| 3064 |
|
---|
| 3065 | <step><para>
|
---|
| 3066 | Now you must obtain the domain SID from the PDC and store it into the
|
---|
| 3067 | <filename>secrets.tdb</filename> file also. This step is not necessary with an LDAP
|
---|
| 3068 | passdb backend because Samba-3 obtains the domain SID from the
|
---|
| 3069 | sambaDomain object it automatically stores in the LDAP backend. It does not hurt to
|
---|
| 3070 | add the SID to the <filename>secrets.tdb</filename>, and if you wish to do so, this
|
---|
| 3071 | command can achieve that:
|
---|
| 3072 | <screen>
|
---|
| 3073 | &rootprompt; net rpc getsid MEGANET2
|
---|
| 3074 | Storing SID S-1-5-21-3504140859-1010554828-2431957765 \
|
---|
| 3075 | for Domain MEGANET2 in secrets.tdb
|
---|
| 3076 | </screen>
|
---|
| 3077 | When configuring a Samba-3 BDC that has an LDAP backend, there is no need to take
|
---|
| 3078 | any special action to join it to the domain. However, winbind communicates with the
|
---|
| 3079 | domain controller that is running on the localhost and must be able to authenticate,
|
---|
| 3080 | thus requiring that the BDC should be joined to the domain. The process of joining
|
---|
| 3081 | the domain creates the necessary authentication accounts.
|
---|
| 3082 | </para></step>
|
---|
| 3083 |
|
---|
| 3084 | <step><para>
|
---|
| 3085 | To join the Samba BDC to the domain, execute the following:
|
---|
| 3086 | <screen>
|
---|
| 3087 | &rootprompt; net rpc join -U root%not24get
|
---|
| 3088 | Joined domain MEGANET2.
|
---|
| 3089 | </screen>
|
---|
| 3090 | This indicates that the domain security account for the BDC has been correctly created.
|
---|
| 3091 | </para></step>
|
---|
| 3092 |
|
---|
| 3093 | <step><para>
|
---|
| 3094 | <indexterm>
|
---|
| 3095 | <primary>pdbedit</primary>
|
---|
| 3096 | </indexterm>
|
---|
| 3097 | Verify that user and group account resolution works via Samba-3 tools as follows:
|
---|
| 3098 | <screen>
|
---|
| 3099 | &rootprompt; pdbedit -L
|
---|
| 3100 | root:0:root
|
---|
| 3101 | nobody:65534:nobody
|
---|
| 3102 | bobj:1000:System User
|
---|
| 3103 | stans:1001:System User
|
---|
| 3104 | chrisr:1002:System User
|
---|
| 3105 | maryv:1003:System User
|
---|
| 3106 | bldg1$:1006:bldg1$
|
---|
| 3107 |
|
---|
| 3108 | &rootprompt; net groupmap list
|
---|
| 3109 | Domain Admins (S-1-5-21-3504140859-...-2431957765-512) ->
|
---|
| 3110 | Domain Admins
|
---|
| 3111 | Domain Users (S-1-5-21-3504140859-...-2431957765-513) -> Domain Users
|
---|
| 3112 | Domain Guests (S-1-5-21-3504140859-...-2431957765-514) ->
|
---|
| 3113 | Domain Guests
|
---|
| 3114 | Administrators (S-1-5-21-3504140859-...-2431957765-544) ->
|
---|
| 3115 | Administrators
|
---|
| 3116 | ...
|
---|
| 3117 | Accounts (S-1-5-21-3504140859-1010554828-2431957765-3001) -> Accounts
|
---|
| 3118 | Finances (S-1-5-21-3504140859-1010554828-2431957765-3003) -> Finances
|
---|
| 3119 | PIOps (S-1-5-21-3504140859-1010554828-2431957765-3005) -> PIOps
|
---|
| 3120 | </screen>
|
---|
| 3121 | These results show that all things are in order.
|
---|
| 3122 | </para></step>
|
---|
| 3123 |
|
---|
| 3124 | <step><para>
|
---|
| 3125 | The server you have so carefully built is now ready for another important step. Now
|
---|
| 3126 | start the Samba-3 server and validate its operation. Execute the following to render all
|
---|
| 3127 | the processes needed fully operative so that, upon system reboot, they are automatically
|
---|
| 3128 | started:
|
---|
| 3129 | <screen>
|
---|
| 3130 | &rootprompt; chkconfig named on
|
---|
| 3131 | &rootprompt; chkconfig dhcpd on
|
---|
| 3132 | &rootprompt; chkconfig nmb on
|
---|
| 3133 | &rootprompt; chkconfig smb on
|
---|
| 3134 | &rootprompt; chkconfig winbind on
|
---|
| 3135 | &rootprompt; rcnmb start
|
---|
| 3136 | &rootprompt; rcsmb start
|
---|
| 3137 | &rootprompt; rcwinbind start
|
---|
| 3138 | </screen>
|
---|
| 3139 | Samba-3 should now be running and is ready for a quick test. But not quite yet!
|
---|
| 3140 | </para></step>
|
---|
| 3141 |
|
---|
| 3142 | <step><para>
|
---|
| 3143 | Your new <constant>BLDG1, BLDG2</constant> servers do not have home directories for users.
|
---|
| 3144 | To rectify this using the SUSE yast2 utility or by manually editing the <filename>/etc/fstab</filename>
|
---|
| 3145 | file, add a mount entry to mount the <constant>home</constant> directory that has been exported
|
---|
| 3146 | from the <constant>MASSIVE</constant> server. Mount this resource before proceeding. An alternate
|
---|
| 3147 | approach could be to create local home directories for users who are to use these machines.
|
---|
| 3148 | This is a choice that you, as system administrator, must make. The following entry in the
|
---|
| 3149 | <filename>/etc/fstab</filename> file suffices for now:
|
---|
| 3150 | <screen>
|
---|
| 3151 | massive.abmas.biz:/home /home nfs rw 0 0
|
---|
| 3152 | </screen>
|
---|
| 3153 | To mount this resource, execute:
|
---|
| 3154 | <screen>
|
---|
| 3155 | &rootprompt; mount -a
|
---|
| 3156 | </screen>
|
---|
| 3157 | Verify that the home directory has been mounted as follows:
|
---|
| 3158 | <screen>
|
---|
| 3159 | &rootprompt; df | grep home
|
---|
| 3160 | massive:/home 29532988 283388 29249600 1% /home
|
---|
| 3161 | </screen>
|
---|
| 3162 | </para></step>
|
---|
| 3163 |
|
---|
| 3164 | <step><para>
|
---|
| 3165 | Implement a quick check using one of the users that is in the LDAP database. Here you go:
|
---|
| 3166 | <screen>
|
---|
| 3167 | &rootprompt; smbclient //bldg1/bobj -Ubobj%n3v3r2l8
|
---|
| 3168 | smb: \> dir
|
---|
| 3169 | . D 0 Wed Dec 17 01:16:19 2003
|
---|
| 3170 | .. D 0 Wed Dec 17 19:04:42 2003
|
---|
| 3171 | bin D 0 Tue Sep 2 04:00:57 2003
|
---|
| 3172 | Documents D 0 Sun Nov 30 07:28:20 2003
|
---|
| 3173 | public_html D 0 Sun Nov 30 07:28:20 2003
|
---|
| 3174 | .urlview H 311 Fri Jul 7 06:55:35 2000
|
---|
| 3175 | .dvipsrc H 208 Fri Nov 17 11:22:02 1995
|
---|
| 3176 |
|
---|
| 3177 | 57681 blocks of size 524288. 57128 blocks available
|
---|
| 3178 | smb: \> q
|
---|
| 3179 | </screen>
|
---|
| 3180 | </para></step>
|
---|
| 3181 |
|
---|
| 3182 | </procedure>
|
---|
| 3183 |
|
---|
| 3184 | <para>
|
---|
| 3185 | Now that the first BDC (<constant>BDLG1</constant>) has been configured it is time to build
|
---|
| 3186 | and configure the second BDC server (<constant>BLDG2</constant>) as follows:
|
---|
| 3187 | </para>
|
---|
| 3188 |
|
---|
| 3189 | <procedure id="sbehap-bldg2">
|
---|
| 3190 | <title>Configuration of BDC Called <constant>BLDG2</constant></title>
|
---|
| 3191 |
|
---|
| 3192 | <step><para>
|
---|
| 3193 | Install the files in <link linkend="sbehap-bldg2-smbconf"/>,
|
---|
| 3194 | <link linkend="sbehap-shareconfa"/>, and <link linkend="sbehap-shareconfb"/>
|
---|
| 3195 | into the <filename>/etc/samba/</filename> directory. The three files
|
---|
| 3196 | should be added together to form the &smb.conf; file.
|
---|
| 3197 | </para></step>
|
---|
| 3198 |
|
---|
| 3199 | <step><para>
|
---|
| 3200 | Follow carefully the steps shown in <link linkend="sbehap-bldg1"/>, starting at step 2.
|
---|
| 3201 | </para></step>
|
---|
| 3202 |
|
---|
| 3203 | </procedure>
|
---|
| 3204 |
|
---|
| 3205 | <example id="sbehap-bldg1-smbconf">
|
---|
| 3206 | <title>LDAP Based &smb.conf; File, Server: BLDG1</title>
|
---|
| 3207 | <smbconfblock>
|
---|
| 3208 | <smbconfcomment>Global parameters</smbconfcomment>
|
---|
| 3209 | <smbconfsection name="[global]"/>
|
---|
| 3210 | <smbconfoption name="unix charset">LOCALE</smbconfoption>
|
---|
| 3211 | <smbconfoption name="workgroup">MEGANET2</smbconfoption>
|
---|
| 3212 | <smbconfoption name="netbios name">BLDG1</smbconfoption>
|
---|
| 3213 | <smbconfoption name="passdb backend">ldapsam:ldap://massive.abmas.biz</smbconfoption>
|
---|
| 3214 | <smbconfoption name="enable privileges">Yes</smbconfoption>
|
---|
| 3215 | <smbconfoption name="username map">/etc/samba/smbusers</smbconfoption>
|
---|
| 3216 | <smbconfoption name="log level">1</smbconfoption>
|
---|
| 3217 | <smbconfoption name="syslog">0</smbconfoption>
|
---|
| 3218 | <smbconfoption name="log file">/var/log/samba/%m</smbconfoption>
|
---|
| 3219 | <smbconfoption name="max log size">50</smbconfoption>
|
---|
| 3220 | <smbconfoption name="smb ports">139</smbconfoption>
|
---|
| 3221 | <smbconfoption name="name resolve order">wins bcast hosts</smbconfoption>
|
---|
| 3222 | <smbconfoption name="printcap name">CUPS</smbconfoption>
|
---|
| 3223 | <smbconfoption name="show add printer wizard">No</smbconfoption>
|
---|
| 3224 | <smbconfoption name="logon script">scripts\logon.bat</smbconfoption>
|
---|
| 3225 | <smbconfoption name="logon path">\\%L\profiles\%U</smbconfoption>
|
---|
| 3226 | <smbconfoption name="logon drive">X:</smbconfoption>
|
---|
| 3227 | <smbconfoption name="domain logons">Yes</smbconfoption>
|
---|
| 3228 | <smbconfoption name="domain master">No</smbconfoption>
|
---|
| 3229 | <smbconfoption name="wins server">172.16.0.1</smbconfoption>
|
---|
| 3230 | <smbconfoption name="ldap suffix">dc=abmas,dc=biz</smbconfoption>
|
---|
| 3231 | <smbconfoption name="ldap machine suffix">ou=People</smbconfoption>
|
---|
| 3232 | <smbconfoption name="ldap user suffix">ou=People</smbconfoption>
|
---|
| 3233 | <smbconfoption name="ldap group suffix">ou=Groups</smbconfoption>
|
---|
| 3234 | <smbconfoption name="ldap idmap suffix">ou=Idmap</smbconfoption>
|
---|
| 3235 | <smbconfoption name="ldap admin dn">cn=Manager,dc=abmas,dc=biz</smbconfoption>
|
---|
| 3236 | <smbconfoption name="idmap backend">ldap:ldap://massive.abmas.biz</smbconfoption>
|
---|
| 3237 | <smbconfoption name="idmap uid">10000-20000</smbconfoption>
|
---|
| 3238 | <smbconfoption name="idmap gid">10000-20000</smbconfoption>
|
---|
| 3239 | <smbconfoption name="printing">cups</smbconfoption>
|
---|
| 3240 | <smbconfoption name="printer admin">root, chrisr</smbconfoption>
|
---|
| 3241 | </smbconfblock>
|
---|
| 3242 | </example>
|
---|
| 3243 |
|
---|
| 3244 |
|
---|
| 3245 | <example id="sbehap-bldg2-smbconf">
|
---|
| 3246 | <title>LDAP Based &smb.conf; File, Server: BLDG2</title>
|
---|
| 3247 | <smbconfblock>
|
---|
| 3248 | <smbconfcomment>Global parameters</smbconfcomment>
|
---|
| 3249 | <smbconfsection name="[global]"/>
|
---|
| 3250 | <smbconfoption name="unix charset">LOCALE</smbconfoption>
|
---|
| 3251 | <smbconfoption name="workgroup">MEGANET2</smbconfoption>
|
---|
| 3252 | <smbconfoption name="netbios name">BLDG2</smbconfoption>
|
---|
| 3253 | <smbconfoption name="passdb backend">ldapsam:ldap://massive.abmas.biz</smbconfoption>
|
---|
| 3254 | <smbconfoption name="enable privileges">Yes</smbconfoption>
|
---|
| 3255 | <smbconfoption name="username map">/etc/samba/smbusers</smbconfoption>
|
---|
| 3256 | <smbconfoption name="log level">1</smbconfoption>
|
---|
| 3257 | <smbconfoption name="syslog">0</smbconfoption>
|
---|
| 3258 | <smbconfoption name="log file">/var/log/samba/%m</smbconfoption>
|
---|
| 3259 | <smbconfoption name="max log size">50</smbconfoption>
|
---|
| 3260 | <smbconfoption name="smb ports">139</smbconfoption>
|
---|
| 3261 | <smbconfoption name="name resolve order">wins bcast hosts</smbconfoption>
|
---|
| 3262 | <smbconfoption name="printcap name">CUPS</smbconfoption>
|
---|
| 3263 | <smbconfoption name="show add printer wizard">No</smbconfoption>
|
---|
| 3264 | <smbconfoption name="logon script">scripts\logon.bat</smbconfoption>
|
---|
| 3265 | <smbconfoption name="logon path">\\%L\profiles\%U</smbconfoption>
|
---|
| 3266 | <smbconfoption name="logon drive">X:</smbconfoption>
|
---|
| 3267 | <smbconfoption name="domain logons">Yes</smbconfoption>
|
---|
| 3268 | <smbconfoption name="domain master">No</smbconfoption>
|
---|
| 3269 | <smbconfoption name="wins server">172.16.0.1</smbconfoption>
|
---|
| 3270 | <smbconfoption name="ldap suffix">dc=abmas,dc=biz</smbconfoption>
|
---|
| 3271 | <smbconfoption name="ldap machine suffix">ou=People</smbconfoption>
|
---|
| 3272 | <smbconfoption name="ldap user suffix">ou=People</smbconfoption>
|
---|
| 3273 | <smbconfoption name="ldap group suffix">ou=Groups</smbconfoption>
|
---|
| 3274 | <smbconfoption name="ldap idmap suffix">ou=Idmap</smbconfoption>
|
---|
| 3275 | <smbconfoption name="ldap admin dn">cn=Manager,dc=abmas,dc=biz</smbconfoption>
|
---|
| 3276 | <smbconfoption name="idmap backend">ldap:ldap://massive.abmas.biz</smbconfoption>
|
---|
| 3277 | <smbconfoption name="idmap uid">10000-20000</smbconfoption>
|
---|
| 3278 | <smbconfoption name="idmap gid">10000-20000</smbconfoption>
|
---|
| 3279 | <smbconfoption name="printing">cups</smbconfoption>
|
---|
| 3280 | <smbconfoption name="printer admin">root, chrisr</smbconfoption>
|
---|
| 3281 | </smbconfblock>
|
---|
| 3282 | </example>
|
---|
| 3283 |
|
---|
| 3284 |
|
---|
| 3285 | <example id="sbehap-shareconfa">
|
---|
| 3286 | <title>LDAP Based &smb.conf; File, Shares Section &smbmdash; Part A</title>
|
---|
| 3287 | <smbconfblock>
|
---|
| 3288 | <smbconfsection name="[accounts]"/>
|
---|
| 3289 | <smbconfoption name="comment">Accounting Files</smbconfoption>
|
---|
| 3290 | <smbconfoption name="path">/data/accounts</smbconfoption>
|
---|
| 3291 | <smbconfoption name="read only">No</smbconfoption>
|
---|
| 3292 |
|
---|
| 3293 | <smbconfsection name="[service]"/>
|
---|
| 3294 | <smbconfoption name="comment">Financial Services Files</smbconfoption>
|
---|
| 3295 | <smbconfoption name="path">/data/service</smbconfoption>
|
---|
| 3296 | <smbconfoption name="read only">No</smbconfoption>
|
---|
| 3297 |
|
---|
| 3298 | <smbconfsection name="[pidata]"/>
|
---|
| 3299 | <smbconfoption name="comment">Property Insurance Files</smbconfoption>
|
---|
| 3300 | <smbconfoption name="path">/data/pidata</smbconfoption>
|
---|
| 3301 | <smbconfoption name="read only">No</smbconfoption>
|
---|
| 3302 |
|
---|
| 3303 | <smbconfsection name="[homes]"/>
|
---|
| 3304 | <smbconfoption name="comment">Home Directories</smbconfoption>
|
---|
| 3305 | <smbconfoption name="valid users">%S</smbconfoption>
|
---|
| 3306 | <smbconfoption name="read only">No</smbconfoption>
|
---|
| 3307 | <smbconfoption name="browseable">No</smbconfoption>
|
---|
| 3308 |
|
---|
| 3309 | <smbconfsection name="[printers]"/>
|
---|
| 3310 | <smbconfoption name="comment">SMB Print Spool</smbconfoption>
|
---|
| 3311 | <smbconfoption name="path">/var/spool/samba</smbconfoption>
|
---|
| 3312 | <smbconfoption name="guest ok">Yes</smbconfoption>
|
---|
| 3313 | <smbconfoption name="printable">Yes</smbconfoption>
|
---|
| 3314 | <smbconfoption name="browseable">No</smbconfoption>
|
---|
| 3315 | </smbconfblock>
|
---|
| 3316 | </example>
|
---|
| 3317 |
|
---|
| 3318 | <example id="sbehap-shareconfb">
|
---|
| 3319 | <title>LDAP Based &smb.conf; File, Shares Section &smbmdash; Part B</title>
|
---|
| 3320 | <smbconfblock>
|
---|
| 3321 | <smbconfsection name="[apps]"/>
|
---|
| 3322 | <smbconfoption name="comment">Application Files</smbconfoption>
|
---|
| 3323 | <smbconfoption name="path">/apps</smbconfoption>
|
---|
| 3324 | <smbconfoption name="admin users">bjordan</smbconfoption>
|
---|
| 3325 | <smbconfoption name="read only">No</smbconfoption>
|
---|
| 3326 |
|
---|
| 3327 | <smbconfsection name="[netlogon]"/>
|
---|
| 3328 | <smbconfoption name="comment">Network Logon Service</smbconfoption>
|
---|
| 3329 | <smbconfoption name="path">/var/lib/samba/netlogon</smbconfoption>
|
---|
| 3330 | <smbconfoption name="guest ok">Yes</smbconfoption>
|
---|
| 3331 | <smbconfoption name="locking">No</smbconfoption>
|
---|
| 3332 |
|
---|
| 3333 | <smbconfsection name="[profiles]"/>
|
---|
| 3334 | <smbconfoption name="comment">Profile Share</smbconfoption>
|
---|
| 3335 | <smbconfoption name="path">/var/lib/samba/profiles</smbconfoption>
|
---|
| 3336 | <smbconfoption name="read only">No</smbconfoption>
|
---|
| 3337 | <smbconfoption name="profile acls">Yes</smbconfoption>
|
---|
| 3338 |
|
---|
| 3339 | <smbconfsection name="[profdata]"/>
|
---|
| 3340 | <smbconfoption name="comment">Profile Data Share</smbconfoption>
|
---|
| 3341 | <smbconfoption name="path">/var/lib/samba/profdata</smbconfoption>
|
---|
| 3342 | <smbconfoption name="read only">No</smbconfoption>
|
---|
| 3343 | <smbconfoption name="profile acls">Yes</smbconfoption>
|
---|
| 3344 |
|
---|
| 3345 | <smbconfsection name="[print$]"/>
|
---|
| 3346 | <smbconfoption name="comment">Printer Drivers</smbconfoption>
|
---|
| 3347 | <smbconfoption name="path">/var/lib/samba/drivers</smbconfoption>
|
---|
| 3348 | <smbconfoption name="browseable">yes</smbconfoption>
|
---|
| 3349 | <smbconfoption name="guest ok">no</smbconfoption>
|
---|
| 3350 | <smbconfoption name="read only">yes</smbconfoption>
|
---|
| 3351 | <smbconfoption name="write list">root, chrisr</smbconfoption>
|
---|
| 3352 | </smbconfblock>
|
---|
| 3353 | </example>
|
---|
| 3354 |
|
---|
| 3355 | <example id="sbehap-ldifadd">
|
---|
| 3356 | <title>LDIF IDMAP Add-On Load File &smbmdash; File: /etc/openldap/idmap.LDIF</title>
|
---|
| 3357 | <screen>
|
---|
| 3358 | dn: ou=Idmap,dc=abmas,dc=biz
|
---|
| 3359 | objectClass: organizationalUnit
|
---|
| 3360 | ou: idmap
|
---|
| 3361 | structuralObjectClass: organizationalUnit
|
---|
| 3362 | </screen>
|
---|
| 3363 | </example>
|
---|
| 3364 |
|
---|
| 3365 | </sect1>
|
---|
| 3366 |
|
---|
| 3367 | <sect1>
|
---|
| 3368 | <title>Miscellaneous Server Preparation Tasks</title>
|
---|
| 3369 |
|
---|
| 3370 | <para>
|
---|
| 3371 | My father would say, <quote>Dinner is not over until the dishes have been done.</quote>
|
---|
| 3372 | The makings of a great network environment take a lot of effort and attention to detail.
|
---|
| 3373 | So far, you have completed most of the complex (and to many administrators, the interesting
|
---|
| 3374 | part of server configuration) steps, but remember to tie it all together. Here are
|
---|
| 3375 | a few more steps that must be completed so that your network runs like a well-rehearsed
|
---|
| 3376 | orchestra.
|
---|
| 3377 | </para>
|
---|
| 3378 |
|
---|
| 3379 | <sect2>
|
---|
| 3380 | <title>Configuring Directory Share Point Roots</title>
|
---|
| 3381 |
|
---|
| 3382 | <para>
|
---|
| 3383 | In your &smb.conf; file, you have specified Windows shares. Each has a <parameter>path</parameter>
|
---|
| 3384 | parameter. Even though it is obvious to all, one of the common Samba networking problems is
|
---|
| 3385 | caused by forgetting to verify that every such share root directory actually exists and that it
|
---|
| 3386 | has the necessary permissions and ownership.
|
---|
| 3387 | </para>
|
---|
| 3388 |
|
---|
| 3389 | <para>
|
---|
| 3390 | Here is an example, but remember to create the directory needed for every share:
|
---|
| 3391 | <screen>
|
---|
| 3392 | &rootprompt; mkdir -p /data/{accounts,finsvcs,piops}
|
---|
| 3393 | &rootprompt; mkdir -p /apps
|
---|
| 3394 | &rootprompt; chown -R root:root /data
|
---|
| 3395 | &rootprompt; chown -R root:root /apps
|
---|
| 3396 | &rootprompt; chown -R bobj:Accounts /data/accounts
|
---|
| 3397 | &rootprompt; chown -R bobj:Finances /data/finsvcs
|
---|
| 3398 | &rootprompt; chown -R bobj:PIOps /data/piops
|
---|
| 3399 | &rootprompt; chmod -R ug+rwxs,o-rwx /data
|
---|
| 3400 | &rootprompt; chmod -R ug+rwx,o+rx-w /apps
|
---|
| 3401 | </screen>
|
---|
| 3402 | </para>
|
---|
| 3403 |
|
---|
| 3404 | </sect2>
|
---|
| 3405 |
|
---|
| 3406 | <sect2>
|
---|
| 3407 | <title>Configuring Profile Directories</title>
|
---|
| 3408 |
|
---|
| 3409 | <para>
|
---|
| 3410 | You made a conscious decision to do everything it would take to improve network client
|
---|
| 3411 | performance. One of your decisions was to implement folder redirection. This means that Windows
|
---|
| 3412 | user desktop profiles are now made up of two components: a dynamically loaded part and a set of file
|
---|
| 3413 | network folders.
|
---|
| 3414 | </para>
|
---|
| 3415 |
|
---|
| 3416 | <para>
|
---|
| 3417 | For this arrangement to work, every user needs a directory structure for the network folder
|
---|
| 3418 | portion of his or her profile as shown here:
|
---|
| 3419 | <screen>
|
---|
| 3420 | &rootprompt; mkdir -p /var/lib/samba/profdata
|
---|
| 3421 | &rootprompt; chown root:root /var/lib/samba/profdata
|
---|
| 3422 | &rootprompt; chmod 755 /var/lib/samba/profdata
|
---|
| 3423 |
|
---|
| 3424 | # Per user structure
|
---|
| 3425 | &rootprompt; cd /var/lib/samba/profdata
|
---|
| 3426 | &rootprompt; mkdir -p <emphasis>username</emphasis>
|
---|
| 3427 | &rootprompt; for i in InternetFiles Cookies History AppData \
|
---|
| 3428 | LocalSettings MyPictures MyDocuments Recent
|
---|
| 3429 | &rootprompt; do
|
---|
| 3430 | &rootprompt; mkdir <emphasis>username</emphasis>/$i
|
---|
| 3431 | &rootprompt; done
|
---|
| 3432 | &rootprompt; chown -R <emphasis>username</emphasis>:Domain\ Users <emphasis>username</emphasis>
|
---|
| 3433 | &rootprompt; chmod -R 750 <emphasis>username</emphasis>
|
---|
| 3434 | </screen>
|
---|
| 3435 | </para>
|
---|
| 3436 |
|
---|
| 3437 | <para>
|
---|
| 3438 | <indexterm><primary>roaming profile</primary></indexterm>
|
---|
| 3439 | <indexterm><primary>mandatory profile</primary></indexterm>
|
---|
| 3440 | You have three options insofar as the dynamically loaded portion of the roaming profile
|
---|
| 3441 | is concerned:
|
---|
| 3442 | </para>
|
---|
| 3443 |
|
---|
| 3444 | <itemizedlist>
|
---|
| 3445 | <listitem><para>You may permit the user to obtain a default profile.</para></listitem>
|
---|
| 3446 | <listitem><para>You can create a mandatory profile.</para></listitem>
|
---|
| 3447 | <listitem><para>You can create a group profile (which is almost always a mandatory profile).</para></listitem>
|
---|
| 3448 | </itemizedlist>
|
---|
| 3449 |
|
---|
| 3450 | <para>
|
---|
| 3451 | Mandatory profiles cannot be overwritten by a user. The change from a user profile to a mandatory
|
---|
| 3452 | profile is effected by renaming the <filename>NTUSER.DAT</filename> to <filename>NTUSER.MAN</filename>,
|
---|
| 3453 | that is, just by changing the filename extension.
|
---|
| 3454 | </para>
|
---|
| 3455 |
|
---|
| 3456 | <para>
|
---|
| 3457 | <indexterm><primary>SRVTOOLS.EXE</primary></indexterm>
|
---|
| 3458 | <indexterm><primary>Domain User Manager</primary></indexterm>
|
---|
| 3459 | The location of the profile that a user can obtain is set in the user's account in the LDAP passdb backend.
|
---|
| 3460 | You can manage this using the Idealx smbldap-tools or using the
|
---|
| 3461 | <ulink url="ftp://ftp.microsoft.com/Softlib/MSLFILES/SRVTOOLS.EXE">Windows NT4 Domain User Manager</ulink>.
|
---|
| 3462 | </para>
|
---|
| 3463 |
|
---|
| 3464 | <para>
|
---|
| 3465 | It may not be obvious that you must ensure that the root directory for the user's profile exists
|
---|
| 3466 | and has the needed permissions. Use the following commands to create this directory:
|
---|
| 3467 | <screen>
|
---|
| 3468 | &rootprompt; mkdir -p /var/lib/samba/profiles/<emphasis>username</emphasis>
|
---|
| 3469 | &rootprompt; chown <emphasis>username</emphasis>:Domain\ Users
|
---|
| 3470 | /var/lib/samba/profiles/<emphasis>username</emphasis>
|
---|
| 3471 | &rootprompt; chmod 700 /var/lib/samba/profiles/<emphasis>username</emphasis>
|
---|
| 3472 | </screen>
|
---|
| 3473 | </para>
|
---|
| 3474 |
|
---|
| 3475 | </sect2>
|
---|
| 3476 |
|
---|
| 3477 | <sect2>
|
---|
| 3478 | <title>Preparation of Logon Scripts</title>
|
---|
| 3479 |
|
---|
| 3480 | <para>
|
---|
| 3481 | <indexterm><primary>logon script</primary></indexterm>
|
---|
| 3482 | The use of a logon script with Windows XP Professional is an option that every site should consider.
|
---|
| 3483 | Unless you have locked down the desktop so the user cannot change anything, there is risk that
|
---|
| 3484 | a vital network drive setting may be broken or that printer connections may be lost. Logon scripts
|
---|
| 3485 | can help to restore persistent network folder (drive) and printer connections in a predictable
|
---|
| 3486 | manner. One situation in which such breakage may occur in particular is when a mobile PC (notebook)
|
---|
| 3487 | user attaches to another company's network that forces environment changes that are alien to your
|
---|
| 3488 | network.
|
---|
| 3489 | </para>
|
---|
| 3490 |
|
---|
| 3491 | <para>
|
---|
| 3492 | If you decide to use network logon scripts, by reference to the &smb.conf; files for the domain
|
---|
| 3493 | controllers, you see that the path to the share point for the <constant>NETLOGON</constant>
|
---|
| 3494 | share defined is <filename>/var/lib/samba/netlogon</filename>. The path defined for the logon
|
---|
| 3495 | script inside that share is <filename>scripts\logon.bat</filename>. This means that as a Windows
|
---|
| 3496 | NT/200x/XP client logs onto the network, it tries to obtain the file <filename>logon.bat</filename>
|
---|
| 3497 | from the fully qualified path <filename>/var/lib/samba/netlogon/scripts</filename>. This fully
|
---|
| 3498 | qualified path should therefore exist whether you install the <filename>logon.bat</filename>.
|
---|
| 3499 | </para>
|
---|
| 3500 |
|
---|
| 3501 | <para>
|
---|
| 3502 | You can, of course, create the fully qualified path by executing:
|
---|
| 3503 | <screen>
|
---|
| 3504 | &rootprompt; mkdir -p /var/lib/samba/netlogon/scripts
|
---|
| 3505 | </screen>
|
---|
| 3506 | </para>
|
---|
| 3507 |
|
---|
| 3508 | <para>
|
---|
| 3509 | You should research the options for logon script implementation by referring to <emphasis>TOSHARG2</emphasis>, Chapter 24,
|
---|
| 3510 | Section 24.4. A quick Web search will bring up a host of options. One of the most popular logon
|
---|
| 3511 | facilities in use today is called <ulink url="http://www.kixtart.org">KiXtart</ulink>.
|
---|
| 3512 | </para>
|
---|
| 3513 |
|
---|
| 3514 | </sect2>
|
---|
| 3515 |
|
---|
| 3516 | <sect2>
|
---|
| 3517 | <title>Assigning User Rights and Privileges</title>
|
---|
| 3518 |
|
---|
| 3519 | <para>
|
---|
| 3520 | The ability to perform tasks such as joining Windows clients to the domain can be assigned to
|
---|
| 3521 | normal user accounts. By default, only the domain administrator account (<constant>root</constant> on UNIX
|
---|
| 3522 | systems because it has UID=0) can add accounts. New to Samba 3.0.11 is the ability to grant
|
---|
| 3523 | this privilege in a very limited fashion to particular accounts.
|
---|
| 3524 | </para>
|
---|
| 3525 |
|
---|
| 3526 | <para>
|
---|
| 3527 | By default, even Samba-3.0.11 does not grant any rights even to the <constant>Domain Admins</constant>
|
---|
| 3528 | group. Here we grant this group all privileges.
|
---|
| 3529 | </para>
|
---|
| 3530 |
|
---|
| 3531 | <para>
|
---|
| 3532 | Samba limits privileges on a per-server basis. This is a deliberate limitation so that users who
|
---|
| 3533 | are granted rights can be restricted to particular machines. It is left to the network administrator
|
---|
| 3534 | to determine which rights should be provided and to whom.
|
---|
| 3535 | </para>
|
---|
| 3536 |
|
---|
| 3537 | <procedure>
|
---|
| 3538 | <title>Steps for Assignment of User Rights and Privileges</title>
|
---|
| 3539 |
|
---|
| 3540 | <step><para>
|
---|
| 3541 | Log onto the PDC as the <constant>root</constant> account.
|
---|
| 3542 | </para></step>
|
---|
| 3543 |
|
---|
| 3544 | <step><para>
|
---|
| 3545 | Execute the following command to grant the <constant>Domain Admins</constant> group all
|
---|
| 3546 | rights and privileges:
|
---|
| 3547 | <screen>
|
---|
| 3548 | &rootprompt; net -S MASSIVE -U root%not24get rpc rights grant \
|
---|
| 3549 | "MEGANET2\Domain Admins" SeMachineAccountPrivilege \
|
---|
| 3550 | SePrintOperatorPrivilege SeAddUsersPrivilege \
|
---|
| 3551 | SeDiskOperatorPrivilege SeRemoteShutdownPrivilege
|
---|
| 3552 | Successfully granted rights.
|
---|
| 3553 | </screen>
|
---|
| 3554 | Repeat this step on each domain controller, in each case substituting the name of the server
|
---|
| 3555 | (e.g., BLDG1, BLDG2) in place of the PDC called MASSIVE.
|
---|
| 3556 | </para></step>
|
---|
| 3557 |
|
---|
| 3558 | <step><para>
|
---|
| 3559 | In this step the privilege will be granted to Bob Jordan (bobj) to add Windows workstations
|
---|
| 3560 | to the domain. Execute the following only on the PDC. It is not necessary to do this on
|
---|
| 3561 | BDCs or on DMS machines because machine accounts are only ever added by the PDC:
|
---|
| 3562 | <screen>
|
---|
| 3563 | &rootprompt; net -S MASSIVE -U root%not24get rpc rights grant \
|
---|
| 3564 | "MEGANET2\bobj" SeMachineAccountPrivilege
|
---|
| 3565 | Successfully granted rights.
|
---|
| 3566 | </screen>
|
---|
| 3567 | </para></step>
|
---|
| 3568 |
|
---|
| 3569 | <step><para>
|
---|
| 3570 | Verify that privilege assignments have been correctly applied by executing:
|
---|
| 3571 | <screen>
|
---|
| 3572 | net rpc rights list accounts -Uroot%not24get
|
---|
| 3573 | MEGANET2\bobj
|
---|
| 3574 | SeMachineAccountPrivilege
|
---|
| 3575 |
|
---|
| 3576 | S-0-0
|
---|
| 3577 | No privileges assigned
|
---|
| 3578 |
|
---|
| 3579 | BUILTIN\Print Operators
|
---|
| 3580 | No privileges assigned
|
---|
| 3581 |
|
---|
| 3582 | BUILTIN\Account Operators
|
---|
| 3583 | No privileges assigned
|
---|
| 3584 |
|
---|
| 3585 | BUILTIN\Backup Operators
|
---|
| 3586 | No privileges assigned
|
---|
| 3587 |
|
---|
| 3588 | BUILTIN\Server Operators
|
---|
| 3589 | No privileges assigned
|
---|
| 3590 |
|
---|
| 3591 | BUILTIN\Administrators
|
---|
| 3592 | No privileges assigned
|
---|
| 3593 |
|
---|
| 3594 | Everyone
|
---|
| 3595 | No privileges assigned
|
---|
| 3596 |
|
---|
| 3597 | MEGANET2\Domain Admins
|
---|
| 3598 | SeMachineAccountPrivilege
|
---|
| 3599 | SePrintOperatorPrivilege
|
---|
| 3600 | SeAddUsersPrivilege
|
---|
| 3601 | SeRemoteShutdownPrivilege
|
---|
| 3602 | SeDiskOperatorPrivilege
|
---|
| 3603 | </screen>
|
---|
| 3604 | </para></step>
|
---|
| 3605 |
|
---|
| 3606 | </procedure>
|
---|
| 3607 |
|
---|
| 3608 | </sect2>
|
---|
| 3609 |
|
---|
| 3610 | </sect1>
|
---|
| 3611 |
|
---|
| 3612 | <sect1>
|
---|
| 3613 | <title>Windows Client Configuration</title>
|
---|
| 3614 |
|
---|
| 3615 | <para>
|
---|
| 3616 | <indexterm><primary>NETLOGON</primary></indexterm>
|
---|
| 3617 | In the next few sections, you can configure a new Windows XP Professional disk image on a staging
|
---|
| 3618 | machine. You will configure all software, printer settings, profile and policy handling, and desktop
|
---|
| 3619 | default profile settings on this system. When it is complete, you copy the contents of the
|
---|
| 3620 | <filename>C:\Documents and Settings\Default User</filename> directory to a directory with the same
|
---|
| 3621 | name in the <constant>NETLOGON</constant> share on the domain controllers.
|
---|
| 3622 | </para>
|
---|
| 3623 |
|
---|
| 3624 | <para>
|
---|
| 3625 | Much can be learned from the Microsoft Support site regarding how best to set up shared profiles.
|
---|
| 3626 | One knowledge-base article in particular stands out:
|
---|
| 3627 | "<ulink url="http://support.microsoft.com/default.aspx?scid=kb;EN-US;168475">How to Create a
|
---|
| 3628 | Base Profile for All Users."</ulink>
|
---|
| 3629 |
|
---|
| 3630 | </para>
|
---|
| 3631 |
|
---|
| 3632 | <sect2 id="redirfold">
|
---|
| 3633 | <title>Configuration of Default Profile with Folder Redirection</title>
|
---|
| 3634 |
|
---|
| 3635 | <para>
|
---|
| 3636 | <indexterm><primary>folder redirection</primary></indexterm>
|
---|
| 3637 | Log onto the Windows XP Professional workstation as the local <constant>Administrator</constant>.
|
---|
| 3638 | It is necessary to expose folders that are generally hidden to provide access to the
|
---|
| 3639 | <constant>Default User</constant> folder.
|
---|
| 3640 | </para>
|
---|
| 3641 |
|
---|
| 3642 | <procedure>
|
---|
| 3643 | <title>Expose Hidden Folders</title>
|
---|
| 3644 |
|
---|
| 3645 | <step><para>
|
---|
| 3646 | Launch the Windows Explorer by clicking
|
---|
| 3647 | <menuchoice>
|
---|
| 3648 | <guimenu>Start</guimenu>
|
---|
| 3649 | <guimenuitem>My Computer</guimenuitem>
|
---|
| 3650 | <guimenuitem>Tools</guimenuitem>
|
---|
| 3651 | <guimenuitem>Folder Options</guimenuitem>
|
---|
| 3652 | <guimenuitem>View Tab</guimenuitem>
|
---|
| 3653 | </menuchoice>.
|
---|
| 3654 | Select <guilabel>Show hidden files and folders</guilabel>,
|
---|
| 3655 | and click <guibutton>OK</guibutton>. Exit Windows Explorer.
|
---|
| 3656 | </para></step>
|
---|
| 3657 |
|
---|
| 3658 | <step><para>
|
---|
| 3659 | <indexterm><primary>regedt32</primary></indexterm>
|
---|
| 3660 | Launch the Registry Editor. Click
|
---|
| 3661 | <menuchoice>
|
---|
| 3662 | <guimenu>Start</guimenu>
|
---|
| 3663 | <guimenuitem>Run</guimenuitem>
|
---|
| 3664 | </menuchoice>. Key in <command>regedt32</command>, and click
|
---|
| 3665 | <guibutton>OK</guibutton>.
|
---|
| 3666 | </para></step>
|
---|
| 3667 |
|
---|
| 3668 | </procedure>
|
---|
| 3669 |
|
---|
| 3670 | <para>
|
---|
| 3671 | </para>
|
---|
| 3672 |
|
---|
| 3673 | <procedure id="sbehap-rdrfldr">
|
---|
| 3674 | <title>Redirect Folders in Default System User Profile</title>
|
---|
| 3675 |
|
---|
| 3676 | <step><para>
|
---|
| 3677 | <indexterm><primary>HKEY_LOCAL_MACHINE</primary></indexterm>
|
---|
| 3678 | <indexterm><primary>Default User</primary></indexterm>
|
---|
| 3679 | Give focus to <constant>HKEY_LOCAL_MACHINE</constant> hive entry in the left panel.
|
---|
| 3680 | Click <menuchoice>
|
---|
| 3681 | <guimenu>File</guimenu>
|
---|
| 3682 | <guimenuitem>Load Hive...</guimenuitem>
|
---|
| 3683 | <guimenuitem>Documents and Settings</guimenuitem>
|
---|
| 3684 | <guimenuitem>Default User</guimenuitem>
|
---|
| 3685 | <guimenuitem>NTUSER</guimenuitem>
|
---|
| 3686 | <guimenuitem>Open</guimenuitem>
|
---|
| 3687 | </menuchoice>. In the dialog box that opens, enter the key name
|
---|
| 3688 | <constant>Default</constant> and click <guibutton>OK</guibutton>.
|
---|
| 3689 | </para></step>
|
---|
| 3690 |
|
---|
| 3691 | <step><para>
|
---|
| 3692 | Browse inside the newly loaded Default folder to:
|
---|
| 3693 | <screen>
|
---|
| 3694 | HKEY_LOCAL_MACHINE\Default\Software\Microsoft\Windows\
|
---|
| 3695 | CurrentVersion\Explorer\User Shell Folders\
|
---|
| 3696 | </screen>
|
---|
| 3697 | The right panel reveals the contents as shown in <link linkend="XP-screen001"/>.
|
---|
| 3698 | </para></step>
|
---|
| 3699 |
|
---|
| 3700 | <step><para>
|
---|
| 3701 | <indexterm><primary>%USERPROFILE%</primary></indexterm>
|
---|
| 3702 | <indexterm><primary>%LOGONSERVER%</primary></indexterm>
|
---|
| 3703 | You edit hive keys. Acceptable values to replace the
|
---|
| 3704 | <constant>%USERPROFILE%</constant> variable includes:
|
---|
| 3705 |
|
---|
| 3706 | <itemizedlist>
|
---|
| 3707 | <listitem><para>A drive letter such as <constant>U:</constant></para></listitem>
|
---|
| 3708 | <listitem><para>A direct network path such as
|
---|
| 3709 | <constant>\\MASSIVE\profdata</constant></para></listitem>
|
---|
| 3710 | <listitem><para>A network redirection (UNC name) that contains a macro such as </para>
|
---|
| 3711 | <para><constant>%LOGONSERVER%\profdata\</constant></para></listitem>
|
---|
| 3712 | </itemizedlist>
|
---|
| 3713 | </para></step>
|
---|
| 3714 |
|
---|
| 3715 | <step><para>
|
---|
| 3716 | <indexterm><primary>registry keys</primary></indexterm>
|
---|
| 3717 | Set the registry keys as shown in <link linkend="proffold"/>. Your implementation makes the assumption
|
---|
| 3718 | that users have statically located machines. Notebook computers (mobile users) need to be
|
---|
| 3719 | accommodated using local profiles. This is not an uncommon assumption.
|
---|
| 3720 | </para></step>
|
---|
| 3721 |
|
---|
| 3722 | <step><para>
|
---|
| 3723 | Click back to the root of the loaded hive <constant>Default</constant>.
|
---|
| 3724 | Click <menuchoice><guimenu>File</guimenu><guimenuitem>Unload Hive...</guimenuitem>
|
---|
| 3725 | <guimenuitem>Yes</guimenuitem></menuchoice>.
|
---|
| 3726 | </para></step>
|
---|
| 3727 |
|
---|
| 3728 | <step><para>
|
---|
| 3729 | <indexterm><primary>Registry Editor</primary></indexterm>
|
---|
| 3730 | Click <menuchoice><guimenu>File</guimenu><guimenuitem>Exit</guimenuitem></menuchoice>. This exits the
|
---|
| 3731 | Registry Editor.
|
---|
| 3732 | </para></step>
|
---|
| 3733 |
|
---|
| 3734 | <step><para>
|
---|
| 3735 | Now follow the procedure given in <link linkend="sbehap-locgrppol"/>. Make sure that each folder you
|
---|
| 3736 | have redirected is in the exclusion list.
|
---|
| 3737 | </para></step>
|
---|
| 3738 |
|
---|
| 3739 | <step><para>
|
---|
| 3740 | You are now ready to copy<footnote><para>
|
---|
| 3741 | There is an alternate method by which a default user profile can be added to the
|
---|
| 3742 | <constant>NETLOGON</constant> share. This facility in the Windows System tool
|
---|
| 3743 | permits profiles to be exported. The export target may be a particular user or
|
---|
| 3744 | group profile share point or else the <constant>NETLOGON</constant> share.
|
---|
| 3745 | In this case, the profile directory must be named <constant>Default User</constant>.
|
---|
| 3746 | </para></footnote>
|
---|
| 3747 | the Default User profile to the Samba domain controllers. Launch Microsoft Windows Explorer,
|
---|
| 3748 | and use it to copy the full contents of the directory <filename>Default User</filename> that
|
---|
| 3749 | is in the <filename>C:\Documents and Settings</filename> to the root directory of the
|
---|
| 3750 | <constant>NETLOGON</constant> share. If the <constant>NETLOGON</constant> share has the defined
|
---|
| 3751 | UNIX path of <filename>/var/lib/samba/netlogon</filename>, when the copy is complete there must
|
---|
| 3752 | be a directory in there called <filename>Default User</filename>.
|
---|
| 3753 | </para></step>
|
---|
| 3754 |
|
---|
| 3755 | </procedure>
|
---|
| 3756 |
|
---|
| 3757 | <para>
|
---|
| 3758 | Before punching out new desktop images for the client workstations, it is perhaps a good idea that
|
---|
| 3759 | desktop behavior should be returned to the original Microsoft settings. The following steps achieve
|
---|
| 3760 | that ojective:
|
---|
| 3761 | </para>
|
---|
| 3762 |
|
---|
| 3763 | <procedure>
|
---|
| 3764 | <title>Reset Folder Display to Original Behavior</title>
|
---|
| 3765 |
|
---|
| 3766 | <step><para>
|
---|
| 3767 | To launch the Windows Explorer, click
|
---|
| 3768 | <menuchoice>
|
---|
| 3769 | <guimenu>Start</guimenu>
|
---|
| 3770 | <guimenuitem>My Computer</guimenuitem>
|
---|
| 3771 | <guimenuitem>Tools</guimenuitem>
|
---|
| 3772 | <guimenuitem>Folder Options</guimenuitem>
|
---|
| 3773 | <guimenuitem>View Tab</guimenuitem>
|
---|
| 3774 | </menuchoice>.
|
---|
| 3775 | Deselect <guilabel>Show hidden files and folders</guilabel>, and click <guibutton>OK</guibutton>.
|
---|
| 3776 | Exit Windows Explorer.
|
---|
| 3777 | </para></step>
|
---|
| 3778 |
|
---|
| 3779 | </procedure>
|
---|
| 3780 |
|
---|
| 3781 | <figure id="XP-screen001">
|
---|
| 3782 | <title>Windows XP Professional &smbmdash; User Shared Folders</title>
|
---|
| 3783 | <imagefile scale="65">XP-screen001</imagefile>
|
---|
| 3784 | </figure>
|
---|
| 3785 |
|
---|
| 3786 | <table id="proffold">
|
---|
| 3787 | <title>Default Profile Redirections</title>
|
---|
| 3788 | <tgroup cols="2">
|
---|
| 3789 | <colspec align="left"/>
|
---|
| 3790 | <colspec align="left"/>
|
---|
| 3791 | <thead>
|
---|
| 3792 | <row>
|
---|
| 3793 | <entry>Registry Key</entry>
|
---|
| 3794 | <entry>Redirected Value</entry>
|
---|
| 3795 | </row>
|
---|
| 3796 | </thead>
|
---|
| 3797 | <tbody>
|
---|
| 3798 | <row>
|
---|
| 3799 | <entry>Cache</entry>
|
---|
| 3800 | <entry>%LOGONSERVER%\profdata\%USERNAME%\InternetFiles</entry>
|
---|
| 3801 | </row>
|
---|
| 3802 | <row>
|
---|
| 3803 | <entry>Cookies</entry>
|
---|
| 3804 | <entry>%LOGONSERVER%\profdata\%USERNAME%\Cookies</entry>
|
---|
| 3805 | </row>
|
---|
| 3806 | <row>
|
---|
| 3807 | <entry>History</entry>
|
---|
| 3808 | <entry>%LOGONSERVER%\profdata\%USERNAME%\History</entry>
|
---|
| 3809 | </row>
|
---|
| 3810 | <row>
|
---|
| 3811 | <entry>Local AppData</entry>
|
---|
| 3812 | <entry>%LOGONSERVER%\profdata\%USERNAME%\AppData</entry>
|
---|
| 3813 | </row>
|
---|
| 3814 | <row>
|
---|
| 3815 | <entry>Local Settings</entry>
|
---|
| 3816 | <entry>%LOGONSERVER%\profdata\%USERNAME%\LocalSettings</entry>
|
---|
| 3817 | </row>
|
---|
| 3818 | <row>
|
---|
| 3819 | <entry>My Pictures</entry>
|
---|
| 3820 | <entry>%LOGONSERVER%\profdata\%USERNAME%\MyPictures</entry>
|
---|
| 3821 | </row>
|
---|
| 3822 | <row>
|
---|
| 3823 | <entry>Personal</entry>
|
---|
| 3824 | <entry>%LOGONSERVER%\profdata\%USERNAME%\MyDocuments</entry>
|
---|
| 3825 | </row>
|
---|
| 3826 | <row>
|
---|
| 3827 | <entry>Recent</entry>
|
---|
| 3828 | <entry>%LOGONSERVER%\profdata\%USERNAME%\Recent</entry>
|
---|
| 3829 | </row>
|
---|
| 3830 | </tbody>
|
---|
| 3831 | </tgroup>
|
---|
| 3832 | </table>
|
---|
| 3833 |
|
---|
| 3834 | </sect2>
|
---|
| 3835 |
|
---|
| 3836 | <sect2>
|
---|
| 3837 | <title>Configuration of MS Outlook to Relocate PST File</title>
|
---|
| 3838 |
|
---|
| 3839 | <para>
|
---|
| 3840 | <indexterm><primary>Outlook</primary><secondary>PST</secondary></indexterm>
|
---|
| 3841 | <indexterm><primary>MS Outlook</primary><secondary>PST</secondary></indexterm>
|
---|
| 3842 | Microsoft Outlook can store a Personal Storage file, generally known as a PST file.
|
---|
| 3843 | It is the nature of email storage that this file grows, at times quite rapidly.
|
---|
| 3844 | So that users' email is available to them at every workstation they may log onto,
|
---|
| 3845 | it is common practice in well-controlled sites to redirect the PST folder to the
|
---|
| 3846 | users' home directory. Follow these steps for each user who wishes to do this.
|
---|
| 3847 | </para>
|
---|
| 3848 |
|
---|
| 3849 | <para>
|
---|
| 3850 | To redirect the Outlook PST file in Outlook 2003 (older versions of Outlook behave
|
---|
| 3851 | slightly differently), follow these steps:
|
---|
| 3852 | </para>
|
---|
| 3853 |
|
---|
| 3854 | <procedure>
|
---|
| 3855 | <title>Outlook PST File Relocation</title>
|
---|
| 3856 |
|
---|
| 3857 | <step><para>
|
---|
| 3858 | Close Outlook if it is open.
|
---|
| 3859 | </para></step>
|
---|
| 3860 |
|
---|
| 3861 | <step><para>
|
---|
| 3862 | From the <guimenu>Control Panel</guimenu>, launch the Mail icon.
|
---|
| 3863 | </para></step>
|
---|
| 3864 |
|
---|
| 3865 | <step><para>
|
---|
| 3866 | Click <guimenu>Email Accounts.</guimenu>
|
---|
| 3867 | </para></step>
|
---|
| 3868 |
|
---|
| 3869 | <step><para>
|
---|
| 3870 | Make a note of the location of the PST file(s). From this location, move
|
---|
| 3871 | the files to the desired new target location. The most desired new target location
|
---|
| 3872 | may well be the users' home directory.
|
---|
| 3873 | </para></step>
|
---|
| 3874 |
|
---|
| 3875 | <step><para>
|
---|
| 3876 | Add a new data file, selecting the PST file in the new desired target location.
|
---|
| 3877 | Give this entry (not the filename) a new name such as <quote>Personal Mail Folders.</quote>
|
---|
| 3878 | </para>
|
---|
| 3879 |
|
---|
| 3880 | <para>
|
---|
| 3881 | Note: If MS Outlook has been configured to use an IMAP account configuration there may be problems
|
---|
| 3882 | following these instructions. Feedback from users suggests that where IMAP is used the PST
|
---|
| 3883 | file is used to store rules and filters. When the PST store is relocated it appears to break
|
---|
| 3884 | MS Outlook's Send/Receive button. If anyone has sucessfully relocated PST files where IMAP is
|
---|
| 3885 | used please email <literal>jht@samba.org</literal> with useful tips and suggestions so that
|
---|
| 3886 | this warning can be removed or modified.
|
---|
| 3887 | </para></step>
|
---|
| 3888 |
|
---|
| 3889 | <step><para>
|
---|
| 3890 | Close the <guimenu>Date Files</guimenu> windows, then click <guimenu>Email Accounts</guimenu>.
|
---|
| 3891 | </para></step>
|
---|
| 3892 |
|
---|
| 3893 | <step><para>
|
---|
| 3894 | Select <guimenu>View of Change</guimenu> exiting email accounts, click <guibutton>Next.</guibutton>
|
---|
| 3895 | </para></step>
|
---|
| 3896 |
|
---|
| 3897 | <step><para>
|
---|
| 3898 | Change the <guimenu>Mail Delivery Location</guimenu> so as to use the data file in the new
|
---|
| 3899 | target location.
|
---|
| 3900 | </para></step>
|
---|
| 3901 |
|
---|
| 3902 | <step><para>
|
---|
| 3903 | Go back to the <guimenu>Data Files</guimenu> window, then delete the old data file entry.
|
---|
| 3904 | </para></step>
|
---|
| 3905 |
|
---|
| 3906 | </procedure>
|
---|
| 3907 |
|
---|
| 3908 | <note><para>
|
---|
| 3909 | <indexterm><primary>Outlook Address Book</primary></indexterm>
|
---|
| 3910 | You may have to remove and reinstall the Outlook Address Book (Contacts) entries, otherwise
|
---|
| 3911 | the user may be not be able to retrieve contacts when addressing a new email message.
|
---|
| 3912 | </para></note>
|
---|
| 3913 |
|
---|
| 3914 | <note><para>
|
---|
| 3915 | <indexterm><primary>Outlook Express</primary></indexterm>
|
---|
| 3916 | Outlook Express is not at all like MS OutLook. It stores file very differently also. Outlook
|
---|
| 3917 | Express storage files can not be redirected to network shares. The options panel will not permit
|
---|
| 3918 | this, but they can be moved to folders outside of the user's profile. They can also be excluded
|
---|
| 3919 | from folder synchronization as part of the roaming profile.
|
---|
| 3920 | </para>
|
---|
| 3921 |
|
---|
| 3922 | <para>
|
---|
| 3923 | While it is possible to redirect the data stores for Outlook Express data stores by editing the
|
---|
| 3924 | registry, experience has shown that data corruption and loss of email messages will result.
|
---|
| 3925 | </para>
|
---|
| 3926 |
|
---|
| 3927 | <para>
|
---|
| 3928 | <indexterm><primary>Outlook Express</primary></indexterm>
|
---|
| 3929 | <indexterm><primary>MS Outlook</primary></indexterm>
|
---|
| 3930 | In the same vane as MS Outlook, Outlook Express data stores can become very large. When used with
|
---|
| 3931 | roaming profiles this can result in excruciatingly long login and logout behavior will files are
|
---|
| 3932 | synchronized. For this reason, it is highly recommended not to use Outlook Express where roaming
|
---|
| 3933 | profiles are used.
|
---|
| 3934 | </para></note>
|
---|
| 3935 |
|
---|
| 3936 | <para>
|
---|
| 3937 | <indexterm><primary>PST file</primary></indexterm>
|
---|
| 3938 | Microsoft does not support storing PST files on network shares, although the practice does appear
|
---|
| 3939 | to be rather popular. Anyone who does relocation the PST file to a network resource should refer
|
---|
| 3940 | the Microsoft <ulink url="http://support.microsoft.com/kb/297019/">reference</ulink> to better
|
---|
| 3941 | understand the issues.
|
---|
| 3942 | </para>
|
---|
| 3943 |
|
---|
| 3944 | <para>
|
---|
| 3945 | <indexterm><primary>PST file</primary></indexterm>
|
---|
| 3946 | Apart from manually moving PST files to a network share, it is possible to set the default PST
|
---|
| 3947 | location for new accounts by following the instructions at the WindowsITPro <ulink
|
---|
| 3948 | url="http://www.windowsitpro.com/Windows/Article/ArticleID/48228/48228.html">web</ulink> site.
|
---|
| 3949 | </para>
|
---|
| 3950 |
|
---|
| 3951 | <para>
|
---|
| 3952 | <indexterm><primary>PST file</primary></indexterm>
|
---|
| 3953 | User feedback suggests that disabling of oplocks on PST files will significantly improve
|
---|
| 3954 | network performance by reducing locking overheads. One way this can be done is to add to the
|
---|
| 3955 | &smb.conf; file stanza for the share the PST file the following:
|
---|
| 3956 | <screen>
|
---|
| 3957 | veto oplock files = /*.pdf/*.PST/
|
---|
| 3958 | </screen>
|
---|
| 3959 | </para>
|
---|
| 3960 |
|
---|
| 3961 | </sect2>
|
---|
| 3962 |
|
---|
| 3963 | <sect2>
|
---|
| 3964 | <title>Configure Delete Cached Profiles on Logout</title>
|
---|
| 3965 |
|
---|
| 3966 | <para>
|
---|
| 3967 | Configure the Windows XP Professional client to auto-delete roaming profiles on logout:
|
---|
| 3968 | </para>
|
---|
| 3969 |
|
---|
| 3970 | <para>
|
---|
| 3971 | <indexterm><primary>MMC</primary></indexterm>
|
---|
| 3972 | Click
|
---|
| 3973 | <menuchoice>
|
---|
| 3974 | <guimenu>Start</guimenu>
|
---|
| 3975 | <guimenuitem>Run</guimenuitem>
|
---|
| 3976 | </menuchoice>. In the dialog box, enter <command>MMC</command> and click <guibutton>OK</guibutton>.
|
---|
| 3977 | </para>
|
---|
| 3978 |
|
---|
| 3979 | <para>
|
---|
| 3980 | Follow these steps to set the default behavior of the staging machine so that all roaming
|
---|
| 3981 | profiles are deleted as network users log out of the system. Click
|
---|
| 3982 | <menuchoice>
|
---|
| 3983 | <guimenu>File</guimenu>
|
---|
| 3984 | <guimenuitem>Add/Remove Snap-in</guimenuitem>
|
---|
| 3985 | <guimenuitem>Add</guimenuitem>
|
---|
| 3986 | <guimenuitem>Group Policy</guimenuitem>
|
---|
| 3987 | <guimenuitem>Add</guimenuitem>
|
---|
| 3988 | <guimenuitem>Finish</guimenuitem>
|
---|
| 3989 | <guimenuitem>Close</guimenuitem>
|
---|
| 3990 | <guimenuitem>OK</guimenuitem>
|
---|
| 3991 | </menuchoice>.
|
---|
| 3992 | </para>
|
---|
| 3993 |
|
---|
| 3994 | <para>
|
---|
| 3995 | <indexterm><primary>Microsoft Management Console</primary><see>MMC</see></indexterm>
|
---|
| 3996 | The Microsoft Management Console now shows the <guimenu>Group Policy</guimenu>
|
---|
| 3997 | utility that enables you to set the policies needed. In the left panel, click
|
---|
| 3998 | <menuchoice>
|
---|
| 3999 | <guimenuitem>Local Computer Policy</guimenuitem>
|
---|
| 4000 | <guimenuitem>Administrative Templates</guimenuitem>
|
---|
| 4001 | <guimenuitem>System</guimenuitem>
|
---|
| 4002 | <guimenuitem>User Profiles</guimenuitem>
|
---|
| 4003 | </menuchoice>. In the right panel, set the properties shown here by double-clicking on each
|
---|
| 4004 | item as shown:
|
---|
| 4005 | </para>
|
---|
| 4006 |
|
---|
| 4007 | <itemizedlist>
|
---|
| 4008 | <listitem><para>Do not check for user ownership of Roaming Profile Folders = Enabled</para></listitem>
|
---|
| 4009 | <listitem><para>Delete cached copies of roaming profiles = Enabled</para></listitem>
|
---|
| 4010 | </itemizedlist>
|
---|
| 4011 |
|
---|
| 4012 | <para>
|
---|
| 4013 | Close the Microsoft Management Console. The settings take immediate effect and persist onto all image copies
|
---|
| 4014 | made of this system to deploy the new standard desktop system.
|
---|
| 4015 | </para>
|
---|
| 4016 |
|
---|
| 4017 | </sect2>
|
---|
| 4018 |
|
---|
| 4019 | <sect2>
|
---|
| 4020 | <title>Uploading Printer Drivers to Samba Servers</title>
|
---|
| 4021 |
|
---|
| 4022 | <para>
|
---|
| 4023 | <indexterm><primary>printing</primary><secondary>drag-and-drop</secondary></indexterm>
|
---|
| 4024 | Users want to be able to use network printers. You have a vested interest in making
|
---|
| 4025 | it easy for them to print. You have chosen to install the printer drivers onto the Samba
|
---|
| 4026 | servers and to enable point-and-click (drag-and-drop) printing. This process results in
|
---|
| 4027 | Samba being able to automatically provide the Windows client with the driver necessary to
|
---|
| 4028 | print to the printer chosen. The following procedure must be followed for every network
|
---|
| 4029 | printer:
|
---|
| 4030 | </para>
|
---|
| 4031 |
|
---|
| 4032 | <procedure>
|
---|
| 4033 | <title>Steps to Install Printer Drivers on the Samba Servers</title>
|
---|
| 4034 |
|
---|
| 4035 | <step><para>
|
---|
| 4036 | Join your Windows XP Professional workstation (the staging machine) to the
|
---|
| 4037 | <constant>MEGANET2</constant> domain. If you are not sure of the procedure,
|
---|
| 4038 | follow the guidance given in <link linkend="appendix"/>, <link linkend="domjoin"/>.
|
---|
| 4039 | </para></step>
|
---|
| 4040 |
|
---|
| 4041 | <step><para>
|
---|
| 4042 | After the machine has rebooted, log onto the workstation as the domain
|
---|
| 4043 | <constant>root</constant> (this is the Administrator account for the
|
---|
| 4044 | operating system that is the host platform for this implementation of Samba.
|
---|
| 4045 | </para></step>
|
---|
| 4046 |
|
---|
| 4047 | <step><para>
|
---|
| 4048 | Launch MS Windows Explorer. Navigate in the left panel. Click
|
---|
| 4049 | <menuchoice>
|
---|
| 4050 | <guimenu>My Network Places</guimenu>
|
---|
| 4051 | <guimenuitem>Entire Network</guimenuitem>
|
---|
| 4052 | <guimenuitem>Microsoft Windows Network</guimenuitem>
|
---|
| 4053 | <guimenuitem>Meganet2</guimenuitem>
|
---|
| 4054 | <guimenuitem>Massive</guimenuitem>
|
---|
| 4055 | </menuchoice>. Click on <guimenu>Massive</guimenu>
|
---|
| 4056 | <guimenu>Printers and Faxes</guimenu>.
|
---|
| 4057 | </para></step>
|
---|
| 4058 |
|
---|
| 4059 | <step><para>
|
---|
| 4060 | Identify a printer that is shown in the right panel. Let us assume the printer is called
|
---|
| 4061 | <constant>ps01-color</constant>. Right-click on the <guimenu>ps01-color</guimenu> icon
|
---|
| 4062 | and select the <guimenu>Properties</guimenu> entry. This opens a dialog box that indicates
|
---|
| 4063 | that <quote>The printer driver is not installed on this computer. Some printer properties
|
---|
| 4064 | will not be accessible unless you install the printer driver. Do you want to install the
|
---|
| 4065 | driver now?</quote> It is important at this point you answer <guimenu>No</guimenu>.
|
---|
| 4066 | </para></step>
|
---|
| 4067 |
|
---|
| 4068 | <step><para>
|
---|
| 4069 | The printer properties panel for the <guimenu>ps01-color</guimenu> printer on the server
|
---|
| 4070 | <constant>MASSIVE</constant> is displayed. Click the <guimenu>Advanced</guimenu> tab.
|
---|
| 4071 | Note that the box labeled <guimenu>Driver</guimenu> is empty. Click the <guimenu>New Driver</guimenu>
|
---|
| 4072 | button that is next to the <guimenu>Driver</guimenu> box. This launches the <quote>Add Printer Wizard</quote>.
|
---|
| 4073 | </para></step>
|
---|
| 4074 |
|
---|
| 4075 | <step><para>
|
---|
| 4076 | <indexterm><primary>Add Printer Wizard</primary><secondary>APW</secondary></indexterm>
|
---|
| 4077 | <indexterm><primary>APW</primary></indexterm>
|
---|
| 4078 | The <quote>Add Printer Driver Wizard on <constant>MASSIVE</constant></quote> panel
|
---|
| 4079 | is now presented. Click <guimenu>Next</guimenu> to continue. From the left panel, select the
|
---|
| 4080 | printer manufacturer. In your case, you are adding a driver for a printer manufactured by
|
---|
| 4081 | Lexmark. In the right panel, select the printer (Lexmark Optra Color 40 PS). Click
|
---|
| 4082 | <guimenu>Next</guimenu>, and then <guimenu>Finish</guimenu> to commence driver upload. A
|
---|
| 4083 | progress bar appears and instructs you as each file is being uploaded and that it is being
|
---|
| 4084 | directed at the network server <constant>\\massive\ps01-color</constant>.
|
---|
| 4085 | </para></step>
|
---|
| 4086 |
|
---|
| 4087 | <step><para>
|
---|
| 4088 | <indexterm><primary>printers</primary><secondary>Advanced</secondary></indexterm>
|
---|
| 4089 | <indexterm><primary>printers</primary><secondary>Properties</secondary></indexterm>
|
---|
| 4090 | <indexterm><primary>printers</primary><secondary>Sharing</secondary></indexterm>
|
---|
| 4091 | <indexterm><primary>printers</primary><secondary>General</secondary></indexterm>
|
---|
| 4092 | <indexterm><primary>printers</primary><secondary>Security</secondary></indexterm>
|
---|
| 4093 | <indexterm><primary>AD printer publishing</primary></indexterm>
|
---|
| 4094 | The driver upload completes in anywhere from a few seconds to a few minutes. When it completes,
|
---|
| 4095 | you are returned to the <guimenu>Advanced</guimenu> tab in the <guimenu>Properties</guimenu> panel.
|
---|
| 4096 | You can set the Location (under the <guimenu>General</guimenu> tab) and Security settings (under
|
---|
| 4097 | the <guimenu>Security</guimenu> tab). Under the <guimenu>Sharing</guimenu> tab it is possible to
|
---|
| 4098 | load additional printer drivers; there is also a check-box in this tab called <quote>List in the
|
---|
| 4099 | directory</quote>. When this box is checked, the printer will be published in Active Directory
|
---|
| 4100 | (Applicable to Active Directory use only.)
|
---|
| 4101 | </para></step>
|
---|
| 4102 |
|
---|
| 4103 | <step><para>
|
---|
| 4104 | <indexterm><primary>printers</primary><secondary>Default Settings</secondary></indexterm>
|
---|
| 4105 | Click <guimenu>OK</guimenu>. It will take a minute or so to upload the settings to the server.
|
---|
| 4106 | You are now returned to the <guimenu>Printers and Faxes on Massive</guimenu> monitor.
|
---|
| 4107 | Right-click on the printer, click <menuchoice><guimenu>Properties</guimenu>
|
---|
| 4108 | <guimenuitem>Device Settings</guimenuitem> </menuchoice>. Now change the settings to suit
|
---|
| 4109 | your requirements. BE CERTAIN TO CHANGE AT LEAST ONE SETTING and apply the changes even if
|
---|
| 4110 | you need to reverse the changes back to their original settings.
|
---|
| 4111 | </para></step>
|
---|
| 4112 |
|
---|
| 4113 | <step><para>
|
---|
| 4114 | This is necessary so that the printer settings are initialized in the Samba printers
|
---|
| 4115 | database. Click <guimenu>Apply</guimenu> to commit your settings. Revert any settings you changed
|
---|
| 4116 | just to initialize the Samba printers database entry for this printer. If you need to revert a setting,
|
---|
| 4117 | click <guimenu>Apply</guimenu> again.
|
---|
| 4118 | </para></step>
|
---|
| 4119 |
|
---|
| 4120 | <step><para>
|
---|
| 4121 | <indexterm><primary>Print Test Page</primary></indexterm>
|
---|
| 4122 | Verify that all printer settings are at the desired configuration. When you are satisfied that they are,
|
---|
| 4123 | click the <guimenu>General</guimenu> tab. Now click the <guimenu>Print Test Page</guimenu> button.
|
---|
| 4124 | A test page should print. Verify that it has printed correctly. Then click <guimenu>OK</guimenu>
|
---|
| 4125 | in the panel that is newly presented. Click <guimenu>OK</guimenu> on the <guimenu>ps01-color on
|
---|
| 4126 | massive Properties</guimenu> panel.
|
---|
| 4127 | </para></step>
|
---|
| 4128 |
|
---|
| 4129 | <step><para>
|
---|
| 4130 | You must repeat this process for all network printers (i.e., for every printer on each server).
|
---|
| 4131 | When you have finished uploading drivers to all printers, close all applications. The next task
|
---|
| 4132 | is to install software your users require to do their work.
|
---|
| 4133 | </para></step>
|
---|
| 4134 |
|
---|
| 4135 | </procedure>
|
---|
| 4136 |
|
---|
| 4137 | </sect2>
|
---|
| 4138 |
|
---|
| 4139 | <sect2>
|
---|
| 4140 | <title>Software Installation</title>
|
---|
| 4141 |
|
---|
| 4142 | <para>
|
---|
| 4143 | Your network has both fixed desktop workstations as well as notebook computers. As a general rule, it is
|
---|
| 4144 | a good idea to not tamper with the operating system that is provided by the notebook computer manufacturer.
|
---|
| 4145 | Notebooks require special handling that is beyond the scope of this chapter.
|
---|
| 4146 | </para>
|
---|
| 4147 |
|
---|
| 4148 | <para>
|
---|
| 4149 | For desktop systems, the installation of software onto administratively centralized application servers
|
---|
| 4150 | make a lot of sense. This means that you can manage software maintenance from a central
|
---|
| 4151 | perspective and that only minimal application stubware needs to be installed onto the desktop
|
---|
| 4152 | systems. You should proceed with software installation and default configuration as far as is humanly
|
---|
| 4153 | possible and so long as it makes sense to do so. Make certain to thoroughly test and validate every aspect
|
---|
| 4154 | of software operations and configuration.
|
---|
| 4155 | </para>
|
---|
| 4156 |
|
---|
| 4157 | <para>
|
---|
| 4158 | When you believe that the overall configuration is complete, be sure to create a shared group profile
|
---|
| 4159 | and migrate that to the Samba server for later reuse when creating custom mandatory profiles, just in
|
---|
| 4160 | case a user may have specific needs you had not anticipated.
|
---|
| 4161 | </para>
|
---|
| 4162 |
|
---|
| 4163 | </sect2>
|
---|
| 4164 |
|
---|
| 4165 | <sect2>
|
---|
| 4166 | <title>Roll-out Image Creation</title>
|
---|
| 4167 |
|
---|
| 4168 | <para>
|
---|
| 4169 | The final steps before preparing the distribution Norton Ghost image file you might follow are:
|
---|
| 4170 | </para>
|
---|
| 4171 |
|
---|
| 4172 | <blockquote><para>
|
---|
| 4173 | Unjoin the domain &smbmdash; Each workstation requires a unique name and must be independently
|
---|
| 4174 | joined into domain membership.
|
---|
| 4175 | </para></blockquote>
|
---|
| 4176 |
|
---|
| 4177 | <blockquote><para>
|
---|
| 4178 | Defragment the hard disk &smbmdash; While not obvious to the uninitiated, defragmentation results
|
---|
| 4179 | in better performance and often significantly reduces the size of the compressed disk image. That
|
---|
| 4180 | also means it will take less time to deploy the image onto 500 workstations.
|
---|
| 4181 | </para></blockquote>
|
---|
| 4182 |
|
---|
| 4183 | </sect2>
|
---|
| 4184 |
|
---|
| 4185 | </sect1>
|
---|
| 4186 |
|
---|
| 4187 | <sect1>
|
---|
| 4188 | <title>Key Points Learned</title>
|
---|
| 4189 |
|
---|
| 4190 | <para>
|
---|
| 4191 | This chapter introduced many new concepts. Is it a sad fact that the example presented deliberately
|
---|
| 4192 | avoided any consideration of security. Security does not just happen; you must design it into your total
|
---|
| 4193 | network. Security begins with a systems design and implementation that anticipates hostile behavior from
|
---|
| 4194 | users both inside and outside the organization. Hostile and malicious intruders do not respect barriers;
|
---|
| 4195 | they accept them as challenges. For that reason, if not simply from a desire to establish safe networking
|
---|
| 4196 | practices, you must not deploy the design presented in this book in an environment where there is risk
|
---|
| 4197 | of compromise.
|
---|
| 4198 | </para>
|
---|
| 4199 |
|
---|
| 4200 | <para>
|
---|
| 4201 | <indexterm><primary>Access Control Lists</primary><see>ACLs</see></indexterm>
|
---|
| 4202 | <indexterm><primary>ACLs</primary></indexterm>
|
---|
| 4203 | As a minimum, the LDAP server must be protected by way of Access Control Lists (ACLs), and it must be
|
---|
| 4204 | configured to use secure protocols for all communications over the network. Of course, secure networking
|
---|
| 4205 | does not result just from systems design and implementation but involves constant user education
|
---|
| 4206 | training and, above all, disciplined attention to detail and constant searching for signs of unfriendly
|
---|
| 4207 | or alien activities. Security is itself a topic for a whole book. Please do consult appropriate sources.
|
---|
| 4208 | Jerry Carter's book <ulink url="http://www.booksense.com/product/info.jsp&isbn=1565924916">
|
---|
| 4209 | <emphasis>LDAP System Administration</emphasis></ulink> is a good place to start reading about OpenLDAP
|
---|
| 4210 | as well as security considerations.
|
---|
| 4211 | </para>
|
---|
| 4212 |
|
---|
| 4213 | <para>
|
---|
| 4214 | The substance of this chapter that has been deserving of particular attention includes:
|
---|
| 4215 | </para>
|
---|
| 4216 |
|
---|
| 4217 | <itemizedlist>
|
---|
| 4218 | <listitem><para>
|
---|
| 4219 | Implementation of an OpenLDAP-based passwd backend, necessary to support distributed
|
---|
| 4220 | domain control.
|
---|
| 4221 | </para></listitem>
|
---|
| 4222 |
|
---|
| 4223 | <listitem><para>
|
---|
| 4224 | Implementation of Samba primary and secondary domain controllers with a common LDAP backend
|
---|
| 4225 | for user and group accounts that is shared with the UNIX system through the PADL nss_ldap and
|
---|
| 4226 | pam_ldap tool-sets.
|
---|
| 4227 | </para></listitem>
|
---|
| 4228 |
|
---|
| 4229 | <listitem><para>
|
---|
| 4230 | Use of the Idealx smbldap-tools scripts for UNIX (POSIX) account management as well as
|
---|
| 4231 | to manage Samba Windows user and group accounts.
|
---|
| 4232 | </para></listitem>
|
---|
| 4233 |
|
---|
| 4234 | <listitem><para>
|
---|
| 4235 | The basics of implementation of Group Policy controls for Windows network clients.
|
---|
| 4236 | </para></listitem>
|
---|
| 4237 |
|
---|
| 4238 | <listitem><para>
|
---|
| 4239 | Control over roaming profiles, with particular focus on folder redirection to network drives.
|
---|
| 4240 | </para></listitem>
|
---|
| 4241 |
|
---|
| 4242 | <listitem><para>
|
---|
| 4243 | Use of the CUPS printing system together with Samba-based printer driver auto-download.
|
---|
| 4244 | </para></listitem>
|
---|
| 4245 | </itemizedlist>
|
---|
| 4246 |
|
---|
| 4247 | </sect1>
|
---|
| 4248 |
|
---|
| 4249 |
|
---|
| 4250 | <sect1>
|
---|
| 4251 | <title>Questions and Answers</title>
|
---|
| 4252 |
|
---|
| 4253 | <para>
|
---|
| 4254 | Well, here we are at the end of this chapter and we have only ten questions to help you to
|
---|
| 4255 | remember so much. There are bound to be some sticky issues here.
|
---|
| 4256 | </para>
|
---|
| 4257 |
|
---|
| 4258 | <qandaset defaultlabel="chap06qa" type="number">
|
---|
| 4259 | <qandaentry>
|
---|
| 4260 | <question>
|
---|
| 4261 |
|
---|
| 4262 | <para>
|
---|
| 4263 | Why did you not cover secure practices? Isn't it rather irresponsible to instruct
|
---|
| 4264 | network administrators to implement insecure solutions?
|
---|
| 4265 | </para>
|
---|
| 4266 |
|
---|
| 4267 | </question>
|
---|
| 4268 | <answer>
|
---|
| 4269 |
|
---|
| 4270 | <para>
|
---|
| 4271 | Let's get this right. This is a book about Samba, not about OpenLDAP and secure
|
---|
| 4272 | communication protocols for subjects other than Samba. Earlier on, you note,
|
---|
| 4273 | that the dynamic DNS and DHCP solutions also used no protective secure communications
|
---|
| 4274 | protocols. The reason for this is simple: There are so many ways of implementing
|
---|
| 4275 | secure protocols that this book would have been even larger and more complex.
|
---|
| 4276 | </para>
|
---|
| 4277 |
|
---|
| 4278 | <para>
|
---|
| 4279 | The solutions presented here all work (at least they did for me). Network administrators
|
---|
| 4280 | have the interest and the need to be better trained and instructed in secure networking
|
---|
| 4281 | practices and ought to implement safe systems. I made the decision, right or wrong,
|
---|
| 4282 | to keep this material as simple as possible. The intent of this book is to demonstrate
|
---|
| 4283 | a working solution and not to discuss too many peripheral issues.
|
---|
| 4284 | </para>
|
---|
| 4285 |
|
---|
| 4286 | <para>
|
---|
| 4287 | This book makes little mention of backup techniques. Does that mean that I am recommending
|
---|
| 4288 | that you should implement a network without provision for data recovery and for disaster
|
---|
| 4289 | management? Back to our focus: The deployment of Samba has been clearly demonstrated.
|
---|
| 4290 | </para>
|
---|
| 4291 |
|
---|
| 4292 | </answer>
|
---|
| 4293 | </qandaentry>
|
---|
| 4294 |
|
---|
| 4295 | <qandaentry>
|
---|
| 4296 | <question>
|
---|
| 4297 |
|
---|
| 4298 | <para>
|
---|
| 4299 | You have focused much on SUSE Linux and little on the market leader, Red Hat. Do
|
---|
| 4300 | you have a problem with Red Hat Linux? Doesn't that make your guidance irrelevant
|
---|
| 4301 | to the Linux I might be using?
|
---|
| 4302 | </para>
|
---|
| 4303 |
|
---|
| 4304 | </question>
|
---|
| 4305 | <answer>
|
---|
| 4306 |
|
---|
| 4307 | <para>
|
---|
| 4308 | Both Red Hat Linux and SUSE Linux comply with the Linux Standards Base specifications
|
---|
| 4309 | for a standard Linux distribution. The differences are marginal. Surely you know
|
---|
| 4310 | your Linux platform, and you do have access to administration manuals for it. This
|
---|
| 4311 | book is not a Linux tutorial; it is a Samba tutorial. Let's keep the focus on
|
---|
| 4312 | the Samba part of the book; all the other bits are peripheral (but important) to
|
---|
| 4313 | creation of a total network solution.
|
---|
| 4314 | </para>
|
---|
| 4315 |
|
---|
| 4316 | <para>
|
---|
| 4317 | What I find interesting is the attention reviewers give to Linux installation and to
|
---|
| 4318 | the look and feel of the desktop, but does that make for a great server? In this book,
|
---|
| 4319 | I have paid particular attention to the details of creating a whole solution framework.
|
---|
| 4320 | I have not tightened every nut and bolt, but I have touched on all the issues you
|
---|
| 4321 | need to be familiar with. Over the years many people have approached me wanting to
|
---|
| 4322 | know the details of exactly how to implement a DHCP and dynamic DNS server with Samba
|
---|
| 4323 | and WINS. In this chapter, it is plain to see what needs to be configured to provide
|
---|
| 4324 | transparent interoperability. Likewise for CUPS and Samba interoperation. These are
|
---|
| 4325 | key stumbling areas for many people.
|
---|
| 4326 | </para>
|
---|
| 4327 |
|
---|
| 4328 | <para>
|
---|
| 4329 | At every critical junction, I have provided comparative guidance for both SUSE and
|
---|
| 4330 | Red Hat Linux. Both manufacturers have done a great job in furthering the cause
|
---|
| 4331 | of open source software. I favor neither and respect both. I like particular
|
---|
| 4332 | features of both products (companies also). No bias in presentation is intended.
|
---|
| 4333 | Oh, before I forget, I particularly like Debian Linux; that is my favorite playground.
|
---|
| 4334 | </para>
|
---|
| 4335 |
|
---|
| 4336 | </answer>
|
---|
| 4337 | </qandaentry>
|
---|
| 4338 |
|
---|
| 4339 | <qandaentry>
|
---|
| 4340 | <question>
|
---|
| 4341 |
|
---|
| 4342 | <para>
|
---|
| 4343 | You did not use SWAT to configure Samba. Is there something wrong with it?
|
---|
| 4344 | </para>
|
---|
| 4345 |
|
---|
| 4346 | </question>
|
---|
| 4347 | <answer>
|
---|
| 4348 |
|
---|
| 4349 | <para>
|
---|
| 4350 | That is a good question. As it is, the &smb.conf; file configurations are presented
|
---|
| 4351 | in as direct a format as possible. Adding SWAT into the equation would have complicated
|
---|
| 4352 | matters. I sought simplicity of implementation. The fact is that I did use SWAT to
|
---|
| 4353 | create the files in the first place.
|
---|
| 4354 | </para>
|
---|
| 4355 |
|
---|
| 4356 | <para>
|
---|
| 4357 | There are people in the Linux and open source community who feel that SWAT is dangerous
|
---|
| 4358 | and insecure. Many will not touch it with a barge-pole. By not introducing SWAT, I
|
---|
| 4359 | hope to have brought their interests on board. SWAT is well covered is <emphasis>TOSHARG2</emphasis>.
|
---|
| 4360 | </para>
|
---|
| 4361 |
|
---|
| 4362 | </answer>
|
---|
| 4363 | </qandaentry>
|
---|
| 4364 |
|
---|
| 4365 | <qandaentry>
|
---|
| 4366 | <question>
|
---|
| 4367 |
|
---|
| 4368 | <para>
|
---|
| 4369 | You have exposed a well-used password <emphasis>not24get</emphasis>. Is that
|
---|
| 4370 | not irresponsible?
|
---|
| 4371 | </para>
|
---|
| 4372 |
|
---|
| 4373 | </question>
|
---|
| 4374 | <answer>
|
---|
| 4375 |
|
---|
| 4376 | <para>
|
---|
| 4377 | Well, I had to use a password of some sort. At least this one has been consistently
|
---|
| 4378 | used throughout. I guess you can figure out that in a real deployment it would make
|
---|
| 4379 | sense to use a more secure and original password.
|
---|
| 4380 | </para>
|
---|
| 4381 |
|
---|
| 4382 | </answer>
|
---|
| 4383 | </qandaentry>
|
---|
| 4384 |
|
---|
| 4385 | <qandaentry>
|
---|
| 4386 | <question>
|
---|
| 4387 |
|
---|
| 4388 | <para>
|
---|
| 4389 | The Idealx smbldap-tools create many domain group accounts that are not used. Is that
|
---|
| 4390 | a good thing?
|
---|
| 4391 | </para>
|
---|
| 4392 |
|
---|
| 4393 | </question>
|
---|
| 4394 | <answer>
|
---|
| 4395 |
|
---|
| 4396 | <para>
|
---|
| 4397 | I took this up with Idealx and found them most willing to change that in the next version.
|
---|
| 4398 | Let's give Idealx some credit for the contribution they have made. I appreciate their work
|
---|
| 4399 | and, besides, it does no harm to create accounts that are not now used &smbmdash; at some time
|
---|
| 4400 | Samba may well use them.
|
---|
| 4401 | </para>
|
---|
| 4402 |
|
---|
| 4403 | </answer>
|
---|
| 4404 | </qandaentry>
|
---|
| 4405 |
|
---|
| 4406 | <qandaentry>
|
---|
| 4407 | <question>
|
---|
| 4408 |
|
---|
| 4409 | <para>
|
---|
| 4410 | Can I use LDAP just for Samba accounts and not for UNIX system accounts?
|
---|
| 4411 | </para>
|
---|
| 4412 |
|
---|
| 4413 | </question>
|
---|
| 4414 | <answer>
|
---|
| 4415 |
|
---|
| 4416 | <para>
|
---|
| 4417 | Yes, you can do that for user accounts only. Samba requires there to be a POSIX (UNIX)
|
---|
| 4418 | group account for every Windows domain group account. But if you put your users into
|
---|
| 4419 | the system password account, how do you plan to keep all domain controller system
|
---|
| 4420 | password files in sync? I think that having everything in LDAP makes a lot of sense
|
---|
| 4421 | for the UNIX administrator who is still learning the craft and is migrating from MS Windows.
|
---|
| 4422 | </para>
|
---|
| 4423 |
|
---|
| 4424 | </answer>
|
---|
| 4425 | </qandaentry>
|
---|
| 4426 |
|
---|
| 4427 | <qandaentry>
|
---|
| 4428 | <question>
|
---|
| 4429 |
|
---|
| 4430 | <para>
|
---|
| 4431 | Why are the Windows domain RID portions not the same as the UNIX UID?
|
---|
| 4432 | </para>
|
---|
| 4433 |
|
---|
| 4434 | </question>
|
---|
| 4435 | <answer>
|
---|
| 4436 |
|
---|
| 4437 | <para>
|
---|
| 4438 | Samba uses a well-known public algorithm for assigning RIDs from UIDs and GIDs.
|
---|
| 4439 | This algorithm ought to ensure that there will be no clashes with well-known RIDs.
|
---|
| 4440 | Well-known RIDs have special significance to MS Windows clients. The automatic
|
---|
| 4441 | assignment used the calculation: RID = UID x 2 + 1000. Of course, Samba does
|
---|
| 4442 | permit you to override that to some extent. See the &smb.conf; man page entry
|
---|
| 4443 | for <parameter>algorithmic rid base</parameter>.
|
---|
| 4444 | </para>
|
---|
| 4445 |
|
---|
| 4446 | </answer>
|
---|
| 4447 | </qandaentry>
|
---|
| 4448 |
|
---|
| 4449 | <qandaentry>
|
---|
| 4450 | <question>
|
---|
| 4451 |
|
---|
| 4452 | <para>
|
---|
| 4453 | Printer configuration examples all show printing to the HP port 9100. Does this
|
---|
| 4454 | mean that I must have HP printers for these solutions to work?
|
---|
| 4455 | </para>
|
---|
| 4456 |
|
---|
| 4457 | </question>
|
---|
| 4458 | <answer>
|
---|
| 4459 |
|
---|
| 4460 | <para>
|
---|
| 4461 | No. You can use any type of printer and must use the interfacing protocol supported
|
---|
| 4462 | by the printer. Many networks use LPR/LPD print servers to which are attached
|
---|
| 4463 | PCL printers, inkjet printers, plotters, and so on. At home I use a USB-attached
|
---|
| 4464 | inkjet printer. Use the appropriate device URI (Universal Resource Interface)
|
---|
| 4465 | argument to the <constant>lpadmin -v</constant> option that is right for your
|
---|
| 4466 | printer.
|
---|
| 4467 | </para>
|
---|
| 4468 |
|
---|
| 4469 | </answer>
|
---|
| 4470 | </qandaentry>
|
---|
| 4471 |
|
---|
| 4472 | <qandaentry>
|
---|
| 4473 | <question>
|
---|
| 4474 |
|
---|
| 4475 | <para>
|
---|
| 4476 | Is folder redirection dangerous? I've heard that you can lose your data that way.
|
---|
| 4477 | </para>
|
---|
| 4478 |
|
---|
| 4479 | </question>
|
---|
| 4480 | <answer>
|
---|
| 4481 |
|
---|
| 4482 | <para>
|
---|
| 4483 | The only loss of data I know of that involved folder redirection was caused by
|
---|
| 4484 | manual misuse of the redirection tool. The administrator redirected a folder to
|
---|
| 4485 | a network drive and said he wanted to migrate (move) the data over. Then he
|
---|
| 4486 | changed his mind, so he moved the folder back to the roaming profile. This time,
|
---|
| 4487 | he declined to move the data because he thought it was still in the local profile
|
---|
| 4488 | folder. That was not the case, so by declining to move the data back, he wiped out
|
---|
| 4489 | the data. You cannot hold the tool responsible for that. Caveat emptor still applies.
|
---|
| 4490 | </para>
|
---|
| 4491 |
|
---|
| 4492 | </answer>
|
---|
| 4493 | </qandaentry>
|
---|
| 4494 |
|
---|
| 4495 | <qandaentry>
|
---|
| 4496 | <question>
|
---|
| 4497 |
|
---|
| 4498 | <para>
|
---|
| 4499 | Is it really necessary to set a local Group Policy to exclude the redirected
|
---|
| 4500 | folders from the roaming profile?
|
---|
| 4501 | </para>
|
---|
| 4502 |
|
---|
| 4503 | </question>
|
---|
| 4504 | <answer>
|
---|
| 4505 |
|
---|
| 4506 | <para>
|
---|
| 4507 | Yes. If you do not do this, the data will still be copied from the network folder
|
---|
| 4508 | (share) to the local cached copy of the profile.
|
---|
| 4509 | </para>
|
---|
| 4510 |
|
---|
| 4511 | </answer>
|
---|
| 4512 | </qandaentry>
|
---|
| 4513 |
|
---|
| 4514 | </qandaset>
|
---|
| 4515 |
|
---|
| 4516 | </sect1>
|
---|
| 4517 |
|
---|
| 4518 | </chapter>
|
---|