Tìm hiểu và cài đặt Samba (phần 2)

File cấu hình Samba
>> Tìm hiểu và cài đặt Samba (phần 1) 

File smb.conf là file cấu hình chính bạn sẽ cần chỉnh sửa. Nó được chia làm 5 phần chính, như trong 10-1 mô tả
samba-2

Bảng 10-1: Định dạng file - smb.conf

Bạn có thể chỉnh sửa file này bằng tay, hay đơn giản là qua giao diện web SWAT của Samba.
SWAT làm Samba đơn giản hơn
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 đỡ. Hình 10-1 là màn hình đăng nhập chính của SWAT.
Swat-main
Hình 10-1 Samba SWAT Main Menu

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
}
Định dạng của file cũng khá dễ hiểu, đặc biệt là chỉ cần quan tâm 2 mục
• 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" như chúng ta có thể thấy sau
• 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.
Đ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 người dùng stunnel
Bạn có thể tạo một người dùng stunnel thông qua lệnh useradd:
[root@itnews tmp]# useradd stunnel
Tạo Certificates
Ví dụ từ stunnel directory và tạo một chứng nhận mã hoá chủ chốt dùng lệnh make. Để nguyên tất cả các mặc định khi được nhắc nhở, nhưng đảm bảo là bạn dùng địa chỉ IP của server khi được nhắc cho Common Name của server hay hostname.
[root@itnews tmp]# cd /etc/stunnel
[root@itnews stunnel]# make stunnel.pem
...
Common Name (eg, tên của bạn hay hostname của server your name or your server's hostname) []: 172.16.1.200
...
[root@itnews stunnel]#
Chú ý: Kết quả chứng nhận chỉ có giá trị 365 ngày. Hãy nhớ lặp lại việc này vào năm sau.
Thay đổi chứng nhận cho phép file
Chứng nhận chỉ có thể đọc được bởi user root hay stunnel. Dùng lệnh chmod và lệnh chgrp để làm điều này
[root@itnews stunnel]# chmod 640 stunnel.pem
[root@itnews stunnel]# chgrp stunnel stunnel.pem
[root@itnews stunnel]# ll
-rw-r----- 1 root stunnel 1991 Jul 31 21:50 stunnel.pem
[root@itnews stunnel]#
Tạo một file cấu hình stunnel/stunnel.conf
Bạn có thể cấu hình ứng dụng stunnel để:
• Chặn traffic SSL mã hoá nhận ở bất kì cổng TCP nào
• Giải mã traffic này
• Đưa những dữ liệu chưa mã hoá đến bất kì ứng dụng nào nằm trên một cổng khác.
Ví dụ, bạn có thể cấu hình file stunnel/stunnel.conf để chặn traffic SSL trên cổng SWAT 901 và đưa nó giải mã đến một deamon SWAT chạy trên cổng 902. Đây là ví dụ:
# Configure stunnel to run as user "stunnel" placing temporary
# files in the /home/stunnel/ directory
chroot = /home/stunnel/
pid = /stunnel.pid
setuid = stunnel
setgid = stunnel

# Log all stunnel messages to /var/log/messages
debug = 7
output = /var/log/messages

# Define where the SSL certificates can be found.
client = no
cert = /etc/stunnel/stunnel.pem
key = /etc/stunnel/stunnel.pem
# Accept SSL connections on port 901 and funnel it to
# port 902 for swat.
[swat]
accept = 901
connect = 902
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
}
Disable SWAT trên file xinetd.d/swat
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
Chỉnh sửa các file dịch vụ để tạo cổng vào bảo mật SWAT
Daemon xinetd tìm kiếm các file dịch vụ cho các cổng và dịch vụ phù hợp với những cái được liệt kê trên mỗi file cấu hình trong ví dụ như xinetd.d directory. Nếu deamon không tìm được cái phù hợp nó sẽ từ chối file cấu hình.
Bây giờ chúng ta phải sửa các dịch vụ để tính cả file swat-stunnel mới như thế này.
swat-stunnel 902/tcp # Samba Web Administration Tool (Stunnel)
Active swat-stunnel
Bạn có thể khởi động ứng dụng swat-stunnel mới với lệnh chkconfig. Bạn cũng cần tắt swat trước khi sử dụng.
[root@itnews xinetd.d]# chkconfig swat off
[root@itnews xinetd.d]# chkconfig swat-stunnel on
Khởi động stunnel
Bây giờ bắt đầu stunnel để thực hiện mã hoá
[root@itnews xinetd.d]# stunnel

