Cài đặt, cấu hình dịch vụ Samba trên Linux (CentOS) Lab Full

iThuthuat -
ở bài trước mình đã giới thiệu tới các bạn về Samba Linux, tìm hiểu Samba Linux. Trong bài nối tiếp của những dịch vụ mạng trên Linux (dịch vụ Samba trên Linux) mình hướng dẫn các bạn cách cài đặt, cấu hình Samba Linux. Bài Lab được thực hiện trên nền CentOS.

Lưu ý: Tất cả những bài Lab mạng trên itviet360 mang tính chất tham khảo

1. Cài đặt Samba

Samba cần những gói sau: 
-        samba-winbind-clients-3.4.2-47.fc12.i686.rpm
-        samba-client-3.4.2-47.fc12.i686.rpm
-        samba-common-3.4.2-47.fc12.i686.rpm
-        samba-3.4.2-47.fc12.i686.rpm
Tất cả những gói trên đã được đi kèm với bản phân phối CentOS. Và việc cài đặt rất dễ dàng.

1.1 Các kiểu server Samba

Các máy chủ Windows thường được chia ra thành các kiểu server:
·        Domain Controller
o   Primary Domain Controller (PDC).
o   Backup Domain Controller (BDC).
o   ADS Domain Controller.
·        Domain Member Server
o   Active Directory Domain Server.
·        Standalone Server.
Samba có thể thay thế tốt cho mỗi kiểu server tương ứng trên Windows trong việc chia sẻ tài nguyên giữa hệ thống Linux – Windows.

2. Cấu hình Samba

Các thông tin cấu hình cho Samba được lưu trong tập tin smb.conf và nằm trong đường dẫn /etc/samba/smb.conf. Chúng ta có thể dễ dàng chỉnh sửa tập tin này thông qua một trình soạn thảo văn bản như vi hoặc giao diện đồ họa trên nền web bằng SWAT.
Tập tin smb.conf bao gồm nhiều phần, mỗi phần đều được bắt đầu bằng dấu [], sau đó là những thuộc tính của phần đó. Cú pháp:
tham số = giá trị
Những dòng bắt đầu bằng dấu # hoặc ; là chú thích.
[global]          gồm những thiết lập có ảnh hưởng tới toàn bộ chính sách chia sẻ.
[printer]        định nghĩa dịch vụ in ấn.
[homes]         định nghĩa các chia sẻ trong thư mục home directory.
[khác]                        tùy chọn định nghĩa những chia sẻ khác.
Những tham số trong phần khác như [homes], [printer], [khác],… chỉ có ảnh hưởng cục bộ đến những dịch vụ có trong thiết lập của những phần đó.
Dưới đây là tập tin smb.conf mẫu:
#======================= Global Settings =====================

[global]

# ----------------------- Netwrok Related Options ---------
        workgroup = cn06.com
        server string = Samba Server Version %v
;        netbios name = au-fileserver-1
        interfaces = lo eth0
        hosts allow = 127. 172.16.1. EXCEPT 172.16.1.100

# --------------------------- Logging Options ---------------

        log file = /var/log/samba/%m.log
        max log size = 50
          
# --------------------------- Domain Options -----------------

        domain master = yes
        domain logons = yes
        local master = yes
        os level = 33
        preferred master = yes
;        security = user
;        passdb backend = tdbsam

# ----------------------- Standalone Server Options ----------

;security = user
;passdb backen = tdbsam

# ----------------------- Domain Members Options --------------
    
;    security = domain
;    passdb backend = tdbsam
;    realm = MY_REALM

;    password server =

# ----------------------- Domain Controller Options ---------

;    security = user
;    passdb backend = tdbsam
    
;    domain master = yes
;    domain logons = yes
    

# --------------------------- Printing Options -----------

        load printers = yes
        cups options = raw
        printcap name = cups
          
#============================ Share Definitions ==============

[homes]
        comment = Admin’s Directory
        browseable = no
        writable = yes
        valid users = %S
        valid users = admin
[printers]
        comment = All Printers
        path = /var/spool/samba
        browseable = no
        guest ok = no
        writable = no
        printable = yes
[netlogon]
        comment = Network Logon Service
        path = /var/lib/samba/netlogon
        guest ok = yes
        writable = no
        share modes = no
[profiles]
        path = /etc/samba/profiles
        browseable = no
        guest ok = yes
        read only = no
 [user]
      comment = thu muc nguoi dung
      path = /user/
      readonly = yes
      public = no
      browseable = yes
      printable=yes
      valid users = @user
      write list = admin, root
#      force create mode = 0770
#      force directory mode = 0770
      create mask = 0770
      directory mask = 0770
#      force group = admin
#     force user  = admin       
writable = no
printable = yes

2.1 Các thông số smb.conf

2.2 Các thông số phần [Global]

Thông số
Mô tả
Interfaces
Sanh sách các interface (hoặc địa chỉ IP) mà Samba sẽ sử dụng.
Mặc định là tất cả các interface trừ địa chỉ localhost 127.0.0.1
Server string
Đoạn kí tự sẽ xuất hiện trên Windows. Tùy chọn %v là version của Samba hiện hành, %h là tên hostname
Workgroup
Tên workgroup chứa Samba server.
Log file
Tên file log cho Samba. Tùy chọn %m thay cho tên log của từng client.
Log level
Level được đặt càng cao thì file log càng chi tiết. Mặc định là 0.
Max log size
Kích thước tối đa cho từng file log tính bằng kb, 0 để ghi không giới hạn.

2.3 Các thông số Domain

Tùy chọn domain cho phép các dịch vụ chứng thực được tập trung hóa trên một server cho các host tham gia vào domain đó. Domain đó yêu cầu phải có một PDC hay master. Domain Master Browser chịu trách nhiệm duy trì một danh sách host trên mạng khi client chia sẻ thông qua Windows Network Neighborhood hay My Network Places. SMB định kỳ 15 phút bầu chọn host nào sẽ trở thành Domain Master Browser.
Việc máy chủ Samba có được chọn hay không phụ thuộc hai thông số:
Thông số
Mô tả
Domain master = yes
Cho phép máy chủ Samba gia nhập cuộc bầu chọn với tư cách như một PDC.
Local master = yes
Samba server cố trở thành master browser.
Os level
Định lượng máy chủ Samba "nặng" bao nhiêu so với các host Windows.
Windows 2000, XP và 2003 có os level = 32. Do đó, thiết lập thông số này lớn hơn 32 để máy chủ Samba đảm bảo chiến thắng.
Domain logons = yes
Chi ra rằng Samba muốn điều khiển các yêu cầu chứng thực trong domain.

2.4 Các thông số bảo mật

Thông số
Mô tả
Encrypt passwords = yes
Chỉ chấp nhận những mật khẩu được mã hóa từ client. Thông số này sử dụng smbpasswd để chứng thực client. Mặc định Samba sẽ lưu mật khẩu mã hóa trong smbpasswd nếu ta không thiết lập một cơ sở dữ liệu mật khẩu (passdb).
Hosts allow
Đanh sách các mạng (hoặc địa chỉ IP) được phép truy cập dịch vụ Samba. Ở ví dụ trên, cho phép 127.0.0.0/4 và 172.16.1.0/24 ngoại trừ địa chỉ 172.16.1.100 được phép sử dụng dịch vụ.
Security = user
Yêu cầu bất kì host nào truy cập vào Samba cũng cần có một tài khoản và mật khẩu hợp lệ trên máy chủ Samba.
Passdb backend = tdbsam
Chứng thực client bằng cơ sở dữ liệu mật khẩu trên chính Samba server, tdbsam được trỏ tới /etc/samba/passdb.tdb. Ngoài tdbsam ra, còn có smbpasswdldapsam.

2.5 Các thông số máy in

Thông số
Mô tả
printcap name = cups
Chỉ cho Samba sử dụng dịch vụ in CUPS.
load printers = yes
Cho phép sử dụng máy in bằng các máy in được cấu hình trong dịch vụ CUPS.
cups options = raw
Các tùy chọn in ấn được gửi cho CUPS server.

2.6 Các thông số chia sẻ

Thông số
Mô tả
path
Đường dẫn tới thư mục chia sẻ.
browseable
Mô tả chia sẻ này có hiện ra trong danh sách chia sẻ hay không.
comment
Lời mô tả về chia sẻ này.
writable
Các user truy cập có quyền ghi hay không
Read only
Chỉ chia sẻ dạng read-only (tùy chọn này thường đi kèm tùy chọn writable).
printable

guest ok
Cho phép người dùng truy cập dạng guest mà không cần mật khảu. Mặc định là không.
valid users
Danh sách những người dùng được quyền truy cập chia sẻ này. Sử dụng @tên_group để cấp quyền cho cả group.
write list
Danh sách người dùng có quyền đọc/ghi trên chia sẻ này mà không cần quan tâm đến tùy chọn read only.
create mask
Tạo quyền hạn cho các file được tạo.
directory mask
Tạo quyền hạn cho các thư mục được tạo.
Sau khi cấu hình xong smb.conf, ta có thể kiểm tra tập tin này bằng lệnh testparm xem có bất kỳ sai sót nào không. Nếu cấu hình đúng, sẽ xuất hiện thông báo sau:
[root@server ~]# testparm
Load smb config files from /etc/samba/smb.conf
Processing section "[homes]"
Processing section "[printers]"
Processing section "[netlogon]"
Processing section "[profiles]"
Processing section "[user]"
Loaded services file OK.
Server role: ROLE_DOMAIN_PDC
Press enter to see a dump of your service definitions
Như thông báo ở trên, server hiện thời đóng vai trò như một Domain PDC.

2.7 Thêm user vào Samba

Như đã nói ở trên, tùy chọn mã hóa mật khẩu được thiết lập mặc định trên Samba. Tính năng này yêu cầu Samba lưu mật khẩu của mọi user Windows. Về cơ bản, không thể sử dụng mật khẩu được lưu tại /etc/passwd để chứng thực user Windows. Vì thế Samba cung cấp một công cụ đặc biệt dùng cho việc này, đó là smbpasswd.
Đầu tiên, tạo tài khoản user1 thuộc nhóm user:
[root@server ~]# useradd -c "Nguoi dung 1" –g user user1
[root@server ~]# passwd user1
Changing password for user user1.
New UNIX password:
BAD PASSWORD: it is too short
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
Tiếp theo, thêm user1 tham gia vào Samba bằng lệnh smbpasswd.
Cú pháp:
smbpasswd [tùy chọn] username
Trong đó, có 3 tùy chọn chính:
-a                    thêm hoặc chỉnh sửa user.
-d                    khóa tạm thời user.
-x                    xóa user khỏi Samba.
[root@server ~]# smbpasswd -a user1
New SMB password:
Retype new SMB password:
Added user user1.
[root@server ~]#
Tiếp theo, khởi động dịch vụ Samba:
[root@server ~]# service smb start
Starting SMB services:                                    [  OK  ]
Starting NMB services:                                    [  OK  ]
[root@server ~]# chkconfig --level 35 smb on
Như vậy chúng ta đã hoàn tất việc cấu hình một Samba server đóng vai trò như một PDC cho phép chia sẻ tài nguyên giữa Linux và Windows.

3. Truy cập tài nguyên chia sẻ

Đầu tiên, ta cần cài đặt chia sẻ trên Windows:
Truy cập vào My Network Places, click chọn Set up a home or small office network
network setup wizard on Windows XP, Windows 7
network setup wizard on Windows XP, Windows 7
bat chuc nang chia se windows
Sau đó ta sẽ thấy thư mục chia sẻ của Linux:
thu muc chia se tren Windows
Kể từ đây, chúng ta đã dễ dàng truy cập tài nguyên bằng cách từ hộp thoại Run, gõ:
\\tên máy\tài nguyên.
Ví dụ:
\\server2\user
Sử dụng lệnh net view từ command line để xem các tài nguyên chia sẻ.
c windows system32 cmd


