ones on your own network. Any name servers listed in /etc/resolv.conf
should work, but you'll get better performance by using a server nearby.
[3] The address 127.0.0.1 is known as the localhost address, and always
refers to itself. For example, if you type ping 127.0.0.1 on a Unix
server, you should always get a response, as you're pinging the host itself.
Finally, enter the machine name once more, making sure that it's the same
one listed in the Identification tab of the Network dialog box (before the
NetBIOS name). Also, enter the DNS domain on which this machine
resides. For example, if your workstation has a domain name such as
example.com, enter it here. You can safely ignore the other options.
3.2.2.3 WINS Address tab
If you are not using a DNS server, you still need a way of translating
NetBIOS names to addresses and back again. We recommend that you
configure both DNS and WINS; NT has a preference for WINS and WINS
can use DNS as a fallback if it cannot resolve any machine address. The
WINS Address tab is shown in Figure 3.24
.
Figure 3.24: The WINS Address tab
If you have a WINS server, enter its address in the space marked Primary
WINS Server. If your Samba server is providing WINS service (in other
words, you have the line wins service = yes in the smb.conf file of
your Samba server), provide the Samba server's IP address here. Otherwise,
provide the address of another WINS server on your network.
You probably noticed that there is a field here for the adaptor; this field must
specify the Ethernet adaptor that you're running TCP/IP on so that WINS
will provide name service on the correct network. If you have both a LAN
and a dialup adaptor, make sure you have the LAN's adaptor here.
Finally, select the "Enable DNS for Windows Resolution" checkbox, so
WINS will try DNS as a fallback if it can't find a name. You can safely
ignore the other options.
3.2.2.4 Hosts files
If you don't have either DNS or WINS, and you don't wish to use broadcast
name resolution, you'll need to provide a table of IP addresses and hosts
names, in standard Unix /etc/hosts format. We recommend against this
because maintenance of this file on any dynamic network is troublesome,
but we will explain it just the same. The Windows host file should appear in
the \WINDOWS\HOSTS directory of whatever local drive Windows is
installed on. A sample follows:
127.0.0.1 localhost
192.168.236.1 escrime escrime.example.com
192.168.236.2 riposte riposte.example.com
192.168.236.3 wizzin wizzin.example.com
192.168.236.4 touche touche.example.com
192.168.236.5 gurgi gurgi.example.com
192.168.236.6 jessiac jessiac.example.com
192.168.236.7 skyline skyline.example.com
If you wish, you can copy the contents directly from the Samba server's
/etc/hosts. The format is identical. This file will then serve the same purpose
as the hosts file on the Unix server. Again, hosts files on Windows should
only be used as a last resort.
3.2.2.5 Bindings
The term bindings is a way of saying "connected together at configuration
time." It means that the TCP/IP protocol will channel through the Ethernet
card (instead of, say, a dialup connection), and is actually connected
properly. If you return to the Network dialog box and set the Show field to
"all services" and click on all the + buttons in the tree, you should see a
display similar to Figure 3.25
.
Figure 3.25: Service bindings
This means that the Workstation, Server, and NetBIOS interface services are
connected to the WINS client. This is the correct binding for Microsoft
TCP/IP.
3.2.3 Connecting to the Samba Server
You can safely leave the default values for the remainder of the tabs in the
Network dialog box. Click on the OK button to complete the configuration.
Once the proper files are loaded (if any), you will need to reboot in order for
your changes to take effect.
Now for the big moment. Your Samba server is running and you have set up
your NT client to communicate with it. After the machine reboots, login and
double-click the Network Neighborhood icon on the desktop, and you
should see your Samba server listed as a member of the workgroup, as
shown in Figure 3.26
.
Figure 3.26: Windows NT Network Neighborhood
Double-clicking the server name will show the resources that the server is
offering to the network, as shown in Figure 3.27
. In this case, the test and the
default printer are offered to the Window NT workstation. For more
information, see the warning under the "Accessing the Samba Server"
section, earlier in this chapter.
Figure 3.27: Server's shares
WARNING: If you are presented with a dialog requesting the password for
a user IPC$, then Samba did not accept the password that was sent from the
client. In this case, the username and the password that were created on the
client side must match the username/password combination on the Samba
server. If you are using Windows 98 or Windows NT Service Pack 3 or
above, this is probably because the client is sending encrypted passwords
instead of plaintext passwords. You can remedy this situation by performing
two steps on the Samba server. First, add the following entry to the
[global] section of your Samba configuration file: encrypt
password=yes. Second, find the smbpasswd program on the samba
server (it is located in /usr/local/samba/bin by default) and use it to add an
entry to Samba's encrypted password database. For example, to add user
steve to Samba's encrypted password database, type smbpasswd -a
steve. The first time you enter this password, the program will output an
error message indicating that the password database does not exist; it will
then create the database, which is typically stored in
/usr/local/samba/private/smbpasswd.
If you don't see the server listed, don't panic. Start the Windows NT
Explorer (not Internet Explorer!) and select Map Network Drive from the
Tools menu. A dialog box appears that allows you to type the name of your
server and its share directory in Windows format. For example, you would
enter \\ server \temp if your server happened to be named "server." If
things still aren't right, go directly to the section "The Fault Tree" in
Chapter 9, to see if you can troubleshoot what is wrong with the network.
If it works, congratulations! Try writing to the server and sending data to the
network printer. You will be pleasantly surprised how seamlessly everything
works! Now that you've finished setting up the Samba server and its clients,
we can starting talking about how Samba works and how to configure it to
your liking.
3.3 An Introduction to SMB/CIFS
We'll wrap up this chapter with a short tutorial on SMB/CIFS. SMB/CIFS is
the protocol that Windows 95/98 and NT machines use to communicate with
the Samba server and each other. At a high level, the SMB protocol suite is
relatively simple. It includes commands for all of the file and print
operations that you might do on a local disk or printer, such as:
• Opening and closing a file
• Creating and deleting files and directories
• Reading and writing a file
• Searching for files
• Queueing and dequeueing files to a print spool
Each of these operations can be encoded into an SMB message and
transmitted to and from a server. The original name SMB comes from their
data format: these are versions of the standard DOS system-call data
structures, or Server Message Blocks, redesigned for transmitting to another
machine across a network.
3.3.1 SMB Format
Richard Sharpe of the Samba team defines SMB as a "request-response"
protocol.[ 4
] In effect, this means that a client sends an SMB request to a
server, and the server sends an SMB response back to the client. Rarely does
a server send a message that is not in response to a client.
[4] See http://anu.samba.org/cifs/docs/what-is-smb.html for Richard's
excellent summary of SMB.
An SMB message is not as complex as you might think. Let's take a closer
look at the internal structure of such a message. It can be broken down into
two parts: the header, which is a fixed size, and the command string, whose
size can vary dramatically based on the contents of the message.
3.3.1.1 SMB header format
Table 3.1
shows the format of an SMB header. SMB commands are not
required to use all the fields in the SMB header. For example, when a client
first attempts to connect to a server, it does not yet have a tree identifier
(TID) value - one is assigned after it successfully connects - so a null TID
(0xFFFF) is placed in its header field. Other fields may be padded with zeros
when not used.
The fields of the SMB header are listed in Table 3.1.
Table 3.1: SMB Header Fields
Field Size
(bytes)
Description
0xFF
'SMB'
1
Protocol identifier
COM 1
Command code, from 0x00 to 0xFF
RCLS 1
Error class
REH 1
Reserved
ERR 2
Error code
REB 1
Reserved
Table 3.1: SMB Header Fields
Field Size
(bytes)
Description
RES 14
Reserved
TID 2
Tree identifier; a unique ID for a resource in use
by client
PID 2
Caller process ID
UID 2
User identifier
MID 2
Multiplex identifier; used to route requests inside
a process
3.3.1.2 SMB command format
Immediately after the header is a variable number of bytes that constitute an
SMB command or reply. Each command, such as Open File (COM field
identifier: SMBopen) or Get Print Queue ( SMBsplretq ), has its own
set of parameters and data. Like the SMB header fields, not all of the
Không có nhận xét nào:
Đăng nhận xét