1/12/09

Triển khai hệ thống quản trị tập trung với LDAP

1. Giới thiệu
Trong tương lai không xa, phần mềm mã nguồn mở và miễn phí rất có thể sẽ trở thành một lựa chọn tất yếu đối với các tổ chức/doanh nghiệp. Với ưu điểm mã nguồn mở, dễ dàng mở rộng, hoạt động ổn định… lĩnh vực ứng dụng này đang ngày càng chứng tỏ tính khả dụng và hiệu quả của nó.
Hầu hết các tổ chức/doanh nghiệp đều cần đến một hệ thống mạng nội bộ để hỗ trợ xử lý công việc thường ngày, điều hành hoạt động, phối hợp làm việc…Bài viết sẽ hướng dẫn các bước xây dựng hệ thống mạng Ubuntu quản lý tập trung với LDAP, một giải pháp hoàn toàn có thể thay thế hệ thống mạng Microsoft Windows với Active Directory.
2. Yêu cầu hệ thống
Chúng ta sử dụng 03 máy tính với thông tin như sau:
Máy tính Ubuntu server:
Địa chỉ IP: 192.168.10.2
DNS server: 192.168.10.2
Tên máy: ubuntu-server
Máy tính Ubuntu desktop 01:
Địa chỉ IP: 192.168.10.12
DNS server: 192.168.10.2
Tên máy: ubuntu-desktop01
Máy tính Ubuntu desktop 02:
Địa chỉ IP: 192.168.10.14
DNS server: 192.168.10.2
Tên máy: ubuntu-desktop02
3. Cấu hình hệ thống
Trên máy ubuntu-server, chúng ta thực hiện:
Cài đặt và cấu hình DNS server với phần mềm BIND.
Domain name: tk5cn.com.vn
Bổ sung 02 Host (A) record tương ứng với 02 máy trạm Ubuntu vào DNS server:
ubuntu-desktop01.tk5cn.com.vn 192.168.10.12
ubuntu-desktop02.tk5cn.com.vn 192.168.10.14
Cài đặt và cấu hình LDAP server với phần mềm OpenLDAP.
Bổ sung 02 account tương ứng với 02 máy trạm Ubuntu vào LDAP server:
Account 01 - hungnn:********
Account 02 - hhdll:********
Các bước thực hiện lần lượt như sau:
4. Cài đặt và cấu hình LDAP server với phần mềm OpenLDAP
4.1. Cài đặt OpenLDAP
Phần mềm dùng để xây dựng LDAP server trên Ubuntu là OpenLDAP. Chúng ta sẽ cài đặt các phần mềm và tiện ích cần thiết để thiết lập LDAP server, bao gồm:
slapd (OpenLDAP Server - OpenLDAP standalone server): phần mềm này được dùng để tạo ra một standalone directory service và bao gồm cả slurpd replication server.
ldap-utils (OpenLDAP Utilities): gói này chứa các tiện ích dùng để truy cập LDAP server cục bộ hoặc từ xa (local or remote). ldap-utils cũng chứa tất cả các chương trình cần thiết (required client programs) để truy cập các LDAP server.
db4.2-util (Berkeley v4.2 Database Utility): gói này chứa các công cụ (tools) được dùng để thao tác (manipulating) với các cơ sở dữ liệu có định dạng là Berkeley v4.2 Database. Các bước thực hiện như sau:
Cập nhật danh mục phần mềm (package list) trên Ubuntu và cài đặt OpenLDAP:
hungnn@ubuntu-server:~$ sudo -i
[sudo] password for hungnn:
root@ubuntu-server:~#
root@ubuntu-server:~# aptitude update
root@ubuntu-server:~# apt-get install slapd
root@ubuntu-server:~# apt-get install ldap-utils
root@ubuntu-server:~# apt-get install db4.2-util
4.2. Cấu hình LDAP server
Chúng ta sẽ thao tác trên các file của OpenLDAP để cấu hình LDAP server. Các bước thực hiện như sau:
Sao chép dự phòng các file của OpenLDAP:
root@ubuntu-server:~# cp -R /etc/ldap /backup
Sử dụng tiện ích slappasswd để mã hóa mật khẩu admin và lưu chuỗi ký tự mã hóa vào cuối file /etc/ldap/slapd.conf:
root@ubuntu-server:~# slappasswd >> /etc/ldap/slapd.conf
New password:
Re-enter new password:
Cấu hình OpenLDAP:
Hiệu chỉnh file /etc/ldap/slapd.conf (file cấu hình chính của OpenLDAP) như sau:
root@ubuntu-server:~# vim /etc/ldap/slapd.conf
suffix “dc=tk5cn,dc=com,dc=vn”
rootdn “cn=admin,dc=tk5cn,dc=com,dc=vn”
# password này do tiện ích ldappasswd tạo ra.
rootpw {SSHA}AwiGYep3HmBbL5rQka4Bchd4g8ofhnXC
directory “/var/lib/ldap”
# Set change password permission
access to attrs=userPassword,shadowLastChange
by dn=“cn=admin,dc=tk5cn,dc=com,dc=vn” write
by anonymous auth
by self write
by * none
# Ensure read access to the base for things like
# supportedSASLMechanisms.
access to dn.base=“” by * read
# The admin dn has full write access, everyone else can
# read everything.
access to *
by dn=“cn=admin,dc=tk5cn,dc=com,dc=vn” write
by * read
Lưu ý: giữ lại những thiết lập mặc định của file /etc/ldap/slapd.conf không được đề cập ở trên.
Khởi chạy standalone LDAP server:
root@ubuntu-server:~# /etc/init.d/slapd start
Starting OpenLDAP: slapd
Đến bước này, LDAP server đã sẵn sàng. Để bắt đầu đưa server này vào hoạt động, chúng ta cần bổ sung các entry (thực thể - user, group, ou…) khởi tạo trên server. Bổ sung các initial entry (thực thể khởi tạo):
LDAP server có thể bổ sung các entry bằng câu lệnh hoặc từ các file có định dạng ldif (ldap directory interchange format). Dưới đây, chúng ta tạo ra file init.ldif và lưu vào thư mục /etc/ldap.
root@ubuntu-server:~# vim /etc/ldap/init.ldif
dn: dc=tk5cn,dc=com,dc=vn
objectClass: dcObject
objectClass: organizationalUnit
dc: tk5cn
ou: tk5cn.com.vn
dn: cn=admin,dc=tk5cn,dc=com,dc=vn
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
userPassword: {SSHA}AwiGYep3HmBbL5rQka4Bchd4g8ofhnXC
dn: ou=users,dc=tk5cn,dc=com,dc=vn
objectClass: organizationalUnit
ou: users
dn: ou=groups,dc=tk5cn,dc=com,dc=vn
objectClass: organizationalUnit
ou: groups
dn: cn=ktm,ou=groups,dc=tk5cn,dc=com,dc=vn
objectClass: posixGroup
cn: ktm
gidNumber: 5000
Lưu ý: UID/GID trong bài viết này được thiết lập theo qui định sau:
System account: UID < 500
Real People in LDAP: 499 < UID < 10.000
Local users, groups (not in LDAP): UID > 10.000
Thực hiện các bước như sau để bổ sung entry vào LDAP server:
Dừng dịch vụ LDAP:
root@ubuntu-server:~# /etc/init.d/slapd stop
Xóa nội dung đã tự động tạo ra trong khi cài đặt OpenLDAP:
root@ubuntu-server:~# rm -rf /var/lib/ldap/*
Bổ sung entry mới:
root@ubuntu-server:~# slapadd -l init.ldif
Hiệu chỉnh quyền trên cơ sở dữ liệu:
root@ubuntu-server:~# chown -R openldap:openldap /var/lib/ldap
Khởi chạy dịch vụ LDAP:
root@ubuntu-server:~# /etc/init.d/slapd start
Kiểm tra các entry vừa bổ sung:
Chúng ta có thể kiểm tra các entry vừa mới bổ sung vào bằng cách sử dụng tiện ích ldapsearch:
root@ubuntu-server:~# ldapsearch –xLLL –b “dc=tk5cn,dc=com,dc=vn”
Trong đó:
-x: không sử dụng phương thức thẩm định SASL (mặc định).
-LLL: vô hiệu hoá việc in thông tin LDIF.
-b: tìm kiếm cơ bản.
Nếu các thao tác bổ sung entry vào LDAP server được thực hiện một cách chính xác, tiện ích ldapsearch sẽ hiển thị thông tin về các entry này tương tự như nội dung đã tạo trong file /etc/init.ldif.
Với các bước cấu hình như trên, chúng ta đã hoàn thành thao tác cài đặt và cấu hình LDAP server trên máy tính ubuntu-server. Tiếp theo, chúng ta tiến hành các thao tác cài đặt và cấu hình các hệ thống máy trạm Ubuntu.
4.3. Cấu hình ubuntu-desktop01
Để máy trạm đăng nhập với tài khoản được tạo ra trên LDAP server, chúng ta cần thực hiện các bước cấu hình trên các file PAM (Pluggable Authentication Modules) và NSSWITCH (Name Service Switch) trong Ubuntu. Các bước thực hiện như sau:
4.3.1. Cài đặt LDAP client
Các phần mềm và tiện ích cần phải cài đặt trên máy trạm Ubuntu là:
libpam-ldap: thư viện dùng để cho phép xác thực (allow for authentication) qua LDAP.
libnss-ldap: thư viện dùng để cho phép truy vấn thông tin về các session (allow session information) qua LDAP.
nss-updatedb: tiện ích dùng để tạo ra một cơ sở dữ liệu tài khoản cục bộ (local database of the user names). Cơ sở dữ liệu này được dùng để khắc phục trường hợp mạng bị giảm tốc độ truy cập (network slowdown), hoặc bị ngưng hoạt động vì sự cố (outage). Các bước thực hiện như sau:
Cập nhật danh mục phần mềm (package list) trên Ubuntu và cài đặt libpam-ldap, libnss-ldap và nss-updatedb:
hhdll@ubuntu-desktop01:~$ sudo -i
[sudo] password for hhdll:
root@ubuntu-desktop01:~#
root@ubuntu-desktop01:~# aptitude update
root@ubuntu-desktop01:~# apt-get install libpam-ldap
Khi cài đặt thư viện này, chúng ta cần cung cấp các thông số:
LDAP Server Uniform Resource Identifier: ldap://192.168.10.2
Distinguished name of the search base: dc=tk5cn,dc=com,dc=vn
LDAP version to use: 3
LDAP account for root: cn=admin,dc=tk5cn,dc=com,dc=vn
LDAP root account password: ******
root@ubuntu-desktop01:~# apt-get install libnss-ldap
Khi cài đặt thư viện này, chúng ta cần cung cấp các thông số:
LDAP account for root: cn=admin,dc=tk5cn,dc=com,dc=vn
LDAP root account password: ******
Chú ý: một hộp thoại xuất hiện, thông báo rằng hệ thống không thể quản lý file nsswitch.conf một cách tự động. Chúng ta nhấn nút OK và sẽ thay đổi cấu hình của file này ở phần sau.
root@ubuntu-desktop01:~# apt-get install nss-updatedb
4.3.2. Cấu hình LDAP client
Chúng ta sẽ thao tác trên các file của PAM và NSSWITCH để cấu hình LDAP client. Các bước thực hiện như sau:
Sao chép dự phòng các file của PAM và NSSWITCH:
root@ubuntu-desktop01:~# mkdir /backup
root@ubuntu-desktop01:~# cp /etc/nsswitch.conf /backup
root@ubuntu-desktop01:~# cp -R /etc/pam /backup
Cấu hình NSSWITCH:
Hiệu chỉnh file /etc/nsswitch.conf (file cấu hình chính của NSSWITCH). File này xác định các name service mà hệ thống sử dụng để truy vấn thông tin (search for information). File này cũng chỉ ra thứ thự của các name service để hệ thống ưu tiên tìm kiếm theo một thứ tự đã được lập ra.
root@ubuntu-desktop01:~# vim /etc/nsswitch.conf
passwd: files ldap
group: files ldap
Kiểm tra cấu hình vừa thiết lập bằng cách thực hiện 02 lệnh:
root@ubuntu-desktop01:~# getent passwd
root@ubuntu-desktop01:~# getent group
02 lệnh trên sẽ liệt kê mật khẩu và các nhóm trên Ubuntu desktop và trên LDAP server.
Cấu hình PAM:
Có 04 file cấu hình của PAM liên quan đến LDAP:
/etc/pam.d/common-account
/etc/pam.d/common-auth
/etc/pam.d/common-password
/etc/pam.d/common-session
Hiệu chỉnh các file này theo các bước như sau:
root@ubuntu-desktop01:~# cd /etc/pam.d
root@ubuntu-desktop01:/etc/pam.d# vim ./common-account
account sufficient pam_ldap.so
account required pam_unix.so
root@ubuntu-desktop01:/etc/pam.d# vim ./common-auth
auth sufficient pam_ldap.so
auth required pam_unix.so nullok_secure use_first_pass
root@ubuntu-desktop01:/etc/pam.d# vim ./common-password
password sufficient pam_ldap.so
password required pam_unix.so nullok obscure min=4
max=8 md5
root@ubuntu-desktop01:/etc/pam.d# vim ./common-session
session required pam_unix.so
session required pam_mkhomedir.so skel=/etc/skel/
session optional pam_ldap.so
session optional pam_foreground.so
Tạo thư mục dùng để lưu trữ các thư mục home tương ứng với mỗi tài khoản đăng nhập vào máy trạm:
root@ubuntu-desktop01:~# mkdir /home/users
root@ubuntu-desktop01:~# mkdir /home/users/ktm
Chú ý: nếu không thực hiện bước này sau khi đã tạo tài khoản trên LDAP, chúng ta sẽ gặp thông báo lỗi trong quá trình đăng nhập vào máy trạm Ubuntu.
“Authentication failed”. Nếu xem trong file /var/log/auth.log, chúng ta sẽ thấy nguyên nhân của lỗi: “Unable to create directory /home/users/ktm/hungnn”; “couldn’t open session for hungnn”.
4.3.3. Tạo tài khoản đăng nhập với phpLDAPadmin
Để đơn giản trong việc quản lý OpenLDAP server, chúng ta sử dụng phpLDAPadmin. Đây là ứng dụng web được sử dụng để thao tác với OpenLDAP server.
Các bước sau đây sẽ giúp chúng ta cài đặt và sử dụng phpLDAPadmin trên máy trạm Ubuntu để quản lý LDAP server.
Cài đặt phpLDAPadmin với lệnh:
root@ubuntu-desktop01:~# apt-get install phpldapadmin
Cấu hình phpLDAPadmin:
root@ubuntu-desktop01:~# cp -R /usr/share/phpldapadmin /var/www/myphpldapadmin
root@ubuntu-desktop01:~# cp /etc/phpldapadmin/config.php
/etc/phpldapadmin/first.config.php
root@ubuntu-desktop01:~# rm /var/www.myphpldapadmin/config/config.php
root@ubuntu-desktop01:~# ln –s /etc/phpldapadmin/first.config.php /var/www/myphpldapadmin/config/config.php
root@ubuntu-desktop01:~# chmod +r /etc/phpldapadmin/first.config.php
Truy cập phpLDAPadmin:
Từ cửa sổ trình duyệt, nhập địa chỉ http://localhost/myphpldapadmin.

