Chuyển đến nội dung chính (Skip to content)
CCNA

ACL standard và extended: kiểm soát lưu lượng đúng chỗ

ACL standard và extended: kiểm soát lưu lượng đúng chỗ

Viết chính sách IPv4 thành ma trận luồng, tạo named ACL và áp đúng chiều interface. Giải thích wildcard, first match, implicit deny và giới hạn stateless.

Sau khi thêm ACL, máy người dùng mở được portal nhưng không ping được server. Người trực cho rằng đường route đã hỏng. Trong khi đó, chính sách lab chỉ cho HTTPS và DNS, nên ICMP bị chặn là kết quả dự kiến. Một phép thử chỉ có ý nghĩa khi biết gói đang hỏi quyền nào và đi qua ACL nào.

ACL standard và extended là các danh sách điều kiện được xét theo thứ tự. Bài này viết chính sách thành từng luồng cụ thể, áp vào một chiều interface rồi đối chiếu rule/counter, thay vì sửa permit/deny bằng cảm giác.

1. Chuyển yêu cầu thành ma trận luồng trước cấu hình

Lab có LAN 20 là 10.20.0.0/24, client A 10.20.0.120 cấu hình IP tĩnh, gateway R1 Gi0/1 là 10.20.0.1. Các route hai chiều đã có: portal10.30.30.77 TCP 443 và DNS10.99.0.53 UDP/TCP 53 nằm phía Gi0/0 của R1. Không có NAT, VRF, firewall stateful hay ACL khác trong lab.

Chính sách: LAN 20 được tới portal bằng HTTPS và tới DNS bằng cả UDP/TCP 53. Các IPv4 khác đi vào Gi0/1 bị chặn. Lab không cần DHCP hoặc ứng dụng khác trên đoạn này. Đây là chính sách học tập hẹp, không phải mẫu có thể áp nguyên cho mọi VLAN văn phòng.

Ma trận cho phép HTTPS tới portal, UDP và TCP 53 tới DNS; chặn SSH ICMP và đích khác trong lab
Hình 1. Chính sách ghi cả nguồn, đích, giao thức và dịch vụ; ping bị chặn không tự nghĩa route hỏng.

Cuộn ngang khi cần, hoặc chạm sơ đồ để mở ảnh gốc.

Các lệnh theo IOS/IOS XE có named IPv4 ACL, chưa chạy trên hardware. Switch có thể dùng routed ACL, port ACL hoặc VLAN ACL với phạm vi khác; bài chỉ xét IP ACL trên routed interface. IPv6 cần chính sách riêng, không được ngầm coi IPv4 ACL bảo vệ cả hai họ địa chỉ.

2. Standard, extended và wildcard khớp những gì?

Standard IPv4 ACL cơ bản xét nguồn. Ví dụ permit 10.20.0.0 0.0.0.255 chọn nguồn trong /24, nhưng không diễn đạt riêng “chỉ HTTPS tới portal”. Extended ACL có thể xét protocol, nguồn, đích và cổng phù hợp giao thức, nên phù hợp chính sách lab.

Wildcard bit0 yêu cầu khớp, bit1 bỏ qua. Với /24 liên tục, wildcard 0.0.0.255 tương ứng mask 255.255.255.0. Không thay wildcard bằng subnet mask trong lệnh. host 10.30.30.77 chỉ đúng một địa chỉ; any bỏ qua địa chỉ tương ứng. Wildcard cũng có thể không liên tục, nên quy tắc lấy255 trừ mask chỉ áp khi đang biểu diễn một subnet liên tục phù hợp.

Vị trí source/destination trong ACE phải đọc đúng. Sau địa chỉ đích, eq 443 ở ví dụ khớp cổng đích TCP 443. Nếu đặt toán tử cổng sau nguồn thì ý nghĩa khác. Gói trả lời có source443 và destination cổng tạm của client, không phải bản sao chiều đi với hai IP đổi chỗ mà giữ nguyên vai trò cổng.

Cisco hướng dẫn IP access lists về masks, match và in/out. Một ACL chỉ là đối tượng cấu hình cho tới khi được tham chiếu đúng tính năng. ACL chọn NAT ở bài NAT/PAT không tự trở thành bộ lọc interface.

3. First match và implicit deny quyết định kết quả

Router xét ACE từ trên xuống trong ACL đang áp, dừng ở điều kiện đầu tiên khớp. Không tìm rule “cụ thể nhất” giống longest prefix match của routing. Nếu permit rộng đứng trước deny hẹp, deny phía sau có thể không bao giờ được dùng cho luồng ấy.