Chú ý: trong Fedora Core 2 bạn có thể gặp lỗi cryptonet khi bắt đầu stunnel như sau:
Unable to open "/dev/cryptonet"
Điều này gây ra do sự không tương thích với RPM hwcrypto dùng cho phần cứng, không phải mã hoá dựa trên phần mềm. Bạn cần gỡ bỏ hwcrypto để stunnel làm việc chính xác.
[root@itnews xinetd.d]# rpm -e hwcrypto
Sau đó bạn cần dừng stunnel, khởi động lại xinetd và khởi động lại stunnel. Sau đó, stunnel sẽ làm việc bình thường lại. Không may stunnel không có script startup trong directory và cần phải bỏ bằng tay dùng lệnh pkill.
[root@itnews xinetd.d]# pkill stunnel
[root@itnews xinetd.d]# stunnel
Khởi động stunnel vào lúc boot máy
Vì stunnel không có script startup, bạn cần thêm vào một reference vào chương trình stunnel trong file cục bộ của SWAT mã hoá để làm việc trên hệ thống của bạn. Cách dễ nhất để làm điều này là dùng lệnh sau và thêm vào output của nó đến file rc.local.
[root@itnews tmp]# which stunnel >> /etc/rc.local
Xác nhận nội dung của file rc.local bằng cách dùng lệnh cat. Cổng vào cho stunnel nên ở cuối.
[root@itnews tmp]# cat /etc/rc.local
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
touch /var/lock/subsys/local
/usr/sbin/stunnel
[root@itnews tmp]#
Kiểm tra SWAT bảo mật
Server Samba của bạn nên được nối với cả 2 cổng 901 và 902 như lệnh nestat-an ở sau. Server này sẽ chấp nhận kết nối từ xa chỉ trên cổng 901
[root@itnews xinetd.d]# netstat -an
...
...
tcp 0 0 0.0.0.0:901 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.:902 0.0.0.0:* LISTEN
...
...
[root@itnews xinetd.d]#
Kiểm tra đăng nhập bảo mật SWAT
Chỏ trình duyệt web của bạn đến server Samba để thực hiện kết nối HTTPS trên cổng 901. https://server-ip-address:901/
Bạn sẽ được nhắc về tên người dùng root và password. Sẽ có khoảng chờ từ 60 đến 75 giây cho mỗi lần đăng nhập.

Xử lý bảo mật SWAT
Thỉnh thoảng bạn sẽ gây nên lỗi trong file stunnel.conf nhưng thay đổi ở file này chỉ có hiệu lực sau khi stunnel được khởi động lại. Không may, không có script stunnel trong init.d directory để dừng lại dễ dàng và khởi động lại. Bạn phải dùng lệnh pkill để dừng nó và lệnh stunnel để khởi động nó lại.
[root@itnews tmp]# pkill stunnel ; stunnel
Hãy đảm bảo là sự cho phép file và quyền sở hữu trên file stunnel.pem đúng là SWAT luôn luôn off, nhưng swat-stunnel phải được on.
Bạn có thể xem phần, ""Simple Network Troubleshooting" để tách biệt vấn đề kết nối giữa clinet SWAT và server Samba trên cổng TCP 901 giữa những thứ khác.
Làm sao để SWAT thay đổi ngay lập tức
SWAT thay đổi ngay lập tức chức năng của Samba bất kì khi nào bạn công nhận thay đổi qua web GUI.
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.
samba-3
samba-4  
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.

ITNews