Nhấn vào nút Login ở panel bên trái, nhập thông tin tài khoản root:
Login DN: cn=admin,dc=tk5cn,dc=com,dc=vn
Password: ******
Nhấn nút Authenticate để đăng nhập.

Nếu đăng nhập vào LDAP server thành công, hệ thống sẽ thông báo:

Tạo tài khoản trên phpLDAPadmin:
Kích vào mục ou=users, chọn Create new entry here, chọn User Account. Nhấn nút Process>>.

Điền thông tin liên quan đến tài khoản và nhấn nút Process>>.

Xem lại thông tin. Sau khi đã chắc chắn, nhấn nút Create Object.

Sau khi tạo xong, màn hình hiển thị thông tin của tài khoản vừa tạo sẽ xuất hiện.

Nhấn nút Add new attribute để thêm thuộc tính LoginShell.

Nhấn nút Add để hoàn thành thao tác tạo và hiệu chỉnh tài khoản. Đến bước này, chúng ta nhấn nút Logout và bắt đầu kiểm tra khả năng hoạt động của hệ thống LDAP trên Ubuntu.
5. Kiểm tra hệ thống
Để kiểm tra hệ thống sau khi hoàn thành các bước cấu hình, từ máy trạm ubuntu, chúng ta đăng nhập bằng tài khoản được tạo ra trên LDAP server. Trong trường hợp của mình, trên máy ubuntu-desktop01, sau khi hệ thống khởi động, chúng ta nhập:
Username: hungnn
Password: ******
Hệ thống sẽ thông báo: “Creating directory ‘/home/users/ktm/hungnn’”, chúng ta nhấn nút OK để hoàn thành thao tác đăng nhập.

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.

