~zulcss/samba/server-dailies-3.4

« back to all changes in this revision

Viewing changes to docs-xml/Samba3-HOWTO/TOSHARG-AdvancedNetworkAdmin.xml

  • Committer: Chuck Short
  • Date: 2010-09-28 20:38:39 UTC
  • Revision ID: zulcss@ubuntu.com-20100928203839-pgjulytsi9ue63x1
Initial version

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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="AdvancedNetworkManagement">
 
4
<chapterinfo>
 
5
        &author.jht;
 
6
    <pubdate>June 15 2005</pubdate>
 
7
</chapterinfo>
 
8
 
 
9
<title>Advanced Network Management</title>
 
10
 
 
11
<para>
 
12
<indexterm><primary>access control</primary></indexterm>
 
13
This section documents peripheral issues that are of great importance to network
 
14
administrators who want to improve network resource access control, to automate the user
 
15
environment, and to make their lives a little easier.
 
16
</para>
 
17
 
 
18
<sect1>
 
19
<title>Features and Benefits</title>
 
20
 
 
21
<para>
 
22
Often the difference between a working network environment and a well-appreciated one can
 
23
best be measured by the <emphasis>little things</emphasis> that make everything work more
 
24
harmoniously. A key part of every network environment solution is the ability to remotely
 
25
manage MS Windows workstations, remotely access the Samba server, provide customized
 
26
logon scripts, as well as other housekeeping activities that help to sustain more reliable
 
27
network operations.
 
28
</para>
 
29
 
 
30
<para>
 
31
This chapter presents information on each of these areas. They are placed here, and not in
 
32
other chapters, for ease of reference.
 
33
</para>
 
34
 
 
35
</sect1>
 
36
 
 
37
<sect1>
 
38
<title>Remote Server Administration</title>
 
39
 
 
40
 
 
41
<para><quote>How do I get User Manager and Server Manager?</quote></para>
 
42
 
 
43
<para>
 
44
<indexterm><primary>User Manager</primary></indexterm>
 
45
<indexterm><primary>Server Manager</primary></indexterm>
 
46
<indexterm><primary>Event Viewer</primary></indexterm>
 
47
Since I do not need to buy an <application>NT4 server</application>, how do I get the User Manager for Domains
 
48
and the Server Manager?
 
49
</para>
 
50
 
 
51
<para>
 
52
<indexterm><primary>Nexus.exe</primary></indexterm>
 
53
<indexterm><primary>Windows 9x/Me</primary></indexterm>
 
54
Microsoft distributes a version of these tools called <filename>Nexus.exe</filename> for installation 
 
55
on <application>Windows 9x/Me</application> systems. The tools set includes:
 
56
</para>
 
57
 
 
58
<itemizedlist>
 
59
        <listitem><para>Server Manager</para></listitem>
 
60
        <listitem><para>User Manager for Domains</para></listitem>
 
61
        <listitem><para>Event Viewer</para></listitem>
 
62
</itemizedlist>
 
63
 
 
64
<para>
 
65
Download the archived file at the Microsoft <ulink noescape="1"
 
66
url="ftp://ftp.microsoft.com/Softlib/MSLFILES/NEXUS.EXE">Nexus</ulink> link.
 
67
</para>
 
68
 
 
69
<para>
 
70
<indexterm><primary>SRVTOOLS.EXE</primary></indexterm>
 
71
<indexterm><primary>User Manager for Domains</primary></indexterm>
 
72
<indexterm><primary>Server Manager</primary></indexterm>
 
73
The <application>Windows NT 4.0</application> version of the User Manager for 
 
74
Domains and Server Manager are available from Microsoft
 
75
<ulink url="ftp://ftp.microsoft.com/Softlib/MSLFILES/SRVTOOLS.EXE">via ftp</ulink>.
 
76
</para>
 
77
 
 
78
</sect1>
 
79
 
 
80
<sect1>
 
81
<title>Remote Desktop Management</title>
 