Ví dụ thêm một permit ip any any lên đầu sẽ làm chính sách hạn chế bên dưới mất tác dụng đối với gói IPv4 khớp. Ngược lại, quên permit DNS khiến portal theo tên có thể lỗi dù permit TCP 443 đúng. Cần kiểm tra cả luồng phụ trợ của ứng dụng, không chỉ cổng chính.

Cây xét ACL từ ACE 20 HTTPS tới ACE 30 UDP 53 ACE 40 TCP 53 rồi deny90, dừng ở lần khớp đầu
Hình 2. Số sequence giúp quản lý thứ tự; không phải priority tự so theo độ dài prefix.

Cuộn ngang khi cần, hoặc chạm sơ đồ để mở ảnh gốc.

Cuối danh sách IPv4 ACL có implicit deny. Lab dùng thêm deny tường minh để người học thấy điểm kết thúc và theo dõi theo khả năng platform. Không cần thêm log cho mọi gói bị chặn: log dày có thể tăng tải và gây nhiễu. Counter/hardware behavior cũng cần đối chiếu thiết bị, không giả định mọi implicit deny đều có dòng đếm riêng.

4. Tạo ACL đầy đủ rồi gắn vào đúng chiều

Lưu ACL hiện tại, nơi tham chiếu và đường quản trị trước thay đổi. Gắn ACL thiếu rule có thể cắt SSH hoặc ứng dụng ngay. Tạo đối tượng hoàn chỉnh trước áp dụng; không xây từng dòng ACL đang hoạt động khi implicit deny đã có hiệu lực. Lab dùng console và client tĩnh, không đi quản trị qua luồng sẽ chặn.

! Lab mới: chưa có ACL khác trên R1 Gi0/1 inbound
configure terminal
ip access-list extended LAN20-IN
 10 remark LAN 20 only HTTPS portal and DNS
 20 permit tcp 10.20.0.0 0.0.0.255 host 10.30.30.77 eq 443
 30 permit udp 10.20.0.0 0.0.0.255 host 10.99.0.53 eq 53
 40 permit tcp 10.20.0.0 0.0.0.255 host 10.99.0.53 eq 53
 90 deny ip any any
exit
interface GigabitEthernet0/1
 ip access-group LAN20-IN in
end

In nghĩa gói đi vào router qua interface Gi0/1, không có nghĩa “đi vào Internet” hay “đi vào phòng ban”. Out nghĩa gói rời router qua interface đang xét. Chiều trả lời từ portal vào Gi0/0 rồi ra Gi0/1 không đi qua ACL inbound Gi0/1 này; nếu có ACL chiều khác, nó cần policy riêng.

Gói từ LAN đi vào Gi0/1 được xét LAN20-IN, phản hồi ra Gi0/1 không đi qua ACL inbound đó
Hình 3. Hướng áp được đọc từ thiết bị/interface; phải vẽ cả chiều đi và chiều về.

Cuộn ngang khi cần, hoặc chạm sơ đồ để mở ảnh gốc.

“Extended gần nguồn, standard gần đích” là quy tắc thiết kế thường dùng, không thay sơ đồ thực tế. Standard thiếu điều kiện đích nên đặt gần nguồn có thể chặn nguồn ấy tới nhiều mạng ngoài dự kiến. Nhưng ranh giới quản trị, topology và tính năng platform có thể quyết định vị trí khác; cần chứng minh luồng nào thật sự đi qua điểm áp.

5. Đối chiếu gói, ACE và counter trong một khoảng thử

show ip access-lists LAN20-IN
show ip interface GigabitEthernet0/1
show running-config interface GigabitEthernet0/1
show ip route 10.30.30.77
show ip route 10.99.0.53

Dự đoán trước mỗi phép thử: A→portal TCP 443 khớp20; A→DNS UDP 53 khớp30; A→DNS TCP 53 khớp40. A→portal TCP 22 hoặc ICMP khớp deny90. Một nguồn 10.20.1.120 ngoài /24 không khớp ba permit, cũng đi tới deny90 nếu gói thật sự vào interface đó.

Thu counters trước/sau khoảng thử có kiểm soát và giữ tuple. Counter tăng ở rule 20 cho thấy có gói khớp permit, chưa chứng minh server trả lời hoặc TLS thành công. Counter không tăng có thể vì không có gói tới, đi đường khác, vào chiều khác hoặc cách hiển thị/hardware. Không tự suy ACL hỏng chỉ vì một số không đổi.

Các ví dụ ACL của Cisco giúp đối chiếu cổng, ICMP và verify. Những ví dụ cũ về Telnet/FTP dùng để đọc logic, không có nghĩa nên mở chúng cho quản trị hiện hành. Dùng SSH với chính sách quản trị riêng.