Cài đặt và cấu hình NFS

NFS (Name File System)
1. Tổng quan về quá trình hoạt động của NFS
NFS là một cơ chế hỗ trợ việc chia sẻ tài nguyên giữa các máy chủ Linux. NFS được phát triển để cho phép hệ thống nội bộ có thể truy xuất một thư mục trên hệ thống máy khác bằng cách gắn (mount) nó vào hệ thống tập tin cục bộ, người quan trị trên hệ thống NFS Server chỉ cần xuất (export) các thư mục để cung cấp cho các NFS Client sử dụng
1.1. Một số luật chung khi cấu hình NFS
Export các thư mục con của thư mục “/”
Không xuất (export) những thư mục con của thư mục cha đã được export trước đó
Chỉ được xuất (export) hệ thông tập tin cục bộ
1.2. Một số khái niệm chính về NFS
Virtual Fiel System (VFS) interface: Là một kỹ thuật tự động chuyển hướng tất cả các truy xuất tới NFS – mount file một các thông suốt trên server từ xa (Remote Server). VFS giúp biến đổi yêu cầu định dạng file phù hợp trên NFS Server
Stateless Operation: Là những chương trình đọc và ghi file trên hệ thống tập tin cục bộ dựa vào hệ thống để theo dõi và ghi nhận dữ liệu thông qua con trỏ địa chỉ pointer. Khi NFS Server không còn hoạt động (hoặc bị lỗi) thì NFS Client sẽ thiết lập lại giá trị cho pointer là 0 và NFS client có thể phát hiện (detect) khi NFS server hoạt động trở lại
Caching: Tồn tại trên NFS client để lưu lại một số dữ liệu cần thiết vào hệ thống cục bộ, điều này làm giảm truy xuất tới NFS server
NFS Backgrount Mouting: NFS client sử dụng RPC để gắn file (mount file) trên server ở xa (Remote server) nếu remote server không tồn tại thì ta có thể dùng lệnh mount đặt tuỳ chọn “bg” để chỉ định khoảng thời gian trong vòng một tuần
Hard and Soft Mounts: Hard mount có nghĩa rằng quá trình mount file luôn được tiến hành trên foregrount hoặc background để đảm bảo tính thống nhất dữ liệu. Soft mount là quá trình sử dụng RPC để mount file remote system, một khi RPC bị lỗi và lặp lại nhiều lần dẫn tới quá trình hoạt động của NFS bị lỗi làm cho sự đồng bộ dữ liệu không được đảm bảo
NFS versions: NFS hiện tại có 3 phiên bản là v.2, v.3 và v.4; đối với v.2 kích thước hỗ trợ tới 4GB, bị giới hạn 8Kb trong mỗi lần đọc và ghi dữ liệu. NFS v.3 hỗ trợ tới 264 – 1bytes, có khả năng điều chỉnh kích thước việc đọc/ghi dữ liệu giữa NFS client và NFS server. NFS v.4 tương tự như v.3 nhưng được tích hợp thêm một số tính năng như khoá file (lock file) và gắn file (mount file) được tích hợp vào NFS daemon và được hoạt động độc lập.
Các NFS daemons quan trọng như: Portmap là daemon quan trọng quản lý kết nối cho ứng dụng, port map lắng nghe trên cổng 111; ngoài ra còn có NFS daemon, NFS lock daemon, NETFS daemon.
2. Cài đặt NFS
Để cài đặt NFS bạn mở Terminal và gõ vào dòng lệnh sau:
$ sudo apt-get install portmap nfs-kernel-server nfs-comon
Chia sẻ thư mục bằng cách bổ sung các dòng như sau vào file /etc/exports. Mỗi dòng tương ứng với một thư mục chia sẻ:
/hungnn *(ro, no_subtree_check)
/fullshare *(rw, no_subtree_check)
Trong đó:/hungnn, /fullshare là các thư mục chia sẻ. Dấu (*) cho phép mọi thành viên trong cùng mạng LAN đều có quyền truy cập.
ro (read – only): Cấp quyền chỉ đọc cho các thành viên truy cập
rw (read – write): Cấp quyền đọc và ghi cho các thành viên truy cập
no_subtree_check: bỏ qua thao tác kiểm tra một file bất kỳ (được máy trạm truy cập) có nằm trên một phân vùng hay toàn bộ ổ đĩa trên NFS server.
Để chỉ định rõ thư mục chia sẻ đến một số đối tượng cụ thể, bạn thay đổi dấu sao (*) bằng địa chỉ IP hoặc tên máy.
Ví dụ:
/hungnn 192.168.1.14 (ro) (chỉ client có địa chỉ IP này mới được truy xuất)
/fullshare 192.168.1.0/255.255.255.0(rw) (Chia sẻ cho toàn bộ mạng này)
Khởi động NFS server bằng lệnh:
root@hungnn:~# sudo /etc/init.d/nfs-kernel-server start
Chú ý: nếu thay đổi file /etc/exports trên một NFS server đang hoạt động (running), bạn cần thực hiện lệnh sau để những thay đổi có hiệu lực:
root@hungnn:~# sudo exportfs –ra
Đảm bảo mạng đã hoạt động tốt bằng cách thực hiện các lệnh ifconfig và ping để kiểm tra. Kết nối tới thư mục đã chia sẻ bằng lệnh:
root@hungnn:~# sudo mount 192.168.10.14:/hungnn /home/hungnn
root@hungnn:~# sudo mount 192.168.10.14:/fullshare /home/fullshare
Chú ý: các thư mục /home/hungnn, /home/fullshare nên rỗng (empty) và phải được tạo trước ở máy NFS server.
Bên cạnh thao tác kết nối bằng dòng lệnh vừa nêu, bạn cũng có thể truy cập đến thư mục đã chia sẻ trong khi hệ thống khởi động (boot time) bằng cách bổ sung các dòng vào file /etc/fstab. Để kết nối tự động đến hai thư mục đã chia sẻ ở trên, bổ sung hai dòng sau vào file /etc/fstab:
192.168.1.14:/hungnn /home/hungnn nfs rw 0 0
192.168.1.14:/fullshare /home/fullshare nfs rw 0 0
Trong đó:
rw: Kết nối đến thư mục chia sẻ với khả năng đọc và ghi. Tuy nhiên, nếu thư mục chia sẻ trên NFS server với quyền chỉ đọc, bạn cũng chỉ có được quyền chỉ đọc tương ứng.
Giá trị 0 thứ nhất: Bỏ qua hoạt động của tiện ích Backup Dump File Sytem.
Giá trị 0 thứ hai: Bỏ qua hoạt động của tiện ích Check File System.

