Tổng hợp và biên dịch: ZingHack
Hiệu đính: ITS
Các dạng Firewall
Bất cứ thiết bị nào điều khiển luồng dữ liệu trên mạng vì lý do an toàn đều được gọi là firewall. Có nhiều người, nhiều tài liệu vì những lý do khác nhau mà phân chia firewall ra thành nhiều loại khác nhau. Từ sự tìm hiểu các tài liệu đó, ở đây xin chia firewall làm ba loại dùng các chiến lược khác nhau để bảo vệ tài nguyên trên mạng.
Thiết bị firewall cơ bản nhất được xây dựng trên các bộ định tuyến và làm việc ở các tầng thấp hơn trong ngăn xếp giao thức mạng. Chúng lọc các gói dữ liệu và thường được gọi là bộ định tuyến kiểm tra (screening router). Các cổng proxy server ở đầu cuối trên (high-end) vận hành ở mức cao hơn trong ngăn xếp giao thức. Firewall loại ba dùng kỹ thuật giám sát trạng thái.
Các bộ định tuyến thường được dùng cùng với các gateway để tạo nên hệ thống phòng thủ nhiều tầng. Riêng với các sản phẩm firewall thương mại có thể cung cấp tất cả các chức năng tùy theo nhu cầu.
Bộ định tuyến kiểm tra (Lọc theo gói - Packet Filtering)
Firewall lọc gói hoạt động ở lớp mạng của mô hình OSI, hoặc lớp IP của TCP/IP. Chúng thường là một phần của router. Router là thiết bị nhận gói từ một mạng và chuyển gói tới mạng khác. Trong firewall lọc gói, mỗi gói được so sánh với tập các tiêu chuẩn trước khi nó được chuyển tiếp. Dựa vào gói và tiêu chuẩn, firewall có thể hủy gói, chuyển tiếp hoặc gởi thông điệp tới nơi tạo gói. Các luật bao gồm địa chỉ IP, số cổng nguồn và đích và giao thức sử dụng. Hầu hết các router đều hỗ trợ lọc gói.
Tất cả các luồng lưu thông trên Internet đều ở dạng gói. Một gói là một lượng dữ liệu có kích thước giới hạn, đủ nhỏ để điều khiển dễ. Khi lượng lớn dữ liệu được gửi liên tục, dễ xảy ra tình trạng hỏng trong việc truyền và tái hợp ở nơi nhận.
Một gói là một chuỗi số cơ bản truyền đạt các thứ sau:
• Dữ liệu, kiến thức, yêu cầu hoặc dòng lệnh từ hệ thống bắt đầu
• Địa chỉ IP và cổng của nguồn
• Địa chỉ IP và cổng của đích
• Thông tin về giao thức (tập các luật) điều khiển gói
• Thông tin kiểm tra lỗi
• Có vài sự sắp xếp thông tin về kiểu và tình trạng của dữ liệu đang được gửi
• Và còn vài thứ khác…
Trong packet filtering, chỉ protocol và thông tin địa chỉ của mỗi gói được kiểm tra. Nội dung và ngữ cảnh (mối liên hệ với các gói khác) của nó bị bỏ qua.
Filtering chứa các gói vào ra và cho phép hoặc không cho phép việc lưu thông của chúng hoặc chấp nhận dựa trên một tập luật nào đó, được gọi là chính sách (policies).
Các chính sách lọc gói có thể căn cứ trên các điều sau:
• Cho phép hoặc không cho phép gói dựa vào địa chỉ IP nguồn
• Cho phép hoặc không cho phép gói dựa vào cổng đích
• Cho phép hoặc không cho phép gói dựa theo giao thức.
Bộ định tuyến kiểm tra nhìn vào thông tin liên quan đến địa chỉ cứng (hardwired) của máy tính, địa chỉ IP của nó (lớp mạng) và loại kết nối (lớp transport), và sau đó lọc các gói dữ liệu dựa trên những thông tin này. Bộ định tuyến kiểm tra có thể là thiết bị định tuyến độc lập hoặc máy tính gắn hai card mạng. Bộ định tuyến nối giữa hai mạng và thực hiện lọc gói dữ liệu để điều khiển luồng lưu thông giữa các mạng. Người quản trị lập trình cho thiết bị với các luật xác định cách lọc gói dữ liệu. Ví dụ, bạn có thể thường xuyên ngăn các gói của một dịch vụ nào đó như FTP (File Transfer Protocol) hay HTTP (HyperText Transfer Protocol). Tuy vậy, các luật bạn xác định cho bộ định tuyến có thể không đủ để bảo vệ tài nguyên trên mạng. Những luật này có thể rất khó cài đặt và dễ có lỗi, tạo nên những lỗ hỏng trong hệ thống phòng thủ.
Đây là kiểu cơ bản nhất của firewall.
Ưu điểm:
• Tương đối đơn giản và tính dễ thực thi.
• Nhanh và dễ sử dụng
• Chi phí thấp và ít ảnh hưởng đến performance của mạng.
• Rất hiệu quả trong việc đóng khối các kiểu riêng biệt của lưu lượng, và đôi khi nó là một phần của hệ thống firewall tổng quan. Ví dụ, telnet có thể dễ dàng được đóng khối bằng cách áp dụng một filter để đóng khối TCP cổng 23 (telnet).
Yếu điểm:
• Thông tin địa chỉ trong một gói có thể bị xuyên tạc hoặc bị đánh lừa bởi người gửi
• Dữ liệu hoặc các yêu cầu chứa trong một gói cho phép có thể có điều không mong muốn xảy ra, một hacker khai thác một chỗ sai sót trong một chương trình Web server hoặc sử dụng một mật mã bất chính để thu được quyền điều khiển hoặc truy cập.
• Packet Filter không thể thực hiện việc xác thực người dùng.
Các Proxy Server Gateway
Gateway là các thiết bị mức ứng dụng, cung cấp nhiều cơ hội hơn để theo dõi và điều khiển truy cập mạng. Một fireware gateway hoạt động như người trung gian, chuyển tiếp các thông điệp giữa khách/dịch vụ nội và ngoại.
Dịch vụ ủy thác (proxy service) có thể “biểu diễn” người dùng nội trên internet bằng cách thay đổi địa chỉ IP của khách trong các gói dữ liệu sang địa chỉ IP của riêng nó. Kỹ thuật này về cơ bản che dấu hệ thống nội và bảo đảm rằng những người dùng nội không kết nối trực tiếp với hệ thống bên ngoài. Proxy server có thể đánh giá và lọc tất cả các gói dữ liệu đến hoặc ngăn các gói dữ liệu đi ra.
Một số proxy server được thiết kế để cho phép chỉ những người dùng nội truy cập internet và không cho phép bất cứ người dùng ngoại nào trong mạng. Vì mọi yêu cầu đến internet server đều tạo ra phản hồi, proxy server phải cho phép luồng giao thông quay về, nhưng nó thực hiện điều này bằng cách chỉ cho phép luồng lưu thông là một phản hồi nào đó của người dùng nội. Các loại proxy server khác cung cấp dịch vụ chuyển tiếp an toàn theo cả hai chiều.
Proxy server còn có thể cung cấp dịch vụ cache cho người dùng nội. Nó lưu trữ thông tin về các nơi (site) để người dùng truy cập nhanh hơn. Khi người dùng truy cập đến những nơi này, thông tin được lấy từ vùng cache đã lưu trữ trước đó.
Có hai loại proxy server: mức bản mạch và mức ứng dụng
1. Gateway mức-MẠNG
Còn được gọi là “Circuit Level Gateway”, đây là hướng tiếp cận firewall thông qua kết nối trước khi cho phép dữ liệu được trao đổi.
Circuit Level Gateway (CLG) hoạt động ở lớp session của mô hình OSI, hoặc lớp TCP của mô hình TCP/IP. Chúng giám sát việc bắt tay TCP (TCP handshaking) giữa các gói để xác định rằng một phiên yêu cầu là phù hợp. Thông tin tới máy tính từ xa thông qua một CLG, làm cho máy tính ở xa đó nghĩ là thông tin đến từ gateway. Điều này che dấu được thông tin về mạng được bảo vệ. CLG thường có chi phí thấp và che dấu được thông tin về mạng mà nó bảo vệ. Ngược lại, chúng không lọc các gói.
Firewall không chỉ cho phép (allow) hoặc không cho phép (disallow) gói mà còn xác định kết nối giữa hai đầu cuối có hợp lệ theo các luật hay không, sau đó mở một session (phiên làm việc) và cho phép luồng lưu thông và có sự giới hạn thời gian. Một kết nối được xem là hợp lệ phải dựa vào các yếu tố sau:
• Địa chỉ IP và/hoặc cổng đích
• Địa chỉ IP và/hoặc cổng nguồn
• Thời gian trong ngày (time of day)
• Giao thức (protocol)
• Người dùng (user)
• Mật khẩu (password)
Mỗi phiên trao đổi dữ liệu đều được kiểm tra và giám sát. Tất cả các luồng lưu lượng đều bị cấm trừ khi một phiên được mở.
Loại proxy server này cung cấp kết nối (có điều khiển) giữa các hệ thống nội và ngoại. Có một mạch ảo giữa người dùng nội và proxy server. Các yêu cầu internet đi qua mạch này đến proxy server, và proxy server chuyển giao yêu cầu này đến internet sau khi thay đổi địa chỉ IP. Người dùng ngoại chỉ thấy địa chỉ IP của proxy server. Các phản hồi được proxy server nhận và gởi đến người dùng thông qua mạch ảo. Mặc dù luồng lưu thông được phép đi qua, các hệ thống ngoại không bao giờ thấy được hệ thống nội. Loại kết nối này thường được dùng để kết nối người dùng nội “được ủy thác” với internet.
Circuit Level Filtering có ưu điểm nổi trội hơn so với Packet Filter. Nó khắc phục được sự thiếu sót của giao thức UDP đơn giản và dể bị tấn công.
Bất lợi của Circuit Level Filtering là hoạt động ở lớp Transport và cần có sự cải tiến đáng kể của việc cài đặt để cung cấp các chức năng truyền tải (chẳng hạn như Winsock).
2.Gateway Mức-Ứng-Dụng (Application Gateway)
Các gateway mức ứng dụng, còn được gọi là các proxy, tương tự như các gateway mức mạng ngoại trừ việc chỉ định các ứng dụng. Chúng có thể lọc gói ở lớp ứng dụng của mô hình OSI. Các gói vào hoặc ra không thể truy cập các dịch vụ mà không có proxy. Một gateway mức ứng dụng được cấu hình như một web proxy sẽ không cho bất kỳ ftp, gopher, telnet hoặc lưu lượng khác xuyên qua. Bởi vì chúng kiểm tra các gói ở lớp ứng dụng, chúng có thể lọc các dòng lệnh chỉ định ứng dụng như http:post và get, etc. Điều này không thể được thực hiện với firewall lọc gói và firewall mức mạch, cả hai điều không biết gì về thông tin lớp ứng dụng. Các gateway mức ứng dụng còn có thể được sử dụng để ghi lại các hoạt động và các login của user. Chúng đề ra cấp độ bảo mật cao, và có sự tác động mạnh về performance của mạng. Bởi vì sự thay đổi ngữ cảnh mà làm chậm mạng truy cập một cách đột ngột. Chúng không dễ thực hiện (transparent) ở đầu cuối người dùng và yêu cầu sự cấu hình thủ công ở mọi máy client.
Một proxy server là cách để tập trung các dịch vụ ứng dụng thông qua một máy đơn lẻ. Nó hoạt động như một trung gian giữa một client và một server, và được thi hành như một ứng dụng đang chạy cùng chung với một hệ điều hành đa năng (general-purpose OS). Một máy đơn lẻ (bastion host) hoạt động như một proxy server với nhiều giao thức (Telnet, SMTP, FTP, HTTP,etc.) nhưng cũng có một máy đơn lẻ chỉ hoạt động với mỗi một dịch vụ. Thay vì kết nối trực tiếp với server bên ngoài, client kết nối với proxy server, proxy server kết nối với server bên ngoài.
Proxy server mức ứng dụng cung cấp tất cả các chức năng cơ bản của proxy server, cho phép các cuộc trao đổi dữ liệu với hệ thống từ xa nhưng hệ thống này không thấy được máy ở bên trong firewall.
Nó còn phân tích các gói dữ liệu. Khi các gói từ bên ngoài đến cổng này, chúng được kiểm tra và đánh giá để xác định chính sách an toàn có cho phép gói này đi vào mạng nội bộ hay không. Proxy server không chỉ đánh giá địa chỉ IP, nó còn nhìn vào dữ liệu trong gói để ngăn những kẻ đột nhập cất dấu thông tin trong đó.
Với các proxy server, các chính sách an toàn mạnh hơn và mềm dẻo hơn nhiều vì tất cả thông tin trong các gói được người điều hành sử dụng để ghi các luật xác định cách xử lý các gói. Có thể giám sát dễ dàng mọi việc xảy ra trên proxy server.
Các gateway mức ứng dụng được xem là loại an toàn nhất của firewall. Chúng có những khả năng tinh vi nhất.
Firewall mức ứng dụng có khuynh hướng cung cấp các report chi tiết và có khuynh hướng an toàn hơn các firewall mức mạng.
Tuy nhiên, việc cài đặt rất phức tạp, yêu cầu sự quan tâm chi tiết các ứng dụng riêng lẻ sử dụng gateway.
Stateful Multilayer Inspection Firewall
Các firewall kiểm tra nhiều lớp kết hợp hình thức của ba loại firewall (lọc gói, mức mạng và mức ứng dụng). Chúng lọc các gói ở lớp mạng, xác định các gói phù hợp và đánh giá nội dung các gói tại lớp ứng dụng. Chúng cho phép kết nối trực tiếp giữa client và host, làm giảm vấn đề do transparent gây ra ở các gateway mức ứng dụng. Chúng dựa vào các thuật toán để nhận ra và xử lý dữ liệu lớp ứng dụng thay cho việc chạy các proxy chỉ định ứng dụng. Stateful multilayer inspection firewalls đề ra cấp độ bảo mật cao, performance tốt và transparent đối với đầu cuối người dùng. Tuy nhiên, chi phí rất đắt, và độ phức tạp của nó có thể làm giảm độ an toàn hơn so với các loại firewall thông thường nếu như không được quản trị bởi đội ngũ thành thạo.
Kỹ thuật kiểm tra trạng thái
Một trong các vấn đề với proxy server là nó phải đánh giá một lượng lớn thông tin trong một lượng lớn các gói dữ liệu. Ngoài ra, phải cài đặt từng proxy cho mỗi ứng dụng. Điều này ảnh hưởng đến hiệu suất và làm tăng chi phí. Với kỹ thuật kiểm tra trạng thái, các mẫu bit của gói dữ liệu được so sánh với các gói “tin cậy” đã biết, do đó làm tăng hiệu suất.
Ví dụ, khi bạn truy cập một dịch vụ bên ngoài, proxy server sẽ nhớ mọi thứ về yêu cầu ban đầu, như số hiệu cổng, địa chỉ nguồn và đích. Cách “nhớ” này được gọi là lưu trạng thái. Khi hệ thống bên ngoài phản hồi yêu cầu của bạn, firewall so sánh các gói nhận được với trạng thái đã lưu để xác định chúng được phép vào hay không.
Tổng kết
Tất cả các loại firewall có điểm chung rất quan trọng: chúng nhận, kiểm tra và ra quyết định tất cả các dữ liệu đến trước khi chuyển qua hệ thống hoặc mạng. Chúng điều khiển các gói có được vào hệ thống hoặc mạng hay không. Chúng điều chỉnh dữ liệu ra được tốt. Các loại và các khả năng của firewall về cơ bản được định nghĩa bởi:
• Chúng cư trú bên trong mạng phân cấp (stack);
• Cách chúng phân tích và cách chúng điều chỉnh dòng dữ liệu (packet);
• Và các chức năng thiết thực có liên quan đến bảo mật. Vài chức năng đó là:
o Dữ liệu có thể được mã hóa/giải mã bởi firewall cho việc truyền được an toàn trên mạng xa
o Firewall có thể làm cho việc truyền thông được thuận tiện hơn giữa các mạng không tương thích nhau.
Đón đọc: Các khái niệm liên quan khác
PS: Rất mong sự đóng góp ý kiến của các bạn để bài viết được hoàn thiện hơn.