Tài liệu Access control list: Access Control List
ACL là gì?
Danh sách quản lý truy cập, nhiệm vụ cơ bản là lọc gói tin 
Một vài đặc điểm ACL?
Các entry trong ACL đc xử lý theo thứ tự 
Cơ chế lọc bằng cách kiểm tra các thông số trong header gói tin 
ACL có nhiều ứng dụng, và cần phải được đặt lên interface, line, giao thức hoặc dịch vụ
hỗ trợ ACL
Mỗi interface, line, giao thức hoặc dịch vụ hỗ trợ có thể sử dụng 1 hoặc nhiều ACL 
Hỗ trợ hầu như tất cả giao thức nhưng mỗi giao thức nên có riêng một ACL 
Cuối mỗi ACL luôn có 1 explicit entry [deny all] => cần phải cẩn thận 
Không thể xóa,sửa entry trong numbered ACL
Có nhiều cách để phân loại ACL, dựa theo tên gọi ACL được chia làm number ACL và 
named ACL, hoặc dựa trên cơ chế lọc thì ACL đc chia thành Standard ACL và extend 
ACL; hay dựa trên độ linh hoạt thì ACL có thể chia thành static ACL và complex ACL...
Standard ACL
Standard ACL là những bản tin ACL đơn giản nhất. Chúng được đánh số từ 1-99 nếu là 
number ACL. Standard ACL chỉ lọc địa chỉ n...
                
              
                                            
                                
            
 
            
                 22 trang
22 trang | 
Chia sẻ: Khủng Long | Lượt xem: 1699 | Lượt tải: 0 
              
            Bạn đang xem trước 20 trang mẫu tài liệu Access control list, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Access Control List