25/11/09

Proxy Server

PROXY SERVER

1. Giới thiệu về Firewall

Internet là một hệ thống mở, đó là một điểm mạnh nhưng cũng là một điểm yếu của nó. Chính điểm yếu này làm giảm khả năng bảo mật thông tin nội bộ của hệ thống. Nếu chỉ là mạng LAN đơn giản thì không có vấn đề gì; nhưng một khi đã kết nối Internet thì phát sinh một vấn đề hết sức quan trọng trong việc quản lý thông tin, tài nguyên quý giá nhằm chống việc truy nhập trái phép từ bên ngoài nhưng lại vẫn đảm bảo cho người được uỷ nhiệm sử dụng những thông tin mà họ được cấp quyền, và phương pháp chống rò rỉ thông tin trên các mạng công cộng (Public Data Comunication Network). Yêu cầu xây dựng hệ thống bảo mật thông tin ngày càng quan trọng bởi những lý do sau:

Các đối thủ cạnh tranh luôn tìm mọi cách để lấy được thông tin của nhau

Các hacker luôn tìm cách xâm nhập và phá hoại hệ thống mạng nội bộ

Thuật ngữ Firewall có nguồn gốc từ một kỹ thuật thiết kế trong xây dựng nhằm ngăn chặn, hạn chế hoả hoạn. Trong công nghệ thông tin, Firewall là một kỹ thuật được tích hợp vào hệ thống mạng nhằm ngăn chặn những truy cập trái phép vào hệ thống của một số thông tin khác không mong muốn. Cụ thể hơn, có thể hiểu Firewall là một cơ chế bảo vệ giữa mạng tin tưởng (trusted network) ví dụ như mạng Intranet và mạng không tin tưởng mà thông thường là Internet. Về mặt vật lý, firewall bao gồm một hoặc nhiều hệ thống máy chủ kết nối với bộ định tuyến (router) hoặc có chức năng như router. Về mặt chức năng thì firewall có nhiệm vụ sau:

