Tải bản đầy đủ (.docx) (17 trang)

Squid proxy

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (350.96 KB, 17 trang )

Squid proxy

Trang 1

Squid proxy

Giáo viên hướng dẫn:
Nhóm 3

Đặng Ngọc Cường


Squid proxy

Mục lục

Trang 2


Squid proxy

Trang 3

1. Tổng quan về proxy
1.1. Khái niệm proxy
Proxy là một Internet server làm nhiệm vụ chuyển tiếp thông tin và kiểm soát tạo
sự an toàn cho việc truy cập Internet của các máy khách ( Client ).
Proxy server xác định những yêu cầu từ client và quyết định đáp ứng hay không
đáp ứng, nếu yêu cầu được đáp ứng, proxy server sẽ kết nối với server thật thay cho
client và tiếp tục chuyển tiếp đến những yêu cầu từ client đến server, cũng như đáp
ứng những yêu cầu của server đến client. Vì vậy proxy server giống cầu nối trung gian


giữa server và client.

1.2. Chức năng và cơ chế hoạt động của proxy
Chức năng:
-

Đối với người dùng: Giúp nhiều máy tính truy cập Internet thông qua một
máy tính với tài khoản truy cập nhất định, máy tính này được gọi là Proxy

-

server
Đối với nhà cung cấp dịch vụ đường truyền internet (ISP): sử dụng proxy với
kỹ thuật tường lửa để tạo ra một bộ lọc gọi là firewall proxy nhằm ngăn chặn
các thông tin theo từng mục đích khác nhau. Địa chỉ các website mà người
dung truy cập sẽ được lọc tại bộ lọc này, nếu địa chỉ không bị cấm thì yêu cầu
tiếp tục được gửi đi, tới các DNS server của các nhà cung cấp dịch vụ.
Firewall proxy sẽ lọc tất cả các thông tin từ internet gửi vào máy của khách
hàng và ngược lại.


Squid proxy

Trang 4

Cơ chế hoạt động:
Request

Client
5.6.7.8


Respond

Proxy

Server

1.2.3.4:8080

abc.com

Client có ip 5.6.7.8 muốn connect đến website bằng giao thức
HTTP thông qua proxy có ip 1.2.3.4 ở cổng 8080 thì có những bước sau:
1. Client 5.6.7.8 gửi request chứa thông tin truy cập website abc.com đến proxy
server 1.2.3.4 ở cổng 8080.
2. Proxy 1.2.3.4 sau khi nhận được request từ client, nó sẽ tiếp tục gửi request đó
đến website abc.com.
3. Website abc.com nhận request, xử lý và trả kết quả (respond) về cho proxy
1.2.3.4.
4. Proxy server tiếp tục trả kết quả (respond) về cho client.

1.3. Phân loại proxy
Theo chức năng:
-

Anonymous: Đôi khi còn được gọi là web proxy, giúp người dùng ẩn danh
(giấu IP), khi lướt Web. HTTP Proxy server không gửi thông số cụ thể của
biến HTTP_X_FORWARDED_FOR tới Host đang truy cập, do vậy có thể
che dấu IP của bạn. tuy nhiên, điều đó không có nghĩa giúp bạn ẩn dấu hoàn
toàn, vì các website có thể sử dụng các site script để thu thập thông tin về

việc bạn đang truy cập Host của họ thông qua một Proxy nào đó đang “phục

-

vụ” cho bạn.
High Anonymity: Mức độ che dấu tung tích cao hơn anonymous. Http Proxy
hoàn toàn không gửi đi bất kì thông số nào của các biến


Squid proxy

Trang 5

HTTP_X_FORWARDED_FOR, HTTP_VIA và
HTTP_PROXY_CONNECTION. Do vậy Internet Host không thể biết bạn
-

đang dùng Proxy server, cũng như không phát hiện được real IP của bạn.
Transparent: Proxy xuyên suốt, Đôi khi còn được gọi là Intercepting proxy,
khác với 2 loại trên, transparent là sự kết hợp 1 proxy server và 1 gateway.
Đây là phương thức thường được các Network Admin “ép” User trong mạng
Lan, User không nhận thức được mình đang truy cập internet qua một “cổng
giám sát”.
Yêu cầu truy cập của Client đước chuyển đến gateway sau đó gateway
chuyển sang Proxy server xử lý. Khi user dùng loại proxy này, thì họ không
biết được rằng họ đang dùng 1 proxy và bị..kiểm soát. User chỉ cần thiết lập
địa chỉ IP của gateway do Admin cung cấp, mà không phải xác lập các thông
số Proxy trong trình duyệt cũng như Internet applications khác..
Thường được các Admin trong công ty triển khai, họ muốn các chính sách
của Policy được áp đặt lên user, nhưng user hầu như không biết mình đang

