MẠNG NÂNG CAO
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.

Samba - Dịch vụ xây dựng liên mạng Linux với Windows

Go down

Samba - Dịch vụ xây dựng liên mạng Linux với Windows Empty Samba - Dịch vụ xây dựng liên mạng Linux với Windows

Bài gửi  BuiVanHung Wed Dec 26, 2012 8:09 pm

Samba là dịch vụ của hệ điều hành Linux, chạy trên nền giao thức SMB (Server Message Block) cho phép chia sẻ file hệ thống, máy in với các máy chạy Win95, 98 hoặc NT. SMB là giao thức được các hệ điều hành của Microsoft sử dụng để chia sẻ dữ liệu qua mạng. Với Linux Samba cũng dựa vào giao thức SMB để viết ra một số tiến trình điển hình như smbd, nmbd, để “nói chuyện “ với các hệ điều hành của Microsoft để người dùng có thể làm việc với máy Linux qua Network Neighborhood.

Cài đặt
Gói phần mềm Samba có thể lấy từ đĩa CD của hệ điều hành RedHat hoặc download từ website www.Samba.org. Phiên bản của Samba cũng được thay đổi thường xuyên, hiện đã có phiên bản 2.2.1. Bài viết này lấy phiên bản 2.0.7 có sẵn trên đĩa Redhat 7.1 làm ví dụ. Gói Samba trên đĩa RedHat được đóng gói theo chuẩn RPM (Redhat Package Manager) và được lưu tại thư mục /mnt/cdrom/Redhat/RPMS/. Các bước cài đặt như sau:

# mount /mnt/cdrom ; mount file system của ổ CD
#cd /mnt/cdrom/Redhat/RPMS
# rpm -Uvh Samba-common-2.0.7-8.i386.rpm
# rpm -Uvh Samba-2.0.7-8.i386.rpm
# rpm -Uvh Samba-client-2.0.7-8.i386.rpm

