1/12/09

Cài đặt và cấu hình Samba & SWAT

DỊCH VỤ SAMBA
1. Giới thiệu dịch vụ Samba
Samba là chương trình tiện ích hỗ trợ chia sẻ tài nguyên từ hệ thống Linux với các hệ thống khác (Unix, Windows), nó hỗ trợ chức năng gia nhập (jonn) Linux với Windows như gia nhập Linux vào PDC trên Windows, gia nhập Windows vào workgroup…
Bộ Samba gồm nhiều thành phần. Daemon mang tên smdb 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 nmdb thì hỗ trợ dịch vụ tên NETBIOS, cho phép các máy khác truy cập và sử dụng tài nguyên được chia sẻ 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 được sử dụng khi bạn truy cập tài nguyên trên máy server tương thích khác.
Samba có các chức năng cơ bản như sau:
1. Chia xẻ drive Linux với Windows
2. Truy cập SMB share với Linux
3. Chia xẻ máy in Linux với Windows
4. Chia xẻ máy in Windows với Linux
2. Cài đặt Samba và cấu hình Samba bằng giao diện dòng lệnh
Bản mở Terminal lên và nhập vào lệnh sau:
$ sudo apt-get instal samba
File cấu hình mặc định của samba nằm ở vị trí /etc/samba/smb.conf. Bạn cần chỉnh sửa lại file cấu hình này cách gõ vào lệnh
$ sudo vi /etc/samba/smb.conf
Sau đó chỉnh lại nội dụng file cấu hình này như sau:
[share]
comment = Ubuntu File Server Share
path = /home/hungnn/share
browsable = yes
guest ok = yes
read only = no
create mask = 0755
Trong đó:
comment: Là mô tả ngắn cho việc chia sẻ của bạn, bạn có thể điều chỉnh sao cho phù hợp với yêu cầu của bạn
path: Đường dẫn tới thư mục chia sẻ trên máy của bạn
browsable: Cho phép các máy Windows duyệt qua các thư mục chia sẻ
guest ok: Cho phép client kết nối tới file chia sẻ. Nếu giá trị này là “yes” thì client có thể truy xuất tới file chia sẻ mà không cần mật khẩu. Nếu giá trị này là “no” thì client phải có mật khẩu mới truy xuất được tới file chia sẻ.
read only: Giá trị này được định nghĩa nếu chia sẻ chỉ cho phép đọc hoặc ghi. Quyền được ghi chỉ có hiệu lực khi giá trị này là “no” như trong ví dụ. Nếu giá trị này là “yes” thì client truy xuất vào chỉ có quyền đọc
create mask: Xác định quyền hạn của một tập tin mới khi nó được tạo ra
Như vậy là Samba đã được cấu hình xong, bây giờ bạn cần phải tạo ra thư mục chia sẻ như trên bằng cách thực hiện các lệnh sau:
sudo mkdir -p /home/hungnn/share
sudo chown nobody.nogroup /home/hungnn/share/
Bây giờ bạn cần phải khởi động lại dịch vụ để có thể sử dụng.
sudo /etc/init.d/samba restart
3. Cài đặt và cấu hình samba bằng giao diện đồ hoạ (SWAT)
3.1. File cấu hình chính của samba
File cấu hình chính của samba mà bạn cần chỉnh sửa là file “smb.conf”. Nó được chia làm 5 phần chính được mô tả như sau:
Mục Mô tả
[global] Các thông số cấu hình chính của samba
[printers] Dùng để cấu hình các máy in
[homes] Xác định các xử lý khi người dùng đăng nhập
[netlogon] Chia sẻ cho script lưu trữ đăng nhập (mặc định không có)
[profile] Chia sẻ cho thông tin đăng nhập domain như “favorites” và các icon ở desktop (mặc định không có)

3.2. Sử dụng SWAT làm Samba
SWAT, web của Samba dựa trên công cụ cấu hình cho phép bạn cấu hình file smb.conf mà không cần nhớ tất cả các định dạng. Mỗi màn hình SWAT thật ra là một form chứa những mục riêng biệt của file smb.conf mà bạn cần điền những thông số. Đơn giản cách sử dụng, mỗi hộp thông số có những outline giúp đỡ. Màn hình đăng nhập chính của SWAT như sau:

