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 (
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
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
acl
client n>/
acl
acl
acl
acl
acl
acl
acl
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