Hướng dẫn giảng dạy
BÀI 9 SAMBA
Tóm tắt
Lý thuyết: 4 tiết - Thực hành: 5 tiết.
Bài tập 9.1 (sách bài tập)
Mục tiêu Các mục chính Bài tập bắt buộc Bài tập làm thêm
I. Cài đặt SAMBA II. Khởi động dịch vụ SAMBA III. Cấu hình Samba Server IV. Sử dụng SAMBA SWAT V. Khởi động Samba Server VI. Sử dụng SMB client VII. Mount thư mục chia sẻ VIII. Mount tự động tài nguyên từ
SMB Server IX. Mã hoá mật khẩu
Trang 103/271
Học phần 4 - Chứng chỉ quản trị mạng Linux
Giới thiệu cơ chế chia sẽ tài nguyên trên hệ thống Linux thông qua dịch vụ SAMBA.
Hướng dẫn giảng dạy
Samba là chương trình tiện ích hỗ trợ việc chia sẻ tài nguyên từ hệ thống Linux với các hệ thống khác(Linux, Windows), nó hỗ trợ tính năng gia nhập(join) Linux với Windows như gia nhập Linux vào PDC trên Windows, gia nhập vào Windows Workgroup,…
Bộ Samba gồm nhiều thành phần. Daemon mang tên smbd cung cấp dịch vụ in ấn và tập tin. Tập tin cấu hình của Daemon này là smb.conf, còn daemon nmbd thì hỗ trợ dịch vụ tên NETBIOS, cho phép các máy tính khác truy cập và sử dụng các tài nguyên được cấp bởi máy chủ Samba
Trình smbclient, một thành phần khác của bộ Samba, hoạt động như một client bình thường giống như ftp. Trình tiện ích này dùng khi bạn truy cập những tài nguyên trên các server tương thích khác.
I. Cài đặt SAMBA Bạn có thể cài đặt Samba trong quá trình cài Linux hoặc cài sau bằng tiện ích RPM, các bộ này được tích hợp vào Fedora CD, các file này bao gồm:
system-config-samba-1.2.15-0.fc2.1 ; hỗ trợ cấu hình trên giao diện Xwindows -
samba-3.0.7-2.FC2 ; package chính của SAMBA. -
samba-client-3.0.7-2.FC2 ; package cho SAMBA Client. -
samba-common-3.0.7-2.FC2 ; hỗ trợ các thư viện cho SAMBA. -
samba-swat-3.0.7-2.FC2 ; hỗ trợ cấu hình SAMBA qua Web. -
II. Khởi động dịch vụ SAMBA Bạn có thể khởi động dịch vụ samba tại thời điểm boot của hệ thống chkconfig.
# chkconfig smb on
Ta có thể start/stop/restart samba thông qua lệnh:
# service smb restart
Để kiểm tra samba có hoạt động trong hệ thống hay không
# pgrep smb
III. Cấu hình Samba Server Tập tin cấu hình /etc/samba/smb.conf. Đây là một tập tin có dạng text. Các thành phần trong file cấu hình:
Thành phần [global]
[printers]
[homes]
[netlogon] [profile]
Giải thích Chứa các tham số cấu hình chung của samba server. Chứa các tham số sử dụng cho việc cấu hình máy in. Chỉ định SMB chia sẻ thư mục home directory của user. Chia sẻ logon script. Chia sẻ profile.
Trang 104/271
Học phần 4 - Chứng chỉ quản trị mạng Linux
Hướng dẫn giảng dạy
III.1. Đoạn [global]
Đoạn này kiểm soát tất cả tham số cấu hình chung của server smb. Đoạn này cũng cung cấp giá trị mặc định cho những đoạn khác:
[global]
workgroup = LINUX ; chỉ ra nhóm mà máy này sẽ tham gia
server string = Samba Server ;
hosts allow = 192.168.1. 192.168.2. 127. ; host được phép truy xuất đến samba.
Guest account = pcguest ; cung cấp username cho một account khách trên server của bạn. Account này để nhận diện những user nào được dùng các dịch vụ samba dành cho khách
Log file = /var/log/samba/smb.%m ; xác định vị trí tập tin log của từng client truy cập samba.
Max log size = 50 ; kích thước tối đa của một tập tin log (tính bằng kb)
encrypt passwords = yes ; cần hay không cần mã hoá password khi đăng nhập vào máy chủ Samba. Mọi password gửi từ Windows 9x đều mã hoá. Do đó, nếu ta chọn “no” thì máy chủ samba sẽ không chấp nhận sự đăng nhập của bất kỳ user nào. Nếu giá trị là “yes” thì chỉ có các user có password trong tập tin /etc/samba/password là có thể thấy máy chủ Samba.
Tên biến %S %P %u %g %U %G %H %v %h
%m %L %M %I %T %a
Mô tả giá trị Tên của dịch vụ hiện hành, nếu có Thư mục gốc của dịch vụ hiện hành, nếu có tên user của dịch vụ hiện hành tên của nhóm chính của %u tên phiên làm việc của user tên của nhóm chính của %U thư mục gốc của user phiên bản của Samba tên của host mà Samba đang chạy tên NETBIOS của máy khách tên NETBIOS của máy chủ tên Internet của máy khách Địa chỉ IP của máy khách ngày và giờ hiện hành kiến trúc của máy từ xa. Chỉ có một số máy được nhận diện là Win9x, WinNT, Win2k
smb passwd file = /etc/samba/smbpasswd ; tập tin lưu trữ những user được phép truy cập đến server smb. Một số biến cần tham khảo:
III.2. Đoạn [homes]
[homes] comment = Home Directories ; path = %H ; read only = no ;
Trang 105/271
Học phần 4 - Chứng chỉ quản trị mạng Linux
Mặc định SMB chia sẻ home của từng người dùng trong hệ thống để cho phép các user có thể truy xuất vào home directory của mình từ máy trạm.
Hướng dẫn giảng dạy
valid users = %S ; Chỉ định tên user được phép truy xuất, nếu ta cho phép group ta dùng cú pháp @group_name. browseable = no ; writeable = yes ; create mask = 0750 ;
III.3. Chia sẻ máy in dùng SMB
Để chia sẻ máy in, ta mô tả đoạn [printers] trong file /etc/smb.conf
[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
public = yes
guest ok = no
writable = no
printable = yes ; cho phép in
create mask = 0700
III.4. Chia sẻ thư mục
Sau khi lập cấu hình mặc định cho server Samba, bạn có thể tạo ra nhiều thư mục dùng chung, và quyết định xem cá nhân nào, hoặc group nào được phép sử dụng chúng.
[dirshare]
comment =”chia sẻ thư mục”
path = /usr/local/share
valid users = hv1
browseable = yes
public = no
writable = yes
Đoạn trên đã tạo ra một thư mục chia sẻ mang tên dirshare. Đường dẫn đến thư mục này là /usr/local/share. Vì public là no nên chỉ có user hv1 được truy cập đến thư mục này.
IV. Sử dụng SAMBA SWAT Swat là một công cụ cho phép bạn có thể cấu hình SAMBA qua giao diện Web. Nếu ta muốn sử dụng công cụ này thì ta phải cài thêm package samba-swat-3.0.7-2.FC2.rpm (trong Fedora Core).
IV.1. Tập tin cấu hình SAMBA SWAT
Trang 106/271
Học phần 4 - Chứng chỉ quản trị mạng Linux
Trước khi cấu hình SAMBA-SWAT ta cần thiết lập một số thông số
Hướng dẫn giảng dạy
disable = no
only_from = 172.29.14.149 localhost
Trong file /etc/xinetd.d/swat để khởi động dịch vụ SWAT và cho phép các host nào có quyền truy xuất SAMBA SWAT qua Web.
service swat { disable = no port = 901 socket_type = stream wait = no only_from = 172.29.14.149 localhost user = root server = /usr/sbin/swat log_on_failure += USERID }
IV.2. Truy xuất SWAT từ Internet Explorer
Màn hình đăng nhập
Từ IE ta truy xuất SMB SWAT thông qua địa chỉ http://172.29.14.150:901, Sau đó ta chỉ định username(root nếu ta muốn quản lý SMB), và mật khẩu để đăng nhập:
Giao diện Samba SWAT
Trang 107/271
Học phần 4 - Chứng chỉ quản trị mạng Linux
Sau khi đăng nhập thành công
Hướng dẫn giảng dạy
IV.3. Cấu hình SAMBA SWAT
Giải thích
Thành phần
Cung cấp các tài liệu tham khảo về samba.
Quản lý thông tin cấu hình.
Quản lý tài nguyên chia sẻ
Quản lý việc chia sẻ máy in
Quản lý Server Type, Wins và một số tham số khác.
Quản lý trạng thái của SAMBA, theo dõi các connection...
Xem các thông tin cấu hình trong file smb.conf
Quản lý mật khẩu
V. Khởi động Samba Server Server Samba gồm 2 daemon smbd và nmbd. Để khởi động samba server ta dùng script sau: /etc/init.d/smb {start | stop | restart | status}
VI. Sử dụng SMB client Từ dấu nhắc lệnh của shell ta sử dụng smbclient để truy xuất thư mục chia sẻ trên SMB Server theo cú pháp sau: Smbclient /SMB_ServerName/Sharename>
Ví dụ:
[root@nhon xinetd.d]# smbclient //nhon/data -U hv
Password: ****
Domain=[NHON] OS=[Unix] Server=[Samba 3.0.7-2.FC2]
smb: \>
Lệnh ? hoặc help !
Cd
Tham số [Lệnh] [lệnh dạng shell] [Thư mục]
Mô tả xem giúp đỡ của lệnh thực thi lệnh shell hoặc đưa user về dấu nhắc shell Chuyển về thư mục trên server
Trang 108/271
Học phần 4 - Chứng chỉ quản trị mạng Linux
Từ dấu nhắc lệnh này, bạn có thể ra bất kỳ lệnh nào được liệt kê ở Bảng sau để thực thi cơ chế download/upload từ tài nguyên chia sẻ:
Hướng dẫn giảng dạy
[Thư mục] [Các tập tin] [Các tập tin] Không có
Lcd Del Dir hoặc ls Exit hoặc quit Get
[tập tin][tên cục bộ]
Mget
[các tập tin]
[thư mục]
Chuyển về thư mục máy cục bộ Xóa tập tin Liệt kê các tập tin được chọn Thoát khỏi chương trình smbclient Sao chép tập tin trên máy server về máy cục bộ. Nếu tên cục bộ không chỉ ra sẽ lấy tên tập tin cũ trên máy server Sao chép tất cả các tập tin được xác định vào máy cục bộ. Tạo thư mục trên máy server
[thư mục]
Xóa thư mục trên máy server.
Md hoặc mkdir Rd hoặc rmdir Put
[tập tin]
Mput
[các tập tin]
Print Queue
[tập tin] Không có
Sao chép tập tin từ máy cục bộ vào máy server Sao chép tất cả tập tin từ máy cục bộ vào máy server In tập tin trên máy server Liệt kê tất cả các công việc in ấn đang xếp hàng chờ trên máy server
Ta có thể ánh xạ một thư mục chia sẻ trên SAMBA Server vào ổ đĩa cục bộ thông qua
VII. Mount thư mục chia sẻ lệnh smbmount. Cú pháp lệnh:
[root@bigboy tmp]# mount -t smbfs –o username=username,password=password
winclient/cdrom /mnt/cdrom
Ví dụ:
[root@nhon xinetd.d]# smbmount //nhon/data /mnt/smb -o username=hv,password=hv
VIII. Mount tự động tài nguyên từ SMB Server
Để tự động mount một tài nguyên chia sẻ ta thực hiện các bước sau:
- Bước 1: Tạo một thư mục mount point (ví dụ /mnt/smb)
- Bước 2: mô tả dòng sau đây vào file /etc/fstab
//SMB_Server/share_name /mnt/smb smbfs credentials=/etc/cred 0 0
- Bước 3: Tạo file /etc/cred để mô tả thông tin username và mật khẩu.
username =
password =
Trang 109/271
Học phần 4 - Chứng chỉ quản trị mạng Linux
- Bước 4: Dùng lệnh mount –a để update file /etc/fstab và kiểm tra.
Hướng dẫn giảng dạy
IX. Mã hoá mật khẩu Mặc định giao thức SMB của Microsoft sử dụng password không mã hóa (plain text). Tuy nhiên, Windows 2K (SP 3 trở lên) yêu cầu password mã hóa. Do đó, hoặc là bạn chỉnh lại Registry của Windows để sử dụng password không mã hóa. Lúc này, bạn phải chỉnh Registry của tất cả các máy Windows. Điều này thật bất tiện và có nguy cơ đem lại một số xung đột và rất có thể sai sót hoặc là bạn cấu hình lại Samba chấp nhận password mã hoá. Bạn cần làm theo các bước sau:
- Bước 1: Tạo một tập tin mật khẩu riêng cho Samba. Từ tập tin /etc/passwd có sẵn, tạo một tập tin mới bằng cách dùng lệnh:
cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd
với mksmbpasswd là một script đã cài sẵn trong hệ thống
- Bước 2: Dùng lệnh:
chmod 600 /etc/samba/smbpasswd
để chỉ cấp quyền đọc và ghi cho root
- Bước 3: Người dùng chưa được sử dụng samba khi người dùng đó chưa được cấp password và ghi vào tập tin trên. Bạn dùng lệnh dưới đây để cấp password cho user
smbpasswd
với username là định danh của người dùng đó
- Bước 4: Chỉnh lại tập tin smb.conf như sau:
encrypt password = yes
smb passwd file = /etc/samba/smbpasswd
Trang 110/271
Học phần 4 - Chứng chỉ quản trị mạng Linux
Khởi động lại dịch vụ samba dùng lệnh /etc/init.d/smb restart.