Viết bởi Roger Wheatley.

Tôi đã từng viết rất nhiều những thủ thuật để tăng tốc khi lướt web. Sáng nay, trong khi tôi đang làm vệ sinh một vài thiết bị phần cứng (để đem đến trung tâm tái chế), tôi đã tình cờ gặp lại một trong những chiếc máy tính xách tay cũ cuối cùng của mình.

Nó là một chiếc IBM Thinkpad T22 cũ, loại 2647, với 256MB RAM và 20GB ổ cứng. Hai năm trước, tôi có 20 cái như thế, chúng được mua từ một kho hàng tái chế. Tôi đã bán tất cả những cái đó trên eBay và hiện tại chỉ còn sót lại một cặp mà thôi.

Trong khi đang thu xếp các thứ vào giỏ đồ, tôi chợt nãy ra ý nghĩ rằng tôi có thể làm cho chiếc máy tính xách tay cũ này hoạt động bằng cách cài đặt một máy chủ proxy/caching trên đó, và những trình duyệt của tôi sẽ lấy về những nội dung web được yêu cầu thường xuyên đã được lưu trữ tạm nội bộ ở máy chủ. Để làm được những điều đó thì cần cài đặt Squid. Dẫn từ trang chủ của Squid, “…Squid là một máy chủ proxy và trình lưu trữ tạm thời web. Nó được sử dụng rộng rãi với nhiều mục đích khác nhau, từ việc tăng tốc độ của máy chủ web bằng việc lưu trữ tạm thời những yêu cầu được lặp lại nhiều lần, đến việc lưu trữ tạm thời các trang web, DNS và những công việc tra cứu khác trên mạng cho một nhóm người sử dụng cùng chia sẻ tài nguyên mạng, cho đến việc sử dụng cho mục đích bảo mật bằng cách sàng lọc các trao đổi, truyền tải trên mạng. Mặc dù được thiết kế chính yếu để sử dụng cho giao thức HTTP và FTP, Squid còn bao gồm khả năng hỗ trợ (có giới hạn) cho những giao thức khác như TLS, SSL, Internet Gopher và HTTPS. Phiên bản đang phát triển của Squid (3.1) bao gồm khả năng hỗ trợ cho IPV6 và ICAP…”

Tôi đã sử dụng hệ điều hành Ubuntu cho dự án này. Cài đặt máy chủ Squid trên mạng cung cấp cho tôi một vài lợi ích quan trọng như:

  • Sử dụng ít băng thông hơn.
  • Lướt web nhanh hơn.
  • Lưu trữ tạm thời những bản sao của những trang web mà tôi thường ghé thăm (nếu máy chủ chính bị sự cố).