3.2.1. Cài đặt SWAT cơ bản
Phải luôn nhớ rằng SWAT chỉnh sửa file smb.conf nhưng sẽ loại bỏ bất kì comment nào bạn đã tự điền vào file trước đó. File nguyên gốc smb.conf có rất nhiều comment quan trọng trong đó bạn nên copy một bản trước khi thực hiện với SWAT. Ví dụ, bạn nên lưu file nguyên gốc smb.conf thành:
[root@itnews tmp]# cp /etc/samba/smb.conf /etc/samba/smb.conf.original
Như bạn có thể thấy, dùng SWAT yêu cầu những hiểu biết về các thông số của file smb.conf bởi vì nó bỏ đi những comment đó. Hãy làm quen với mục quan trọng nhất trong file này trước khi làm việc với SWAT. SWAT không mã hoá password đăng nhập của bạn. Vì điều này có thể gây ra vấn đề bảo mật trong môi trường tập đoàn, bạn nên tạo một người dùng quản trị Samba không có đặc quyền cơ bản hay chỉ kích hoạt truy cập SWAT từ console GUI hay localhost. Kích hoạt và tắt, khởi động và dừng SWAT được điều khiển bằng xinetd, có trong chương 16 "Telnet, TFTP, and xinetd", thông qua một file cấu hình tên là ví dụ xinetd/swat. Đây là ví dụ:
service swat
{
port = 901
socket_type = stream
protocol = tcp
wait = no
user = root
server = /usr/sbin/swat
log_on_failure += USERID
disable = no
only_from = localhost
}
Thông số disable phải được cài đặt "no" để chấp nhận các kết nối. Nó có thể tự động chuyển giữa ‘yes" và "no". Cấu hình mặc định chỉ cho phép web SWAT truy cập từ console VGA chỉ với người dùng root ở cổng 901 với password root của Linux. Điều này có nghĩa là bạn phải điền http://127.0.0.1:901 trong trình duyệt của mình để vào được màn hình đăng nhập.
Bạn cũng có thể truy cập SWAT từ những server khác bằng cách thêm các cổng vào địa chỉ IP chỉ từ thông số của file cấu hình SWAT. Đây là ví dụ của một cổng vào chỉ cho phép các kết nối chỉ từ 192.168.1.3 và localhost. Chú ý rằng không có dấu phẩy giữa các cổng vào.
only_from = localhost 192.168.1.3
Do đó trong trường hợp này bạn có thể cấu hình Samba trên server Linux của bạn bigboy IP với địa chỉ 192.168.1.100 từ máy 192.168.1.3 dùng URL http://192.168.1.100:901. Hãy nhớ rằng phần lớn các tường lửa không cho phép TCP cổng 901 qua bộ lọc của chúng. Bạn có thể điều chỉnh nguyên tắc của bạn để cho traffic này đi qua.
3.2.2. Điều khiển SWAT
Cùng với ứng dụng điều khiển xinetd, lệnh chkconfig tự động điều chỉnh trường disable tuỳ theo fiel cấu hình và active thay đổi. Trước khi dùng SWAT, chương trình xinetd điều khiển nó phải được active. Bạn có thể khởi động/dừng/restart xinetd sau thời gian boot dùng script khởi tạo xinetd như trong ví dụ sau:
[root@itnews tmp]# service xinetd start
[root@itnews tmp]# service xinetd stop
[root@itnews tmp]# service xinetd restart
Cũng giống như phần lớn các ứng dụng hệ thống Linux, bạn có thể cấu hình xinetd để khởi động vào lúc boot dùng lệnh chkconfig:
[root@itnews tmp]# chkconfig xinetd on
Để active SWAT dùng
[root@itnews tmp] chkconfig swat on
Để deactive SWAT dùng:
[root@itnews tmp] chkconfig swat off
Mã hoá SWAT
Mặc định thì SWAT được cấu hình thông qua kết nối web không được mã hoá dùng tài khoản root Linux. Khi chạy SWAT trong chế độ không bảo mật ở trên bạn cần chú ý dùng nó từ console Linux bất kì khi nào có thể. Bạn có thể cấu hình SWAT để chỉ làm việc với mã hoá bảo mật HTTP (HTTPS) với phương pháp HTTP thường lệ như hình trên.
Tạo một file xinet.d để bảo mật SWAT
Để bắt đầu, copy file swat và đặt tên nó là swat-stunnel. Sau đó chúng ta cấu hình một file để enable, chờ ở cổng 902 và chỉ chấp nhận kết nối từ localhost. Chúng ta cũng đảm bảo là dịch vụ được cài đặt là swat-stunnel.
[root@itnews certs]# cd /etc/xinetd.d
[root@itnews xinetd.d]# cp swat swat-stunnel
File swat-stunnel mới của bạn sẽ giống như thế này:
service swat-stunnel
{
port = 902
socket_type = stream
wait = no
only_from = 127.0.0.1
user = root
server = /usr/sbin/swat
log_on_failure += USERID
disable = no
bind = 127.0.0.1
}
Deamon stunnel thật sự chặn traffic cổng 901 đại diện cho swat-stunnel. Bạn sẽ cần disable SWAT để ngăn ngừa sự xung đột
Tạo một cấu hình bắt đầu
Bây giờ tôi sẽ mô tả cách cấu hình một server Samba trở thành một PDC cho một network nhỏ bằng cách dùng SWAT. Bạn sẽ cần chỉnh sửa những phần khác nhau của file smb.conf nên tôi sẽ nói từng phần.
Mục [Global]
Mục [global] điều khiển các cài đặt Samba nói chung. Bảng 10-2 giải thích các thông số bạn cần cài đặt để tạo PDC.