qua 1… proxy.

Theo khả năng hỗ trợ:
-

HTTP/HTTPS Proxy:
Các proxy servers sẵn sàng cho các dịch vụ thông thường trên internet, ví

dụ như: một HTTP proxy được dùng cho truy cập Web, một FTP proxy được
dùng cho truyền File.
Những Proxy trên, được gọi là application-level proxies hay “applicationlevel gateways”, bởi vì chúng được chỉ định để làm việc với những application
và protocol và nhận ra được nội dung các Packet được gửi đến nó.
Một hệ thống proxy khác được gọi là circuit-level proxy, hỗ trợ nhiều
applications cùng lúc. ví dụ, SOCKS là một IP-based proxy server (circuit-level
proxy), hổ trợ hầu hết các applications trên nền TCP và UDP.
-

SOCKS hay Sockets:


Squid proxy

Trang 6

Chính là một circuit-level proxy server cho các IP networks theo định nghĩa
từ (IETF (Internet Engineering Task Force)- một cộng đồng các chuyên gia về
network designers, operators, vendors, and researchers tham gia vào cuộc xây
dựng kiến trúc Internet và ngày càng hoàn thiện Internet hơn.) SOCKS được viết
bởi David và Michelle Koblas vào những năm đầu của thập niên 90.
SOCKS đã nhanh chóng trở thành một de facto standard (hardware hay

software được dùng rộng rãi nhưng không được chứng nhận từ những tổ chức
chuyên cung cấp các định chuẩn), ngược lại là de jure standard. Mặc dù SOCKS
ra đời sớm và được dùng phổ biến, nhưng SOCKS được IETF thông qua lần đầu
tiên là SOCKS5. SOCKS ban đầu là hệ thống Proxy được sủ dụng cho các
traffic như FTP, Telnet, v.vv, nhưng không dành cho HTTP. SOCKS4 kiểm soát
các TCP connections (là phần lớn các Application trên Internet), SOCKS5 còn
hỗ trợ thêm UDP, ICMP, xác thực User (user authentication) và giải quyết
hostname (DNS service).
SOCKS bắt buộc Client phải được cấu hình để chuyển trực tiếp các yêu cầu
đến SOCKS server, hoặc ngược lại SOCKS driver sẽ ngăn chặn các Clients
chuyển các yêu cầu non-SOCKS application. Nhiều Web browsers và các
Internet applications khác hiện nay hỗ trợ SOCKS, cho nên khá dễ dàng khi làm
việc với các SOCKS server. tìm hiểu chi tiết về SOCKS và các Applications
tuân theo SOCKS Cũng cần xem thêm mô hình giao tiếp TCP/IP.

1.4. Ý nghĩa của proxy
Proxy không chỉ có giá trị bởi nó làm được nhiệm vụ của một bộ lọc thông tin,
nó còn tạo ra được sự an toàn cho các khách hàng của nó, firewal Proxy ngăn chặn
hiệu quả sự xâm nhập của các đối tượng không mong muốn vào máy của khách hàng.
Proxy lưu trữ được các thông tin mà khách hàng cần trong bộ nhớ, do đó làm giảm
thời gian truy tìm làm cho việc sử dụng băng thông hiệu quả.
Proxy server giống như một vệ sĩ bảo vệ khỏi những rắc rối trên Internet. Một
Proxy server thường nằm bên trong tường lửa, giữa trình duyệt web và server thật, làm
chức năng tạm giữ những yêu cầu Internet của các máy khách để chúng không giao


Squid proxy

Trang 7