6. ACL tĩnh không theo dõi phiên và không sửa lỗi khác lớp

Standard/extended ACL tĩnh trong bài xét từng gói, không tự duy trì state của một phiên TCP như firewall stateful. Từ khóa TCP established kiểm tra cờ ACK hoặc RST theo cú pháp đó, không xác nhận đã có handshake hợp lệ hay gói thuộc phiên tin cậy. Đừng mô tả nó như “chỉ cho trả lời những kết nối đã được phép”.

Nếu có lọc ở cả hai chiều, cần thiết kế luồng trả lời và giao thức phụ trợ, đồng thời cân nhắc firewall stateful nếu yêu cầu theo phiên. Các ACE IPv4 cũng không xác thực người gửi, không bảo vệ ARP thuần túy và không thay AAA. MAC/IP giả mạo, Layer2 và quyền quản trị là vấn đề khác của bài kế tiếp.

Nếu DNS trả đúng nhưng HTTPS lỗi, giữ kết quả DNS rồi kiểm tra TCP/TLS và rule thực sự khớp. Nếu ping bị chặn đúng chủ đích trong lab, dùng phép thử TCP 443 đã được cho phép để kiểm tra portal. Không thêm permit any chỉ để một công cụ chẩn đoán quen thuộc hiển thị xanh.

Thay ACL đang dùng cần có bản gốc và phương án khôi phục rõ. Một tên ACL có thể được nhiều interface hoặc tính năng tham chiếu; sửa một ACE có thể ảnh hưởng nhiều nơi. Trước khi xóa đối tượng, tìm mọi tham chiếu. Tránh reset counters/log ngay trước điều tra vì sẽ mất mốc đối chiếu.

Wildcard của nguồn 10.20.0.120 với 0.0.0.255 bỏ qua octet cuối nhưng vẫn đòi ba octet đầu là 10.20.0. Vì vậy10.20.1.120 không thuộc cùng tập khớp. Nếu sửa nhầm wildcard thành0.0.255.255, phạm vi nguồn mở rộng sang nhiều /24. Cần giải tập địa chỉ thực tế của ACE trước khi dùng một counter tăng để chứng minh chính sách đúng.

ICMP còn mang thông báo lỗi và dữ liệu phục vụ các cơ chế như phát hiện MTU đường đi, không chỉ echo của ping. Chính sách hẹp ở lab cố ý chưa phải thiết kế production đầy đủ. Khi xây bộ lọc thật, xác định loại ICMP và luồng hạ tầng cần giữ, tránh chặn toàn bộ rồi quy các phiên truyền lớn bị treo cho TCP hoặc server.

Nếu cần thay thứ tự, có thể xây một ACL mới với tên riêng, đọc lại từng ca rồi chuyển tham chiếu theo khả năng platform và kế hoạch thay đổi. Không xóa ACL gốc trước khi đã có đường quay lại. Sequence number giúp chèn dòng nhưng không bảo đảm thay đổi là nguyên tử hoặc không gián đoạn; cần đối chiếu cách áp dụng trên thiết bị đang dùng.

7. Nghiệm thu bằng cả ca cho phép và ca bị chặn

Trong lab, ghi ít nhất một ca được phép cho mỗi dịch vụ, một ca bị chặn và một ca nguồn ngoài phạm vi. Xác nhận route/return path và endpoint trước khi dùng kết quả làm bằng chứng ACL. Sau thay đổi, thử phiên quản trị mới qua đường được phép trước khi lưu cấu hình; phiên SSH cũ còn mở không chứng minh đăng nhập mới sẽ thành công.

  • Ma trận nguồn/đích/protocol/port có mục tiêu và phạm vi rõ.
  • Wildcard, thứ tự ACE và implicit deny cho kết quả dự đoán.
  • Interface/direction được đọc từ đường đi thực tế, gồm chiều về.
  • Counter chỉ được dùng cùng tuple/thời điểm và giới hạn platform.
  • Không nhầm permit với dịch vụ thành công hoặc established với stateful.

PDF trang vật lý 282 nhắc ACL như một nhóm nguyên nhân lỗi định tuyến, không đủ để gán toàn bộ cấu hình bài này cho sách. Nội dung chuyên đề bổ sung bằng Cisco; chính sách, output và sơ đồ là biên tập, chưa chạy hardware. Tiếp theo AAA và Layer2 security sẽ phân biệt bảo vệ truy cập quản trị với bảo vệ cổng người dùng.

ACL standard và extended: thứ tự rule, chiều áp và lỗi | thanhnh.id.vn