Cơ bản về access control lists (ACLs)

Bảo mật mạng là công việc vô cùng quan trọng trong các hệ thống mạng. Các nhà thiết kế mạng sử dụng tường lửa (firewall) để bảo vệ mạng từ người dùng không xác thực. Tường lửa có thể là giải pháp phần cứng hoặc giải pháp phần mềm để thi hành chính sách bảo mật. Trên thiết bị Router Cisco, chúng ta có thể cấu hình tường lửa đơn giản cung cấp lọc gói tin sử dụng ACLs (access control lists). Với ACLs, người quản trị mạng có thể cho phép hoặc từ chối các gói tin đi vào hoặc ra ngoài mạng. Bài viết này trình bày các kiến thức cơ bản về ACLs.

  1. ACLs là gì ?

ACLs (Access control lists) hay còn gọi là access lists, là một danh sách tuần tự các câu lệnh hay còn gọi là ACEs (Access control entries), được áp dụng trên một Interface nào đó, và trên bộ đệm vào hoặc ra, điều khiển Router từ chối hoặc chuyển tiếp các gói tin dựa vào thông tin trong IP header hoặc TCP/UDP header.

  1. Mục đích sử dụng ACLs
  • Giới hạn lưu lượng mạng nhằm tăng hiệu năng mạng
  • Cung cấp điều khiển luồng truyền thông bằng cách giới hạn phân phát cập nhật tuyến.
  • Cung cấp mức bảo mật cơ bản cho truy cập mạng.
  • Điều khiển các loại truyền thông được phép chuyển tiếp hoặc từ chối bởi Router.
  • Khả năng điều khiển truy cập người dùng
  1. Hoạt động của ACLs

Khi gói tin đến Router, thiết bị tuần tự kiểm tra đối chiếu với các ACEs trong ACLs để quyết định cho phép gói tin đi qua Interface hay từ chối. Các ACEs trong ACLs được kiểm tra tuần tự từ ACE đầu tiên đến ACE cuối cùng. Nếu ACE nào đó thỏa điều kiện thì các ACE sau khi cần kiểm tra. Cuối ACLs là một ACE không tường minh từ chối không cho phép gói tin đi qua. Do đó, nếu gói tin không thỏa điều kiện các ACEs trên thì gói tin sẽ bị đánh rơi.

  1. Các loại ACLs

IOS Cisco cung cấp hai loại ACLs: ACLs chuẩn và ACLs mở rộng.

–         ACLs chuẩn: đây là loại ACLs đơn giản nhất chỉ lọc các gói tin dựa vào địa chỉ IP nguồn. Do đó, nó chỉ được sử dụng để cho phép hoặc từ chối luồng truyền thông từ một host hoặc một mạng cụ thể nào đó.

–         ACLs mở rộng: đây là ACLs phức tạp hơn ACLs chuẩn và có nhiều điều kiện lọc hơn ACLs chuẩn, các điều kiện lọc gồm:

  • Địa chỉ IP nguồn
  • Địa chỉ IP đích
  • Giao thức
  • Chỉ số cổng ứng dụng
  1. ACLs nên đặt ở đau ?

Đặt ACLs đúng chổ là vô cùng quan trọng, có thể làm mạng hoạt động hiệu quả, giảm lượng truyền thông không cần thiết. ACLs nêu đặt nơi mà nó đạt được hiệu quả tốt nhất. Chú ý sau giúp xác định đúng vị trí đặt ACLs:

– ACLs mở rộng: đặt gần nguồn truyền thông được lọc nhất có thể. Theo cách này, các luông truyền thông không mong muốn bị từ chối trước khi đi vào hạ tầng mạng, giảm lưu lượng mạng, tăng hiệu năng mạng.

– ACLs chuẩn: Vì ACLs chuẩn không chỉ định địa chỉ đích nên nó được đặt gần mạng đích nhất có thể. Đặt ACLs chuẩn gần nguồn có thể ngăn chặn luồng truyền thông đến đến các mạng khác qua Interface áp dụng ACLs.

Vị trí đặt ACLs và loại ACLs phụ thuộc vào:

– Mức độ kiểm sát mạng của người quản trị: vị trí đặt ACLs phụ thuộc vào khả năng điều khiển mạng nguồn, hoặc mạng đích, hoặc cả hai.

– Băng thông mạng: lọc lưu lượng mạng không mong muốn ở nguồn ngăn chặn tiêu tốn băng thông truyền tải nó đến đích. Điều này là quan trong đối với mạng băng thông thấp.