82
 
 
83
<para>
 
84
<indexterm><primary>remote desktop management</primary></indexterm>
 
85
<indexterm><primary>network environment</primary></indexterm>
 
86
There are a number of possible remote desktop management solutions that range from free
 
87
through costly. Do not let that put you off. Sometimes the most costly solution is the
 
88
most cost effective. In any case, you will need to draw your own conclusions as to which
 
89
is the best tool in your network environment.
 
90
</para>
 
91
 
 
92
        <sect2>
 
93
        <title>Remote Management from NoMachine.Com</title>
 
94
 
 
95
        <para>
 
96
        <indexterm><primary>NoMachine.Com</primary></indexterm>
 
97
        The following information was posted to the Samba mailing list at Apr 3 23:33:50 GMT 2003.
 
98
        It is presented in slightly edited form (with author details omitted for privacy reasons).
 
99
        The entire answer is reproduced below with some comments removed.
 
100
        </para>
 
101
 
 
102
                <para><quote>
 
103
<indexterm><primary>remote desktop capabilities</primary></indexterm>
 
104
                I have a wonderful Linux/Samba server running as PDC for a network. Now I would like to add remote
 
105
                desktop capabilities so users outside could login to the system and get their desktop up from home or
 
106
                another country.
 
107
                </quote></para>
 
108
 
 
109
                <para><quote>
 
110
<indexterm><primary>Windows Terminal server</primary></indexterm>
 
111
<indexterm><primary>BDC</primary></indexterm>
 
112
<indexterm><primary>PDC</primary></indexterm>
 
113
<indexterm><primary>remote login</primary></indexterm>
 
114
                Is there a way to accomplish this? Do I need a Windows Terminal server?  Do I need to configure it so
 
115
                it is a member of the domain or a BDC or PDC? Are there any hacks for MS Windows XP to enable remote login
 
116
                even if the computer is in a domain?
 
117
                </quote></para>
 
118
 
 
119
                <para>
 
120
                Answer provided: Check out the new offer of <quote>NX</quote> software from
 
121
                <ulink noescape="1" url="http://www.nomachine.com/">NoMachine</ulink>.
 
122
                </para>
 
123
 
 
124
        <para>
 
125
<indexterm><primary>Remote X protocol</primary></indexterm>
 
126
<indexterm><primary>VNC/RFB</primary></indexterm>
 
127
<indexterm><primary>rdesktop/RDP</primary></indexterm>
 
128
        It implements an easy-to-use interface to the Remote X protocol as
 
129
        well as incorporating VNC/RFB and rdesktop/RDP into it, but at a speed
 
130
        performance much better than anything you may have ever seen.
 
131
        </para>
 
132
 
 
133
        <para>
 
134
<indexterm><primary>modem/ISDN</primary></indexterm>
 
135
        Remote X is not new at all, but what they did achieve successfully is
 
136
        a new way of compression and caching technologies that makes the thing
 
137
        fast enough to run even over slow modem/ISDN connections.
 
138
        </para>
 
139
 
 
140
        <para>
 
141
<indexterm><primary>KDE konqueror</primary></indexterm>
 
142
<indexterm><primary>mouse-over</primary></indexterm>
 
143
<indexterm><primary>rdesktop</primary></indexterm>
 
144
<indexterm><primary></primary></indexterm>
 
145
        I test drove their (public) Red Hat machine in Italy, over a loaded
 
146
        Internet connection, with enabled thumbnail previews in KDE konqueror,
 
147
        which popped up immediately on <quote>mouse-over</quote>. From inside that (remote X)
 
148
        session I started a rdesktop session on another, a Windows XP machine.
 
149
        To test the performance, I played Pinball. I am proud to announce
 
150
        that my score was 631,750 points at first try.
 
151
        </para>
 
152
 
 
153
        <para>
 
154
<indexterm><primary>NX</primary></indexterm>
 