Tất cả các trao đổi dữ liệu từ ngoài vào trong và trong ra ngoài đều phải thông qua firewall

Chỉ có những trao đổi được cho phép bởi hệ thống mạng nội bộ (trusted network) mới được quyền lưu thông qua firewall

Các phần mềm quản lý an ninh chạy trên hệ thống bao gồm:

Quản lý xác thực (Authentication): Có chức năng ngăn cản truy cập trái phép vào hệ thống mạng nội bộ. Mỗi người sử dụng muốn truy cập hợp lệ cần phải có một tài khoản (account) bao gồm tên người dùng (username) và mật khẩu (password)

Quản lý cấp quyền (Authorization): Cho phép xác định quyền sử dụng tài nguyên cũng như các nguồn thông tin trên mạng theo từng người, nhóm người sử dụng.

Quản lý kế toán (Accouting Management): Cho phép ghi nhận tất cả các sự kiện xảy ra liên quan tới việc truy cập và sử dụng tài nguyên trên mạng theo từng thời điểm (ngày/giờ) và thời gian truy cập đối với vùng tài nguyên đã được sử dụng, sửa đổi bổ xung.

Bước đầu tiên trong quá trình cấu hình firewall là hoạch định ra những chính sách sẽ áp dụng như:

Những dịch vụ nào cần ngăn chặn