Trước hết, hãy đảm bảo rằng bạn đã có cài đặt Ubuntu 8.04 server (Hardy) trên chiếc máy tính xách tay cũ. Không chắc chắn phải làm điều đó như thế nào? Đây là một chỉ dẫn: Máy chủ hoàn hảo – Ubuntu Hardy Heron (http://howtoforge.com/perfect-server-ubuntu8.04-lts). Trong trường hợp của mình, tôi đã bỏ qua (không cài đặt) Apache, MySQL, Postfix, BIND9, Proftpd, POP3/IMAP và Webalizer. Tôi không cần đến chúng. Tôi chỉ cần máy chủ proxy/caching Squid. Tôi cũng đã cài đặt Webmin (xem bên dưới), vì thế tôi dễ dàng quản lý máy chủ này từ xa. Một bật mí nhỏ: hai năm trước tôi đã từng học cách cài đặt Squid rồi! Cho nên quá trình cài đặt Webmin diễn ra thuận lợi hơn (tôi đã sử dụng Debian để làm máy chủ vào thời điểm đó, sau này mới tới Ubuntu). Ngoài ra, với những bạn có theo dõi blog của tôi (kể cả những tân đọc giả kính mến), tôi cũng đã từng sử dụng Squid và Ubuntu cách đây khoảng 1 năm trước, như đã trình bày trong bài “Tăng tốc và cải thiện tốc độ duyệt web với một máy chủ Ubuntu Squid” (http://ubuntulinuxhelp.com/speed-up-and-improve-web-surfing-with-an-ubuntu-squid-server/). Một bài viết trước đó nữa của tôi về Ubuntu/Squid được thực hiện trên Ubuntu 6.06LTS và Squid 2.6. Nhưng nhiều thứ đã thay đổi và những chương trình, …v.v đã được nâng cấp, vì thế tôi nghĩ đây là lúc thích hợp để xem lại và cài đặt lại máy Squid.

Tôi đã tải xuống và ghi ra đĩa Ubuntu 8.04 LTS server từ trang chính thức của Ubuntu tại http://www.ubuntu.com/getubuntu/download-server. Yêu cầu tối thiểu để cài đặt là:

Bộ xử lý x86 300 MHz

Bộ nhớ hệ thống (RAM) 64 MB

Ít nhất 4 GB ổ cứng (cho việc cài đặt toàn bộ và không gian hoán đổi – swap)

Card đồ họa VGA có thể sử dụng với độ phân giải 640×480

Ổ đĩa CD-ROM hoặc card mạng

256 MB RAM sẽ làm cho quá trình cài đặt chậm hơn bình thường. Các bạn có thể tìm kiếm thêm thông tin về các yêu cầu của Ubuntu server (Hardy) tại Các yêu cầu về hệ thống cho Ubuntu (https://help.ubuntu.com/community/Installation/SystemRequirements).

Sau khi tải về và ghi ra đĩa ubuntu-8.04.2-server-i386 CD, tôi đã hoàn thành phần cài đặt cơ bản máy chủ Ubuntu bằng cách sử dụng hướng dẫn sử dụng từ howtoforge.com đã đề cập phía trên như là tài liệu tham khảo. Tôi cũng đã cài đặt một máy chủ SSH để tôi có thể “chui vào” chiếc máy tính xách tay cũ từ xa và làm mọi thứ một cách thoải mái thông qua máy tính để bàn của tôi.

sudo aptitude install ssh openssh-server

sẽ cài đặt máy chủ ssh, khởi động và chạy nó cho các bạn.

Khi làm theo bài viết này, các bạn cần phải thay thế các địa chỉ IP và tên thích hợp đúng với mạng của các bạn. Sau khi cài đặt hoàn tất các phần cơ bản của máy chủ, mở cửa sổ dòng lệnh từ môi trường làm việc (tương ứng) và nhập vào:

ssh root@192.168.1.200

192.168.1.200 là địa chỉ của máy chủ mà tôi vừa cài đặt xong.

Sử dụng câu lệnh:

su

để vào quyền root. Đây là cách để bạn không phải gõ “sudo” hoài.

Cài đặt Squid bằng câu lệnh:

aptitude install squid3

Sau khi Squid đã được cài đặt và các bạn đã khởi động lại hệ thống, các bạn có thể cài đặt Webmin, một giao diện đồ họa để quản lý máy chủ đó. Các bạn có thể tải về gói webmin vào bất cứ thư mục nào các bạn thích. Câu lệnh để tải về:

wget http://prdownloads.sourceforge.net/webadmin/webmin-1.470.tar.gz

Giải nén nó như sau:

tar xzvf webmin-1.470.tar.gz

Webmin cần có Perl để chạy, vì thế tôi cài đặt thêm một vài gói khác:

aptitude install install libauthen-pam-perl libnet-ssleay-perl libpam-runtime openssl perl perl-modules

Vào thư mục chứa những gì đã giải nén (của gói webmin-1.470.tar.gz) bằng cách gõ vào:

cd webmin-1.470

Chạy phần cài đặt cho webmin:

./setup.sh

Tôi thay thế port từ 10000 thành 26395. Tôi đã thay đổi tài khoản quản trị thành “root” và nhập vào một mật khẩu mới.

Phần cuối cùng của quá trình cài đặt webmin, tôi nhận được một thông báo thành công khi vào địa chỉ: http://squid.localdomain:26395/

Trên máy tính cá nhân nội bộ của tôi, tôi đã chỉnh sửa tập tin hosts như sau:

sudo gedit /etc/hosts

Sau đó tôi thêm vào dòng sau:

192.168.1.200 squid.localdomain squid

Bây giờ thì chúng ta muốn khởi động lại máy chủ Squid bằng cách:

shutdown -r now

Sau khi khởi động lại máy chủ và đăng nhập vào lại (thông qua ssh), các bạn có thể thấy được dịch vụ webmin đang chạy bằng cách sử dụng câu lệnh:

sudo /etc/init.d/webmin status

Các bạn phải thấy được vài thứ đại loại như sau:

webmin (pid 4573) is running

Để xem nó có đang lắng nghe trên đúng port, câu lệnh để kiểm tra là:

sudo netstat -tap
Các bạn phải tìm thấy một hàng trong những kết quả xuất ra của câu lệnh trên đại loại như sau:
tcp 0 0 *:26395 *:* LISTEN 4573/perl

Hãy nhớ rằng, port 26395 là một số mà chúng ta chọn để chạy webmin trên đó và webmin sử dụng Perl.

Bây giờ hãy mở trình duyệt web và ghé thăm trang webmin. Địa chỉ mà tôi sử dụng là:

http://squid.localdomain:26395/

Nhắc lại, hãy nhớ rằng tôi đã thêm vào tập tin hosts thông tin thích hợp để trình duyệt có thể tìm thấy địa chỉ trên.

Tôi chọn không bật SSL cho quá trình đăng nhập vào webmin, vì tôi không cần đến nó trong mạng nội bộ. Sau khi đăng nhập vào, chúng ta cần phải cấu hình Squid. Tìm một vài thứ (ở bên trái) như là “Unusued Modules” và tìm kiếm “Squid Proxy Server” – nhấp vào đường dẫn đó. Các bạn sẽ thấy một lựa chọn và cài đặt mô-đun Squid (webmin). Chọn đường dẫn đó và cài đặt.

Sau khi cài đặt, tìm ở trình đơn bên trái và phía dưới “Server”, các bạn sẽ thấy “Squid Proxy Server”. Chọn “Squid Proxy Server” và sau đó chọn lựa chọn “Ports and Networking”.

Chú ý rằng Squid mặc định chạy trên port 3128. Bây giờ trở lại trang mô-đun Squid bằng cách nhấp chọn vào “Module Index” (ở phía trên của trang). Chọn biểu tượng “Access Control” và thấy một nút ở phía dưới của trang có ghi là “Browser Regexp” – nó chứa một danh sách sổ xuống. Sử dụng danh sách đó để chọn “Client Address”, sau đó nhấp chọn nút “Create new ACL”.

Nhập vào giá trị của các bạn vào cái mẫu. Tôi sử dụng các giá trị sau:

ACL Name: localdomain
From IP: 192.168.1.0
To IP: 192.168.1.255
Netmask: 255.255.255.0

Tôi không thay đổi thêm gì khác nữa và nhấp chọn vào “Save”.

Bây giờ nhấp chọn vào thẻ (ở phía trên) “Proxy restrictions”. Nhấp chọn (ở phía dưới) “Add proxy restrictions” và tìm cái tên ACL mà các bạn vừa tạo (cái của tôi tên là “localdomain”). *** Chắc chắn rằng bạn tìm thấy ở phía dưới cột “Match ACLS” *** và nhấp chọn vào tên đó. Bây giờ nhấp chọn vào nút chọn “Allow”. Sau đó chọn “save” ở phía dưới.

Trong một màn hình mới xuất hiện, sử dụng nút đi lên để di chuyển đến “localdomain” (hoặc bất cứ thứ gì là tên của luật ACL mới của bạn) nó ở ngay trên dòng “Deny all”. Nếu bạn không thấy thì do trình duyệt của bạn không thể truy cập được.

Bây giờ trong của sổ ssh của bạn, dùng câu lệnh:

shutdown -r now
Nó sẽ khởi động lại máy chủ và Squid 3 (với cấu hình mới). Tôi phát hiện rằng webmin (vì một lí do gì đó) cho là Squid 2.6 đã cài đặt. Vì thế webmin không thể khởi chạy trên máy chủ này. Nhưng sau khi khởi động lại hệ thống thì nút “Stop Squid” xuất hiện – vì thế tôi cho rằng mô-đun webmin đã chạy và hoạt động bình thường (tôi đã không cần thiết phải sử dụng với webmin nữa, tôi sẽ dùng SSH để truy cập và khởi động, …v.v, vì thế tôi đã không thử lại nữa.)

Bước cuối cùng, hãy chắc rằng các bạn đã đặt địa chỉ của máy chủ proxy cho trình duyệt của các bạn. Trong trường hợp của tôi, những thông tin của máy chủ proxy cho mỗi trình duyệt là:

192.168.1.200:3128

Trong ngày 3 tháng bảy, tôi đã phát hiện ra một vấn đề khi tôi truy cập vào phần thống kê. Đây là vấn đề xuất hiện và cách khắc phục:

Vấn đề: Khi truy cập vào “Cache Manager Statistics” trong phần “Squid Proxy Server”, lỗi sau đây đã xuất hiện:

“The Squid cache manager program /usr/lib/cgi-bin/cachemgr.cgi was not found on your system. Maybe your module configuration is incorrect.”

Khắc phục:

aptitude install squid-cgi

Phần quản lý thống kế lưu tạm (Cache manager statistics) bây giờ sẽ hoạt động tốt.

Những trang web khác có thông tin lên quan:

Làm thế nào để ngăn chặn những trang web sử dụng Squid proxy trong Ubuntu Linux

http://shibuvarkala.blogspot.com/2008/11/howto-block-websites-using-squid-proxy.html

Làm thế nào để ngăn chặn một port trong Squid Proxy trong Ubuntu Linux

http://shibuvarkala.blogspot.com/2008/11/howto-block-port-in-squid-proxy-ubuntu.html

Cài đặt máy chủ HTTP proxy (Squid)

http://en.kioskea.net/faq/sujet-804-ubuntu-installing-an-http-proxy-server-squid

Cài đặt Squid Proxy sử dụng Webmin trên máy chủ Ubuntu 8.04.1

http://chrisjohnston.org/2008/installing-squid-proxy-using-webmin-on-ubuntu-server-8041

Paranoid Penguin – Xây dựng một Squid Web Proxy an toàn, Phần 1

http://www.linuxjournal.com/article/10407

Hãy tận hưởng một cảm giác lướt web nhanh hơn với ít tập tin bên ngoài được yêu cầu cho những trang thường ghé thăm và những bản sao chép lưu tạm nội bộ của chúng sẽ được gửi đến trình duyệt của các bạn. Tôi hi vọng các bạn sẽ thích thú khi dùng nó và tôi cũng hi vọng nó giúp ích cho các bạn.

Nguồn đối chiếu: http://fullcircle-mag.fr/wiki/doku.php?id=issue28:tutoriel_squid

Advertisements