Bảng 10-2: các cài đặt nhỏ nhất smb.conf, mục "Global"
Đây là cách cài đặt các giá trị dùng SWAT.
1. Đăng nhập vào SWAT và click vào mục [global]
2. Click vào nút Advanced để xem tất cả các mục
3. Thực hiện thay đổi của bạn và click vào nút Commit Changes khi hoàn tất.
4. File smb.conf của bạn sẽ giống với mẫu dưới đây khi bạn hoàn thành. Bạn có thể nhìn nội dung của fie cấu hình bằng cách đăng nhập vào server samba thông qua một nhắc lệnh và dùng cat ví dụ samba/smb.conf để xác định thay đổi bạn thực hiện.
[global]
workgroup = HOMENET
time server = Yes
domain logons = Yes
os level = 65
preferred master = Yes
domain master = Yes
smb passwd file = /etc/samba/smbpasswd
private dir = /etc/samba
Chú ý: security = user và WINS support = yes là những cài đặt mặc định cho Samba và chúng có thể không xuất hiện trong file smb.conf của bạn, mặc dù bạn có thể thấy chúng trong SWAT.
Mục [homes]
Một phần của quá trình thêm một người dùng vào một domain Samba yêu cầu bạn tạo một user Linux trên chính Samba PDC. Khi bạn đăng nhập vào Samba PDC, bạn sẽ thấy một drive mới, thường được đặt tên là Z:, thêm vào máy tính của bạn. Đây thật ra là một đĩa ảo được map để tương ứng với các directory đăng nhập của người dùng trên Linux PDC. Samba xem tất cả các directory được chia sẻ có thể được cấu hình với những mức độ khác nhau về bảo mật. Mục [homes] điều khiển cách Samba giải quyết các directory đăng nhập mặc định. Bảng 10-3 giải thích các cài đặt nhỏ nhất bạn cần tạo một cho mục chức năng [Homes]
Bảng 10-3: Các cài đặt nhỏ nhất smb.conf, mục "Home"