Ngoài ra, ta còn có thể truy cập tài nguyên của máy chủ Samba hoặc tài nguyên chia sẻ Windows trên các host Linux. Để thực hiện được điều này, chúng ta cần đến lệnh smbclient. Smbclient giống như truy cập tài nguyên bằng ftp; bằng cách này từ máy Linux ta có thể sử dụng tài nguyên mà không cần đến giao diện đồ họa.
Cú pháp:
Smbclient [tùy chọn] //tên máy/tài nguyên –U username
 Ví dụ:
Truy cập tài nguyên chia sẻ của Windows XP
[root@server ~]# smbclient //172.16.1.10/share_win -U u1
Password:
Domain=[HOMEXP] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]
smb: \> ls
  .                           D        0  Wed Sep  1 16:18:20 2010
  ..                          D        0  Wed Sep  1 16:18:20 2010
  USBBoot.tib                 A   728064  Fri Apr 30 12:38:41 2010

            45683 blocks of size 32768. 45350 blocks available
smb: \>
Truy cập tài nguyên của Samba server:
[root@server3 ~]# smbclient //server2.cn06.com/user -U user1
Password:
Domain=[CN06.COM] OS=[Unix] Server=[Samba 3.0.33-3.28.el5]
smb: \>
Tùy chọn -L cho phép chúng ta thấy danh sách các tài nguyên được chia sẻ trên network.
Tùy chọn –U chỉ rõ user nào sẽ truy cập dịch vụ.
Để dễ dàng truy cập tài nguyên của Windows hơn, chúng ta có thể “mount” vào thư mục nào đó trên Linux:
 [root@server ~]# mount -t cifs //172.16.1.10/share_win /home/admin/Desktop/win -o username=user1,password=user1
[root@server ~]# cd /home/admin/Desktop/
[root@server Desktop]# ls win
USBBoot.tib
Các tùy chọn smbclient:
Tùy chọn
Mô tả
? hoặc help
Hiển thị thông báo trợ giúp tương ứng với lệnh, hoặc trong trường hợp không có lệnh thì cho thông báo trợ giúp tổng quát.
!
Thực thi lệnh shell hoặc đưa user về dấu nhắc shell.
cd
Chuyển về thư mục trên server. Nếu thư mục không được xác định, smbclient sẽ báo thư mục hiện hành.
lcd
Chuyển về thư mục trên máy tại chỗ. Nếu thư mục không được xác định, smbclient sẽ báo thư mục hiện hành trên máy tại chỗ.
del
Những tệp được khai báo sẽ bị xoá khỏi server, nếu user được quyền thực hiện thao tác này. Có thể dùng ký tự  wildcard.
dir hoặc ls
Liệt kê các tệp được chọn. Có thể dùng lệnh ls để có danh sách các tệp.
exit hoặc quit
Thoát khỏi chương trình smbclient.
get
Truy cập tệp từ xa và sao lưu vào server tại chỗ. Nếu có tên tại chỗ, tệp sẽ được sao lưu với chính tên tại chỗ, thay vì sao lưu với tên trên server từ xa.
mget
Sao chép mọi tệp được xác định vào máy tại chỗ.
md hoặc mkdir
Tạo thư mục trên máy từ xa.
rd hoặc rmdir
Xoá thư mục trên máy từ xa.
put
Sao chép tệp từ máy tại chỗ vào server.
mput
Sao chép mọi tệp từ máy tại chỗ vào server.
print
In tệp trên máy từ xa.
queue
Liệt kê mọi công việc in ấn đang xếp hàng chờ trên server từ xa.

ÑLưu ý:
Do Samba sử dụng 3 cổng 137, 139 và 445 cho việc chia sẻ nên chúng ta cần tạo rule cho phép mở các cổng này:
#iptables –I Firewall-eth0-INPUT rule number -p udp –m state --state NEW –m udp --dport 137:138 –j ACCEPT
#iptables –I Firewall-eth0-INPUT rule number -p tcp –m state --state NEW –m tcp --dport 139 –j ACCEPT
#iptables –I Firewall-eth0-INPUT rule number -p tcp –m state –state –m tcp NEW --dport 445 –j ACCEPT
-------------------------
Chúc các bạn học tập tốt !

0 comments: