Truy cập giao diện web cache manager

Một phần của tài liệu Nghiên cứu, triển khai dịch vụ squid proxy server trên centos (Trang 39)

Trước khi có thể sử dụng Cache Manager, cần cấu hình Squid để cho phép đăng nhập vào giao diện web cache manager.

a, Cấu hình Squid

Dòng lệnh cache_mgr được dùng để chị định mail của người quản trị. Mặc định là người quản trị trang web, tuy nhiên có thể thay đổi thành một địa chỉ ta muốn như admin@example.com.

cache_mgr admin@example.com

Cấu hình trên sẽ thiết lập địa chỉ mail của nhà quản trị là admin@example.com và sẽ gửi cảnh báo tới địa chỉ mail trên nếu Squid có bất kỳ một vấn đề gì xảy ra.

Dòng lệnh cachemgr_passwd được dùng để kiểm soát truy vào các phần khác nhau của giao diện web cache manager. Các định dạng để sử dụng dòng lệnh cachemgr_passwd như sau:

cachemgr_passwd PASSWORD ACTION ACTION ...

Tham số PASSWORD là mật khẩu cho giao diện web cache manager dưới dạng văn bản rõ.

Tham số ACTION được thay bằng tên của một hay nhiều phần của giao diện web cache manager. Tham số này có một giá trị đặc biệt là all, có nghĩa là giao diện web cache manager sẽ quản lý tất cả. Ví dụ muốn giao diện web cache manager quản lý tất cả các phần sử dụng mật khẩu, sử dụng dòng cấu hình sau đây:

cachemgr_passwd s3cr3tP4sS all

Cấu hình này sẽ cho phép mật khẩu này truy cập tới tất cả các phần của giao diện web cache manager.

b, Đăng nhập vào cache manager

Để truy cập vào giao diện web cache manager cần sử dụng trình duyệt và đánh vào đường dẫn http://localhost/Squid/cgi-bin/cachemgr.cgi. Nếu truy cập vào Proxy Server ở một máy tính khác thì phải thay thế localhost bằng địa chỉ IP của máy Proxy Server.

Hình 2.17: Giao diện đăng nhập của Cache manager

Ở đây nhập admin@example.com với pass word được thiết lập như phía bên trên. Sau đó bấm Continue. Khi đăng nhập thành công, một danh sách các liên kết sẽ xuất hiện mà ta có thể sử dụng chúng để tìm hiểu về Squid.

Hình 2.18: Danh sách menu của cache manager 2.6.1.4. Một số liên kết quan trọng

a, General Runtime information

Ta có thể tìm hiểu thêm về Squid và sử dụng tài nguyên của Squid từ liên kết General Runtime information trong trình đơn cache manager. Liên kết này sẽ đưa đến một trang hiển thị thông tin về các thành phần của Proxy Server.

Hình 2.19: Nội dung thông tin của General Runtime information

Trong hình có một bảng ở trên cùng. Bảng này hiển thị thông tin về thời gian Squid bắt đầu chạy và thời gian hiện hành của Squid.

Tiếp theo là thông tin chi tiết về các kết nối. Theo thống kê trong hình, có 1146 Client truy cập vào Proxy Server và có hơn 60 triệu yêu cầu mà Squid nhận được kể từ khi bắt đầu chạy.

Cuối cùng là hiển thị thông tin về hiệu suất của ổ cứng và bộ nhớ Cache. Request Hit Ratios là tỷ lệ các yêu cầu từ bộ nhớ Cache với tổng số yêu cầu trong một khoảng thời gian cụ thể. Byte Hit Ratios là tỷ lệ số bytes phục vụ từ bộ nhớ Cache với tổng số byte phục vụ từ các Proxy Server.

b, IP cache stats and Content

Tìm tới IP cache stats and Content trong danh sách Cache Manager và kích vào. Điều này sẽ cho thấy số liệu thống kê về IP Cache mà Squid đã xây dựng theo thời gian (Tham khảo thêm dòng lệnh ipcache_low, ipcache_size, ipcache_high trong tập tin cấu hình squid).