tiếp trực tiếp Internet. Người dùng sẽ không truy cập được những trang web không cho
phép (bị cấm).
Mọi yêu cầu của máy khách phải qua Proxy server, nếu địa chỉ IP có trên proxy,
nghĩa là website này được lưu trữ cục bộ, trang này sẽ được truy cập mà không cần
phải kết nối Internet, nếu không có trên Proxy server và trang này không bị cấm, yêu
cầu sẽ được chuyển đến server thật, DNS server... và ra Internet. Proxy server lưu trữ
cục bộ các trang web thường truy cập nhất trong bộ đệm để giảm chi phí kết nối, giúp
tốc độ duyệt web nhanh hơn.
Proxy server bảo vệ mạng nội bộ khỏi bị xác định bởi bên ngoài bằng cách mang
lại cho mạng hai định danh: một cho nội bộ, một cho bên ngoài. Điều này tạo ra một
“bí danh” đối với thế giới bên ngoài và gây khó khăn đối với nếu người dùng “tự tung
tự tác” hay các hacker muốn xâm nhập trực tiếp máy tính nào đó.
Nhược điểm: Do các proxy có quy mô bộ nhớ khác nhau và số lượng người
đang sử dụng proxy nhiều-ít khác nhau, Proxy server hoạt động quá tải thì tốc độ truy
cập internet của client có thể bị chậm.


Squid proxy

Trang 8

2. Squid proxy
2.1. Squid proxy trong linux
Squid là một proxy server, khả năng của
squid là tiết kiệm băng thông (bandwidth), cải
tiến việc bảo mật, tăng tốc độ truy cập web cho
người sử dụng và trở thành một trong những
proxy phổ biến được nhiều người biết đến. Hiện
nay, trên thị trường có rất nhiều chương trình proxy-server nhưng chúng lại có hai
nhược điểm, thứ nhất là phải trả tiền để sử dụng, thứ hai là hầu hết không hỗ trợ ICP

(ICP được sử dụng để cập nhật những thay đổi về nội dung của những URL sẵn có
trong cache – là nơi lưu trữ những trang web mà bạn đã từng đi qua). Squid là sự lựa
chọn tốt nhất cho một proxy-cache server, squid đáp ứng hai yêu cầu của chúng ta là
sử dụng miễn phí và có thể sử dụng đặc trưng ICP.
Squid đưa ra kỹ thuật lưu trữ ở cấp độ cao của các web client, đồng thời hỗ trợ
các dịch vụ thông thường như FTP, Gopher và HTTP. Squid lưu trữ thông tin mới nhất
của các dịch vụ trên trong RAM, quản lý một cơ sở dữ liệu lớn của các thông tin trên
đĩa, có một kỹ thuật điều khiển truy cập phức tạp, hỗ trợ giao thức SSL cho các kết nối
bảo mật thông qua proxy. Hơn nữa, squid có thể liên kết với các cache của các proxy
server khác trong việc sắp xếp lưu trữ các trang web một cách hợp lý.
Trang chủ squid: .

2.2. Cài đặt Squid
Đầu tiên chúng ta nên có một số khái niệm về đòi hỏi phần cứng của một proxy
server:
1. Tốc độ truy cập đĩa cứng : rất quan trọng vì squid thường xuyên phải đọc và
ghi dữ liệu trên ổ cứng. Một ổ đĩa SCSI với tốc độ truyền dữ liệu lớn là một
ứng cử viên tốt cho nhiệm vụ này.
2. Dung lượng đĩa dành cho cache phụ thuộc vào kích cỡ của mạng mà Squid
phục vụ. Từ 1 đến 2 Gb cho một mạng trung bình khoảng 100 máy. Tuy


Squid proxy

Trang 9

nhiên đây chỉ là một con số có tính chất ví dụ vì nhu cầu truy cập Internet mới
là yếu tố quyết định sự cần thiết độ lớn của đĩa cứng.
3. RAM: rất quan trọng, ít RAM thì Squid sẽ chậm hơn một cách rõ ràng.
4. CPU: không cần mạnh lắm, khoảng 133 MHz là cũng có thể chạy tốt với tải

là 7 requests/second.
Cài đặt Squid với RedHat Linux rất đơn giản. Squid sẽ được cài nếu bạn chọn nó
trong quá trình cài đặt ngay từ đầu. Hoặc nếu bạn đã cài Linux không Squid, bạn có
thể cài sau qua tiện ích rpm với lệnh:
# rpm –i tên_gói_Squid

Cài đặt từ kho phần mềm của linux:
-

Đối với Ubuntu:
# apt-get install squid

-

Đối với Fedora/CentOS:

# yum install squid

Cài đặt từ source: Ta có file source của squid là squid-version.tar.gz, ta thực hiện các
bước lệnh sau:
#
#
#
#
#

tar –xzvf squid-version.tar.gz
cd squid-version
./configure
make

make install