155
<indexterm><primary>TightVNC</primary></indexterm>
 
156
<indexterm><primary>rdesktop</primary></indexterm>
 
157
<indexterm><primary>Remote X</primary></indexterm>
 
158
        NX performs better on my local LAN than any of the other <quote>pure</quote>
 
159
        connection methods I use from time to time: TightVNC, rdesktop or
 
160
        Remote X. It is even faster than a direct crosslink connection between
 
161
        two nodes.
 
162
        </para>
 
163
 
 
164
        <para>
 
165
<indexterm><primary>Remote X</primary></indexterm>
 
166
<indexterm><primary>KDE session</primary></indexterm>
 
167
<indexterm><primary>copy'n'paste</primary></indexterm>
 
168
        I even got sound playing from the Remote X app to my local boxes, and
 
169
        had a working <quote>copy'n'paste</quote> from an NX  window (running a KDE session
 
170
        in Italy) to my Mozilla mailing agent. These guys are certainly doing
 
171
        something right!
 
172
        </para>
 
173
 
 
174
        <para>
 
175
        I recommend test driving NX to anybody with a only a passing interest in remote computing
 
176
        the <ulink noescape="1" url="http://www.nomachine.com/testdrive.php">NX</ulink> utility.
 
177
        </para>
 
178
 
 
179
        <para>
 
180
        Just download the free-of-charge client software (available for Red Hat,
 
181
        SuSE, Debian and Windows) and be up and running within 5 minutes (they
 
182
        need to send you your account data, though, because you are assigned
 
183
        a real UNIX account on their testdrive.nomachine.com box).
 
184
        </para>
 
185
 
 
186
        <para>
 
187
        They plan to get to the point were you can have NX application servers
 
188
        running as a cluster of nodes, and users simply start an NX session locally
 
189
        and can select applications to run transparently (apps may even run on
 
190
        another NX node, but pretend to be on the same as used for initial login,
 
191
        because it displays in the same window. You also can run it
 
192
        full-screen, and after a short time you forget that it is a remote session
 
193
        at all).
 
194
        </para>
 
195
 
 
196
        <para>
 
197
<indexterm><primary>GPL</primary></indexterm>
 
198
        Now the best thing for last: All the core compression and caching
 
199
        technologies are released under the GPL and available as source code
 
200
        to anybody who wants to build on it! These technologies are working,
 
201
        albeit started from the command line only (and very inconvenient to
 
202
        use in order to get a fully running remote X session up and running).
 
203
        </para>
 
204
 
 
205
        <para>
 
206
        To answer your questions:
 
207
        </para>
 
208
 
 
209
        <itemizedlist>
 
210
                <listitem><para>
 
211
                You do not need to install a terminal server; XP has RDP support built in.
 
212
                </para></listitem>
 
213
 
 
214
                <listitem><para>
 
215
                NX is much cheaper than Citrix &smbmdash; and comparable in performance, probably faster.
 
216
                </para></listitem>
 
217
 
 
218
                <listitem><para>
 
219
                You do not need to hack XP &smbmdash; it just works.
 
220
                </para></listitem>
 
221
 
 
222
                <listitem><para>
 
223
                You log into the XP box from remote transparently (and I think there is no
 
224
                need to change anything to get a connection, even if authentication is against a domain).
 
225
                </para></listitem>
 
226
 
 
227
                <listitem><para>
 
228
                The NX core technologies are all Open Source and released under the GPL &smbmdash;
 
229
                you can now use a (very inconvenient) command line at no cost,
 
230
                but you can buy a comfortable (proprietary) NX GUI front end for money.
 
231
                </para></listitem>
 
232
 
 
233
                <listitem><para>
 
234
<indexterm><primary>OSS/Free Software</primary></indexterm>
 
235
<indexterm><primary>LTSP</primary></indexterm>
 
236
<indexterm><primary>KDE</primary></indexterm>
 
237
<indexterm><primary>GNOME</primary></indexterm>
 