Hình 2.20: Nội dung thông tin của IP cache stats and Content

Ý nghĩa của một số các số liệu thống kê:

- IPcache Entries: Tổng số đầu vào trong bộ nhớ cache IP. Điều này có thể được giới hạn bằng dòng lệnh ipcache_size trong squid.conf.

- IPcache Requests: Tổng số yêu cầu phân giải tên miền mà Squid nhận được cho tới nay.

- IPcache Hits: Số lượng yêu cầu mà bộ nhớ cache IP có thể thỏa mãn. - IPcache Negative Hits: Số lượng yêu cầu truy vấn bị lỗi.

- IPcache Numeric Hits: Số lượt truy cập yêu cầu một địa chỉ IP thay vì tên miền.

- IPcache Misses: Số lượng truy vấn DNS mà Squid phải làm vì các địa chỉ IP cho những tên miền không có trong bộ nhớ Cache.

- IPcache Invalid Requests: Yêu cầu không hợp lệ do tên miền bị định dạng.

c, FQDN Cache Statistics

FQDN (Fully Qualified Domain Name) là tên miền mà đã xác định chính xác vị trí trong hệ thống phân cấp dạng cây của các hệ thống phân giải tên miền (DNS). Ta có thể cấu hình squid để giới hạn đầu vào FQDN trong bộ nhớ Cache bằng dòng lệnh fqdncache_size trong squid.conf. Từ danh sách trong Cache Manager kích vào FQDN cache Statistics.

Trong phần này, ta cũng sẽ thấy số liệu thống kê tương tự như số liệu thống kê trong bộ nhớ cache. Các số liệu thống kê sẽ giống như sau:

Hình 2.21: Nội dung thông tin của FQDN Cache Statistics d, HTTP Header Statistics

Kích vào HTTP header Statistics trong danh sách Cache Manager. Trên trang này có thể xem thống kê về các trường tiêu đề trong requests và reply. Xét một vài mục trong bảng:

Hình 2.22: Nội dung thông tin của HTTP Header Statistics

Cột đầu tiên là cột ID mà Squid sử dụng. Cột thứ hai là tên của trường tiêu đề HTTP.

Cột thứ ba đại diện cho số lần một trường tiêu đề HTTP cụ thể tìm được trong các tiêu đề HTTP của tất cả các yêu cầu của client.

Cột cuối cùng đại diện cho tỷ lệ phần trăm trường tiêu đề HTTP tìm được.

e, Traffic and Resource Counters

Squid theo dõi tất cả các yêu cầu và dữ liệu đi qua nó. Có thể xem chi tiết điều này bằng cách kích vào Traffic and Resource Counters trong danh sách Cache Manager.

Hình 2.23: Nội dung thông tin của Traffic and Resource Counters

Ý nghĩa một vài tham số có trong hình trên:

- client_http.requests: Tổng số lượng request máy Proxy Server nhận được cho đến nay.

- client_http.hits: Tổng số lượng request mà có thể phục vụ từ Cache mà không có request từ xa đến các máy chủ web.

- client_http.errors: Tổng số request dấn đến một lỗi HTTP như lỗi 404(không tìm thấy trang) ,403 (truy cập bị từ chối)….

- client_http.kbytes_in: Tổng số dữ liệu được tải lên dưới hình thức request hoặc từ tải tập tin lên.

- client_http.kbytes_out: Tổng số dữ liệu tải về của Client dưới hình thức các trang web hoặc tải tập tin.

- client_http.hit_kbytes_out: Tổng số dữ liệu gửi đến Client.

f, Cache Client List

Squid duy trì một danh sách các Client đã được phục vụ trong 24 giờ qua. Squid cũng duy trì một vài số liệu thống kê liên quan đến từng Client. Kích vào Cache client list trong danh sách Cache Manager.

Hình 2.24: Nội dung thông tin của Cache Client List

