Một tường lửa bao gồm một hoặc nhiều thành phần sau đây:
Bộ lọc gói tin (Packet Filtering).
Cổng ứng dụng (Application Gateway).
Cổng mạch ( Circuit Level Gateway ).
Bộ lọc gói tin (Packet Filtering):
Nguyên lý:
Khi nói đến việc lưu thông dữ liệu giữa các mạng với nhau thông qua tường lửa thì điều đó có nghĩa rằng tường lửa hoạt động chặt chẽ với giao thức liên mạng TCP/IP. Vì giao thức này làm việc thuật toán chia nhỏ các dữ liệu nhận được trên mạng, hay nói cách chính xác hơn là các dịch vụ chạy trên các giao thức ( Telnet, SMTP, FTP, DNS, NSF ….) chia thành các gói dữ liệu rồi gán cho các gói tin này các địa chỉ có thể nhận dạng, tái lập ở đích cần gửi đến do đó các loại tường lửa cũng liên quan nhiều đến các gói tin và các con số địa chỉ của chúng.
Hình 2.1: Bộ lọc gói tin
Bộ lọc gói tin cho phép hoặc từ chối mỗi gói tin mà nó nhận được. Nó kiểm tra toàn bộ đoạn dữ liệu để quyết định xem đoạn dữ liệu đó có thỏa mãn một số luật lệ của lọc gói tin hay không. Các luật lệ lọc gói tin này dựa trên cácthông tin ở đầu mỗi gói tin dùng để cho phép truyền gói tin trên mạng. Đó là:
Địa chỉ IP nguồn (IP Souce Addresss).
Địa chỉ IP đích (IP Destination Address).
Thông tin về giao thức (tập các luật) điều khiển gói (loại gói tin TCP, UDP, ICMP, IP tunnel).
Cổng TCP/UDP nguồn (TCP/UDP Souce port).
Cổng TCP/UDP đích (TCP/UDP Destination port).
Dạng thông báo ICMP (ICPM messager type).
Giao diện gói tin đến ( incomming interface of packet ).
Giao diện gói tin đi ( outcomming interface of packet ).
Nếu luật lệ được thỏa mãn thì gói tin sẽ được chuyển qua tường lửa nếu không gói tin sẽ bị loại bỏ. Nhờ vậy mà tường lửa có thể ngăn cản các kết nối vào các máy chủ hoặc mạng nào đó xác định hoặc khóa truy cập vào trong trong hệ thống mạng nội bộ từ những địa chỉ không cho phép. Hơn nữa việc
kiểm soát các cổng làm cho tường lửa có khả năng chỉ cho phép một số loại kết nối nhất định vào các loại máy chủ nào đó hoặc chỉ cho phép một số dịch vụ nào đó (FTP, SSH, HTTP … ) mới được chạy trên hệ thống mạng cục bộ (LAN).
Ưu điểm:
Đa phần các tường lửa đều sử dụng bộ lọc gói tin vì:
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 hiệu xuất 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 tường lửa 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).
Nhược điểm:
Việc định nghĩa các chế độ lọc gói tin là việc phức tạp, nó đòi hỏi người quản trị mạng hiểu biết chi tiết về các dịch vụ Internet, các dạng packet header và các giá trị cụ thể trên các trường. Khi đòi hỏi về sự lọc càng lớn thì các luật lệ về lọc càng dài và phức tạp vì vậy rất khó quản lý và điều khiển.
Do làm việc dựa trên packet header nên bộ lọc gói tin không kiểm soát được nội dung thông tin của gói tin. Các gói tin chuyển qua vẫn có thể mang theo mã độc.
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.
Cổng ứng dụng (Application Gateway) :
Nguyên lý:
Đây là một loại thiết kế nhằm tăng cường chức năng kiểm soát dịch vụ, giao thức được cho phép truy cập vào hệ thống mạng. Cơ chế hoạt động của nó dựa trên cách thức gọi là Proxy service (Dịch vụ đại diện). Proxy service là các bộ chương trình đặc biệt cài đặt trên gateway cho từng ứng dụng. Nếu người quản trị mạng không cài đặt proxy cho ứng dụng nào đó, thì dịch vụ tương ứng sẽ không được cung cấp và do đó không thể chuyển thông tin qua tường lửa. Ngoài ra, Proxy code có thể được định cấu hình để hỗ trợ chỉ một số đặc điểm trong ứng dụng, mà người quản trị mạng cho là chấp nhận được trong khi từ chối các đặc điểm khác.
Hình 2.2: Cổng lọc ứng dụng
Một số cổng ứng dụng được xem như là một pháo đài (bastion host), bởi vì nó được thiết kế đặc biệt để chống lại sự tấn công bên ngoài. Những biện pháp đảm bảo an ninh cho một bastion host là:
Bastion host luôn chạy các phiên bản an toàn của các phần mềm hệ thống. Các phiên bản an toàn này được thiết kế chuyên cho mục đích chống lại sự tấn công vào Operating Systems, cũng như là đảm bảo tích hợp tường lửa.
Chỉ những dịch vụ cho là cần thiết mới được cài trên basion host, đơn giản là chỉ vì nếu một dịch vụ không được cài đặt, dịch vụ đó sẽ không bị tấn công. Thông thường chỉ một số giới hạn cho các dịch vụ Telnet,
DNS, FTP, SMTP và xác thực người dùng là được cài đặt trên basion host.
Basion host có thể yêu cầu nhiều mức xác thực khác nhau. Ví dụ: mật khẩu người dùng hay smart card mỗi proxy được đặt cấu hình để cho phép truy nhập chỉ một số các máy chủ nhất định. Điều này có nghĩa rằng bộ lệnh và đặc điểm thiết lập cho mỗi proxy chỉ đúng với một số máy chủ trên toàn hệ thống.
Mỗi proxy duy trì một quyển nhật ký ghi chép lại toàn bộ các chi tiết lưu thông qua nó, mỗi sự kết nối, khoảng thời gian kết nối. Nhật ký này rất có ích trong việc tìm dấu vết hoặc ngăn chặn kẻ phá hoại.
Mỗi proxy đều độc lập với các proxy khác trên Basion host. Điều này cho phép dễ dàng cài đặt một số proxy mới, hay tháo gỡ một proxy đang có vấn đề. Ví dụ một người khác ngoài mạng muốn sử dụng dịch vụ Telnet để kết nối vào hệ thống mạng qua Basion host có Telnet proxy. Quá trình xảy ra như sau:
o Máy bên ngoài telnet đến Basion host. Basion host kiểm tra mật khẩu, nếu hợp lệ thì máy bên ngoài được phép vào giao diện của Telnet proxy. Telnet proxy cho phép một tập nhỏ những lệnh của telnet và quyết định những máy chủ nội bộ nào máy bên ngoài được phép truy nhập.
o Máy bên ngoài chỉ ra máy đích và Telnet proxy tạo một kết nối riêng tới máy chủ đích và chuyển các lệnh tới máy chủ đích dưới sự ủy quyền của máy bên ngoài. Máy bên ngoài tin rằng Telnet proxy là máy chủ thật ở trong, còn máy chủ bên trong tin rằng Telnet proxy là máy thật.
Ưu điểm:
Cho phép người quản trị mạng hoàn toàn điều khiển dịch vụ trên mạng, bởi vì ứng dụng proxy hạn chế một số lệnh và quyết định những máy chủ nào có thể truy nhập vào các dịch vụ.
Cho phép người quản trị mạng điều khiển được những dịch vụ nào cho phép, bởi vì sự vắng mặt của các proxy cho các dịch vụ tương ứng nghĩa là dịch vụ ấy bị khóa.
Cổng ứng dụng kiểm tra độ xác thực rất tốt, và nó có nhật ký ghi lại các thông tin về truy nhập hệ thống.
Luật filtering (lọc) cho cổng ứng dụng là dễ dàng cấu hình và kiểm tra hơn bộ lọc gói tin.
Nhược điểm:
Yêu cầu các người dùng biến đổi thao tác hoặc biến đổi phần mềm đã cài đặt trên máy trạm cho truy cập vào các dịch vụ proxy. Ví dụ: telnet truy cập qua cổng ứng dụng đòi hỏi hai bước để nối với máy chủ chứ không phải một bước. Tuy nhiên, cũng đã có một số phần mềm máy trạm cho phép ứng dụng trên cổng là trong suốt, bằng cách cho người dùng chỉ ra máy đích chứkhông phải ứng dụng trên cổng telnet.
Yêu cầu tài nguyên để xử lý khá cao và làm giảm khả năng xử lý của mạng.
Cổng mạch ( Circuit Level Gateway )
Cổng vòng là một chức năng đặc biệt có thể thực hiện được thông qua cổng ứng dụng. Cổng vòng chỉ đơn giản là chuyển tiếp các kết nối TCP mà không thực hiện bất cứ hành động xử lý hay lọc gói tin nào.
Hình 2.3: Cổng vòng
Hình trên minh họa một hành động telnet qua cổng vòng. Cổng vòng chỉ đơn giản chuyển tiếp kết nối qua tường lửa mà không thực hiện lọc hay điều khiển các thủ tục của telnet. Cổng vòng làm việc như một sợi dây, sao chép
các byte giữa kết nối bên trong và kết nối bên ngoài. Tuy nhiên vì sự kết nối này trên tường lửa nên nó che dấu mạng nội bộ.
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 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.
Hình 2.4: Cổng mạch
Tường lửa không chỉ cho phép hoặc không cho phép gói tin 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 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à cổng đích.
Địa chỉ IP và 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ạng ảo. Mặc dù luồng lưu thông được phép đi qua, các hệ thống bên ngoài không bao giờ thấy được hệ thống nội bộ bên trong. Loại kết nối này thường được dùng để kết nối người dùng bên trong được ủy thác với Internet.
Cổng vòng thường được dùng để kết nối ra ngoài khi mà quản trị mạng thật sự tin tưởng những người dùng bên trong. Ưu điểm lớn nhất là một Basion host có thể cấu hình như một hỗn hợp cung cấp cổng ứng dụng cho kết nối đến và cổng vòng cho kết nối đi. Điều này làm cho hệ thống tường lửa dễ dàng sử dụng cho người trong mạng nội bộ muốn truy cập trực tiếp ra Internet, trong khi vẫn cung cấp chức năng tường lửa để bảo vệ mạng nội bộ tránh khỏi sự tấn công bên ngoài. 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 ở tầng 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).