home *** CD-ROM | disk | FTP | other *** search
/ Chip 2000 May / Chip_2000-05_cd2.bin / docu / ascii / suselxen / slxen-07.txt < prev    next >
Text File  |  2000-03-11  |  16KB  |  415 lines

  1.                                                                            Chapter 7
  2.                          Let's Dance the Samba . . .
  3.  
  4. By using samba (developed by ANDREW TRIDGELL from Australia), you
  5. can convert any UNIX machine into a powerful file and print server for DOS
  6. and Windows machines. Since its beginnings in 1991, Samba has proven to be
  7. a stable and reliable product which has made its way into companies,serving
  8. as a supplement to, or even a replacement for, NetWare and Windows NT
  9. servers.
  10.  
  11. 7.1 Introduction
  12. Samba has now become a fully-fledged, and rather complex product. We can-
  13. not cover all the details in this book, but only present an overview. In /usr/
  14. doc/packages/samba you can find many documents that will help you
  15. build complex network solutions with Samba. Samba's reference file /etc/
  16. smb.conf has its own manpage for smb.conf (man smb.conf)).
  17. Samba uses the SMB (Server Message Block) protocol from Microsoft. All
  18. clients, however, (e.g. Windows 95 / 98 or NT machines) must have the
  19. TCP/IP protocol activated. Samba places the SMB protocol on top of the
  20. TCP/IP protocol. TCP/IP is installed by default on all Windows machines
  21. which have Internet access.
  22. The SMB protocol (Server Message Block) makes file and print services
  23. in Windows and LAN Manager available. The SMB protocol is based on
  24. NetBIOS services, and is comparable to NFS. Here, there is no difference
  25. from other protocols, such as the NetWare Core protocol. In contrast to
  26. Novell, Microsoft has released the specifications of the SMB protocols so
  27. that others may now support SMB as well.
  28. The extent of Installation Support does not include samba configuration (see
  29. Section H.1.2 page 493); we will be pleased to help you, however, within
  30. the framework of our cost-effective Professional Services (see Section H.3
  31. page 497).
  32.  
  33. NetBIOS
  34.  
  35. NetBIOS is a software interface (API) which has been designed for commu-
  36. nication between machines. Here a so-called name service is provided. This
  37. enables machines connected to the net to reserve names for themselves. After
  38. reservation, these machines can be addressed by their names. There is no
  39.  
  40.                                                                                   197
  41.  
  42.  
  43.  
  44. 7. Let's Dance the Samba . . .
  45.  
  46.                  central process that checks names. Any machine on the network can reserve
  47.                  as many names as it wants, provided the name is not already in use.
  48.                  The NetBIOS interface can now be implemented for different network ar-
  49.                  chitectures. An implementation that works relatively closely with network
  50.                  hardware is called NetBEUI, but this is often referred to as NetBIOS.
  51.                  When addressing single packets, NetBEUI works with the hardware address
  52.                  of the adapter. In contrast to IPX or IP addresses, you cannot get routing
  53.                  information from it. It is not possible to transfer NetBEUI packets via routers.
  54.                  A network running NetBEUI is reduced to the range that can be reached by
  55.                  repeaters and bridges.
  56.                  Network protocols that have been implemented with NetBIOS are IPX from
  57.                  Novell and TCP/IP. The protocol which layers NetBIOS onto TCP/IP is de-
  58.                  scribed in RFCs 1001 and 1002. RFC 1001 contains a good and understand-
  59.                  able introduction to NetBIOS concepts, which is of much help when trying to
  60.                  understand services such as WINS.1
  61.                  The NetBIOS names that are sent via TCP/IP have nothing in common with
  62.                  the names used in /etc/hosts or those defined by DNS. NetBIOS uses
  63.                  its own, completely independent naming convention. It is recommended,
  64.                  however, that you use names that correspond to DNS hostnames to make
  65.                  administration easier. This is the default used by Samba.
  66.  
  67.                  Clients
  68.                  Except for DOS and Windows 3.1, every current PC operating system sup-
  69.                  ports the SMB protocol for importing and exporting. Windows for Work-
  70.                  groups supports SMB in its standard installation only via IPX and NetBEUI.
  71.                  In order to use Samba, which can only provide SMB via TCP/IP, addi-
  72.                  tional software has to be installed, which (if needed) may be obtained from
  73.                  ftp://ftp.microsoft.com/bussys/Clients.
  74.                  SMB servers provide hardware space to their clients by means of so-called
  75.                  shares. Here, a share includes a directory and its subdirectories. It is exported
  76.                  by means of a name and can be accessed by its name. Of course, the share
  77.                  name can be set to any name. It does not have to be the name of the export
  78.                  directory. A printer is also assigned a name. Clients can access the printer by
  79.                  its name.
  80.  
  81.                  Permissions
  82.                  An NFS server is configured via /etc/exports. Access restrictions are
  83.                  only possible at a machine level. In NFS, this makes sense, since it was
  84.                  designed for UNIX workstations that themselves check permissions and au-
  85.                  thentication. But on Windows, where any user can get "root" permission, the
  86.                  NFS protocol is no longer suitable. NFS clients for DOS must be regarded as
  87.                  immense security holes!
  88.                  The SMB protocol comes from within the DOS world and directly covers the
  89.                  security issues. Any access to a share can be protected by a password. SMB
  90.                  now has two alternatives for providing this:
  91.                  1 WINS is nothing more than an extended NetBIOS name server and not an idea of Microsoft ¡
  92.                  only the name is new!
  93.  
  94. 198
  95.  
  96.  
  97.  
  98.                                                                 7.2. Installation of the Server
  99.  
  100.  * Share Level Security
  101.     A password is directly assigned to any share. Anybody who knows this
  102.     password can access the share.
  103.  * User Level Security
  104.     This variation introduces the user concept in SMB. Every user has to log
  105.     in on the server, using his login and password. After a successful login,
  106.     the server can now grant access, depending on the user's permissions.
  107.  
  108. The distinction between share-level and user-level security has to be set for
  109. the server as a whole. It is not possible to export some shares as share-level
  110. security, and others as user-level security.
  111. By default, Samba is set to share-level security. Here, the home direc-
  112. tories of the users are protected by the normal user password. For other
  113. shares, a user has to be entered by giving the user option, which is pro-
  114. tected by the user password. The parameter security may be given as
  115. security = user in smb.conf. Then users are validated as normal in
  116. UNIX, using /etc/passwd and /etc/group. Samba also offers a third
  117. possibility by providing security = server. If this option is activated,
  118. Samba validates the user on another (NT) server, which has to be set by the
  119. option password server.
  120.  
  121. 7.2 Installation of the Server
  122. To start the SMB services, set the variable <START SMB> to the value yes
  123. in /etc/rc.config (cf. Section 3.6.11 page 101).
  124. Almost anything that can be configured is done in smb.conf. This file re-
  125. sembles a Windows .INI file. It is separated into different sections which
  126. each contain specific parameters. Generally, one share is described per
  127. section, and is defined by the section name. There are three special sec-
  128. tions as well. These are [globals], [homes] and [printers]. In
  129. [globals], parameters are set that are not specific to a certain share. If the
  130. option [homes] is set, any user on the server can access their home direc-
  131. tory without having to define a home-share for each user. The same applies
  132. to printers. All printers in /etc/printcap are accessible, without having
  133. to be set separately.
  134.  
  135. smb.conf
  136.  
  137. A simple example file can be seen in File contents 7.2.1 on the following
  138. page.
  139. This /etc/smb.conf provides access to the home directories of the users
  140. as well as all printers listed in /etc/printcap.
  141.  
  142.  * workgroup = workgroup
  143.     On any Windows machine, Samba is assigned just like a work group
  144.     where it can be seen in the "network environment". workgroup is the
  145.     default work group for Windows for Workgroups.
  146.  
  147.                                                                                            199
  148.  
  149.  
  150.  
  151. 7. Let's Dance the Samba . . .
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.                   [global]
  161.                       workgroup = workgoup
  162.                       guest account = nobody
  163.                       keep alive = 30
  164.                       os level = 2
  165.                       security = share
  166.                       printing = bsd
  167.                       printcap name = /etc/printcap
  168.                       load printers = yes
  169.  
  170.                   [sample]
  171.                       path = /home/sample
  172.                       comment = sample directory
  173.                       read only = no
  174.                       browseable = yes
  175.                       public = yes
  176.                       create mode = 0750
  177.  
  178.                   [cdrom]
  179.                       path = /cdrom
  180.                       comment = cdrom
  181.                       volume = "CD_ROM_label"
  182.                       read only = yes
  183.                       available = yes
  184.                       share modes = no
  185.                       browseable = yes
  186.                       public = yes
  187.  
  188.                   [printers]
  189.                       comment = All Printers
  190.                       browseable = no
  191.                       printable = yes
  192.                       public = no
  193.                       read only = yes
  194.                       create mode = 0700
  195.                       directory = /tmp
  196.  
  197.                               File contents 7.2.1: Example for /etc/smb.conf
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204.  
  205. 200
  206.  
  207.  
  208.  
  209.                                                                 7.2. Installation of the Server
  210.  
  211.  * guest account = nobody
  212.    Samba needs a user name that is listed in /etc/password and that
  213.    only has limited permissions for certain tasks. If public shares (parameter
  214.    public = yes) are defined, all operations are executed with this user
  215.    ID. Even if no public share is defined, the account guest account has
  216.    to be defined in order for the Samba machine to appear in the networking
  217.    environment.
  218.  * keep alive = 30
  219.    Windows machines tend to crash from time to time. If they leave open
  220.    connections behind, it could happen that the server recognizes this very
  221.    much later. If you do not want Samba to waste resources, you can tell it
  222.    to look whether the client is still alive by setting keep alive = 30.
  223.  * os level = 2
  224.    The parameter os level = 2 specifies that Samba provide browser
  225.    services to WfW and Windows 95. If there is an NT machine on the
  226.    network, Samba will not provide these services to it, but use the NT
  227.    machine itself.
  228.  * security = share See section on permissions.
  229.  
  230. The section [sample] defines parameters for the directory to be ex-
  231. ported. This directory is accessible to all users in the network, because
  232. public = yes. The same is true for the exported /cdrom (in this way,
  233. for example, a low-cost jukebox can be set up).
  234. The following three parameters serve to read /etc/printcap and to ex-
  235. port any printer specified. The section [homes] assigns parameters for the
  236. home directories. These directories can be reached via the user's name.
  237.  
  238.  * path = /home/sample
  239.    The directory /home/sample is exported by means of path.
  240.  * comment = Sample
  241.    Every share with SMB servers can be provided with a comment describ-
  242.    ing the share.
  243.  * browsable = yes
  244.    This setting enables the share sample to be visible in the network envi-
  245.    ronment.
  246.  * read only = no
  247.    By default, Samba prohibits write access on exported shares. Users
  248.    logged in should have permission to write in their home directories, so
  249.    read only = no has to be set.
  250.  * create mode = 750
  251.    Windows machines do not understand the concept of UNIX permissions.
  252.    Thus they cannot assign permissions when creating a file. The parameter
  253.    create mode assigns which permissions should be used when creating
  254.    a new file.
  255.  
  256.                                                                                            201
  257.  
  258.  
  259.  
  260. 7. Let's Dance the Samba . . .
  261.  
  262.                    There is also the program swat for the administration of the Samba server.
  263.                    It provides a simple web interface with which you can configure the
  264.                    Samba server comfortably. Information on the program can be found
  265.                    in /usr/doc/packages/samba/htmldocs/swat.8.html or in
  266.                    the manpage for swat (man swat).
  267.  
  268.                  7.3 Installation of Clients
  269.                  DOS, Windows for Workgroups and Windows 95 are important clients.
  270.                  Clients can access Samba only via TCP/IP. NetBEUI and NetBIOS via IPX
  271.                  are not available at the moment. Since TCP/IP is becoming more and more
  272.                  popular, even with Novell and Microsoft, it is not certain whether this is going
  273.                  to change in the near future.
  274.  
  275.                  Windows 95/98
  276.  
  277.                  Windows 95/98 already has built-in support for TCP/IP. As with Windows for
  278.                  Workgroups, however, this is not installed as the default. To add TCP/IP, go
  279.                  to `Control Panel', `System' and choose `Add', `Protocols'
  280.                  `TCP/IP from Microsoft'. Be sure to enter your network address
  281.                  and network mask correctly (see Section 5 page 133)! After re-booting your
  282.                  Windows machine you will find the properly configured samba server in net-
  283.                  works (double-click on the network icon on your desktop).
  284.  
  285.                    To use a printer on the samba server, you should install the standard, or
  286.                    Apple-PostScript printer driver from the corresponding Windows version;
  287.                    it is best to link this to the Linux printer queue, which includes an auto-
  288.                    matic apsfilter recognition.
  289.  
  290.                  7.4 Optimization
  291.                  At this point we would like to point out once again that the configuration
  292.                  outlined here is suitable for a private user, but not for business solutions.
  293.                  Our Professional Services will be pleased to help you with questions on this
  294.                  subject (see Section H.3 page 497).
  295.                  The standard configuration in /etc/smb.conf is very slow. Here are a
  296.                  few suggestions to improve it.
  297.                    * socket options = TCP NODELAY
  298.                      The TCP/IP protocol always tries to incorporate a number of small
  299.                      data blocks. Because samba operates on these small data blocks,
  300.                      in practice it is useful to switch off this behavior with the option
  301.                      socket options = TCP NODELAY.
  302.                    * oplocks = yes
  303.                      With this option, write accesses to modified files are only carried out when
  304.                      another client wants to read the same file. In this way, it behaves like a
  305.                      write cache.
  306.  
  307. 202
  308.  
  309.  
  310.  
  311.                                                                             7.4. Optimization
  312.  
  313. * write raw = yes
  314.   Raw write allows 65535 bytes to be sent in each package and can, under
  315.   certain circumstances, provide a significant boost in performance. With
  316.   cheaper network cards, however, it is probably better to set this option to
  317.   write raw = no.
  318. * read raw = yes
  319.   Has the same effect as write raw = yes but is only responsible for
  320.   reading files.
  321.  
  322. Further help and many tips on optimizing can be found in the files /usr/
  323. doc/packages/samba/textdocs/Speed.txt and /usr/doc/
  324. packages/samba/textdocs/Speed2.txt.
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338.  
  339.  
  340.  
  341.  
  342.  
  343.  
  344.  
  345.  
  346.  
  347.  
  348.  
  349.  
  350.  
  351.  
  352.  
  353.  
  354.  
  355.  
  356.  
  357.  
  358.  
  359.                                                                                          203
  360.  
  361.  
  362.  
  363. 7. Let's Dance the Samba . . .
  364.  
  365.  
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.  
  401.  
  402.  
  403.  
  404.  
  405.  
  406.  
  407.  
  408.  
  409.  
  410.  
  411. 204
  412.  
  413.  
  414.  
  415.