Cách cài đặt giá trị dùng SWAT:
1. Click vào nút chia sẻ SWAT để đi đến nơi các directory chia sẻ được cấu hình.
2. Click vào nút Advanced để xem tất cả các mục
3. Chọn chia sẻ Homes
4. Thực hiện thay đổi của bạn và click vào nút Commit Changes khi hoàn tất.
5. File smb.conf của bạn sẽ giống như thế này khi hoàn tất. Bạn có thể nhìn thấy nội dung của file cấu hình bằng cách đăng nhập vào server samba thông qua nhắc lệnh và dùng cat/samba/smb.conf để xác định thay đổi của bạn khi thực hiện.
[homes]
read only = No
browseable = No
create mask = 0644
directory mask = 0755
Các mục chia sẻ [netlogon] và [profile]
Mục chia sẻ [netlogon] chứa các script mà client windows có thể dùng khi họ đăng nhập vào domain. Mục chia sẻ [profile] lưu giữ các cài đặt liên quan đến nhìn và cảm nhận của windows để người dùng có cùng cài đặt không cần biết đăng nhập vào máy tính Windows nào. Mục chia sẻ [profiles] lưu trữ những thứ như favorite và icon của desktop.
Khi bạn hoàn tất file smb.conf của bạn sẽ giống như thế này:
[netlogon]
path = /home/samba/netlogon
guest ok = Yes
[profiles]
path = /home/samba/profiles
read only = No
create mask = 0600
directory mask = 0700
Đây là cách thực hiện.
1. Click vào nút Share.
2. Tạo một chia sẻ [netlogon]
3. Thay đổi đường dẫn và cài đặt guest ok.
4. Click vào nút Commit Change
5. Tạo một mục chia sẻ [profile]
6. Thay đổi đường dẫn, mask và cài đặt chỉ đọc. Cài đặt mask cho phép chỉ những chủ của subdirectory netlogon có thể thay đổi nội dung của nó.
7. Click vào nút Commit Changes.
Nhớ tạo những directory chia sẻ từ những dòng lệnh sau.
[root@itnews tmp]# mkdir -p /home/samba/netlogon
[root@itnews tmp]# mkdir -p /home/samba/profile
[root@itnews tmp]# chmod -R 0755 /home/samba
Mục chia sẻ [printers]
Samba có những chia sẻ đặc biệt cho máy in, và chúng được cấu hình trong mục [printer] của SWAT. Cũng có một chia sẻ dưới [printer] gọi là printers giúp điều khiển những cài đặt máy in thông thường. Chia sẻ máy in luôn có những thông số để in được cài đặt là yes. Mục chia sẻ mặc định smb.conf [printers] giống như thế này:
[printers]
comment = All Printers
path = /var/spool/samba
printable = Yes
browseable = No
Chia sẻ cho những nhóm người dùng cụ thể
File mặc định smb.conf Samba Version 3 bạn save ở đầu bài tập này có rất nhiều mẫu khác nhau mà bạn có thể dùng và áp dụng cho môi trường cụ thể của bạn.
Bạn có thể tìm thấy các bước để tạo một directory chia sẻ đơn giản cho người dùng ở nhà trong chương 11, "Sharing Resources with Samba"
Môi trường tại nhà
Mặc định, người dùng root là các quản trị Samba, và SWAT yêu cầu bạn dùng password root Linux. May mắn là bạn có thể thêm workstations cho các domain Windows bằng cách tạo một password root Samba xác định. Điều này thực hiện dùng lệnh smbpasswd.
[root@itnews tmp]# /usr/bin/smbpasswd -a root password
Chú ý: hãy nhớ rằng đăng nhập Linux thông thường qua console, Telnet hay SSH yêu cầu lệnh smbpasswd Linux. Domain đăng nhập Samba dùng password smbpasswd. Password Samba được giữ ví dụ ở file samba/smbasswd.
Môi trường tập thể
Trong môi trường làm việc tập thể công ty, bạn có thể cần hơn một người để quản trị Samba, mỗi người với username của riêng họ. Cách làm như sau:
1. Tạo một nhóm người dùng Linux, như là sysadmin với lệnh groupadd.
2. Dùng SWAT để update file smb.conf của bạn để nhóm sysadmin được liệt kê vào thông số cài đặt [global]
domain admin group = @sysadmin
admin users = @sysadmin
printer admin = @sysadmin
3. Tạo những người dùng Linux cá nhân là một phần của nhóm này.
4. Dùng lệnh smbpasswd để tạo password Samba cho Domain đăng nhập cho nhóm này. Vì lý do bảo mật password này có thể khác với password Linux dùng để đăng nhập vào hệ thống từ console, thông qua telnet hay ssh (hãy nhớ rằng password Linux thay đổi với lệnh smbpasswd)
Thêm người dùng vào Linux
Đầu tiên, quá trình thêm người dùng vào Linux cũng rất bình thường. Password sẽ không cần thiết trừ khi bạn muốn người dùng đăng nhập vào server Samba thông qua telnet hay ssh.
Tạo user
Để tạo user, dùng lệnh sau
[root@itnews tmp]# useradd -g 100 peter
Cho chúng password Linux
Cho chúng password Linux là cần thiết nếu người dùng cần đăng nhập vào server Samba trực tiếp. Nếu như vậy, dùng cách sau:
[root@itnews tmp]# passwd peter
Changing password for user peter.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
[root@itnews tmp]#
Map người dùng Linux với một smbpassword
Tiếp theo bạn cần tạo password đăng nhập domain cho người dùng
[root@itnews tmp]# /usr/bin/smbpasswd -a username password
Switch -a thêm người dùng vào file ví dụ smbpassword.
Dùng password chung sau đó để người dùng thay đổi chúng ngay lập tức từ workstation như bình thường. Hãy nhớ rằng smbpasswd lấy các password đăng nhập Windows Domain cho một người dùng, cái này khác với password đăng nhập Linux để đăng nhập vào Samba box.

1 nhận xét: