MỤC LỤC


CẤU HÌNH CLASS-MAP TRÊN THIẾT BỊ CISCO

14 - ỨNG DỤNG VÀ CẤU HÌNH CLASS-MAP TRÊN THIẾT BỊ CISCO

I. ỨNG DỤNG CỦA CLASS-MAP

Trong kiến trúc phần mềm của Firewall Cisco (đặc biệt là Cisco ASA và hệ thống chạy phần mềm FTD), Class Map là thành phần đầu tiên và cốt lõi của mô hình MPF (Modular Policy Framework).

Nếu ví Firewall như một dây chuyền phân loại thư, thì Class Map chính là bước "dán nhãn và phân loại". Nó có nhiệm vụ định nghĩa, nhận diện và gom cụm các loại lưu lượng (traffic) dựa trên các tiêu chí cụ thể, trước khi chuyển sang cho các bộ phận khác xử lý.

Dưới đây là các ứng dụng thực tế quan trọng nhất của Class Map trong Firewall Cisco:

1. Kiểm tra chuyên sâu gói tin (Deep Packet Inspection - Layer 7 Inspection)

Đây là ứng dụng phổ biến và quan trọng nhất của Class Map trên Firewall Cisco để đảm bảo an toàn hệ thống. Mặc dù Firewall chặn/mở traffic bằng IP và Port (Layer 3/4), nhưng nhiều cuộc tấn công tinh vi ẩn nấp bên trong các giao thức hợp lệ (như HTTP, FTP, DNS).

Cách hoạt động: Class Map loại Inspect được cấu hình để "mổ xẻ" phần nội dung (Payload) của gói tin ở Tầng ứng dụng (Layer 7).

Ứng dụng thực tế:

HTTP Inspection: Class Map nhận diện các lưu lượng HTTP có chứa các phương thức nguy hiểm (như tệp tải về quá dung lượng quy định, hoặc các request chứa ký tự lạ tấn công SQL Injection).

DNS/FTP Inspection: Nhận diện và ngăn chặn các hành vi cố tình giấu mã độc trong giao thức chuyển file FTP hoặc giao thức truy vấn tên miền DNS.

2. Quản lý băng thông và Giới hạn tốc độ (QoS / Traffic Shaping & Policing)

Khi doanh nghiệp gặp tình trạng mạng chậm do một số người dùng hoặc dịch vụ chiếm dụng hết băng thông (ví dụ: xem video, download file lớn), Class Map sẽ được dùng để thiết lập lại trật tự.

Cách hoạt động: Bạn dùng Class Map để nhận diện chính xác luồng dữ liệu cần xử lý (ví dụ: nhận diện toàn bộ lưu lượng từ dải IP của phòng ban Marketing, hoặc nhận diện traffic của ứng dụng Skype/Zoom).

Ứng dụng thực tế:

Ưu tiên (Priority): Nhận diện các gói tin VoIP (Voice over IP) hoặc Video Conference để đưa vào hàng đợi ưu tiên, đảm bảo cuộc gọi không bị bập bõm.

Giới hạn (Policing): Nhận diện dải IP Inside LAN và bóp băng thông download của dải này xuống tối đa 10Mbps để tránh nghẽn đường truyền Internet chung của công ty.

3. Chống tấn công từ chối dịch vụ (DoS/DDoS Protection & Connection Limit)

Class Map giúp Firewall Cisco bảo vệ các máy chủ nội bộ hoặc vùng DMZ khỏi các đợt tấn công làm tràn ngập hệ thống (TCP Syn Flood, UDP Flood).

Cách hoạt động: Tạo một Class Map để nhận diện lưu lượng đi từ bên ngoài Internet hướng vào địa chỉ IP Public của Server.

Ứng dụng thực tế: Kết hợp Class Map này với Policy Map để đặt ra giới hạn:

Giới hạn tối đa số lượng kết nối TCP đồng thời (Maximum Connections) mà Server được phép nhận từ một IP nguồn.

Giới hạn số lượng kết nối ở trạng thái chờ (Embryonic Connections). Nếu vượt quá ngưỡng này, Firewall sẽ tự động drop các gói tin nghi ngờ là DDoS để bảo vệ tài nguyên của Server.

4. Phân loại lưu lượng để tối ưu hóa tính năng bảo mật (Tuning Default Inspection)

Mặc định, Firewall Cisco ASA/FTD đi kèm với một Class Map hệ thống rất nổi tiếng tên là inspection_default.