Những host nào cần phục vụ

Mỗi nhóm cần truy xuất những dịch vụ nào

Mỗi dịch vụ sẽ được bảo vệ như thế nào

2. Các loại firewall và cách thức hoạt động

2.1. Packet filtering (Bộ lọc gói tin)

Loại firewall này thực hiện việc kiểm tra số nhận dạng địa chỉ của các packet để từ đó cấp cho chúng quyền lưu thông hay ngăn chặn chúng. Các thông số có thể lọc thông qua packet như:

Địa chỉ IP nơi xuất pháp (Source IP Address)

Địa chỉ IP nơi nhận (Destination IP Address)

Cổng TCP nơi xuất phát (Source TCP Port)

Cổng TCP nơi nhận (Destination TCP Portl)

Loại firewall này cho phép kiểm soát được kết nối vào máy chủ, khoá việc truy cập vào hệ thống mạng nội bộ từ địa chỉ không được phép. Ngoài ra nó còn kiểm soát hiệu xuất sử dụng những dịch vụ đang hoạt động trên mạng nội bộ thông qua cổng TCP tương ứng.

2.2. Application gateway

Đây là loại firewall được thiết kế để tăng cường khả năng kiểm soát các loại dịch vụ dựa trên những giao thức được cho phép truy cập hệ thống mạng. Cơ chế hoạt động của nó dựa trên mô hình Proxy Service. Trong mô hình này nhất thiết phải tồn tại một hay nhiều máy tính đóng vai trò làm Proxy Server. Một ứng dụng trong mạng nội bộ yêu cầu một đối tượng nào đó trên Internet, proxy server sẽ nhận yêu cầu này và chuyển tới server trên Internet. Khi server trên Internet trả lời lại thì proxy server sẽ nhận và chuyển chở lại cho ứng dụng đã yêu cầu. Cơ chế lọc packet filtering kết hợp với cơ chế “đại diện” của application gateway cung cấp một khả năng an toàn và uyển chuyển hơn, đặc biệt khi kiểm soát các truy cập từ bên ngoài Internet vào hệ thống mạng nội bộ