238
<indexterm><primary>NoMachine</primary></indexterm>
 
239
                NoMachine is encouraging and offering help to OSS/Free Software implementations
 
240
                for such a front-end too, even if it means competition to them (they have written
 
241
                to this effect even to the LTSP, KDE, and GNOME developer mailing lists).
 
242
                </para></listitem>
 
243
        </itemizedlist>
 
244
 
 
245
        </sect2>
 
246
        <sect2>
 
247
        <title>Remote Management with ThinLinc</title>
 
248
        <para>
 
249
        Another alternative for remote access is <emphasis>ThinLinc</emphasis> from Cendio.
 
250
        </para>
 
251
 
 
252
        <para>
 
253
<indexterm><primary>ThinLinc</primary></indexterm>
 
254
<indexterm><primary>terminal server</primary></indexterm>
 
255
<indexterm><primary>Linux</primary></indexterm>
 
256
<indexterm><primary>Solaris</primary></indexterm>
 
257
<indexterm><primary>TightVNC</primary></indexterm>
 
258
<indexterm><primary>SSH</primary></indexterm>
 
259
<indexterm><primary>NFS</primary></indexterm>
 
260
<indexterm><primary>PulseAudio</primary></indexterm>
 
261
        ThinLinc is a terminal server solution that is available for Linux and Solaris based on standard
 
262
        protocols such as SSH, TightVNC, NFS and PulseAudio.
 
263
        </para>
 
264
 
 
265
        <para>
 
266
<indexterm><primary>LAN</primary></indexterm>
 
267
<indexterm><primary>thin client</primary></indexterm>
 
268
        ThinLinc an be used both in the LAN environment to implement a Thin Client strategy for an organization, and as
 
269
        secure remote access solution for people working from remote locations, even over smallband connections.
 
270
        ThinLinc is free to use for a single concurrent user.
 
271
        </para>
 
272
 
 
273
        <para>
 
274
<indexterm><primary>Citrix</primary></indexterm>
 
275
<indexterm><primary>Windows Terminal Server</primary></indexterm>
 
276
<indexterm><primary>Java</primary></indexterm>
 
277
        The product can also be used as a frontend to access Windows Terminal Server or Citrix farms, or even Windows
 
278
        XP machines, securing the connection via the ssh protocol. The client is available both for Linux (supporting
 
279
        all Linux distributions as well as numerous thin terminals) and for Windows. A Java-based Web client is also
 
280
        available.
 
281
        </para>
 
282
 
 
283
        <para>
 
284
        ThinLinc may be evaluated by connecting to Cendio's demo system, see
 
285
        <ulink noescape="1" url="http://www.cendio.com">Cendio's</ulink> web site
 
286
        <ulink noescape="1" url="http://www.cendio.com/testdrive">testdrive</ulink> center.
 
287
        </para>
 
288
 
 
289
        <para>
 
290
        Cendio is a major contributor to several open source projects including
 
291
        <ulink noescape="1" url="http://www.tightvnc.com">TightVNC</ulink>,
 
292
        <ulink noescape="1" url="http://pulseaudio.org">PulseAudio</ulink> , unfsd,
 
293
        <ulink noescape="1" url="http://www.python.org">Python</ulink> and
 
294
        <ulink noescape="1" url="http://www.rdesktop.org">rdesktop</ulink>.
 
295
        </para>
 
296
 
 
297
        </sect2>
 
298
</sect1>
 
299
 
 
300
<sect1>
 
301
<title>Network Logon Script Magic</title>
 
302
 
 
303
<para>
 
304
There are several opportunities for creating a custom network startup configuration environment.
 
305
</para>
 
306
 
 
307
<itemizedlist>
 
308
        <listitem><para>No Logon Script.</para></listitem>
 
309
        <listitem><para>Simple universal Logon Script that applies to all users.</para></listitem>
 
310
        <listitem><para>Use of a conditional Logon Script that applies per-user or per-group attributes.</para></listitem>
 