Sau khi squid được cài, bạn có thể bước qua phần cấu hình squid.
Các thư mục mặc định của squid:
/usr/sbin
/etc/squid
/var/log/squid


Squid proxy

Trang 10

2.3. Cấu hình Squid
2.4.1. Cấu hình cơ bản
Sau khi cài đặt xong squid, ta phải cấu hình squid để phù hợp với từng yêu cầu
riêng. Ta cấu hình một số tham số trong file /etc/squid/squid.conf như sau:
http_port 3128 (mặc định là 3128)
icp_port 3130 (mặc định là 3130)
cache_dir: khai báo kích thước thư mục cache cho squid, mặc định là:
cache_dir /var/spool/squid/cache 100 16 256

Giá trị 100 tức là dùng 100 MB để làm cache, nếu dung lượng đĩa cứng lớn, ta có
thể tăng thêm tuỳ thuộc vào kích thước đĩa. Như vậy squid sẽ lưu cache trong thư mục
/var/spool/squid/cache với kích thước cache là 100MB.
Access Control List và Access Control Operators: ta có thể dùng hai chức
năng trên để ngăn chặn và giới hạn việc truy xuất dựa vào destination domain, IP
address của máy hoặc mạng. Mặc định squid sẽ từ chối phục vụ tất cả, vì vậy ta phải
cấu hình lại tham số này. Để được vậy, ta cấu hình thêm cho thích hợp với yêu cầu
bằng hai tham số là: acl và http_access.

Ví dụ: Ta chỉ cho phép mạng 10.10.13.0/24 được dùng proxy server bằng từ khoá
src trong acl:
acl MyNetwork src 10.10.13.0/255.0.0.0
http_access allow MyNetwork
http_access deny all

Ta cũng có thể cấm các máy truy xuất đến những site không được phép bằng từ khoá
dstdomain trong acl, ví dụ:
acl BadDomain dstdomain .yahoo.com
http_access deny BadDomain
http_access deny all


Squid proxy

Trang 11

Nếu danh sách cấm truy xuất đến các site dài quá, ta có thể lưu vào 1 file text, trong
file đó là danh sách các địa chủ như sau:
acl BadDomain dstdomain “/etc/squid/danhsachcam”
http_access deny BadDomain

Theo cấu hình trên thì file /etc/squid/danhsachcam là file văn bản lưu các địa chỉ
không được phép truy xuất được ghi lần lượt theo từng dòng. Ví dụ nội dung của file
trên như sau:
.yahoo.com
.facebook.com
.google.com

Ta có thể có nhiều acl, ứng với mỗi acl phải có một http_access như sau:

acl MyNetwork src 10.10.13.0/255.0.0.0
acl BadDomain dstdomain .yahoo.com
http_access deny BadDomain
http_access allow MyNetwork
http_access deny all

Như vậy cấu hình trên cho ta thấy proxy cấm các máy truy xuất đến site
www.yahoo.com và chỉ có mạng 10.10.13.0/24 là được phép dùng proxy.
“http_access deny all”: cấm tất cả ngoại trừ những acl đã được khai báo.

2.4.2. Cấu hình cấm client truy cập trong khoảng thời gian định trước
Ví dụ: Cấm client truy cập trong giờ làm việc từ thứ 2 đến thứ 6, từ 8h00 đến
17h00:
acl giolamviec time M T W H F 8:00-17:00
http_access deny giolamviec

Trong đó:
M: Thứ 2
T: Thứ 3
W: Thứ 4


Squid proxy

Trang 12

H: Thứ 5
F: Thứ 6
A: Thứ 7
S: Chủ nhật


2.4.3. Hạn chế tập tin download
Ví dụ về hạn chế download các tập tin multimedia có đuôi là .mp3, .mpg, .mpeg,
… Ta thêm 2 dòng sau vào squid.conf:
acl denyfiletypes url_regex -i .mp3$ .mpg$ .mpeg$ .mp2$
.avi$ .wmv$ .wma$ .exe$
http_access deny denyfiletypes

2.4.4. Tự động redirect sang website ấn định trước khi truy cập những
website ko được phép
Trong ví dụ ở mục 2.4.2 ta đã tạo một file /etc/squid/danhsachcam lưu các trang
web bị cấm truy cập. Khi client truy cập vào các trang web trên thì squid sẽ đưa ra
thông báo “Access Denied!”. Ta có thể thay đoạn thông báo trên bằng cách redirect
(chuyển hướng truy cập) sang website khác (chẳng hạn như google.com).
Tại dòng cấu hình cấm truy cập nhiều trang web trong ví dụ 2.4.2:
acl BadDomain dstdomain “/etc/squid/danhsachcam”
http_access deny BadDomain