3. Squid Proxy

3.1. Giới thiệu về Squid

Squid là một chương trình Internet proxy – caching có vai trò tiếp nhận các yêu cầu từ các client và chuyển tiếp cho các Internet Server thích hợp đồng thời nó sẽ lưu lên đĩa cứng những dữ liệu được trả về từ Internet server – gọi là caching. Chương trình này dùng để cấu hình Proxy server. Vì vậy ưu điểm của Squid là khi một dữ liệu được yêu cầu nhiều lần thì proxy server sẽ lấy thông tin từ cache và trả về cho client, điều này làm cho tốc độ truy xuất Internet nhanh hơn và tiết kiệm băng thông. Squid dựa trên những đặc tả của giao thức http nên nó chỉ là một http proxy. Do đó squid chỉ có thể là một proxy cho những chương trình mà chúng ta dùng giao thức này để truy cập Internet.

3.2. Những giao thức hỗ trợ trên Squid

Squid proxy hỗ trợ những giao thức sau:

Proxying and caching of HTTP, FTP, and other URLs

Proxying of SSL

Cache hierarchies

ICP, HTCP, CARP, Cache Digests

Transparent caching

WCCP – Web Cache Comunication Protocol (Squid v2.3 and above)

Extensive access control

HTTP server acceleration

SNMP

Caches of DNS lookups

3.3. Trao đổi Cache

Squid có khả năng chia sẻ dữ liệu giữa các cache với nhau. Việc chia sẻ này mang lại những lợi ích sau:

User base: Nếu số lượng client truy cập internet thông qua proxy càng nhiều thì khả năng một ứng dụng nào đó được yêu cầu hai lần càng cao

Giảm tải xuất cho đường truyền (Reduce load)

Disk space: Nếu bạn chuyển cân bằng giữa các cache với nhau sẽ tránh được việc sao lại những giữ liệu đã được sao lưu. Do đó dung lượng đĩa cứng dành cho việc lưu cache sẽ giảm xuống

4. Cài đặt Squid Proxy

4.1. Các thư mục mặc định của Squid

/usr/local/squid: Thư mục cài đặt squid

/ usr/local/squid/bind: Thư mục lưu binary squid và các tool được hỗ trợ

/ usr/local/squid/cache: Thư mục lưu dữ liệu đã được cache. Đây là thư mục mặc định và bạn hoàn toàn có thể thay đổi vị trí thư mục này.

/ usr/local/squid/etc: Thư mục lưu trữ tập tin cấu hình của squid

/ usr/local/squid/src: Thư mục lưu source code của squid được download từ internet

4.2. Cài đặt squid

Để cài đặt squid bạn mở Terminal và gõ vào lệnh

sudo apt-get install squid

4.3. Tập tin cấu hình /etc/squid/squid.conf

Tất cả những điều chỉnh đối với squid proxy server được tạo trong /etc/squid/squid.conf. Để chạy squid lần đầu tiên thì không cần phải thay đổi nội dung của file này nhưng mặc địch tất cả các yêu cầu của client bên ngoài sẽ bị từ chối theo mặc định. Nó chỉ có localhost. Cổng mặc địch là 3128, sau khi cài đặt thì /etc/squid/squid.conf cung cấp thông tin chi tiết về các tuỳ chọn. Gần như tất cả các khoá đều bắt đầu với “#” (các dòng chú thích). Các đặc tả có liên quan có thể tìm thấy ở cuối dòng. Các giá trị đầu ra hầu hết là các giá trị tương quan với giá trị mặc định do vậy loại bỏ dấu chú thích mà không thay đổi các tham số thì sẽ có một ít thay đổi trong hầu hết các trường hợp

4.4. Cấu hình các tuỳ chọn cơ bản