Ứng dụng thực tế: Class Map mặc định này tự động nhận diện các giao thức phổ biến như ICMP, FTP, SIP, RTSP... để Firewall theo dõi trạng thái trạng thái (Stateful Tracking) của chúng.

Nếu hệ thống của doanh nghiệp chạy một ứng dụng đặc thù sử dụng các port lạ, kỹ sư sẽ vào Class Map này để bổ sung hoặc loại bỏ bớt các giao thức không cần thiết, giúp Firewall xử lý packet nhanh hơn, tối ưu hóa hiệu năng CPU của thiết bị.

II. CÁC BƯỚC CẤU HÌNH CLASS-MAP TRÊN THIẾT BỊ CISCO

Các bước cơ bản để cấu hình Class-map:

Bước 1: Vào chế độ cấu hình toàn cục:

FdcFwCisco > enable

FdcFwCisco # configure terminal

Hoặc viết tắt:

FdcFwCisco > en

FdcFwCisco # conf t

Bước 2: Tạo Class-map: Sử dụng lệnh class-map để bắt đầu định nghĩa một class-map. Bạn cần chỉ định tên cho class-map và kiểu so khớp (match type).

Hostname(config)# class-map [match-type] <class-map-name>

Trong đó:

<class-map-name>: Tên bạn muốn đặt cho class-map (ví dụ: VOICE-TRAFFIC, WEB-TRAFFIC, HIGH-PRIORITY). Tên này có phân biệt chữ hoa chữ thường.

[match-type] (tùy chọn): Xác định logic kết hợp giữa các lệnh match bên trong class-map. Có hai tùy chọn phổ biến:

match-all: Tất cả các tiêu chí match phải đúng để lưu lượng được coi là khớp với class-map này (AND logic). Đây là giá trị mặc định nếu bạn không chỉ định match-type.

match-any: Chỉ cần một trong các tiêu chí match đúng để lưu lượng được coi là khớp với class-map này (OR logic).

Ví dụ:

Tạo class-map với kiểu match-all:

FdcFwCisco(config)# class-map match-all VOICE

Tạo class-map với kiểu match-any:

FdcFwCisco(config)# class-map match-any WEB

Bước 3: Định nghĩa tiêu chí so khớp (Match Criteria): Bên trong cấu hình của class-map, bạn sử dụng một hoặc nhiều lệnh match để xác định các đặc điểm của lưu lượng mà bạn muốn phân loại. Các lệnh match phổ biến bao gồm:

match access-group <access-list-name> hoặc match access-group name <access-list-name>: So khớp lưu lượng dựa trên một Access Control List (ACL) đã được định nghĩa.

FdcFwCisco(config)# class-map TRAFFIC-FROM-SPECIFIC-NETWORK

FdcFwCisco(config-cmap)# match access-group name FROM-NET-192

match protocol <protocol-name>: So khớp lưu lượng dựa trên giao thức (ví dụ: ip, tcp, udp, icmp, http, ftp, rtp).

FdcFwCisco(config)# class-map UDP-TRAFFIC

FdcFwCisco(config-cmap)# match protocol udp

match port [tcp | udp] [eq <port> | gt <port> | lt <port> | range <port1> <port2>]: So khớp lưu lượng dựa trên cổng TCP hoặc UDP nguồn hoặc đích.

FdcFwCisco(config)# class-map HTTP-TRAFFIC

FdcFwCisco(config-cmap)# match protocol tcp

FdcFwCisco(config-cmap)# match port tcp eq 80

FdcFwCisco(config)# class-map RTP-PORTS

FdcFwCisco(config-cmap)# match protocol udp

FdcFwCisco(config-cmap)# match port udp range 10000 20000

match dscp <dscp-value> ... hoặc match ip dscp <dscp-value> ...: So khớp lưu lượng dựa trên giá trị Differentiated Services Code Point (DSCP) trong header IP. Bạn có thể chỉ định nhiều giá trị DSCP.

FdcFwCisco(config)# class-map VOICE-PRIORITY

FdcFwCisco(config-cmap)# match dscp ef

FdcFwCisco(config)# class-map MULTIPLE-DSCP

FdcFwCisco(config-cmap)# match dscp af11 af12 af13

match precedence <precedence-value> ... hoặc match ip precedence <precedence-value> ...: So khớp lưu lượng dựa trên giá trị IP Precedence (ít được sử dụng hơn DSCP ngày nay). Giá trị từ 0 đến 7.

