Cisco cũng liệt kê một vài khuyến cáo cho bảo mật lớp 3. Danh sách dưới đây tóm tắt các khuyến cáo bảo mật chủ chốt:
Ngoài ra, RFC 2827 và 3704 cũng liệt kê vài khuyến cáo khác để bảo vệ router, chuyển tiếp lớp 3 và mặt phảng điều khiển lớp 3. RFC 2827 chỉ ra vài vấn đề dùng các trường IP nguồn và đích trong phần đầu gói tin IP để hình thành nên vài kiểu tấn công. RFC 3704 mô tả chi tiết cách thức các công cụ trong RFC2827 có thể triển khai trên Internet. Một vài chi tiết từ các RFC là như sau:
Bảng 21.6 liệt kê phần lớn các câu lệnh trong IOS của Cisco liên quan đến IP ACL
Lệnh |
Chế độ cấu hình và mô tả |
Access-list access-list-number {deny|permit} source [source-wildcard] [log] |
Lệnh toàn cục cho các ACL chuẩn. |
access-list access-list-number [dynamic dynamicname [timeout minutes]] {deny | permit} protocol source source-wildcard destination destinationwildcard [precedence precedence] [tos tos] [log | loginput] [time-range time-range-name] [fragments]
|
Cú pháp tổng quát với rất nhiều giao thức. Các tùy chọn bắt đầu bằng precedence cũng bao gồm cho TCP, UDP và ICMP. |
access-list access-list-number [dynamic dynamicname [timeout minutes]] {deny | permit} tcp source source-wildcard [operator [port]] destination destination-wildcard [operator [port]] [established]
|
Đây là một phiên bản của câu lệnh access-list với các thông số cho cụ thể cho TCP. Các tùy chọn tương tự cũng tồn tại cho UDP, ngoại trừ từ khóa established. |
access-list access-list-number {deny | permit} icmp source source-wildcard destination destinationwildcard [icmp-type [icmp-code] | icmp-message]
|
Phiên bản của lệnh access-list để tìm các gói tin ICMP. |
access-list access-list-number remark text
|
Định nghĩa nhận xét của ACL |
ip access-list {standard | extended} access-list-name
|
Lệnh toàn cục để tạo ra ACL tên |
[sequence-number] permit | deny protocol source source-wildcard destination destination-wildcard [precedence precedence] [tos tos] [log | log-input] [time-range time-range-name] [fragments]
|
Các lệnh bên trong ACL được dùng để định nghĩa từng hàng riêng lẽ trong ACL. Có các tuỳ chọn tương tự cho TCP, UDP, ICMP và các giao thức khác. |
ip access-group {number | name [in | out]}
|
Lệnh để áp dụng access-list |
access-class number | name [in | out]
|
Các lệnh để áp dụng ACL chuẩn hay mở rộng |
Access-list compiled |
Lệnh toàn cục để áp dụng trên Cisco 7200/7500 |
ip access-list resequence access-list-name startingsequence- number increment
|
Lệnh toàn cục để định nghĩa lại các số thứ tự của một ACL |
Show ip interface [type number] |
Bao gồm tham chiếu đến access-list cho phép trên một cổng |
Show access-lists [access-list-number|access-list-name] |
Mô tả chi tiết của các access-list được cấu hình cho tất cả các giao thức |
Show ip access-lists [access-list-number|access-list-name] |
Hiển thị các access-list dạng IP |
Bảng 21.6: Các lệnh có liên quan đến ACL
IOS của Cisco xử lý các hàng trong các phần tử điều khiển truy cập (Access Control Entries - ACE) của một ACL một cách tuần tự. Sau đó sẽ cho phép hoặc từ chối một gói tin dựa trên ACE đầu tiên so trùng với gói tin đó trong ACL. Đối với một hàng riêng lẻ ACE, tất cả các giá trị được cấu hình phải đúng thì hàng ACE đó của ACL mới được xem là so trùng. Bảng 21.7 liệt kê vài ví dụ của ACL dùng tên cùng với các ý nghĩa của nó.
Phát biểu của ACL |
Mục đích của ACL |
deny ip any host 10.1.1.1
|
Từ chốI bất kỳ gói tin từ bất kỳ địa chỉ nguồn nào và địa chỉ đích IP 10.1.1.1. |
deny tcp any gt 1023 host 10.1.1.1 eq 23
|
Các gói tin IP có phần đầu TCP với bất kỳ nguồn IP nào, với địa chỉ nguồn lớn hơn 1023 và có địa chỉ đích 10.1.1.1 với địa chỉ port đích là 23. |
deny tcp any host 10.1.1.1 eq 23
|
Cũng tương tự như ví dụ trước đó, ngoạI trừ là cổng nguồn là cổng bao nhiêu cũng được, vì thông số này không được chỉ ra. |
deny tcp any host 10.1.1.1 eq telnet
|
Cũng cùng kết quả như ví dụ trước, nhưng lệnh này dùng từ khóa telnet thay cho số cổng. |
deny udp 1.0.0.0 0.255.255.255 lt 1023 any
|
Một gói tin có địa chỉ nguồn trong dãy mạng 1.0.0.0/8 dùng UDP như là cổng nguồn, cổng này nhỏ hơn 1023 vớI bất kỳ địa chỉ đích nào. |
Bảng 21.7: Một vài ví dụ về ACL
Trường số cổng (port number) chỉ có thể so trùng khi kiểu giao thức trong một ACL dạng mở rộng là UDP hay TCP. Trong những trường hợp này, giá trị số cổng (port number) được đặt trong vị trí cổng nguồn (source port) sẽ diễn ra ngay sau khi so sánh địa chỉ IP nguồn và địa chỉ cổng đích sẽ so sánh ngay sau địa chỉ IP đích. Vài ví dụ được mô tả trong bảng 21.8.
Từ khoá |
Ý nghĩa |
gt |
Lớn hơn |
lt |
Thấp hơn |
eq |
Bằng |
ne |
Không bằng |
Range x-y |
Dãy cổng |
Bảng 21.8: Các từ khoá sử dụng để lựa ra các cổng
ICMP không dùng các giá trị cổng nhưng nó có bao gồm vài loại thông điệp khác nhau và một vài loại thông điệp này thậm chí có chứa mã (code). Lệnh IP ACL cho phép ta tham chiếu đến các mã này bằng cách dùng thêm một danh sách dài của các từ khóa hoặc các số chỉ ra các loại thông điệp. Chú ý rằng các thông số này cũng có vị trí thường là theo sau địa chỉ IP đích. Ví dụ câu lệnh permit icmp any any echo-reply là đúng, nhưng câu lệnh permit icmp any echoreply any có cú pháp không đúng và phải bị từ chối.
Một vài thông số khác cũng có thể được kiểm tra. Ví dụ các bit chỉ độ ưu tiên IPP hoặc nguyên cả một byte ToS. Từ khóa established sẽ được dùng đế tìm ra những phân đoạn TCP có bit ACK được thiết lập. Đây là dấu hiệu để lựa ra bất kỳ phân đoạn TCP nào ngoại trừ phân đoạn đầu tiên trong thiết lập kết nối TCP.
Từ khóa established sẽ được dùng trong một ví dụ về sau. Ngoài ra, tùy chọn log và log input có thể được dùng để báo cho IOS của Cisco tạo ra các thông điệp log định kỳ khi có một hàng trong ACL là so trùng với gói tin. Ngay khi có một gói tin so trùng (match), có một thông điệp log được tạo ra, sau đó định kỳ mỗi 5 phút. Tùy chọn log-input bao gồm nhiều thông tin hơn tùy chọn log, đặc biệt các thông tin về cổng đi vào của gói tin so trùng với ACE.
Để cấu hình ACL, có vài sự kiện cần phải nhớ. Đầu tiên ACL chuẩn chỉ có thể so sánh với địa chỉ IP nguồn. Các ACL chuẩn có số được cấu hình từ 1-99 hoặc 1300-1999. Các ACL mở rộng có số từ 100-1999 và 2000-2699. Thêm vào đó, các hàng ACE mới cấu hình sẽ luôn luôn thêm vào cuối của một ACL đang tồn tại và các hàng trong các ACL không thể được xóa riêng lẻ. Kết quả là, để thêm vào một hàng vào giữa một ACL, toàn bộ ACL có thể cần phải xóa hết (dùng lệnh no access-list) và sau đó cấu hình lại.
ACL dùng tên khắc phục vấn đề trên bằng cách dùng một chỉ số tuần tự cho các hàng. IOS của Cisco sẽ liệt kê và xử lý các hàng ACE theo thứ tự đó.