– Dễ dàng cấu hình: nếu người quản trị mạng muối từ chối lưu lượng mạng đến từ một vài mạng, ý tưởng là có thể sử dụng ACLs chuẩn áp dụng trên Router gần đích nhất có thể. Bất lợi của trường hợp này là mạng tiêu tốn nhiều băng thông không cần thiết. Nếu sử dụng ACLs mở rộng, có thể áp dụng ACLs trên mỗi Router nơi luồng truyền thông xuất phát. Điều này tiết kiệm băng thông mạng nhưng yêu cầu tạo và áp dụng ACLs trên nhiều Router.

Áp dụng ACLs lên Interface theo hướng vào hay ra ?

– Áp dụng ACLs hướng vào: các gói tin vào sẽ được xử lý lọc trước khi được định tuyến và đưa ra Interface chuyển tiếp. Với cách này, chi phí tìm tuyến giảm. Cách này sử dụng tốt nhất để lọc các gói tin khi chỉ một nguồn của gói tin cần được kiểm tra.

– Áp dụng ACLs hướng ra: các gói tin sau khi đã được định tuyến và đưa ra bộ đệm Interface ra, sau đó chúng được xử lý qua bộ lọc ACLs. Cách này áp dụng tốt nhất cho trường hợp các gói tin đến từ nhiều bộ đệm Interface vào và ra cùng một bộ đệm Interface ra.

  1. Cấu hình ACLs

Cấu hình Standard Ipv4 ACLs

Tạo và sử dụng ACLs là công việc quan trọng, đòi hỏi người quản trị mạng cần có kế hoạch chi tiết rõ ràng. Bảng sau ghi chú các chú ý khi xây dựng và sử dụng ACLs.

Hướng dẫnLợi ích
o   ACLs cần bám sát chính sách bảo mật của tổ chứco   Đảm bảo triển khai chính sách bảo mật đúng yêu cầu
o   Chuận bị các mô tả mà ACLs của bạn muốn làmo   Điều này tránh những bất lợi không mong muốn trong quá trình tạo ACLs
o   Sử dụng trình soạn thảo text để tạo, sửa, và lưu ACLso   Giúp tạo ra thư viện ACLs có thể tái sử dụng sau này
o   Kiểm tra ACLs trước khi đưa vào sử dụngo   Giúp kiểm tra lỗi

Chú ý: Do ACLs được kiểm tra tuần tự từ trên xuống nên khi tạo ACLs cần chú ý các ACL ở trên không phủ định các ACLs dưới, các lệnh ACLs cụ thể đặt ở trên; các ACLs chung chung nên đặt gần cuối.

Cấu trúc lệnh cấu hình standard ipv4 numbered ACLs :

Router(config)# access-list access-list-number { deny permit remark } source [source-wildcard ][ log ]

Tham sốGiải thích
Access-list-numberĐịnh danh số của một ACL, sử dụng số thập phân từ 1-99 và 1300-1999
DenyTừ chối lưu lượng truyền thông nếu thỏa điều kiện
PermitCho phép lưu lượng qua nếu thỏa điều kiện
RemarkMô tả chức năng của ACL, làm cho ACL dễ dàng để hiểu. Mỗi remark giới hạn 100 ký tự.
SourceLà mạng, host nguồn gói tin. Có hai cách để chỉ định nguồn gói tin:

–          Sử dụng 32 bit để chỉ định nguồn gói tin;

–          Hoặc có thể sử dụng từ khóa thay thế

Chú ý: nếu nguồn là host thì ta chỉ định source là host, sau đó là địa chỉ của host. Nếu nguồn là bất kỳ thì ta dùng từ khóa any.

source-wildcard 32 bits wildcard mask được áp dụng với nguồn
LogThông điệp ghi lại thông tin về các gói tin thỏa ACEs. Thông điệp này gồm thông tin về chỉ số ACL mà gói tin được phép thông qua hay từ chối, địa chỉ nguồn và số gói tin. Thông điệp được tạo ra khi gói tin đầu tiên thỏa ACE và định kỳ 5 phút.

Cấu trúc lệnh cấu hình standard ipv4 named ACLs :

Router(config)#ip access-list standard name

Router(config-std-nacl)# [permit | deny | remark] source [source-wildcard] [log]

Cấu hình Extended Ipv4 ACLs