ACL là gì?
Danh sách quản lý truy cập, nhiệm vụ cơ bản là lọc gói tin 
Một vài đặc điểm ACL?
Các entry trong ACL đc xử lý theo thứ tự 
Cơ chế lọc bằng cách kiểm tra các thông số trong header gói tin 
ACL có nhiều ứng dụng, và cần phải được đặt lên interface, line, giao thức hoặc dịch vụ
hỗ trợ ACL
Mỗi interface, line, giao thức hoặc dịch vụ hỗ trợ có thể sử dụng 1 hoặc nhiều ACL 
Hỗ trợ hầu như tất cả giao thức nhưng mỗi giao thức nên có riêng một ACL 
Cuối mỗi ACL luôn có 1 explicit entry [deny all] => cần phải cẩn thận 
Không thể xóa,sửa entry trong numbered ACL
Có nhiều cách để phân loại ACL, dựa theo tên gọi ACL được chia làm number ACL và 
named ACL, hoặc dựa trên cơ chế lọc thì ACL đc chia thành Standard ACL và extend 
ACL; hay dựa trên độ linh hoạt thì ACL có thể chia thành static ACL và complex ACL...
Standard ACL
Standard ACL là những bản tin ACL đơn giản nhất. Chúng được đánh số từ 1-99 nếu là 
number ACL. Standard ACL chỉ lọc địa chỉ nguồn trong header của IP packet, vì thế 
chúng hoạt động tại lớp 3 trong mô hình OSI hay lốp internet trong mô hình TCP/IP. 
Standard ACL có thể được đặt theo chiều inbound (vào) hoặc outbound (ra) trên router 
(ta hiểu rằng vào hay ra là chiều tương đối đối với mỗi interface), tuy nhiên bản tin 
Standard ACL nên được đặt càng gần destination, và thường theo chiều outbound. Vì 
Standard ACL chỉ kiểm tra địa chỉ IP nguồn, nên vị trí đặt cần chỉ ra chính xác chiều gói 
tin sẽ được cho phép qua hoặc không được cho phép qua.
Cấu hình Standard ACL 
Format Standard ACL
Router(config)#access-list [list number] [permit / deny] [source IP add] 
[wildcardmask]
Trong đó:
[list number] đánh số cho Standard ACL từ 1-99
[permit / deny]: cho phép hoặc không cho phép gói tin qua router
[source IP add]: địa chỉ IP nguồn của gói tin
[wildcard mask]: wildcard mask của địa chỉ IP
Đầt Standard ACL lên interface:
[list number] đánh số cho Standard ACL từ 1-99
[permit / deny]: cho phép hoặc không cho phép gói tin qua router
[source IP add]: địa chỉ IP nguồn của gói tin
[wildcard mask]: wildcard mask của địa chỉ IP
Trong đó:
[list number] số của ACL đã xác định trưốc 
[in / out]: Chọn hướng inbound hoặc outbound
Extended ACL
Extended ACL là những bản tin ACL mỏ rộng, cho phép lọc đa dạng hơn so với 
Standard ACL nên thường được sử dụng nhiều hơn. Extended ACL được đánh số từ 100 
đến 199, extended ACL cho phép port number (application), source-destination IP 
address , protocol và nhiều tùy chọn. Vì thế extended ACL hoạt động tại lóp 3 và lớp 4 
mô hình OSI
Extended ACL cũng thể được cấu hình inbound hoặc outbound trên interface, tuy nhiên 
vì extended ACL lọc chính xác source/destination IP Address nên vị trí đặt cần tránh 
tình trạng hao tổn băng thông mạng không cần thiết khi gói tin bị discard “lang thang” 
trước khi bị deny. Người ta thường thực hiện điều này bằng cách đặt ACL gần source. 
Extended ACL được sử dụng nhiều để thiết lập các routing policy trên router. Các entry 
trong Extended ACL rất đa dạng, và có khả năng tùy biến cao, hỗ trợ phòng chống 
nhiều kiểu tấn công 
Cấu hình Extended ACL 
Format Standard ACL:
Router(config)#access-list [list number] [permit / deny] [protocol] [source 
specification] [destination specification] [protocol qualification] [logging]
Trong đó:
[list number] đánh số cho standard ACL từ 1-99
[permit / deny]: cho phép hoặc không cho phép gói tin qua router
[protocol]: Giao thức (từ lóp 3 trở lên) của gói tin (lóp 3: “ospf”, “eigrp”,.. ; lớp 4: “tcp”,
“udp”; “icmp”; “ip” đại diện bất kỳ giao thức nào)
[source specification]: Là một chuỗi entry bao gồm [source IP add] [wildcard mask]
[source port number (vói protocol là TCP hoặc UDP)]
[destination specification]: Là một chuỗi entry bao gồm [des IP add] [wildcard mask] 
[des port number (vói protocol là TCP hoặc UDP)]
[protocol qualification]: Các tùy chọn hỗ trợ phụ thuộc vào entry [protocol], tăng cường 
tính năng bảo mật hoặc thực hiện những tác vụ lọc dữ liệu đặc biệt
Nếu [protocol] là TCP hoặc UDP thì [protocol qualification] = [optional port] [port 
number].
Trong đó:
[optional port] chỉ ra khoảng port cần được kiểm tra
[port number] chỉ ra chính xác port làm mốc cho [optional port]
Nếu [protocol] là ip: router sẽ match tất cả giao thức 
Nếu [protocol] là giao thức định tuyển (ospf, eigrp,..) ???
[logging]: Ghi lại thông tin về những gói tin match các entry trong ACL
Inbound hay Outbound
Khi nhắc tới lọc theo chiều nào (inbound hoặc outbound) phải gắn liền với mỗi interface 
trên router, trên mỗi interface cho phép nhiều ACL nên cho phép lọc nhiều chiều tùy vào 
mỗi ACL.
-> Inbound: Các bản tin hướng vào interface 
-> Outbound: Các bản tin hưóng ra từ interface
Lọc inbound sẽ tiêu tốn ít tài nguyên CPU hơn, do gói tin được lọc trưốc khi được 
forward; ngược lại, lọc outbound sẽ tốn nhiều thời gian hơn vì gói tin được lọc sau khi 
forward. Tuy nhiên chiều lọc rất quan trọng và đặt chính xác là yêu cầu cơ bản.
Turbo ACL
Đối vói vấn đề sử dụng tài nguyên xử lý của router, khi mạng doanh nghiệp càng iến 
cho việc xử lý của router ngày càng chậm chạp, nhất là với những ACL có nhiều hơn 3 
statement, vấn đề là cơ chế của router: kiểm tra ACL đồng thời vối forwarding và điều 
này lặp đi lặp lại với mỗi gói tin.
đ I giải quyết tình huống này, router CISCO dòng 7200, 7500,12000 đưa vào một cấu 
hình dòng lệnh cho phép router biên dịch (compile) statement trong ACL thành file BIN, 
sau đó lưu vào RAM. Như vậy router sẽ xử lý gói tin trong lookup table, độc lập với ACL, 
và điều này sẽ giảm bớt thòi gian tải trên CPU.
Cầu hình turbo ACL:
Router(config)#access-list compiled
Named Access Control List 
Có thể là Standard ACL hoặc extended ACL nhutig đưỢc đặt tên bằng ký tự (vì thế, 
trong nhiều trường hỢp named ACL giúp admin quản lý danh sách ACL hiệu quả 
hơn)
Vì thế nên không giới hạn số iượng ACL 
Cho phép xóa sửa entry trong ACL, entry mới sẽ đặt ỏ cuối 
Một vài dạng ACL (reflexive ACL) yêu cầu cấu hình với named ACL
Cấu hình named ACL
Router(config)ip access-list [Standard / extended] [name]
Router(config-std-nacl)#[permit / deny]...
Trong đó:
[Standard / extended] là loại ACLs 
[name] là tên đặt cho ACLs
[permit / deny]... là cấu hình entry cho named ACLs: Hoàn toàn Tương tự cấu hình 
Standard / extended ACLs kể từ entry [permit /deny]
Wild-card Mask
Wildcard Mask là một chuỗi nhị phân 32 bit được chia làm 4 octet. Mỗi một wildcard 
mask đi k-> m vối một địa chỉ IP. Các bit 0 và 1 được định nghĩa để xác định cách xử lý 
các bit tương ứng trong đia chỉ IP theo quy tắc: 0 kiểm tra - 1 bỏ qua. Nghĩa là bit tương 
ứng với bit 0 trong wildcard mask sẽ được kiểm tra, còn tương ứng vói bit 1 sẽ được bỏ 
qua không cần kiểm tra.
Phân biệt wildcard mask và subnet mask
wildcard mask và subnet mask khác nhau hoàn toàn về nguyên tắc cũng như chức 
năng. Subnet mask có chuỗi bit 1 kéo dài từ trái sang phải để xác định phần host và 
phần Network trong 1 địa chỉ IP tương ứng. Trong khi wildcard mask được dùng để lọc 
một hoặc một nhóm địa chì IP cụ thể
Trong các bài toán tính wildcard mask, thật sai lầm khi cho rằng để tính wildcard mask 
ta lấy dải 255.255.255.255 trừ đi tương ứng subnet mask. Tuy nhiên vậy tại sao lại sử 
dụng wildcard mask trong giao thức định tuyến OSPF (và EIGRP)?
Subnet mask cho phép xác định một dải IP liên tục, trong khi mục đích của wildcard 
mask là lọc ra một dải IP có tính chất giống nhau (có thể liên tục hoặc ko liên tục), và 
chỉ ra router cần quan tâm đến những địa chỉ IP nào
i.e Liệu 1.1.1.0/24 và 1.1.1.0 0.0.0.255 có tương đương nhau ko? Chính xác là không, vì
1.1.1.0 0.0.0.255 bao gồm 1.1.1.0/24; 1.1.1.0/25^ ; 1.1.1.0/26...đến 1.1.1.0/32
Đối vối giao thức định tuyến Link State như OSPF (hoặc EIGRP) vối cơ chế trigger
update wildcard mask hiệu quả hơn subnet mask, điều này mang đến 2 cái lợi: giảm tốc
độ xử lý CPU router và giảm dung lượng file cấu hình:
i.e Trên router cần quảng bá OSPF trên 2 interface:
SO/0: 192.168.0.1/24 
SO/1: 192.168.1.1/24
Thay vì 2 dòng lệnh nếu sử dụng subnet mask, admin có thể cấu hình vối wildcard 
mask:
Router(config-router)#net 192.168.0.0 0.0.1.255 area 0 
Quá trình kiểm tra wildcard mask:
Trong quá trình lọc ACL, địa chỉ IP trong mỗi statement được kết hỢp với wildcard mask 
để tính ra một giá trị chuẩn: giá trị chuẩn đó có thể là một địa chỉ host, 1 subnet, 1
khoảng địa chỉ IP(liên tục hoặc không liên tục) hoặc là tất cả các địa chỉ IP. Gói tin khi 
tối interface đặt ACL sẽ được kiểm tra địa chỉ IP, địa chỉ IP này được so sánh vối giá trị 
chuẩn ỏ trên: Nếu 2 giá trị này giống nhau thì điều kiện đã thỏa mãn và router thực hiện 
các lệnh trên ACL.
Các bài toán tính wildcard mask:
1. Wildcard mask match 1 host
1.e: Tính wildcard mask match host 192.168.1.1 
Theo nguyên tắc: bit 0 kiểm tra - bit 1 bỏ qua
ũ ® IP Address: 192.168.1.1 0 0.0.0 hoặc từ khóa “host”
2. Wildcard mask match tất cả địa chỉ IP
l.e: Tính wildcard mask match tất cả địa chỉ IP 
Theo nguyên tắc: bit 0 kiểm tra - bit 1 bỏ qua
D ® IP Address: 192.168.1.1 255.255.255.255 hoặc từ khóa “any”
3. Wildcard mask match 1 subnet
i.e: Tính wildcard mask match subnet 192.168.1.0/24 
Cách tính: Lấv 255.255.255.255 trừ đi subnet mask của subnet 
D ® IP Address: 192.168.1.1 0.0.0.255
4. Tính Wildcard mask match range địa chỉ IP liên tục
i.e: Tính wildcard mask match range từ 192.168.2.0 đến 192.168.4.255 
Cách tính: Lấv địa chỉ cuối trừ địa chỉ đầu
D® IP Address: 192.168.2.0 0.0.2.255
5. Tính widcard mask match 1 số IP add đầu tiên
i.e: Cho địa chỉ IP 192.168.1.0, tính wildcard mask match X host đầu tiên 
-> Dải địa chỉ cần match: 192.168.1.0 - > 192.168.1 .X 
-> wildcard mask: o.o.o.x (lấy địa chỉ cuối trừ địa chỉ đầu)
-> IP Address: 192.168.1.0 0.0.0 X
6. Tính wildcard mask của nửa trên (upper half) hoặc nửa dưới (lower half) 1 dải 
mạng:
I.e: Cho địa chỉ IP 192.168.1.0, tính wildcard mask match nửa dải IP phía trên và dưới: 
-> Dải địa chỉ nửa trên: 192.168.1.0 - > 192.168.1.127 
-> wildcard mask: 0.0.0.127 (lấy địa chỉ cuối trừ địa chỉ đầu)
-> Địa chỉ IP: 192.168.1.0 0.0.0.127
-> Dải địa chỉ nửa dưới: 192.168.1.128 - > 192.168.1.255 
-> wildcard mask: 0.0.0.127 (lấy địa chỉ cuối trừ địa chỉ đầu)
-> Địa chỉ IP: 192.168.1.128 0.0.0.127
7. Tính wildcard mask match IP lẻ, hoặc IP chẵn
1 địa chỉ Ip lẻ / chẳn là địa chỉ có octet cuối cùng dạng thập phân là số lẻ / chẳn 
l.e: IP lẻ - 192.168.1.1 
IP chẵn-192.168.1.2
Nhân xét: bit cuối cùng của IP lẻ luôn là bit 1, bit cuối cùng của IP chẵn luôn là bit 0. 
Vậy wildcard mask thỏa mãn phải tạo ra một dải địa chỉ IP có bit cuối của octet cuối 
không đổi bằng 0 hoặc 1.
Giải pháp: để router luôn match bit cuối của octet cuối của địa chỉ IP, bit tương ứng trên 
wildcard mask phải là bit 0
-> I.e1: Cho địa chỉ IP: 192.168.1.0, tính wildcard mask match tất cả IP chẵn: 
-> wildcard mask: 0.0.0.254 (dạng nhị phân:
00000000.00000000.00000000.11111110)
-> Địa chỉ IP: 192.168.1.0 0.0.0.254 (IP chẵn có bit cuối luôn bằng 0)
-> Ị.e2: Cho địa chỉ IP: 192.168.1.0, tính wildcard mask match tất cả IP lẻ 
-> wildcard mask: 0.0.0.254 (dạng nhị phân:
00000000.00000000.00000000.11111110)
-> Địa chỉ IP: 192.168.1.1 0.0.0.254 (IP lẻ có bit cuối luôn bằng 1)
8. Tính wildcard mask match 1 range IP address không liên tục
Đây là dạng toán tính wildcard mask phức tạp nhất vì admin không có cách nào sử 
dụng 1 wildcard mask để tạo thành địa chỉ IP match tất cả dải IP ban đầu:
l.e: Tính wildcard mask match dải: 192.168.1.15 - > 192.168.1.75
Nhân xét: Đâv là một dải IP không liên tục , không có 1 wildcard mask nào có thể thỏa 
mãn dải không liên tục. Tuy nhiên đối vối những dải IP liên tục thì luôn có wildcard mask 
thỏa mãn.
Giải pháp: Chia dải IP ban đầu thành những dải nhỏ mà trong đó luôn tìm được 1 
wildcard mask thỏa mãn mỗi dải. Vậy cách chia như thế nào? Nhắc lại: mỗi bit trong
octet phần host đại diện cho một nhóm các host gọi là một block size. Bit cuối cùng là
block size 1 vì nó thể hiện 1 host, tương tự bit đầu tiên là block size 128. Và, mỗi block 
size luôn tìm được 1 wildcard mask thỏa mãn.
Chia dải thành các block size:
- 192.168.1.15(1)
- 192.168.1.16 - > 192.168.1.31 (2)
- 192.168.1.32 - > 192.168.1.63 (3)
- 192.168.1.64 -> 192.168.75 (4)
Tính wildcard mask cho mỗi block size:
- (1): 192.168.1.15 0.0.0.0-> IP host
- (2): 192.168.1.16 0.0.0.15
- (3): 192.168.1.32 0.0.0.31
(4): Chưa có wildcard mask phù hợp, ta phân tích dạng nhị phân octet cuối để tách 
tiếp wildcard mask:
.64:01000000 
.75: 01001011
-> Ta tách thành: 01000000 -> 01000111 (5)
01001000->01001011 (6)
-> (5): 192.168.1.64 0.0.0.7 
(6): 192.168.1.72 0.0.0.3 
Tổng kết: Như vậy, từ dải IP ban đầu, ta tách thành 6 dải nhỏ (1)(2)(3)(4)(5)(6). Quả thật 
là một công trình “vĩ đại”...
* * *
Complex ACL
Complex ACL là những dạng ứng dụng mở rộng của Standard ACL và extended ACL. 
Complex ACL cung cấp thêm nhiều tính năng có tính bảo mật cao hơn, complex ACL 
gồm 3 loại: Dynamic ACL hay lock-and-key ACL; Reflexive ACL, và time-based ACL
1. Dynamic ACL:
Dynamic ACL hay còn gọi là lock-and-key ACL, là một ứng dụng hỗ trợ lọc IP traffic. 
Dynamic ACL chỉ hoạt động với extended ACL, dynamic ACL đưa ra yêu cầu 2 bưốc 
người dùng là truy cập telnet và xác thưc (authentication)
Ỷ tưóng của Dynamic ACL:
Thiết lập ACL trên 1 interface của router có thể giói hạn quyền truy cập qua router; có 
thể inbound hoặc outbound; tuy nhiên trong một vài trường hỢp, admin cần phải cho 
phép 1 host hoặc một nhóm host có dải IP trong ACL trên có thể truy nhập/ xuất qua 
router. Để thực hiện điều này, admin buộc phải thay đổi statement trong ACL, hoặc phải 
mở một “cánh cửa tạm thòi” cho phép các PC thỏa mãn đc điều kiện do admin đặt ra đi 
qua.
Điều kiện cần phải thõa mãn chính là yêu cầu xác thực (authentication), liệu sau khi 
người dùng xác thực chính xác, có thể tạo một phiên telnet (session) tạm thòi, mà trong 
đó ACL ban đầu đã được cấu hình lại để traffic của họ có thể đi qua router trong một 
khoảng thòi gian định sẵn?
Cớ chề Hoạt động Dynamic ACL:
1. Interface trên router biên đã được cấu hình lock-and-key
2. Người dùng telnet tới router, khi đó lOS sẽ mở một phiên làm việc telnet, yêu cầu 
người dùng nhập thông tin xác thực. Nếu thông tin xác thực chính xác người dùng có thể 
vượt qua ACL trên router để truy nhập hoặc truy xuất. Quá trình chứng thực đc thực hiện 
bởi router hoặc AAA hay TACACS+ server
3. Sau khi chứng thực thành công, người dùng sẽ thoát khỏi phiên telnet, một entry tạm 
thòi trên dynamic ACL mở ra và bạn có thể trao đổi dữ liệu.
4. Sau một khoảng thòi gian time-out cho phép, entry tạm thòi sẽ bị tự động xóa hoặc 
admin sẽ xóa bằng tay. Có 2 khoảng thời gian time-out là idle time-out: nếu sau idle 
time-out người dùng không sử dụng phiên, entry sẽ bị xóa; và absolute time-out: entry 
sẽ bị xóa bất kể thế nào sau khoảng thòi gian này.
Khi nào sử dụng dynamic ACL
Lock-and-Key cho phép 2 chiều: inbound và outbound
Admin muốn cho phép một người dùng ỏ xa có thể truy cập vào hệ thống mạng qua 
Internet. Lock-and-key sẽ chứng thực và cho phép truy cập có giới hạn vào 1 host hoặc 
một subnet trong 1 khoảng thòi gian định sẵn
Khi admin hoặc host trong hệ thống mạng muốn truy xuất tới một remote host từ xa 
được bảo vệ bởi ACL trên router. Các host này được yêu cầu chứng thực qua TACACS+ 
server trưóc khi đc cho phép truy xuất
là trên ACL đã xuât hiện một “khe” cho phép IP xác thực thành công có thể trao đổi dữ 
liệu qua router. Hacker hoàn toàn có thể tìm và thực hiện IP spoofing để lấy quyền xâm 
nhập hệ thống mạng trong khoảng thòi gian định sẵn 
Configure dynamic ACL:
SO/0 được cấu hình ACL ngăn không cho những truy cập trái phép ngoài internet tói hệ 
thống mạng LAN
-> ĐỊnh nghĩa user name và password để xác thực:
[Standard / extended] là loại ACLs 
[name] là tên đặt cho ACLs
[permit / deny]... là cấu hình entry cho named ACLs: Hoàn toàn Tương tự cấu hình 
Standard / extended ACLs kể từ entry [permit /deny]
-> Thiết lập ACL đặt chiều inbound interface sO/0
1. Cho phép telnet tử remote user tói router 
Router(config)#access-list 101 permit tcp any host 1.1.1.1 eq 23 log
2. Tao dynamic ACL tên TEMP ACCESS 
Router(config)#access-list 101 TEMP_ACCESS permit tcp host 3.3.3..1 host 1.1.1.1 eq 
23
3. ÁP dung vào interface 
Router(config)#interface sO/0 
Router(config)#ip access-group 101 in
-> Cấu hình trên line vty 
Ô Văn bản
Router(config)#line vty 0 4 
Router(config)#login local
Router(config)#autocommand access-enable host timeout [#]
Trong đó:
- Autocommand: cho phép tạo 1 câu lệnh được chỉ định sẵn nếu có người 
dùng login vào
- Access-enable: cho phép tạo 1 entry tạm thời trong dynamic ACL
- Host: chỉ cho phép host đã telnet đến router và chứng thực đúng được 
truy cập. Nếu không có entry này router sẽ cho phép mọi địa chỉ IP cùng 
subnet vối host đã telnet vào.
- Timeout [#]: xác định khoảng thời gian idle - timeout
-> Admin có thể xóa entry tạm thời trong dynamic ACL:
Router#clear access-template 101 TEMP_ACCESS host 3.3.3.1 host 1.1.1.1
2. Reflexive ACL:
Reflexive ACL CÓ the coi là 1 extended named ACL “mở rộng”, hỗ trợ lọc phiên 
(session). Reflexive ACL chỉ chứa các bản ghi tạm thời, các bản ghi này được gọi ra khi 
một phiên kết nối được thiết lập và sẽ tự động xóa đi khi phiên kết nối kết thúc.
Bài toán bảo mât: Có 2 PC nối với nhau thông qua một router, admin muốn PC 1 có 
thể telnet tối PC 2 nhưng không muốn PC 2 có thể telnet tối PC 1, nếu đặt ACL trên 
interface của router, admin có thể cho phép PC 1 liên lạc vói PC 2 và ngăn chiều ngược 
lại. Nhưng vấn đề là PC 2 cũng không thể gửi bản tin trả lòi lại PC 1. Điều admin cần là 
router hoạt động như một firewall, từ chối request từ PC 2 nhưng cho phép reply về PC 
1.
Giải pháp :
Nếu admin chỉ quan tâm PC 1 có thể ping PC 2 để kiểm tra, vối extended ACL có 
thể cấu hình “echo” hoặc “echo-reply” cho phép bản tin ICMP đi qua.
Nếu admin muốn PC 1 có thể trao đổi với PC 2 trên một số cổng cho phép nhưng 
vẫn thỏa mãn bài toán bảo mật, với extended ACL có thể cấu hình “established”
l.e: Router(config)#access-list [num] permit tcp [source add] [destination add] [optional 
port] [ports] established
-> Khi đó các gói tin ACK và RST cũng sẽ được lọc, điều này đảm bảo PC 2 
không phải PC khởi tạo phiên (vì ACK không nằm trong segment đầu tiên), 
như thế chỉ cho phép các kết nối được bắt đầu từ PC 1 
-> Tuy nhiên vấn đề là nếu hacker (bằng phương pháp nào đó) đặt được giá 
trị ACK trên header gói tin thì hoàn toàn có thể xâm nhập vào hệ thống mạng. 
Chưa kể thiết lập “established” chỉ hoạt động vối giao thức TCP....
Các vấn đề trên đều có thể giải quyết vối Reflexive ACL 
Ỷ tưảỉna của Reflexive ACL:
Với mỗi kết nối TCP được thiết lập, Reflexive ACL sẽ tự động tạo ra một entry tạm thòi 
trong ACL, entry này sẽ chỉ cho phép dữ liệu trao đổi trong chính kết nối đó và sẽ bị xóa 
ngay sau khi kết nối đóng. Điều này ngăn chặn việc bất kỳ segment nào có ACK cũng 
được đi qua mà bắt buộc phiên phải được khởi tạo từ người dùng.
Entry “established” không hoạt động trên UDP vì UDP là giảo thức không kết nối 
(connectionless protocol), “established” không thể lọc phiên UDP. cần 1 cơ chế ACL có 
thể lọc phiên UDP, miễn là bắt đầu từ người dùng. Tuy vậy UDP không có gói tin FIN để 
thông báo kết thúc mạng, trong một vài trường hợp kết nối TCP cũng có thể đóng mà 
chưa trao đổi FIN - Reflexive ACL đưa ra một khoảng timeout-interval mà phiên chì 
đóng sau khoảng thòi gian này nếu không có traffic trao đổi qua router 
-> Câu hình time-interval:
l.e: Router(config)#ip reflexive-list timeout 300 
->timeout interval = 300s 
Để ngăn chặn việc chồng chất bộ nhớ và làm chậm quá trình xử lý, Reflexive 
ACL không phải một bản tin ACL ròi rạc mà được “cài” vào extended ACL, và chỉ kích 
hoạt khi có phiên được thiết lập. Đây là một cơ chế tự động vô cùng hiệu quả của 
Reflexive ACL vì nó bảo vệ người dùng từ chính quá trình truy cập của người dùng - mỗi 
entry trong reflexive ACL chỉ dùng cho một kết nối.
Cấu hình Reflexive ACL :
Bài toán: cấu hình Reflexive ACL: cho phép PC A chỉ có thể telnet tối PC B, không 
cho bản tin request từ PC B qua router.
Bước 1: Thiết lập một named extended ACL bắt gói tin khỏi tạo phiên từ mạng 
1.1.1.0/24
Router(config)#ip access-list extended Telnet_Out 
Router(config-ext-nacl)#permit tcp host 1.1.1.10 host 2.2.2.20 eq 
telnet reflex TEMP_ENTRY 
Router(config-ext-nacl)#deny ip any any
- > Mọi thứ đều giống cấu hình một extended ACL ngoai trừ entry “reflex 
TEMP_ENTRY”: TEMP_ENTRY ià tên reflexive ACL sẽ tạo ra entry nếu gói tin từ PC 1 
tới PC 2 được dùng để thiết lập telnet; “reflex” sẽ yêu cầu entry tạm thời trong 
TEM_ENTRY kiểm tra header gói tin phản hồi từ PC 2 về PC 1
Bưóc 2: Thiết lập một named extended ACL kiểm tra traffic từ PC 2 tới PC 1 
Router(config)#ip access-list extended Telnet_ln
Router(config-ext-nacl)#evaluate TEMP_ENTRY 
Router(config-ext-nacl)#deny ip any any
-> Trong named extended ACL này không có entry “permit”, thay vào đó entry 
“evaluate” sẽ yêu cầu gói tin từ PC 2 được kiểm tra bởi reflexive ACL TEMP_ENTRY
Bưóc 3: Đặt cả 2 named extended ACL vào 1 interface
Router(config)#interface fO/1 
Router(config-if)#ip access-group Telnet_ln in 
Router(config-if)# ip access-group Telnet_Out out
Kiểm tra cấu hình:
Admin dùng lệnh show access-Êist ăể kiểm tra trước khi PC 1 telnet
Router(config)#interface fO/1 
Router(config-if)#ip access-group Telnet_ln in 
Router(config-if)# ip access-group Telnet_Out out
-> Tất cả các traffic không phải telnet từ PC 1 đều bị chặn tại outbound 
interface fO/1
-> Chưa có entry nào được khởi tạo từ reflexive ACL TEMP_ENTRY
Admin dùng lệnh show access-Êist ăể kiểm tra sau khi PC 1 telnet
Router(config)#interface fO/1 
Router(config-if)#ip access-group Telnet_ln in 
Router(config-if)# ip access-group Telnet_Out out
-> Một entry “permit” được tạo ra trong reflexive ACL TEMP_ENTRY 
-> Lưu ý: + Entry tạm thòi tạo ra trong reflexive ACL luôn là entry “permit”
+ Entry tạm thời luôn sử dụng cùng giao thức trên lớp 3 vối gói tin mỏ
phiên
+ Entry tạm thời đặt địa chỉ IP nguồn và đích ngược vối gói tin mỏ
phiên
+ Entry tạm thòi sử dụng port đích - nguồn ngược với port trong gói 
tin mở phiên, như
vậy chúng phải đồng nhất
3. Time-based ACL:
Time-based ACL có thể coi là 1 extended ACL “mở rộng”-cho phép quản lý truy cập 
dựa vào thời gian trong ngày, hoặc các ngày trong tuần. Time-based ACL lọc 2 
thông tin: header trong gói tin và thời gian cấu hình trong router system clock.
Time range trong Time-based ACL:
Time-range là một khoảng thời gian admin định nghĩa sẵn trên router, bắt buộc 
time-range phải được gán tên. số lượng time-range không giới hạn.
Time-range sẽ được đưa vào extended ACL để tạo thành time-based ACL, sau đó 
được gán vào interface. ACL sẽ bắt đầu active khi đến đúng thòi điểm time-range 
Cấu hình Time-based ACL
1) Cấu hình time-range:
Router2#configure terminal
Enter configuration commands, one per line. End with CNTƯZ. 
Router2(config)#time-range [name] — > i.e: WORKING_TIME 
Router2(config-time-range)#periodic [time] monday 9:00\o 17:00
“Periodic” là từ khóa để định nghĩa một time-range, ngoài ra có thể sử dụng từ khóa 
“absolute”. “Absolute” cho phép admin cấu hình một time-range thật cụ thể. Trên cùng 
một time-range có thể sử dụng đồng thời “periodic” và “absolute” nhưng “absolute” sẽ 
được ưu tiên hơn. Ngoài ra có thể cấu hình nhiều lệnh “periodic” nhưng chỉ cho phép 
duy nhất một “absolute” cho mỗi time-range 
Router2#configure terminal
Enter configuration commands, one per line. End with CNTƯZ. 
Router2(config)#time-range [name] — > i.e: WORKING_TIME_DETAILED 
Router2(config-time-range)#absolute [time] --- > i.e: start 9:00 1 October 
1988 end 18:00 31 December 1988
Router2(config-time-range)#periodic monday 9:00 to 18:00
2) Áp dụng time-range vào ACL:
Router2(config)#access-list [number] [permit/ deny] [protocol] [source IP] 
[destination IP] [port optional] time-range [name]
— >i.e: access-list 101 deny tcp any any eq WWW time-range WORKING_TIME
Hoặc...
Router2(config)#ip access-list extended [name]
Router2(config-ext-nací)# [permit / deny] tcp [protocol] [source IP] [destination IP] 
[port optional] time-range [name]
3) Gán ACL vào interface:
Router2(config)#interface [#]
Router2(config-if)# IP access-group [num] [in/out]
ứng dụng ACL vào các bài toán bảo mật
Vấn đề bảo mật hệ thống mạng, đặc biệt là các mạng doanh nghiệp ngày càng trở nên 
quan trọng; thủ thuật của hacker càng ngày càng tinh vi trong khi các công cụ hỗ trợ 
phá hoại ngày càng phong phú và tràn lan trên mạng. Tuy nhiên, về bản chất thì mọi 
cuộc tấn công đều là sự trao đổi gói tin qua router, theo nhiều cách khác nhau; vậy 
phòng thủ, về bản chất chính là làm sao lọc được những gói tin ấy, có thể phân biệt 
được gói tin nào là tin cậy, gói tin nào là không tin cậy; trong những trường hỢp không 
thể phân biệt được, thì làm sao hạn chế chúng.
Bản chất của Access Control List, chính là quản lý, và lọc những gói tin đi qua router - 
cho phép, hay không cho phép, điều đó tùy thuộc vào cấu hình của người quản trị; như 
thế đối vối người quản trị, phòng thủ hiệu quả chính là đặt các chính sách bảo mật một 
cách chặt chẽ, đề phòng được các trường hỢp có thể gây hại, và cấu hình chính xác. Đó 
là lý do mọi hacker trưóc khi tấn công đều cố gắng xâm nhập vào hệ thống nhằm phát 
hiện những vị trí “gót chân Asin”, để có thể xác định được nên tấn công bằng phương 
pháp nào, vào đâu và như thế nào.
Các quy trình triển khai ACL vào hệ thống 
Đánh giá toàn bộ hệ thống mạng 
Thiết lập các chính sách an ninh (network Security)
Lên danh sách ACL 
Triển khai trên hệ thống mạng 
Kiểm tra và xác nhận 
Các kiểu tấn công thường gặp và giải pháp phòng thủ:
1. Access Control
Line vty cho phép người dùng từ xa có thể telnet vào hệ thống, một khi đã telnet được 
vào hệ thống, “mọi thứ đã hiện ra rõ mồn một”; vì thế quyền telnet chỉ nên được giới hạn 
cho một hoặc một nhóm host tin cậy:
-Cầu hình vói Standard ACL (đối vói SSH)
Router(config)#access-list 1 permit host 1.1.1.200 log 
Router(config)#access-list 1 deny any log 
Router(config)#line vty 0 4
Router(config-line)#login authentication vty -sysadmin 
Router(config-line)#transport input ssh 
Router(config-line)#access-class 1 in
-Cầu hình vói extended ACL ếđối vói telnet)
Router(config)#access-list 1 permit host 1.1.1.200 log 
Router(config)#access-list 1 deny any log 
Router(config)#line vty 0 4
Router(config-line)#login authentication vty -sysadmin 
Router(config-line)#transport input ssh 
Router(config-line)#access-class 1 in
Ngoài ra để tăng cường tính bảo mật có thể sử dụng dynamic ACL: nhằm yêu cầu xác 
thực và giới hạn trong absolute time-out
2. SNMP:
SNMP (Simple Network Management) là một giao thức quản lý mạng, có thể truy cập 
tối router. Một hệ thống SNMP bao gồm server SNMP đóng vai trò trạm quản lý mạng 
NMS (Network management Stations) SNMP agent được cài đặt sẵn trong lOS của 
router CISO và cơ sở dữ liệu MIB. Với SNMP, ngưòi dùng có thể thu thập thông tin hay 
cấu hình router bằng cách từ NMS gửi truy vấn get-request hoặc set-request tới router. 
Tuy vậy nhưng với SNMP v1, quá trình xác thực giữa NMS và SNMP agent lại khá đơn 
giản, chỉ cần đồng bộ 1 community string, là 1 password dạng clear-text. Bất kỳ ai có 
thể lấy được gói tin nào đó, chẳng hạn một server hoặc 1 host “chơi trò” man-in the- 
middle, có thể tìm ra chuỗi này và xâm nhập vào hệ thống.
Như thế, với ACL, admin có thể giới hạn xác định cho router địa chỉ IP của SNMP 
server, và chỉ công nhận địa chỉ IP này của SNMP server được qua để xác thực.
-Cầu hình vói Standard ACL:
Trường hỢp, hacker đánh lừa hệ thống “tôi là SNMP server, xác thực nào” để giành 
quyền xác thực. Sau khi xác thực, mặc nhiên router coi PC hacker là SNMP server
Router(config)#access-list 1 permit host 1.1.1.200 log 
Router(config)#access-list 1 deny any log 
Router(config)#line vty 0 4
Router(config-line)#login authentication vty -sysadmin 
Router(config-line)#transport input ssh 
Router(config-line)#access-class 1 in
Ngoài ra CÓ the sử dụng extended ACL để tăng các chính sách bảo mật
3. Routing Advertisement filtering:
Bản tin quảng bá mang thông định tuyến, sử dụng ACL để ngăn thông tin định tuyến 
được quảng bá ra ngoài. (???)
-Cầu hình vói Standard ACL:
Router(config)#access-list 1 deny 1.1.1.0 0.0.0.255 
Router(config)#access-list 1 permit any 
Router(config)#router [routing protocol specification] 
Router(config-router)#distribute-list 1 out
-Cầu hình vái extended ACL (đối vái moi giao thức đinh tuvền)
-> RIP sử dụng UDP port 520
Router(config)#access-list 101 deny udp 1.1.1.0 0.0.0.255 any eq 520
-> IGRP sử dụng giao thúíb riêng IGRP
Router(config)#access-list 101 deny igrp 1.1.1.0 0.0.0.255 any
-> EIGRP sử dụng giao thức riêng EIGRP đối với quảng bá định tuyển và bản tin
multicast hello
Router(config)#access-list 101 deny eigrp 1.1.1.0 0.0.0.255 224.0.0.10 
Router(config)#access-list 101 deny eigrp 1.1.1.0 0.0.0.255 any
-> OSPF sử dụng giao thức riêng EIGRP đối với quảng bá định tuyển và bản tin 
multicast hello
Router(config)#access-list 101 deny ospf 1.1.1.0 0.0.0.255 224.0.0.10 
Router(config)#access-list 101 deny ospf 1.1.1.0 0.0.0.255 any 
-> Apply vào interface 
Router(config)#interface sO/0 
Router(config-if)#ip access-group 101 out
4. Defend IP Spoofing
IP spoof là kỹ thuật giả địa chỉ, trong đó hacker là những kẻ muốn xâm nhập hệ thống 
mạng, tìm cách đánh lừa router rằng mình là một host tin cậy. Bằng sử dụng sock proxy 
(đổi IP add) và IP source routing (kỹ thuật định tuyến không phụ thuộc routing table) 
hacker có thể xâm nhập vào hệ thống mạng, lấy được sequence number trong 
segment, để rồi chiếm quyền điều khiển.
Theo đó, vấn đề là làm sao ngăn được những gói tin từ ngoài vào mà địa chỉ IP nằm 
trong dải mạng:
-Cầu hình vái Standard ACL:
-> Lọc mọi địa chỉ IP inside đi từ outside
Router(config)# access-list 101 deny ip 1.1.1.0 0.0.0.255 1.1.1.0 0.0.0.255 log
-> Lọc mọi địa chỉ private (vì địa chỉ private không tham gia traffic trên 
WAN)
Router(config)# access-list 101 deny ip 10.0.0.0 0.255.255.255 1.1.1.0 0.0.0.255 
log
Router(config)# access-list 101 deny ip 172.16.0.0 0.0.255.255 1.1.1.0 0.0.0.255 
log
Router(config)# access-list 101 deny ip 192.168.0.0 0.0.255.255 1.1.1.0 0.0.0.255 
log
Router(config)# access-list 101 deny ip 127.0.0.0 0.255.255.255 1.1.1.0 0.0.0.255 
log
Router(config)# access-list 101 deny ip 169.254.0.0 0.0.255.255 1.1.1.0 0.0.0.255 
log
Router(config)# access-list 101 permit ip any any
Router(config)#interface sO/0 
Router(config-if)#ip access-group 101 in
5. Defend DOS
Tấn công DoS là kiểu tấn công mà hacker làm ngập hệ thống, liên tục gửi một lượng lón 
lớn truy vấn đến server trong một khoảng thòi gian ngắn, khiến hệ thống bị quá tải, 
không thể xử lý được số lệnh mà nó được yêu cầu giải quyết, server có thể nhanh chóng 
bị ngừng hoạt động.
“Vũ khí” được sử dụng trong những cuộc tấn công DoS là những gói tin TCP/SYN,
ICMP, và ngay cả ICMP-reply. Vậy vấn đề là làm sao có thể lọc, hoặc thiết lập các giới 
hạn truy cập đối với các gói tin đó:
a) DoSTCP/SYN:
Đây là kiểu tấn công DoS làm ngập hệ thống bằng cách gửi tới những 
segment chỉ chứa cò SYN nhằm yêu cầu router trả lòi vối TCP SYN và ACK. 
Vậy giải pháp là thiết lập ACL từ chối các phiên kết nối TCP từ bên ngoài vào 
hệ thống, và chỉ cho phép phiên được khỏi tạo bên trong. ACL cần phải lọc 
được cò ACK:
-Cầu hình vái extended ACL:
Flags: ACK
Flags: SYN
Flags: SYN, ACK
Router(config)#access-list 1 permit tcp any host 2.2.2.1 established 
router(config)#interface sO/0 
router(config-if)#ip access-group 1 in 
Môt giải pháp nữa là sử dung reflexive ACL.
b) DoS Smurf
Đây là kiểu tấn công DoS “gắp lửa bỏ tay người” làm ngập hệ thống bằng 
các gói tin ICMP. Hacker spoof địa chỉ IP của victim, dùng địa chỉ đó gửi tối 1 
hệ thống mạng khác bản tin broadcast ICMP echo, để rồi làm ngập victim bởi 
vô số bản tin ICMP echo-reply.
- Đứng vị trí hệ thống mạng nhận gói tin broadcast ICMP echo, giải pháp 
là ngăn chặn mọi gói tin ICMP broadcast
-Cầu hình vói extended ACL:
SO/O
so/o
so/o
amplifier(config)#acceess-list 101 deny ip any host 2.2.2.255 log 
amplifier(config)#acceess-list 101 deny ip any host 2.2.2.0 log 
amplifier(config)#acceess-list 101 permit ip any any 
amplifier(config)#interface sO/0 
amplifier(config-if)#ip access-group 101 in
- Đứng Ỏ vị trí victim, admin sẽ không thể phòng thủ được một khi cơn lũ 
ICMP echo-reply đã được gửi tới, nhưng phần nào hạn chế tác hại của 
smurf khi sớm phát hiện và shutdown interface hoặc ngay lập tức xây 
dựng ACL lọc mọi traffic từ địa chỉ gửi ICMP echo-reply.
-Xác nhân nauv cớ DoS Smurf:
victim(config)#acceess-list 102 permit icmp any 3.3.3.0 0.0.0.255 echo 
log
victim(config)#acceess-list 102 permit icmp any 3.3.3.0 0.0.0.255 echo- 
reply log
victim(config)#....
-> Kiểm tra bằng lệnh “show access list” 
victim(config)#do show access-list 
Extended IP access list 102
Permit icmp any 3.3.3.0 0.0.0.255 echo (15 matches)
Permit icmp any 3.3.3.0 0.0.0.255 echo-reply (21354 matches)
-> CÓ sự chênh quá lốn giữa bản tin echo gửi đi và echo-reply nhận về, đó 
là dấu hiệu bị tấn công DoS rồi. cần đóng ngay mọi traffic từ 2.2.2.0/24 
-Xảv dưtìa extended ACL bảo vê:
victim(config)#acceess-list 103 deny ip 2.2.2.0 0.0.0.255 3.3.3.0 0.0.0.255 
echo-reply log
victim(config)#i interface sO/0
victim(config)#ip access-group 103 in
c) DoS ICMP
ICMP là giao thức phổ biến cho phép kiểm tra và xác định lỗi trên Layer 3 
trong mô hình TCP/IP bằng cách định nghĩa ra các loại thông điệp có thể sử 
dụng để xác định xem mạng hiện tại có thể truyền được gói tin hay không. 
ICMP hỗ trợ rất nhiều loại bản tin, nhằm hỗ trỢ traffic trên mạng một cách 
hiệu quả nhất; nhưng ngược lại các gói tin ICMP cũng trở thành công cụ đắc 
lực cho hacker tiến hành những cuộc tấn công DoS.
Hacker có thể sử dụng ICMP để làm ngập hệ thống bằng các bản tin request 
hoặc “đốt” băng thông mạng bằng các bản tin reply. Giải pháp đơn giản nhất 
là thiết lập bản tin ACL trên cả 2 chiều inbound và outbound trên 1 interface 
của router, mọi bản tin ACL “có tiềm năng” gây ra DoS đều sẽ được lọc :
-> Lọc inbound:
Lọc bản tin ICMP redirect:
Router(config)#access-list 101 deny icmp any any redirect log 
Lọc bản tin ICMP mask-request
Router(config)#access-list 101 deny icmp any any mask-request log 
Apply Interface inbound 
Router(config)#interface [#]
Router(config-if)#ip access-group 101 inbound
-> Lọc outbound:
Lọc bản tin ICMP echo-reply và ICMP unreachable - cho phép bản tin 
reply để kiểm tra hệ thống mạng phía xa
Router(config)#access-list 102 permit icmp any any echo-reply 
Router(config)#access-list 102 permit icmp any any unreachable 
Lọc bản tin ICMP time-exceeded - hỗ trỢ traceroute 
Router(config)#access-list 102 permit icmp any any time-exceeded 
Lọc bản tin ICMP parameter-problem, ICMP packet-too-big và ICMP 
source-quench - hỗ trỢ giới hạn MTU, ngản tấn công DoS Teardrop 
Router(config)#access-list 102 permit icmp any any parameter-problem 
Router(config)#access-list 102 permit icmp any any packet-too-big 
Router(config)#access-list 102 permit icmp any any source-quench
Apply Interface outbound
Router(config)#interface [#]
Router(config-if)#ip access-group 102 outbound 
-> Chú ý là bản tin ACL 101 và ACL 102 đặt trên 2 chiều của 1 interface, nên sử 
dụng trên interface biên
            Các file đính kèm theo tài liệu này:
 access_control_list_0609.pdf access_control_list_0609.pdf