Dòng đầu tiên đại diện cho địa chỉ IP của Client. Dòng tiếp theo đại diện cho tên miền tương ứng với địa chỉ IP của Client (sẽ được bỏ qua nếu tên miền không có hoặc nếu tra cứu ngược lại bị vô hiệu hóa).

Dòng thứ ba cho thấy các kết nối hiện nay được thành lập và hiện nay trên hình đang là không. Dòng thứ tư cho thấy tổng số ICP yêu cầu của Client và hiện nay trên hình cũng là không. Dòng tiếp theo thể hiện số lượng các yêu cầu HTTP. Các dòng tiếp trong khối HTTP requests cho thấy số lượng và tỷ lệ phần trăm các trạng thái khác nhau mà Cquid yêu cầu.

g, Memory Utilization

Squid cũng cấp số liệu thống kê chi tiết về việc sử dụng bộ nhớ của nó. Kích vào Memory utilization trong danh sách Cache Manager. Bảng sau đây là thông tin một phần nhỏ các trang sử dụng bộ nhớ.

Hình 2.22: Nội dung thông tin của Memory Utilization

2.6.2. Phân tích log

Tập tin access log nơi chứa log của mọi yêu cầu của Client đăng nhập vào. Nhưng trong một khoảng thời gian, Squid không thể đánh giá hàng chục, hàng nghìn tập tin log. Để đánh giá, phân tích tập tin này, có rất nhiều các chương trình mã nguồn mở miễn phí của bên thứ ba.

Calamaris là một script dựa trên perl có thể phân tích access log của Squid tạo ra số liệu thống kê về việc sử dụng và hiệu suất của máy chủ Proxy.

2.6.2.1. Cài đặt Calamaris

Do calamaris được viết dựa trên Perl, nên phải cài đặt Perl trước khi cài đặt Calamaris. Perl có sẵn trong kho phần mêm của hầu như tất các các hệ điều hành Linux.

Cài đặt Calamaris sử dụng lệnh Yum như sau: yum install calamaris

2.6.2.2. Sử dụng Calamaris tạo số liệu thống kê a, Tạo số liệu thống kê theo định dạng văn bản a, Tạo số liệu thống kê theo định dạng văn bản

Muốn phân tích tập tin log hiện tại, có thể sử dụng Calamaris như sau:

$ cd /opt/squid/var/logs/ $ cat access.log|calamaris –a

Theo mặc định, tạo ra số liệu thống kê ở định dạng văn bản đơn giản và in ra chúng. Thực hiện như sau:

$ cat access.log|calamaris -a --output-file access_stats.txt

Nội dung trong access_stats.txt sẽ tương tự như sau:

Hình 2.26: Số liệu thống kê theo định dang văn bản b, Tạo ra số liệu thống kê dưới dạng đồ họa

Để tạo ra số liệu thống kê dưới dạng đồ họa, cần phải tạo một thư mục cà calamaris có thể để các file ảnh. Cách thức tạo như sau:

mkdir stats

cat access.log|calamaris -a --output-file

access_stats.html -F html,graph --output-path ./stats/ Các lệnh trước đó sẽ tạo ra một tập tin access_stats.html cùng với một vài hình ảnh trong thư mục stats.

Hình 2.27: Số liệu thống kê theo dạng đồ thị

Hình ảnh này là đồ thị của TCP request của squid. Ở bên tay trái là đại diện cho số lượng request. Ở bên tay phải đại diện cho các dữ liệu chuyển giao tính bằng Gigabytes.

2.7. Xác thực bảo vệ Proxy Server

Squid giúp việc chứng thực một cách đơn giản bởi người dùng hoặc trình duyệt gửi một trường tiêu đề xác thực HTTP có chứa thông tin mã hóa. Squid cố gắng giải mã các trường tiêu đề xác thực, sau đó kiểm tra các thông tin. Nếu thông tin cung cấp hợp lệ Client được phép truy cập vào Proxy Server, nếu không một trạng thái HTTP 407 được gửi lại.

Squid hiện hỗ trợ bốn kiểu xác thực là Basic, Digest, NTML và Negotiate. Dòng lệnh auth_param trong tập tin cấu hình Squid hỗ trợ các tùy chọn khác nhau cho các kiểu xác thực.