http_port: Cấu hình port mà squid sẽ lắng nghe những yêu cầu được gửi đến. Cú pháp: http_port

Mặc định: http_port 3128. Thông thường ta đổi cổng này thành 8080

Cache_perr: Nếu proxy không kết nối trực tiếp tới internet hoặc nằm sau một firewll thì ta phải cấu hình proxy này truy vấn đến proxy khác bằng tham số cache_peer.

Cú pháp khai báo: cache_peer > trong đó:

: Là tên hay địa chỉ IP của proxy truy vấn đến

= “parent”, “sibling” hay “multicast”

: Là port mà được thiết lập bởi parent proxy thường là 8080

: Là port mà icp chạy

Ví dụ: Để truy vấn đến proxy của ISP

Cache_peer www.viettel.com.vn parent 8080 8082

Ngoài ra trong cùng một mạng nếu có nhiều proxy thì có thể cấu hình để các proxy này truy vấn lẫn nhau như sau:

Cache_peer proxy1.viettel.com.vn sibling 8080 8082

Cache_peer proxy2.viettel.com.vn sibling 8080 8082

Sibling có nghĩa là ngang hàng. Những tuỳ chọn ảnh hưởng tới cache là

Cache_mem: Khoá này định nghĩa dung lượng bộ nhớ dùng cho cache (cache_mem 8MB)

Cache_dir: Cấu hình thư mục lưu trữ dữ liệu được cache

Cache_dir /usr/local/squid/cache 100 16 256

có nghĩa là thư mục cache nằm ở /usr/local/squid/cache có dung lượng là 100MB có 16 thư mục con trong đó mỗi thư mục con có 256 thư mục con nữa. Nếu có vài đĩa chia sẻ cache thì có thể thêm vào dòng cache_dir như sau:

cache_access_log <đường dẫn tới thư mục log>

cache_access_log /var/log/squid/access.log

cache_log <đường dẫn tới thư mục log>

cache_log /var/log/squid/cache.log

cache_store_log <đường dẫn tới thư mục log>

cache_store_log /var/log/squid/store.log

Người dùng và nhóm có thể thay đổ squid. Cache_efactive_user, cache_efactive_group

Cache_efactive_user chi

Cache_efactive_group chi

access control list và access control operator

4.5. Access control list

Bạn có thể dụng access control list để ngăn chặn, giới hạn việc truy xuất dựa vào tên miền, địa chỉ IP đích (IP máy hoặc mạng). Mặc định squid từ chối phục vụ tất cả vì vậy phải cấu hình tham số này. Định nghĩa acces list dùng thẻ alc

Cú pháp: acl <> ...

acl <> ...

acl src <địa chỉ IP máy client>/

acl src <địa chỉ IP máy client 1>-<địa chỉ IP máy

client n>/

acl srcdomain

acl dst <địa chỉ ip> /

acl dstdomain

acl port ..

acl port -

acl proto

acl method [GET] [POST]

Sử dụng acl với các thẻ điều khiển

Thẻ điều khiển truy xuất HTTP

http_access allow/deny [!]

Thẻ điều khiển truy xuất cache_peer

Cache_peer_access cache host allow/deny [!]

Ví dụ chỉ cho phép mạng 172.16.1.0/24 được sử dụng proxy server bằng từ khoá src trong acl:

acl MyNetwork src 172.16.1.0/255.255.255.0

http_access allow MyNetwork

http_access deny all

Cấm các máy truy xuất tới site www.facebook.com

Acl BadDomain srcdomain www.facebook.com

http_access deny BadDomain

http_access deny all

Nếu danh sách site cấm truy cập quá dài thì có thể lưu chúng vào tập tin văn bản. Nội dung của danh sách này là các địa chỉ mà ta cấm. Mỗi địa chỉ ghi trên một dòng

[root@home]#cat >/etc/squid/cam

Nội dung file cấm:

www.facebook.com

www.gmail.com

www.vnexpress.net

acl BadDomain srcdomain “/etc/squid/cam”

http_access deny BadDomain

http_access deny all

Nếu có nhiều acl thì ứng với mỗi acl có một http_access

Cấm các máy truy xuất tới site www.facebook.com. Chỉ có mạng 172.16.1.0/24 là được phép dùng proxy

acl MyNetwork src 172.16.1.0/255.255.255.0

acl BadDomain srcdomain www.mail.yahoo.com

http_access deny BadDomain

http_access allow MyNetwork

http_access deny all

4.6. Khởi động squid

Để khởi động squid ta dùng lệnh

[root@hungnn]# /etc/init.d/squid start

Để dừng squid ta dùng lệnh:

[root@hungnn]# /etc/init.d/squid stop

Để khởi động lại squid ta dùng lệnh:

[root@hungnn]# /etc/init.d/squid restart