311
        <listitem><para>Use of Samba's preexec and postexec functions on access to the NETLOGON share to create
 
312
                a custom logon script and then execute it.</para></listitem>
 
313
        <listitem><para>User of a tool such as KixStart.</para></listitem>
 
314
</itemizedlist>
 
315
 
 
316
<para>
 
317
The Samba source code tree includes two logon script generation/execution tools.
 
318
See <filename>examples</filename> directory <filename>genlogon</filename> and
 
319
<filename>ntlogon</filename> subdirectories.
 
320
</para>
 
321
 
 
322
<para>
 
323
The following listings are from the genlogon directory.
 
324
</para>
 
325
 
 
326
 
 
327
<para>
 
328
<indexterm><primary>genlogon.pl</primary></indexterm>
 
329
This is the <filename>genlogon.pl</filename> file:
 
330
 
 
331
<programlisting>
 
332
        #!/usr/bin/perl
 
333
        #
 
334
        # genlogon.pl
 
335
        #
 
336
        # Perl script to generate user logon scripts on the fly, when users
 
337
        # connect from a Windows client. This script should be called from 
 
338
        # smb.conf with the %U, %G and %L parameters. I.e:
 
339
        #
 
340
        #       root preexec = genlogon.pl %U %G %L
 
341
        #
 
342
        # The script generated will perform
 
343
        # the following:
 
344
        #
 
345
        # 1. Log the user connection to /var/log/samba/netlogon.log
 
346
        # 2. Set the PC's time to the Linux server time (which is maintained
 
347
        #    daily to the National Institute of Standards Atomic clock on the
 
348
        #    internet.
 
349
        # 3. Connect the user's home drive to H: (H for Home).
 
350
        # 4. Connect common drives that everyone uses.
 
351
        # 5. Connect group-specific drives for certain user groups.
 
352
        # 6. Connect user-specific drives for certain users.
 
353
        # 7. Connect network printers.
 
354
 
 
355
        # Log client connection
 
356
        #($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
 
357
        ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
 
358
        open LOG, ">>/var/log/samba/netlogon.log";
 
359
        print LOG "$mon/$mday/$year $hour:$min:$sec";
 
360
        print LOG " - User $ARGV[0] logged into $ARGV[1]\n";
 
361
        close LOG;
 
362
 
 
363
        # Start generating logon script
 
364
        open LOGON, ">/shared/netlogon/$ARGV[0].bat";
 
365
        print LOGON "\@ECHO OFF\r\n";
 
366
 
 
367
        # Connect shares just use by Software Development group
 
368
        if ($ARGV[1] eq "SOFTDEV" || $ARGV[0] eq "softdev")
 
369
        {
 
370
                print LOGON "NET USE M: \\\\$ARGV[2]\\SOURCE\r\n";
 
371
        }
 
372
 
 
373
        # Connect shares just use by Technical Support staff
 
374
        if ($ARGV[1] eq "SUPPORT" || $ARGV[0] eq "support")
 
375
        {
 
376
                print LOGON "NET USE S: \\\\$ARGV[2]\\SUPPORT\r\n";
 
377
        }
 
378
 
 
379
        # Connect shares just used by Administration staff
 
380
        If ($ARGV[1] eq "ADMIN" || $ARGV[0] eq "admin")
 
381
        {
 
382
                print LOGON "NET USE L: \\\\$ARGV[2]\\ADMIN\r\n";
 
383
                print LOGON "NET USE K: \\\\$ARGV[2]\\MKTING\r\n";
 
384
        }
 
385
 
 
386
        # Now connect Printers. We handle just two or three users a little
 
387
        # differently, because they are the exceptions that have desktop
 
388
        # printers on LPT1: - all other user's go to the LaserJet on the
 
389
        # server.
 
390
        if ($ARGV[0] eq 'jim'
 
391
            || $ARGV[0] eq 'yvonne')
 
