Trong bài viết này, chúng ta sẽ xem xét chủ đề về Tường lửa IOS Cisco dựa trên vùng (Zone Based Firewall-ZBFW). Tường lửa dựa trên vùng của Cisco IOS cho phép xác định Vùng bảo mật và cung cấp chính sách riêng cho từng vùng. Tường lửa dựa trên vùng là gì (Zone Based Firewall) Vào thời kỳ đầu của các bộ định tuyến Cisco, việc triển khai chức năng tường lửa trên các thiết bị bộ định tuyến IOS được thực hiện bằng cách sử dụng cái gọi là tường lửa IOS hoặc CBAC (Context-Based Access Control). Sự phát triển của khái niệm trên là “Zone Based Firewall-Tường lửa dựa trên vùng”, đây là hình thức mới hơn để cấu hình kiểm soát lưu lượng tường lửa trên bộ định tuyến. Bạn có thể hỏi: “Có thể kiểm soát lưu lượng bằng cách sử dụng Danh sách kiểm soát truy cập (ACL)” Đúng, nhưng ACL KHÔNG có trạng thái. Tính năng Tường lửa dựa trên vùng cung cấp khả năng kiểm tra trạng thái lưu lượng giống như tường lửa phần cứng thông thường. Bạn sẽ cần tạo và cấu hình vùng bảo mật như được giải thích bên dưới. Giải thích về các khu vực bảo mật (Security Zones) - Vùng bảo mật (Security Zone) – giao diện hoặc nhóm giao diện, trên đó một chính sách cụ thể được áp dụng. Theo mặc định, trong cùng một Vùng bảo mật, tất cả lưu lượng đều được phép, nhưng giữa các vùng bảo mật, tất cả lưu lượng đều bị chặn, ngoại trừ lưu lượng do bộ định tuyến tạo ra. Để cho phép lưu lượng giữa các vùng bảo mật, cần phải tạo các cặp vùng và chính sách cho từng vùng. - Cặp khu vực (Zone-pair) – cho phép xác định chính sách tường lửa một chiều giữa các khu vực. Nói một cách đơn giản, một cặp khu vực xác định hướng lưu lượng truy cập. Hướng được xác định giữa vùng nguồn và vùng đích. - Chính sách vùng (Zone policy) – xác định loại lưu lượng nào sẽ bị từ chối hoặc cho phép giữa các vùng. Ví dụ: chúng ta muốn cho phép lưu lượng HTTP và từ chối lưu lượng SMTP. Chính sách vùng có ba hành động: “vượt qua-pass”, “thả-drop” và “kiểm tra-inspect”. Các hành động chuyển và thả có tác dụng ngay lập tức đối với lưu lượng truy cập, nhưng hành động Kiểm tra yêu cầu bộ định tuyến sử dụng bản đồ lớp được xác định trước để lọc lưu lượng. Cấu hình Zone Based Firewall trên Cisco Router Hãy xem xét một ví dụ chi tiết. Trong kịch bản sau đây, chúng ta sẽ tạo hai vùng, bên trong (inside) và bên ngoài (ouside) và chỉ cho phép PING (ICMP) cho Vùng bên trong chuyển sang Vùng bên ngoài (ngược lại không được phép). Trước khi bắt đầu cấu hình Zone Based Firewall (ZBF), hãy đảm bảo rằng mọi thứ đều hoạt động và tất cả các máy chủ được kết nối với nhau. Chúng ta sẽ cần xác định các giao diện sẽ thuộc cùng một vùng bảo mật và nhóm chúng lại với nhau. ! Create Inside and Outside Zones. R1(config)#zone security INSIDE R1(config)#zone security OUTSIDE ! Assign interfaces to Zones R1(config)#interface fa0/0 R1(config-if)#zone-member security INSIDE R1(config)#interface fa0/1 R1(config-if)#zone-member security INSIDE R1(config)#interface fa1/0 R1(config-if)#zone-member security OUTSIDE ! Determine the interesting traffic by class-map. R1(config)#class-map type inspect match-any CLASS_INSIDE_2_OUTSIDE R1(config-cmap)#match protocol icmp Về cơ bản, trong các tham số cấu hình class-map, chúng ta sử dụng hai tham số: khớp bất kỳ(match-any) và khớp tất cả(match-all). Trong trường hợp “match-any”, lưu lượng truy cập có thể được đối sánh với bất kỳ tiêu chí đối sánh nào, nhưng trong trường hợp match-all, lưu lượng truy cập phải phù hợp với tất cả các tiêu chí được xác định trong class-map. Trong trường hợp này, chúng ta chỉ kiểm tra ICMP nhưng có thể khớp với bất kỳ giao thức nào chúng ta cần. Chúng ta đã xác định lưu lượng truy cập nào chúng ta muốn kiểm soát và bây giờ chúng ta xác định phải làm gì với lưu lượng truy cập này. ! Create policy map, which will check traffic. R1(config)#policy-map type inspect POLICY_INSIDE_2_OUTSIDE R1(config-pmap)#class type inspect CLASS_INSIDE_2_OUTSIDE R1(config-pmap-c)#inspect lưu ý: ở cuối policy-map, theo mặc định, có một cụm từ "từ chối tất cả" ngầm, giống như sau: #class class-default #drop Cuối cùng, chúng ta cần xác định hướng kiểm soát Tường lửa, điều này sẽ được thực hiện bởi các cặp khu vực. !Determine Zone-pairs and directions. Router(config)#zone-pair security PAIR_INSIDE_2_OUTSIDE source INSIDE destination OUTSIDE !Attach already created Policy-map to the zone pair. Router(config-sec-zone-pair)#service-policy type inspect POLICY_INSIDE_2_OUTSIDE Hãy làm một số kiểm tra. Theo kịch bản, các máy chủ trong Vùng bên trong phải ping các máy chủ nằm trong vùng bên ngoài, nhưng các máy chủ ở vùng bên ngoài sẽ không thể ping các máy chủ nằm trong vùng bên trong. Hãy xem kết quả. host1#ping 192.168.12.1 !!!! --> thành công host3#ping 192.168.1.2 ….. --> thất bại host3#ping 192.168.2.2 ….. --> thất bại Đúng với mong muốn đặt ra. Thực hiện tương tự cho các giao thức khác ngoài icmp như: http, ssh, smtp, ... theo từng mục đích cụ thể trong mạng của bạn. Chúc các bạn thành công! Bài viết liên quan: Cấu hình Router Cisco thành Firewall sử dụng CBAC