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

Không có nhận xét nào:

Đăng nhận xét