392
        {
 
393
                print LOGON "NET USE LPT2: \\\\$ARGV[2]\\LJET3\r\n";
 
394
                print LOGON "NET USE LPT3: \\\\$ARGV[2]\\FAXQ\r\n";
 
395
        }
 
396
        else
 
397
        {
 
398
                print LOGON "NET USE LPT1: \\\\$ARGV[2]\\LJET3\r\n";
 
399
                print LOGON "NET USE LPT3: \\\\$ARGV[2]\\FAXQ\r\n";
 
400
        }
 
401
 
 
402
        # All done! Close the output file.
 
403
        close LOGON;
 
404
</programlisting>
 
405
</para>
 
406
 
 
407
<para>
 
408
Those wishing to use a more elaborate or capable logon processing system should check out these sites:
 
409
</para>
 
410
 
 
411
<itemizedlist>
 
412
        <listitem><para><ulink noescape="1" url="http://www.craigelachie.org/rhacer/ntlogon">http://www.craigelachie.org/rhacer/ntlogon</ulink></para></listitem>
 
413
        <listitem><para><ulink noescape="1" url="http://www.kixtart.org">http://www.kixtart.org</ulink></para></listitem>
 
414
</itemizedlist>
 
415
 
 
416
<sect2>
 
417
<title>Adding Printers without User Intervention</title>
 
418
 
 
419
 
 
420
<para>
 
421
<indexterm><primary>rundll32</primary></indexterm>
 
422
Printers may be added automatically during logon script processing through the use of:
 
423
<screen>
 
424
&dosprompt;<userinput>rundll32 printui.dll,PrintUIEntry /?</userinput>
 
425
</screen>
 
426
 
 
427
See the documentation in the <ulink url="http://support.microsoft.com/default.asp?scid=kb;en-us;189105">Microsoft Knowledge Base article 189105</ulink>.
 
428
</para>
 
429
</sect2>
 
430
 
 
431
<sect2>
 
432
        <title>Limiting Logon Connections</title>
 
433
 
 
434
        <para>
 
435
                Sometimes it is necessary to limit the number of concurrent connections to a
 
436
                Samba shared resource. For example, a site may wish to permit only one network
 
437
                logon per user.
 
438
        </para>
 
439
 
 
440
        <para>
 
441
                The Samba <parameter>preexec script</parameter> parameter can be used to permit only one
 
442
                connection per user. Though this method is not foolproof and may have side effects,
 
443
                the following contributed method may inspire someone to provide a better solution.
 
444
        </para>
 
445
 
 
446
        <para>
 
447
                This is not a perfect solution because Windows clients can drop idle connections
 
448
                with an auto-reconnect capability that could result in the appearance that a share
 
449
                is no longer in use, while actually it is. Even so, it demonstrates the principle
 
450
                of use of the <parameter>preexec script</parameter> parameter.
 
451
        </para>
 
452
 
 
453
        <para>
 
454
                The following share configuration demonstrates use of the script shown in <link linkend="Tpees"/>.
 
455
<programlisting>
 
456
[myshare]
 
457
        ...
 
458
        preexec script = /sbin/PermitSingleLogon.sh
 
459
        preexec close = Yes
 
460
        ...
 
461
</programlisting>
 
462
        </para>
 
463
 
 
464
<example id="Tpees">
 
465
<title>Script to Enforce Single Resource Logon</title>
 
466
<screen>
 
467
#!/bin/bash
 
468
 
 
469
IFS="-"
 
470
RESULT=$(smbstatus -S -u $1 2> /dev/null | awk 'NF \
 
471
        > 6 {print $1}' | sort | uniq -d)
 
472
 
 
473
if [ "X${RESULT}" == X  ]; then
 
474
  exit 0
 
475
else
 
476
  exit 1
 
477
fi
 
478
</screen>
 
479
</example>
 
480
 
 
481
</sect2>
 
482
 
 
483
</sect1>
 
484
 
 
485
</chapter>