2.7.1. Xác thực Bacsic

Xác thực Basic là kiểu xác thực đơn giản nhất nhưng cũng là không an toàn nhất. Thông tin được truyền đi trong một định dạng chuỗi mã hóa base64, có thể

được giải mã rất dễ dàng để có được thông tin ban đầu. Bất kỳ một ai sử dụng sniff là có thể nhìn thấy tên người dùng, mật khẩu được truyền trên mạng và sử dụng thông tin đó để khai thác rất dễ dàng.

Hệ thống xác thực basic này có thể được sử dụng trong môi trường mạng nhỏ hoặc đòi hỏi cấu hình đơn giản của Squid.

Xác thực HTTP basic hỗ trợ tùy chọn auth_param sau: auth_param basic program COMMAND auth_param basic utf8 on|off

auth_param basic children NUMBER [startup=N] [idle=N][concurrency=N]

auth_param basic realm STRING

auth_param basic credentialsttl TIME_TO_LIVE auth_param basic casesensitive on|off

Theo mặc định tất cả các trợ giúp xác thực đều nằm ở ${prefix}/libexec/ với ${prefix} là các giá trị tùy chọn -prefix.

Tham số utf8 xác định xem các thông tin sẽ được dịch sang mã UTF-8 trước khi chúng được chuyển sang xác thực. Điều này là do HTTP sử dụng tiêu chuẩn mã ISO Latin-1.

Tham số children có các tùy chọn khác nhau giúp cho việc chứng thực. Thông thường, Squid sẽ chạy nhiều hơn một trường hợp, tùy theo số lượng yêu cầu nhận từ phía Client. Điều này sẽ gây ra sự chậm trễ do việc xác thực.

Tùy chọn startup và idle của children quy định cụ thể số lượng các quá trình mà cần phải bắt đầu khi squid khởi chạy hay cấu hình lại.

Tùy chọn concurrency quy định cụ thể số lượng yêu cầu xác thực cùng một lúc. Nếu có thể xử lý nhiều yêu cầu đồng thời, ta có thể thiết lập giá trị này cho phù hợp.

Tham số realm quy định rõ thông báo được trình bày cho người sử dụng Client HTTP.

Tham số credentialsttl thiết lập thời gian mà sau đó Squid sẽ hỏi xác thực xem thông tin được cung cấp bởi Client còn giá trị hoặc thời gian mà thông tin vẫn còn hợp lệ.

Tham số casesensitive thiết lập xem tên người dùng có thuộc trường hợp nhạy cảm hay không. Đa số trong cở sở dữ liệu lưu trữ thông tin người dùng là trường hợp bình thường và cho phép dùng trong mọi trường hợp.

Ví dụ một cấu hình :

auth_param basic program /opt/squid/libexec/basic_pam_auth

auth_param basic utf8 on

auth_param basic children 15 start=1 idle=1 auth_param basic realm Squid proxy Server at proxy.example.com

auth_param basic credentialsttl 4 hours auth_param basic casesensitive off

acl authenticated proxy_auth REQUIRED http_access allow authenticated

http_access deny all 2.7.2. Xác thực Digest

Xác thực HTTP Digest là sự cải tiến trong cơ chế xác thực HTTP cơ bản, cho phép người dùng đồng nhất được thiết lập một an toàn mà không cần phải gửi một mật khẩu qua mạng. Xác thực HTTP Digest là một ứng dụng của mã hóa MD5 với việc sử dụng các giá trị nonce để ngăn chặn việc giải mã.

Các tham số auth_param sau đây có sẵn cho cấu hình HTTP digest: auth_param digest program COMMAND

auth_param digest utf8 on|off

auth_param digest children NUMBER [startup=N] [idle=N][concurrency=N]

auth_param digest realm STRING

auth_param digest nonce_garbage_interval TIME auth_param digest nonce_max_duration TIME