Ta thêm vào bên dưới dòng sau:
deny_info BadDomain

2.4.5. Yêu cầu client phải nhập user & password
Bước 1: Tạo một file rỗng /etc/squid/squid-passwd
Bước 2: Tạo password bằng dòng lệnh:
# htpasswd /etc/squid/squid-passwd client_user


Squid proxy

Trang 13


Nhập password vào và enter.
Bước 3: Cấu hình squid.conf. Thêm 3 dòng sau vào file:
auth_param basic program /usr/lib/squid/ncsa_auth
/etc/squid/squid-passwd
acl passw proxy_auth REQUIRED
http_access allow passw

Sau khi khởi động lại squid, khi client truy cập vào một địa chỉ website, họ sẽ phải
nhập username và password mà ta đã thiết lập. Theo như cấu hình ở trên thì username
là client_user và password là password ta đã thiết lập.

2.4.6. Cấu hình cho máy không thể kết nối trực tiếp vào Internet
Nếu proxy không thể kết nối trực tiếp với Internet vì không có địa chỉ IP thực
hoặc proxy nằm sau một Firewall thì ta phải cho proxy query đến một proxy khác có
thể dùng Internet bằng tham số sau :
cache_peer 10.10.13.2 parent 8080 8082

Cấu hình trên cho chúng ta thấy proxy sẽ query lên proxy “cha” là 10.10.13.2 với tham
số parent thông qua http_port là 8080 và icp_port là 8082.
Ngoài ra trong cùng một mạng nếu có nhiều proxy server thì ta có thể cho các
proxy server này query lẫn nhau như sau:
cache_peer 10.10.13.2 sibling 8080 8082
cache_peer 10.10.13.3 sibling 8080 8082

2.4. Khởi động Squid
Sau khi đã cài đặt và cấu hình lại squid, ta phải tạo cache trước khi chạy squid
bằng lệnh:
# squid –z



Squid proxy

Trang 14

Nếu trong quá trình tạo cache bị lỗi, ta chú ý đến các quyền trong thư mục cache
được khai báo trong tham số cache_dir. Có thể thư mục đó không được phép ghi. Nếu
có ta phải thay đổi bằng:
# chown squid:squid /var/spool/squid
# chmod 770 /var/spool/squid

Sau khi tạo xong thư mục cache, ta khởi động và dừng squid bằng script như sau:
# service squid start
# service squid stop

Restart squid:
# service squid restart

Sau khi squid đã khởi động, muốn theo dõi và quản lý việc truy cập của các
client hay những gì squid đang hoạt động cache như thế nào, ta thường xuyên xem xét
những file sau đây:
/var/log/squid/cache.log: bao gồm những cảnh báo và thông tin trạng thái của
cache.
/var/log/squid/store.log: bao gồm những cơ sở dữ liệu về những thông tin gì
mới được cập nhật trong cache và những gì đã hết hạn.
/var/log/squid/access.log: chứa tất cả những thông tin về việc truy cập của
client, bao gồm địa chỉ nguồn, đích đến, thời gian…


Squid proxy


Trang 15

3. Sử dụng proxy
Thiết lập và sử dụng proxy trong trình duyệt:
Đối với Chương trình Internet Explorer:
- Mở Menu Tool -> Internet Options -> Connections -> chọn LAN Settings.
Sau đó bạn sẽ thấy mục “Use the proxy server for this connection bạn đánh dấu
chọn vào đó.
Cuối cùng là gõ địa chỉ IP của proxy server mà bạn muốn sử dụng nhớ kèm theo
phần port nữa vì mỗi proxy server có kèm port đi theo.


Squid proxy

Trang 16

Đối với Firefox: Vào Tools -> Options -> Advanced -> Network -> Settings
Tick vào Manual proxy configuration và nhập địa chỉ proxy cùng với port của nó
vào:


Squid proxy

Trang 17

4. Tài liệu tham khảo
1. “Proxy server”
< />2. “Các loại Proxy Server và chức năng – Socks”
< />3. “Cấu hình Squid (và webadmin)”

< />4. “Cài đặt, cấu hình Linux SQUID Proxy Server”
< />


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×