FdcFwCisco(config)# class-map CRITICAL-DATA

FdcFwCisco(config-cmap)# match precedence 5

match cos <cos-value> ...: So khớp lưu lượng dựa trên giá trị Class of Service (CoS) trong header 802.1Q (thường sử dụng trên các interface trunk).

FdcFwCisco(config)# class-map VIDEO-TRAFFIC

FdcFwCisco(config-cmap)# match cos 4

match input-interface <interface-type> <interface-number>: So khớp lưu lượng dựa trên interface mà lưu lượng đi vào.

FdcFwCisco(config)# class-map TRAFFIC-FROM-INSIDE

FdcFwCisco(config-cmap)# match input-interface GigabitEthernet0/0

match vlan <vlan-id> ...: So khớp lưu lượng dựa trên VLAN ID.

FdcFwCisco(config)# class-map VLAN-10-TRAFFIC

FdcFwCisco(config-cmap)# match vlan 10

Các lệnh match khác: Tùy thuộc vào tính năng bạn đang cấu hình (ví dụ: Zone-Based Firewall có các lệnh match liên quan đến zone).

Bước 4: Kết thúc cấu hình Class-map: Sau khi bạn đã định nghĩa xong các tiêu chí match, bạn chỉ cần thoát khỏi chế độ cấu hình class-map bằng lệnh exit.

FdcFwCisco(config-cmap)# exit

Bước 5: Kiểm tra cấu hình Class-map (tùy chọn): Bạn có thể kiểm tra cấu hình class-map đã tạo bằng lệnh show class-map [class-map-name].

FdcFwCisco# show class-map VOICE

Lệnh này sẽ hiển thị tên class-map, kiểu so khớp và các tiêu chí match đã được cấu hình.

Ví dụ cấu hình Class-map:

Giả sử bạn muốn phân loại các loại lưu lượng sau:

Lưu lượng VoIP (sử dụng RTP và DSCP EF).

Lưu lượng web (sử dụng TCP cổng 80 hoặc 443).

Tất cả lưu lượng từ mạng 192.168.1.0/24

Bạn có thể cấu hình các class-map như sau:

FdcFwCisco> enable

FdcFwCisco# configure terminal

Class-map cho lưu lượng VoIP (match-all)

FdcFwCisco(config)# class-map match-all VOICE-TRAFFIC

FdcFwCisco(config-cmap)# match protocol rtp

FdcFwCisco(config-cmap)# match dscp ef

Class-map cho lưu lượng web (match-any)

FdcFwCisco(config)# class-map match-any WEB-TRAFFIC

FdcFwCisco(config-cmap)# match protocol tcp

FdcFwCisco(config-cmap)# match port tcp eq 80

FdcFwCisco(config-cmap)# match port tcp eq 443

Class-map cho lưu lượng từ mạng 192.168.1.0/24 (sử dụng ACL)

FdcFwCisco(config)# ip access-list extended FROM-NET-192

FdcFwCisco(config-ext-nacl)# permit ip 192.168.1.0 0.0.0.255 any

FdcFwCisco(config)# class-map TRAFFIC-FROM-NET-192

FdcFwCisco(config-cmap)# match access-group name FROM-NET-192

FdcFwCisco(config-cmap)#exit

Sau khi tạo các class-map này, bạn sẽ sử dụng chúng trong một Policy-map để chỉ định các hành động (ví dụ: QoS, kiểm tra tường lửa) sẽ được thực hiện đối với từng loại lưu lượng đã phân loại.

Lưu ý quan trọng:

Tên class-map có ý nghĩa và dễ hiểu sẽ giúp bạn quản lý cấu hình dễ dàng hơn.

Hiểu rõ logic match-all và match-any là rất quan trọng để phân loại lưu lượng chính xác.

Bạn có thể sử dụng nhiều lệnh match trong một class-map để xác định lưu lượng một cách chi tiết.

Class-map chỉ định nghĩa tiêu chí để chọn lưu lượng, nó không thực hiện bất kỳ hành động nào lên lưu lượng đó. Hành động được định nghĩa trong Policy-map.

Hy vọng các bước và câu lệnh chi tiết này giúp bạn hiểu rõ hơn về cách cấu hình Class-map trên thiết bị Cisco!

DANH MỤC SẢN PHẨM

XEM TẤT CẢ >>

Zalo