auth_param digest nonce_max_count NUMBER auth_param digest nonce_strictness on|off auth_param digest check_nonce_count on|off auth_param digest post_workaround on|off

Các tham số program, utf8, children, realm có ý nghĩ giống trong chứng thực HTTP Basic.

nonce_garbage_interval: Tham số này được sử dụng để xác định khoảng thời gian sau đó khi nonces đã được phát hành, kiểm tra tính hợp lệ.

nonce_max_duration: Tham số này xác định thời gian mà một nonce đưa ra sẽ vẫn có hiệu lực.

nonce_max_count: Tham số này xác định số lần tối đa một nonce có thể được sử dụng.

nonce_strictness: Client có thể bỏ qua một vài giá trị trong khi tạo nonce như 3, 4, 5, 6, 8, 9,....Tham số nonce_strictness xác định xem Squid có nên cho phép trường hợp Client hay tác nhân người dùng bỏ một giá trị đếm. Giá trị mặc định là off và tác nhân người dùng được phép bỏ qua các giá trị.

check_nonce_count: Các tham số thực thi check_nonce_count bắt buộc squid kiểm tra tính nonce. Trong trường hợp lỗi, Client sẽ được gửi trạng thái HTTP 401. Điều này là hữu ích cho việc chống lại các cuộc tấn công repley.

post_workaround: Một số lỗi Client HTTP gửi không chính xác trong yêu cầu HTTP POST khi việc sử dụng nonce được yêu cầu trong HTTP GET trước đó. Tham số post_workaround là một giải pháp cho tình trạng này.

Ví dụ cấu hình:

auth_param digest program

/opt/squid/libexec/digest_file_auth auth_param digest utf8 on

auth_param digest children 20 startup=0 idle=1 auth_param digest realm Squid proxy server at proxy.example.com

auth_param digest nonce_garbage_interval 5 minutes auth_param digest nonce_max_duration 30 minutes

auth_param digest nonce_max_count 50 auth_param digest nonce_strictness on auth_param digest check_nonce_count on auth_param digest post_workaround on acl authenticated proxy_auth REQUIRED http_access allow authenticated

http_access deny all 2.7.3. Xác thực NTLM

NTLM (NT LAN Manager) là một giao thức kết nối xác thực được phát triển bởi Microsoft. các thông số auth_param sau đây:

auth_param ntlm program COMMAND

auth_param ntlm children NUMBER [startup=N][idle=N] [concurrency=N]

auth_param ntlm keep_alive on|off

Các tham số program, children cũng tương tự như trong xác thực HTTP basic và xác thực Digest. Nếu trong tham số keep_alive được thiết lập là off thì Squid sẽ chấm dứt kết nối sau khi những request ban đầu mà các trình duyệt yêu cầu trợ giúp. Tham số mặc định là on.

Ví dụ:

auth_param ntlm program

/opt/squid/libexec/ntlm_smb_lm_auth

auth_param ntlm children 20 startup=0 idle=1 auth_param ntlm keep_alive on

acl authenticated proxy_auth REQUIRED http_access allow authenticated

http_access deny all

Ta có thể sử dụng xác thực NTLM với sự giúp đỡ của chương trình ntlm_auth là một phần của Samba. Để cấu hình Squid sử dụng ntml_auth xác thực NTLM, cần thêm dòng sau vào tập tin cấu hình:

auth_param ntlm program

/absolute/path/to/ntlm_auth --helper-protocol=squid- 2.5-ntlmssp

Cấu hình này sẽ cho phép người dùng đăng nhập vào nếu họ là thành viên của một nhóm cụ thể.

2.7.4. Xác thực Negotiate

Giao thức này được sử dụng trong môi trường Microsoft Active Directory với các phiên bản Microsoft Internet Explorer, Mozilla Firefox, và Google Chrome browsers. Trong giao thức này, các thông tin được trao đổi với máy chủ

Một phần của tài liệu Nghiên cứu, triển khai dịch vụ squid proxy server trên centos (Trang 39)

Tải bản đầy đủ (DOC)

(75 trang)
w