Cấu hình extended Ipv4 numbered ACLs

Router(config)# access-list access-list-number { deny permit remark } source [source-wildcard ] protocol source [source-wildcard] [opterator operand ] [port port-number|name] destination [destination-wildcard] [operator operand] [port port-number|name] [established]

Tham sốGiải thích
Access-list-numberĐịnh danh số của một ACL, sử dụng số thập phân từ 100-199 và 2000-2699
DenyTừ chối lưu lượng truyền thông nếu thỏa điều kiện
PermitCho phép lưu lượng qua nến thỏa điều kiện
RemarkMô tả chức năng của ACL, làm cho ACL dễ dàng để hiểu. Mỗi remark giới hạn 100 ký tự.
ProtocolTên hoặc số của giao thức Internet. Từ khóa thường dùng gồm: IP, TCP, UDP. Để thỏa bất kỳ giao thức Internet nào ta dùng từ khóa IP.
SourceLà mạng, host nguồn gói tin.
source-wildcard 32 bits wildcard mask được áp dụng với nguồn.
DestinationMạng hoặc host đích gói tin.
Destination-wildcard32 bits wildcard mask được áp dụng với đích.
OperatorSo sánh cổng nguồn hoặc cổng đích. Toán tử so sánh có thể gồm: lt (less than), gt (greater than), eq (equal), neq (not equal), và range (vùng loại trừ)
PortSố thập phân hoặc tên của cổng TCP hoặc UDP
EstablishedChỉ cho phép luồng truyền thông đã thiết lập kết nối trước đó.

Cấu hình extended Ipv4 numbered ACLs

Router(config)#ip access-list extended name

Router(config-std-nacl)# { deny permit remark } source [source-wildcard ] protocol source [source-wildcard] [opterator operand ] [port port-number|name] destination [destination-wildcard] [operator operand] [port port-number|name] [established]

Sau khi tạo ACLs xong, ta tiến hành áp dụng ACLs lên Interface

Router(config-if)# ip access-group {access-list-number access-list-name } {in out }

Nếu áp dụng lên cổng VTY, ta sử dụng lệnh

Router(config-if)# ip access-class {access-list-number access-list-name } {in out }

  1. Sửa ACLs

Chúng ta có hai cách để sửa ACLs đã cấu hình trên Router.

Cách 1:

Đầu tiên chúng ta dùng lệnh show access-list để copy ACLs đã cấu hình trên Router vào một trình soạn thảo nào đó, sửa lại theo mong muốn, rồi dán lại ACLs đã sửa vào cấu hình. Chú ý trước khi dán cấu hình ACLs mới ta cần loại bỏ ACLs cũ bằng lệnh no access-list.

Khuyến nghị: để đơn giản trong giám sát, cấu hình và chỉnh sửa sau này, chúng ta sử dụng một trình soạn thảo nào đó để viết và lưu lại lệnh cấu hình ACLs, sau đó copy và dán vào cấu hình ở chế độ cấu hình toàn cục. Khi muốn thay đổi cấu hình ACLs, chúng ta chỉ cần sửa lại lệnh ACLs theo yêu cầu, xóa cấu hình ACLs cũ với lệnh no access-list, dán cấu hình ACLs mới vào cấu hình.

Cách 2: Thay đổi ACEs dựa trên sô tuần tự ACEs. Đầu tiên, ta sử dụng lệnh show access-list để xem các ACEs đã cấu hình trên Router. Sau đó xác định ACE cần sửa hoặc xác định vị trí cần chèn ACE. Tiếp theo, ta tiến hành thêm hoặc sửa hoặc xóa ACEs

ip access-list [standard | extended] [number | name]

//sửa ACE

No sequence-number

Sequence-number ACE-mới

//xóa ACE

No sequence-number

// chèn ACE

Sequence-number ACE-mới

  1. Ưu và nhược điểm của ACLs

Ưu điểm:

–         Tốc độ xử lý gói tin nhanh

–         Mềm dẻo trong triển khai chính sách bảo mật

Nhược điểm:

–         Cấu hình phức tạp

–         Không thể ngăn chặn tấn công ở tầng ứng dụng

–         Nhạy cảm với các loại tấn công giao thức TCP/IP

–         Không hỗ trợ xác thực người dùng của các kết nối

–         Giới hạn khả năng ghi lại sự kiện: chúng không ghi lại nội dung thực sự của gói tin để xác định ai cố gắng làm gì.

Trả lời