Cấu hình
File cấu hình chính của Samba là smb.conf được cất trong thư mục /etc/Samba. Trong file này có hai kiểu chú thích được xác định bằng dấu (Wink và (#) đặt ở đầu các dòng. Dấu (#) là dấu chú thích thực và bạn không thể bỏ dấu này đi được nhưng dấu (Wink là dấu chú thích xác định thuộc tính ở hàng tương ứng có được chọn hay không, kiểu chú thích này có thể bỏ đi được.
Ví dụ trong file này có đoạn:

;encrypt password =yes

Nếu bỏ dấu (Wink đi thì Samba sẽ hiểu rằng mật khẩu sẽ được mã hóa (encrypt), ngược lại mật khẩu khi truyền đi sẽ được để ở dạng không mã hoá (clear text).
Để việc thay đổi thông số trong file smb.conf an toàn, bạn nên sao lưu file smb.conf đến một thư mục khác, đồng thời đảm bảo rằng kết nối giữa máy Linux và Windows của bạn ở trạng thái tốt (Kiểm tra bằng lệnh ping 2 máy với nhau).
File smb.conf được chia làm 2 phần: global setting và sharing setting. Trong mỗi phần lại có nhiều tham số khác nhau, ở bài viết này chúng tôi chỉ xin giới thiệu những tham số cơ bản và cần thiết nhất.
Để thiết lập cấu hình file smb.conf bạn có thể mở file này bằng một trình soạn thảo có sẵn trên hệ thống như vi, mc, pico:

#pico /etc/Samba/smb.conf

1. Phần 1 - global setting:
Phần này sẽ chứa thông số điều khiển Samba server.
Giá trị đầu tiên cần thiết lập là giá trị của thẻ workgroup

[global]
## workgroup = NT-Domain-Name or Workgroup-Name
workgroup = MYGROUP

Là tham số xác định tên workgroup của Windows mà máy Linux đăng nhập, nhóm này phải tồn tại trước khi bạn cấu hình Samba.
Lưu ý: Nên nhập tên workgroup ở dạng chữ in hoa (Upper Case).

# server string is the equivalent of the NT Description field
server string =Samba Server

Tham số server string là tham số gán mô tả về tên máy Linux trên mạng. Nó giống như trường NT Description trên máy WindowNT. Mặc định tham số này được gán bằng Samba Server, tuỳ theo chức năng của máy Linux mà bạn có thể đặt các tên khác nhau . Việc gán giá trị cho tham số này không gây ảnh hưởng lớn đến việc cấu hình Samba.

;hosts allow = 192.168.1. 192.168.2.

Nếu bỏ dấu (Wink thì các máy có địa chỉ IP không thuộc lớp mạng đã liệt kê không thể truy nhập vào máy Linux. Ở đây lấy ví dụ với lớp mạng C, như vậy các máy có địa chỉ IP bắt đầu bằng 192.168.1. 192.168.2. đều có thể truy nhập tài nguyên trên máy Linux.

# this tells Samba to use a separate log file for each machine
# that connects
log file = /var/log/Samba/%m.log

Tham số logfile sẽ xác định tên file log cho từng máy khi truy cập, %m có nghĩa là tên máy trên mạng.
Ví dụ: Nếu trên mạng có máy tên là nampt truy cập vào máy Linux thì Samba sẽ tạo ra một file là nampt.log lưu trong thư mục /var/log/Samba. Kích thước của file này được xác định bằng tham số max log size:

# Put a capping on the size of the log files (in Kb).
max log size = 150

Samba hỗ trợ 4 kiểu bảo mật trong việc chia sẻ dữ liệu: USER, SHARE, DOMAIN và SERVER. Để biết thêm chi tiết từng kiểu bạn có thể đọc file security_level.txt. Mặc định khi cài Samba để ở mode USER

# Security mode. Most people will want user level security. See
# security_level.txt for details.
security = share
# Use password server option only with security = server or
# security = domain
;password server=MyServer
Nếu bạn chọn kiểu USER và SHARE thì nên đặt dấu (Wink vào đầu dòng
;password server = <NT-Server-Name>

Nếu bạn muốn sử dụng tài khoản (account) và mật khẩu (password) trên máy chủ điều khiển vùng để truy nhập vào máy Linux thì phải đặt tham số:

security = domain

và điền tên máy điều khiển vùng vào vùng password server như dưới đây:

password server = tên domain
# You may wish to use password encryption. Please read
# ENCRYPTION.txt, Win95.txt and WinNT.txt in the Samba #documentation.
# Do not enable this option unless you have read those documents
encrypt passwords = yes
smb passwd file = /etc/Samba/smbpasswd

Với các hệ điều hành từ Win95 OME service release 2 hoặc cao hơn, mật khẩu được mã hoá mặc định, cũng như vậy đối với hệ điều hành Windows NT4 service pack 3 mật khẩu được chuyển từ không mã hoá (Clear text) thành mã hoá (Encrypted). Để mật khẩu mã hoá của Windows làm việc được với Samba thì hai dòng trên phải bỏ dấu chú thích và nhập tên tài khoản và mật khẩu cho máy Linux bằng lệnh smbpasswd.
Ví dụ:

#smbpasswd -a nampt

Lưu ý: user nampt phải tồn tại là user của hệ điều hành. Nếu bạn định thiết lập security mode= domain hoặc server thì nên đặt mật khẩu trùng với mật khẩu trên server hay domain tương ứng.

# Enable this if you want Samba to be a domain logon server for
# Windows95 workstations.
domain logons = yes

Nếu để tham số domain logons =yes sẽ làm cho máy Linux trở thành domain để các máy Windows95 có thể đăng nhập (logon) vào . Kịch bản đăng nhập cho các máy trạm và user sẽ được hai tham số logon script dưới đây xác định:

# if you enable domain logons then you may want a per-machine or
# per user logon script
# run a specific logon batch file per workstation (machine)
logon script = %m.bat
# run a specific logon batch file per username
logon script = %U.bat

2. Phần 2 - Sharing Setting.
Khi có yêu cầu truy xuất dữ liệu từ máy trạm, Samba sẽ tìm các thư mục này trong phần Sharing Setting. Nếu thư mục tồn tại nó sẽ kiểm tra mật khẩu mà máy trạm cung cấp với mật khẩu của Samba, nó sẽ chia sẻ thư mục này qua mạng nếu mật khẩu thoả mãn.
Trong phần này có nhiều tham số khác nhau, ở đây chúng tôi chỉ trích ra một thư mục để làm ví dụ và giới thiệu những tham số thông dụng:
[nampt]
comment = Thu muc cua user nampt
browseable = no
read only=no
path=/home/nampt
valid users=nampt

Tham số comment cũng gần giống như tham số server string mà chúng ta đã đề cập ở phần trước nhưng chỉ khác đây là chú thích cho thư mục.
Nếu bỏ dấu chú thích ở dòng browseable = no thì Samba sẽ không chỉ thị thư mục này trên trình duyệt mạng (ví dụ Windows Explorer), mặc dù nó vẫn được chia sẻ, việc này giống như chia sẻ thư mục trên Windows với dấu $.
Tham số read only sẽ cho phép người dùng trên máy trạm có thể thay đổi nội dung file hay không. Nếu bỏ dấu chú thích tại dòng:

;read only=no

Thì người dùng có thể thay đổi nội dung của file hay tạo file mới, ngược lại nếu để dấu (Wink ở đầu dòng, người dùng chỉ có thể đọc nội dung thư mục và không được phép tạo bất cứ thay đổi nào trong thư mục.
Trong file smb.conf có một số thông số không thể gán giá trị bằng “yes”.
Ví dụ: nếu viết:

read only=yes

thì smbd không hiểu giá trị và phát sinh lỗi cấu hình. Thực chất giá trị read only=yes chính là ; read only=no.
Tham số path xác định đường dẫn đến thư mục cần được chia sẻ trên server. Tham số valid users=nampt xác định quyền hạn truy cập vào thư mục nampt - ở ví dụ này chỉ có user nampt mới đọc được nội dung của thư mục đó.
Chia sẻ file như thế nào:
Sau khi cấu hình phần global setting, chúng ta có thể tự tạo ra một thư mục chia sẻ và giới hạn truy cập theo nhóm hoặc người dùng có trên hệ thống.
Ví dụ: Để tạo thư mục chia sẻ hungpv trên máy Linux, chúng ta làm như sau:
Thêm vào vùng Sharing Setting những dòng dưới đây:

[hungpv]
comment= thu muc cua hungpv
path=/home/hungpv
valid users =hungpv
browseable=yes
public=no
writeable=yes

Như vậy Samba sẽ tạo ra một thư mục chia sẻ hungpv trên máy chủ, do tham số browseable=yes nên thư mục này sẽ được nhìn thấy khi người dùng mở Windows Explorer, tuy nhiên do public=no và valid users =hungpv nên chỉ có user hungpv có thể đăng nhập. Ngoài việc phân cấp theo user Samba cũng có thể thăng quyền truy cập cho cả nhóm người duùng, với nhóm chúng ta sử dụng dấu @ trước tên nhóm.
Ví dụ:

Valid users=hungpv,@admin

Kiểm tra cấu hình vừa thiết lập:
Sau khi thiết lập file cấu hình chúng ta nên kiểm tra lại, Samba cung cấp 2 công cụ là testparm và smbstatus. Để kiểm tra chính xác bạn phải đảm bảo máy trạm và máy chủ phải nối được với nhau (Kiểm tra bằng lệnh ping).
1. Kiểm tra bằng công cụ Testparm:
Testparm là chương trình cho phép kiểm tra giá trị của thông số trong file cấu hình. Cấu trúc của câu lệnh này là:

Testparm configfile [hostname hostIP]

Configfile là đường dẫn và tên file cấu hình, mặc định nó lấy file smb.conf cất trong thư mục /etc/Samba/smb.conf (từ Redhat 7.0) và /etc/smb.conf (cho các phiên bản trước đó).
Hostname và HostIP là hai thông số không nhất thiết phải có, nó hướng dẫn Samba kiểm tra cả các dịch vụ đã liệt kê trong file smb.conf. trên máy xác định bởi Hostname và HostIP.
Ví dụ:

[root@imail /root]# testparm /etc/Samba/smb.conf imail.vitti.edu.vn 172.16.200.2000
Load smb config files from /etc/Samba/smb.conf
Processing section “[homes]”
Processing section “[printers]”
Loaded services file OK.
Allow connection from imail.vitti.edu.vn (172.16.200.2000) to homes
Allow connection from imail.vitti.edu.vn (172.16.200.2000) to printers

2. Kiểm tra bằng công cụ smbstatus:
Smbtatus là chương trình thông báo các kết nối hiện tại, cấu trúc của câu lệnh này như sau:

Smbstatus [-d][-p][-s config file]

Tham số configfile mặc định được gán là /etc/Samba/smb.conf. Tham số –d cho ra kết quả đầy đủ.
Chạy Samba server:
Samba server có hai tiến trình là smbd và nmbd. Tiến trình smbd cung cấp dịch vụ chia sẻ file và dữ liệu, tiến trình nmbd cung cấp khả năng hỗ trợ NetBIOS name. Cũng như các dịch vụ khác, trên mạng Samba có 3 câu lệnh điều khiển là stop, start, restart. Cú pháp của chúng là:

/etc/init.d/smb start| stop| restart

Sau khi cấu hình file smb.conf bạn phải khởi động dịch vụ Samba để máy Linux đăng nhập vào workgroup, câu lệnh khởi động là:

#/etc/init.d/smb start

Sau khi khởi động dịch vụ máy Windows có thể truy cập đến máy Linux thông qua NetworkNeighborhood hoặc Windows Explorer , máy Linux có thể dùng 2 câu lệnh smbclient smbmount để truy cập đến máy Windows và trên cả máy Linux khác có cài Samba.
1. Sử dụng câu lệnh smbclient:
Smbclient cung cấp giao diện dòng lệnh gần giống như giao diện của FTP để truyền file qua mạng. Chi tiết về câu lệnh smbclient bạn có thể tham khảo nhờ câu lệnh:

#man smbclient

Để liệt kê các thư mục chia sẻ có trêm máy 172.16.200.203 bạn dùng smbclient với tham số –L:

#smbclient -L 172.16.200.203

Kết quả sẽ cho ra một số thư mục có trên máy 172.16.200.203, để vào một trong các thư mục trên bạn dùng lệnh smbclient với tham số -U tên user (tên user có quyền truy cập vào thư mục tương ứng).

#smbclient http://172.16.200.203/tên_thư_mục -U tên_user

Sau khi gõ vào mật khẩu bạn sẽ nhận được dấu nhắc:

smb:\>

Tại dấu nhắc này bạn có thể dùng các câu lệnh như sau:
Ví dụ : Dùng smbclient nối đến máy Windows có địa chỉ IP là 172.16.4.53, để lấy file trên máy này ta phải làm lần lượt các bước sau:
Xác định các thư mục được chỉa sẻ trên máy 172.16.4.53:

#smbclient -L 172.16.4.53 -U tienna
added interface ip=172.16.200.200 bcast=172.16.255.255 nmask=255.255.0.0
session request to 172.16.4.53 failed (Called name not present)
session request to 172 failed (Called name not present)
Password:
Domain=[STAFF.VITTI] OS=[Windows 5.0] Server=[Windows 2000 LAN Manager]

Sau khi nhập mật khẩu của tài khoản tienna (trên Windows) ta nhận được danh sách các thư mục share trên máy 172.16.4.53. Sau khi biết được các thư mục trên máy, bạn phải dùng câu lệnh:

[root@Backup /root]# smbclient http://172.16.4.53/tienna -U tienna
Can’t find include file /etc/Samba/smb.conf.
added interface ip=172.16.200.200 bcast=172.16.255.255 nmask=255.255.0.0
session request to 172.16.4.53 failed (Called name not present)
session request to 172 failed (Called name not present)
Password:
Domain=[STAFF.VITTI] OS=[Windows 5.0] Server=[Windows 2000 LAN Manager]
smb: \>

Tại dấu nhắc này bạn có thể xem các file bên trong thư mục tienna bằng lệnh ls, lấy nó về máy Linux bằng lệnh get hoặc mget:

smb:\> ls
.D 0 Fri Aug 24 00:02:24 2001
..D 0 Fri Aug 24 00:02:24 2001
ethereal-setup-0.8.17.exe A 6153372 Thu Apr 19 18:54:42 2001
gozilla39.exe A 1869172 Thu Jun 7 12:05:50 2001

smb:\> mget eth*
Get file ethereal-setup-0.8.17.exe? y
getting file ethereal-setup-0.8.17.exe of size 6153372 as ethereal-setup- 0.8.17.exe (925.624 kb/s) (average 925.624 kb/s)
smb:\>
2. Truy cập từ máy Windows
Với máy Windows việc truy cập dễ dàng hơn nhiều, bạn chỉ cần mở Windows Explore và tìm đến domain mà máy Linux đăng nhập, nhấn chuột lên tên máy Linux sau đó nhập vào tên tài khoản và mật khẩu tương ứng, bạn sẽ nhìn thấy các thư mục chia sẻ (sharing) hiện ra. Tại đây bạn cũng có thể thực hiện các tính năng như map ổ đĩa, đồng bộ thư mục, sao chép file như ở các máy Windows thông thường.

BuiVanHung

Tổng số bài gửi : 30
Join date : 20/09/2012

Về Đầu Trang Go down

Về Đầu Trang


 
Permissions in this forum:
Bạn không có quyền trả lời bài viết