ACL làm việc thế nào ACL là một tập hợp các bộ lọc statement, mỗi bộ lọc sẽ xác định gói tin được chấp nhận hay bị từ chối Mỗi bộ lọc ACL sẽ có 1 số thứ tự Khi một bộ lọc khớp với
Trang 1Quản trị mạng cơ bản
Trang 2Quản trị mạng cơ bản
Trang 3Tổng quan
Quản trị viên cần ngăn chặn những truy cập không mong muốn trong
khi vẫn duy trì được các luồng lưu lượng cần thiết
Những chương trình bảo mật như password, thiết bị callback…vẫn có những thiếu hụt trong việc quản lý mềm dẻo, lọc lưu lượng
Ví dụ như quản trị viên cho phép user truy cập internet, nhưng không
cho các user bên ngoài telnet vào hệ thống mạng bên trong
Router cung cấp thiết bị lọc lưu lượng với khả năng mở rộng, mềm dẻo
cao, đó là access control lists (ACLs)
ACL là một danh sách điều khiển truy cập cho phép quản trị viên có thể thiết lập các quy tắc truy cập mạng
Bài học này sẽ giới thiệu với các anh chị về khái niêm ACL, các loại
ACL như standard và extended.
Trang 4 Ngoài ra, bài này còn đưa ra:
Các phương pháp, lời khuyên và hướng
dẫn chi tiết cho việc sử dụng ACL Cấu hình cần thiết để tạo ACL
Ví dụ về standard và extended ACL
Áp dụng ACL như thế nào trên router?
Trang 5What are ACLs?
Note: bắt đầu bài này sẽ có nhiều khái niệm, các khái niệm này sẽ
được mô tả rõ hơn trong phần sau của bài (cấu hình).
ACL là một tập hợp tuần tự các câu lệnh hay bộ lọc
Mỗi bộ lọc có 2 hành động chính sau:
Deny (từ chối)
Permit (cho phép)
Việc chấp nhận hay từ chối sẽ dựa vào tình huống cụ thể.
ACL sẽ được áp dụng trên interface hoặc line của router
Trang 6What are ACLs?
Router kiểm tra mỗi gói tin, xác định xem cần phải chuyển
hay hủy gói tin đó dựa trên điều kiện của ACL
Điều kiện có thể xây dựng trên:
Trang 7What are ACLs?
ACLs cần được xác định:
per-protocol (IP, IPX, AppleTalk)
per direction (in or out)
per port (interface) basis
ACL điều khiển lưu lượng theo 1 hướng trên router
Các ACL khác nhau cần phải tạo cho các hướng khác nhau: 1 cho in, 1
cho out
Mỗi interface có thể sử dụng nhiều giao thức và hướng khác nhau
Trang 8ACL làm việc thế nào
ACL là một tập hợp các bộ lọc (statement), mỗi bộ lọc sẽ xác định gói
tin được chấp nhận hay bị từ chối
Mỗi bộ lọc ACL sẽ có 1 số thứ tự
Khi một bộ lọc khớp với gói tin, gói tin dó sẽ kiểm tra xem là cho phép hay từ chối Khi đã khớp với một bộ lọc, router sẽ không so khớp gói tin với các bộ lọc tiếp theo
Mỗi ACL sẽ có một bộ lọc ẩn ở cuối ACL, bộ lọc này sẽ từ chối toàn bộ
các gói tin Điều này đồng nghĩa với việc, nếu gói tin không khớp với bộ lọc nào của ACL, nó sẽ bị xóa
Trang 9ACL làm việc như thế nào?
cho phép đi qua hoặc từ chối
interface theo một hướng nhất định
router đó
Trang 10Hai loại ACL
Trang 11Tạo Standard ACL – 2 bước
Trang 12Tạo Standard ACL – 2 bước
(Standard IP)
Trang 13Ví dụ
Yêu cầu:
Chỉ Cho phép host 172.16.30.2 ra ngoài mạng Sales
Các host còn lại không được ra khỏi mạng Sales
RouterA RouterB RouterC
Administration Sales Engineering
Trang 14RouterA RouterB RouterC
Administration Sales Engineering
Bước 1: bộ lọc ẩn “deny any” được tạo ra ở cuối ACL
(Standard IP)
Test Condition
Trang 15Ví dụ
Applying ACLs
Bạn có thể tạo ACL mà không sử dụng nó
ACL chỉ có hiệu lực khi nó được gắn lên interface mà thôi
Một trong những kinh nghiệm hay là đối với standard ACL, bạn nên gắn nó càng gần đích càng tốt (later)
Xác định: In, Out, Source, and Destination
• Out – khớp với những lưu lượng đã qua quá trình định tuyến
• In – lưu lượng mới đến router, chưa qua quá trình định tuyến
RouterA RouterB RouterC
Administration Sales Engineering
Trang 16RouterA RouterB RouterC
Administration Sales Engineering
Step 2 – Apply to an interface(s)
Trang 17RouterA RouterB RouterC
Administration Sales Engineering
Step 2 – Or the outgoing interfaces… Which is preferable and why?
Trang 18RouterA RouterB RouterC
Administration Sales Engineering
Vì có một bộ lọc ẩn “deny any” cũng sẽ ảnh Hưởng luồng dữ liệu từ
Admininistration tới Engineering
Trang 19RouterA RouterB RouterC
Administration Sales Engineering
Trang 20Ví dụ 2
Yêu cầu:
Chỉ cho phép các host 172.16.30.2, 172.16.30.3, 172.16.30.4,
172.16.30.5 đi ra khỏi được mạng Sales
Từ chối toàn bộ các host khác ra khỏi mạng Sales
RouterA RouterB RouterC
Administration Sales Engineering
Trang 21RouterA RouterB RouterC
Administration Sales Engineering
Vì ACL đã có sẵn bộ lọc ẩn “deny any”, vì vậy nó có thể đáp ứng được yêu cầu đề bài
Trang 22Ví dụ 2
RouterB(config)#no access-list 10
RouterB(config)# interface e 0 RouterB(config-if)# no ip access-group 10 in
RouterA RouterB RouterC
Administration Sales Engineering
Để xóa ACL, thực hiện như sau:
Trang 23Ví dụ 3
Yêu cầu:
Chỉ từ chối host 172.16.30.2 đi từ Sales ra ngoài,
Cho phép toàn bộ các host còn lại
Từ khóa “any” ám chỉ toàn bộ các địa chỉ IP
RouterA RouterB RouterC
Administration Sales Engineering
Trang 24Ví dụ 3
RouterB(config)#access-list 10 deny 172.16.30.2
RouterB(config)#access-list 10 permit any
Implicit “deny any” -do not need to add this, discussed later
RouterA RouterB RouterC
Administration Sales Engineering
Chú ý: vì mặc định có statement ẩn “deny any” ở cuối mỗi ACL, nên bạn phải thêm statement “ Access-list 10 permit any” để đảm bảo yêu cầu đề bài
Trang 25 Khi gói tin bị từ chối bới ACL, router sẽ gửi bản tin ICMP “Destination
unreachable”, với giá trị code là “Administratively Prohibited” tới nguồn gói tin
RouterB(config)#access-list 10 deny 172.16.30.2
RouterB(config)#access-list 10 permit any
Implicit “deny any” (do not need to add this, discussed later):
RouterB(config)#access-list 10 deny 0.0.0.0 255.255.255.255
RouterB(config)# interface e 0
RouterB(config-if)# ip access-group 10 in
Trang 26Chú ý từ www.cisco.com
Lưu lượng đến router sẽ được so khớp lần lượt với từng bộ lọc theo thứ tự bộ
lọc đó trong ACL
Các bộ lọc tạo ra sau sẽ add vào cuối ACL
Router sẽ tìm cho đến khi nào khớp thì thôi
Có lọc ẩn “deny any”, vì vậy nếu không khớp, gói tin sẽ bị từ chối
ACL một bộ lọc với hành động là “deny” được hiểu là từ chối toàn bộ mọi gói tin
Bạn cần phải có ít nhất một bộ lọc với hành động “permit” trong một ACL, nếu
không toàn bộ lưu lượng sẽ bị lọc
access-list 10 permit 10.1.1.1 0.0.0.255
access-list 10 deny ip any (implicit)
Trang 27Wildcard Masks!
Wildcard mask :
Để chỉ ra các địa chỉ IP nào khớp với bộ lọc của ACL
Trang 28Thời gian cho Wildcard Masks!
wildcard mask : 32 bit chia thành 4 octet
Sử dụng kèm với địa chỉ IP
Số lượng bit 0 và 1 chỉ ra, các bít nào cần so khớp, các bít nào không
cần
Wildcard mask không có chức năng nào liên quan tới Subnetmask
Các bit 0, 1 trong wildcard mask có thể sắp xếp đan xen vào nhau
Wildcard mask được xây dựng với mục đích lọc một địa chỉ hay một
nhóm địa chỉ cụ thể dựa vào việc so khớp với Địa chỉ IP có sẵn (bit 0 thì cần so khớp, bit 1 thì không )
Trang 29Wildcard Masks!
Một trong những cách thức đơn giản đầu tiên giúp bạn có
thể lấy được wildcard mask là ngược lại của subnet mask
(lấy 255.255.255.255 trừ đi subnet mask).
Trang 30Wildcard Masks!
phù hợp
0 - “Kiểm tra với bít tương ứng.”
10101100.00010000.00000000.00000000
00000000.00000000 11111111.11111111
10101100.00010000.any value.any value
-A Match… Các gói tin phù hợp (khớp) sẽ như sau:
Test Condition
The packet Test
Conditon
Trang 31Wildcard Masks!
0 - “Kiểm tra với bít tương ứng.”
1 - “không cần check với bít tương ứng.”
10101100.00010000.00000000.00000000
00000000.00000000 11111111.11111111
10101100.00010000.any value.any value
Resulting in the bits that must match or doesn’t matter
Các gói tin phù hợp với sẽ như
sau:
Test Condition
Test Conditon
The packet
Trang 32Ví dụ 4 – Sử dụng Wildcard Masks
Yêu cầu:
RouterA cho phép mạng Sales và chỉ host 172.16.50.2
RouterA từ chối mọi traffic vào mạng Administrative
RouterA RouterB RouterC
Administration Sales Engineering
Trang 33Ví dụ 4 – Sử dụng Wildcard Masks
172.16.30.0 0.0.0.255
0 check – đảm bảo octet 1 là 172
0 check – đảm bảo octet 2 là 16
0 check – đảm bảo octet 3 là 30
RouterA RouterB RouterC
Administration Sales Engineering
RouterA(config)#access-list 11 permit 172.16.30.0 0.0.0.255
RouterA(config)#access-list 11 permit 172.16.50.2 0.0.0.0
172.16.50.2 0.0.0.0
• 0 check – đảm bảo octet 1 là 172
• 0 check - đảm bảo octet 2h là 16
• 0 check - đảm bảo octet 3 là 50
• 0 check - đảm bảo octet 4 là 2
Trang 34RouterA RouterB RouterC
Administration Sales Engineering
RouterA(config)#access-list 11 permit 172.16.30.0 0.0.0.255
0 = check, we want this to match, 1 = don’t check (don’t care)
Test Conditon
The packet(s)
Trang 35RouterA RouterB RouterC
Administration Sales Engineering
RouterA(config)#access-list 11 permit 172.16.50.2 0.0.0.0
0 = check, we want this to match, 1 = don’t check (don’t care)
Test Conditon
The packet(s)
Trang 36RouterA RouterB RouterC
Administration Sales Engineering
RouterA(config)#access-list 11 permit 172.16.30.0 0.0.0.255
RouterA(config)#access-list 11 permit 172.16.50.2 0.0.0.0
RouterA(config)# interface e 0
RouterA(config-if)#ip access-group 11 out
Đừng quên gán ACL lên interface
Trang 37RouterA RouterB RouterC
Administration Sales Engineering
RouterA(config)#access-list 11 permit 172.16.30.0 0.0.0.255
RouterA(config)#access-list 11 permit 172.16.50.2 0.0.0.0
RouterA(config)#access-list 11 deny 0.0.0.0 255.255.255.255
RouterA(config)# interface e 0
RouterA(config-if)#ip access-group 11 out
Nên nhớ có statement ẩn “deny any”, tuy nhiên đối với beginner, thì statement cuối
“deny 0.0.0.0 255.255.255.255” để thực hành
Trang 38RouterA RouterB RouterC
Administration Sales Engineering
The packet(s)
Trang 39RouterA RouterB RouterC
Administration Sales Engineering
RouterA(config)#access-list 11 deny 0.0.0.0 255.255.255.255
Or
RouterA(config)#access-list 11 deny any
Để đơn giản : any = 0.0.0.0 255.255.255.255
Trang 40RouterA RouterB RouterC
Administration Sales Engineering
RouterB(config)#access-list 10 deny 172.16.30.2
RouterB(config)#access-list 10 permit any
or
RouterB(config)#access-list 10 permit 0.0.0.0 255.255.255.255
Trang 41Luyện tập
RouterB(config)#access-list 10 permit _
Permit the following networks:
Network/Subnet Mask Address/Wildcard Mask
Permit the following hosts:
Network/Subnet Mask Address/Wildcard Mask
H All hosts
Trang 42Luyện tập – bạn có nhìn thấy mối quan hệ? RouterB(config)#access-list 10 permit _
Permit the following networks:
Network/Subnet Mask Address/Wildcard Mask
Permit the following hosts:
Network/Subnet Mask Address/Wildcard Mask
H All hosts 0.0.0.0 255.255.255.255
Trang 43A 172.16.0.0 0.0.255.255
RouterB(config)#access-list 10 permit 172.16.0.0 0.0.255.255
0 = check, we want this to match
1 = don’t check, this can be any value, does not need to match
172.16.0.0 10101100 00010000 00000000 00000000 0.0.255.255 00000000 00000000 11111111 11111111 - 172.16.0.0 10101100 00010000 00000000 00000000
172.16.0.1 10101100 00010000 00000000 00000001
172.16.0.2 10101100 00010000 00000000 00000010 (through)
172.16.255.255 10101100 00010000 11111111 11111111
Giải thích câu trả lời
Test Conditon
The packet(s)
Trang 44D 172.16.32.0 255.255.240.0
RouterB(config)#access-list 10 permit 172.16.32.0 0.0.15.255
0 = check, we want this to match
1 = don’t check, this can be any value, does not need to match
Trang 45Đây chính là mối quan hệ
Trang 46255.255.255.255 – Subnet = Wildcard
RouterB(config)#access-list 10 permit _
Permit the following networks:
255.255.255.255 - Subnet Mask = Wildcard Mask
Permit the following hosts: (host routes have a /32 mask)
255.255.255.255 - /32 Mask = Wildcard Mask
F 255.255.255.255 – 255.255.255.255 = 0.0.0.0
G 255.255.255.255 – 255.255.255.255 = 0.0.0.0
Trang 47255.255.255.255 – Subnet = Wildcard
RouterB(config)#access-list 10 permit _
Permit the following networks:
Network/Subnet Mask Address/Wildcard Mask
Permit the following hosts:
Network/Subnet Mask Address/Wildcard Mask
H All hosts or “any” 0.0.0.0 255.255.255.255
Trang 48Lựa chọn “host”
RouterB(config)#access-list 10 permit 192.168.1.100 0.0.0.0
RouterB(config)#access-list 10 permit host 192.168.1.100
Permit the following hosts:
Network/Subnet Mask Address/Wildcard Mask
A 172.16.10.100 172.16.10.100 0.0.0.0
B 192.168.1.100 192.168.1.100 0.0.0.0
“host” được sử dụng thay cho wildcard 0.0.0.0 -> Điều này có nghĩa cần phải
so khớp toàn bộ các bit ở trong địa chỉ ACL
Tùy chọn host này chỉ khớp với 1 địa chỉ IP
172.16.10.100 0.0.0.0 replaced by host 172.16.10.100
192.168.1.100 0.0.0.0 replaced by host 192.168.1.100
Trang 49Khoảngđịa chỉ với Wildcard Masks - Extra
Wildcard masks có thể sử dụng để chỉ ra dải đại chỉ cần lọc
Ví dụ:
Quản trị viên muốn lọc các địa chỉ từ 172.30.16.0/24 tới
172.30.31.0/24
access-list 20 permit 172.30.16.0 0.0.15.255
Trang 50Khoảngđịa chỉ với Wildcard Masks - Extra
Trang 51Khoảngđịa chỉ với Wildcard Masks - Extra
Trang 52Khoảngđịa chỉ với Wildcard Masks - Extra
Trang 53Khoảngđịa chỉ với Wildcard Masks - Extra
Trang 54Khoảngđịa chỉ với Wildcard Masks - Extra
Trang 55Kiểm tra Access Lists
Trang 56Kiểm tra Access Lists
Trang 57Kiểm tra Access Lists
• Note: Một ACL có thể gán lên nhiều interface cùng 1 lúc
Trang 58Quản trị mạng cơ bản
Trang 59Inbound Standard Access Lists
Với inbound, router sẽ check ACL trước khi đưa gói tin vào quá trình định
tuyến
Với outbound router sẽ thực hiện quá trình định tuyến trước, xác định được
cổng ra của gói tin, đẩy gói tin ra cổng và mới check ACL.
Inbound Access Lists
RouterA(config)# interface e 0
RouterA(config-if)#ip access-group 11 in
Trang 60Standard ACL
We will see why in a moment.
Router(config)#access-list access-list-number {deny | permit} source [source-wildcard ] [log]
Không thể xóa từng statement với ACL number được, ta sẽ phải xóa cả
ACL
Router(config)#no access-list access-list-number
Trang 61Extended Access Lists
Trang 62Extended Access Lists
Extended ACLs được sử dụng rộng dãi hơn, vì khả năng mềm dẻo và đa dạng hơn của nó
Extended ACL check địa chỉ IP nguồn, IP đích, Port Nguồn, port đích và
giao thức.
Trang 63Extended Access Lists
Operator và operand để chỉ ra port nào hay giao thức nào sẽ được check
Nếu Operator và operand cấu hình sau địa chỉ nguồn, thì nó sẽ
là port nguồn, còn nếu sau địa chỉ đích sẽ là port đích
Trang 64Extended Access Lists – Ví dụ
Trang 65Ví dụ 1
Yêu cầu:
Điều gì xảy ra nếu chúng ta chỉ muốn routerA cho phép mỗi máy
172.16.50.2 có thể truy cập tới web server trong mạng administrative
với địa chỉ 172.16.10.2 và port 80
Các luồng dữ liệu khác đều bị chặn
RouterA RouterB RouterC
Administration Sales Engineering
Port 80
Trang 66RouterA RouterB RouterC
Administration Sales Engineering
Port 80
• Vì sao đặt ACL trên RouterA lại tốt hơn RouterC??????
• Vì sao là cổng E0 chứ ko phải cổng S0 của RouterA????
Trang 67Ví dụ 2
Yêu cầu:
Điều gì sảy ra nếu chúng ta muốn routerA cho phép mọi máy tinh từ
mạng Sales truy cập vào web server 172.16.10.2 trong mạng
Administrative với port 80
Các luồng dữ liệu khác bị deny
RouterA RouterB RouterC
Administration Sales Engineering
Port 80
Trang 68RouterA RouterB RouterC
Administration Sales Engineering
Port 80
RouterA(config)#access-list 110 permit tcp 172.16.30.0
0.0.0.255 host 172.16.10.2 eq 80
RouterA(config)#inter e 0
RouterA(config-if)#ip access-group 110 out
• Khi cấu hình các statement, có thể sử dụng “?” để giúp
bạn
Trang 69Inbound Extended Access Lists
Với inbound, router sẽ check ACL trước khi đưa gói tin vào quá trình định
tuyến
Với outbound router sẽ thực hiện quá trình định tuyến trước, xác định được
cổng ra của gói tin, đẩy gói tin ra cổng và mới check ACL.
Inbound Access Lists
RouterA(config)# interface e 0
RouterA(config-if)#ip access-group 11 in